// Generated by dart2js (, csp, intern-composite-values), the Dart to JavaScript compiler version: 3.9.0-152.0.dev.
// 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, loadPriority):
//    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. The loadPriority argument is an arbitrary argument
//    string forwarded from the 'dart2js:load-priority' pragma option.
// dartDeferredLibraryMultiLoader(uris, successCallback, errorCallback, loadId, loadPriority):
//    if this function is defined, it will be called when a deferred library
//    is loaded. It should load and eval the javascript of every URI in `uris`,
//    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. The loadPriority argument is an
//    arbitrary argument string forwarded from the 'dart2js:load-priority'
//    pragma option.
//
// 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.getPrototypeOf(object) && Object.getPrototypeOf(object).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) {
        Object.setPrototypeOf(cls.prototype, 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 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, rti) {
    if (rti != null)
      A._setArrayType(list, rti);
    list.$flags = 7;
    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, updateHolder: updateHolder, convertToFastObject: convertToFastObject, updateTypes: updateTypes, setOrUpdateInterceptorsByTag: setOrUpdateInterceptorsByTag, setOrUpdateLeafTags: setOrUpdateLeafTags};
  }();
  function initializeDeferredHunk(hunk) {
    typesOffset = init.types.length;
    hunk(hunkHelpers, init, holders, $);
  }
  var 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$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) {
      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$markFixed(allocation, $E) {
      var t1 = A._setArrayType(allocation, $E._eval$1("JSArray<0>"));
      t1.$flags = 1;
      return t1;
    },
    JSArray__compareAny(a, b) {
      var t1 = type$.Comparable_dynamic;
      return J.compareTo$1$ns(t1._as(a), t1._as(b));
    },
    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 (Array.isArray(receiver))
        return J.JSArray.prototype;
      if (typeof receiver != "object") {
        if (typeof receiver == "function")
          return J.JavaScriptFunction.prototype;
        if (typeof receiver == "symbol")
          return J.JavaScriptSymbol.prototype;
        if (typeof receiver == "bigint")
          return J.JavaScriptBigInt.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 (Array.isArray(receiver))
        return J.JSArray.prototype;
      if (typeof receiver != "object") {
        if (typeof receiver == "function")
          return J.JavaScriptFunction.prototype;
        if (typeof receiver == "symbol")
          return J.JavaScriptSymbol.prototype;
        if (typeof receiver == "bigint")
          return J.JavaScriptBigInt.prototype;
        return receiver;
      }
      if (receiver instanceof A.Object)
        return receiver;
      return J.getNativeInterceptor(receiver);
    },
    getInterceptor$ax(receiver) {
      if (receiver == null)
        return receiver;
      if (Array.isArray(receiver))
        return J.JSArray.prototype;
      if (typeof receiver != "object") {
        if (typeof receiver == "function")
          return J.JavaScriptFunction.prototype;
        if (typeof receiver == "symbol")
          return J.JavaScriptSymbol.prototype;
        if (typeof receiver == "bigint")
          return J.JavaScriptBigInt.prototype;
        return receiver;
      }
      if (receiver instanceof A.Object)
        return receiver;
      return J.getNativeInterceptor(receiver);
    },
    getInterceptor$ns(receiver) {
      if (typeof receiver == "number")
        return J.JSNumber.prototype;
      if (typeof receiver == "string")
        return J.JSString.prototype;
      if (receiver == null)
        return receiver;
      if (!(receiver instanceof A.Object))
        return J.UnknownJavaScriptObject.prototype;
      return receiver;
    },
    getInterceptor$s(receiver) {
      if (typeof receiver == "string")
        return J.JSString.prototype;
      if (receiver == null)
        return receiver;
      if (!(receiver instanceof A.Object))
        return J.UnknownJavaScriptObject.prototype;
      return receiver;
    },
    set$length$asx(receiver, value) {
      return J.getInterceptor$asx(receiver).set$length(receiver, value);
    },
    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$isNotEmpty$asx(receiver) {
      return J.getInterceptor$asx(receiver).get$isNotEmpty(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$runtimeType$(receiver) {
      return J.getInterceptor$(receiver).get$runtimeType(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 (Array.isArray(receiver) || 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);
    },
    allMatches$1$s(receiver, a0) {
      return J.getInterceptor$s(receiver).allMatches$1(receiver, a0);
    },
    allMatches$2$s(receiver, a0, a1) {
      return J.getInterceptor$s(receiver).allMatches$2(receiver, a0, a1);
    },
    cast$1$0$ax(receiver, $T1) {
      return J.getInterceptor$ax(receiver).cast$1$0(receiver, $T1);
    },
    compareTo$1$ns(receiver, a0) {
      return J.getInterceptor$ns(receiver).compareTo$1(receiver, a0);
    },
    contains$1$asx(receiver, a0) {
      return J.getInterceptor$asx(receiver).contains$1(receiver, a0);
    },
    elementAt$1$ax(receiver, a0) {
      return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0);
    },
    fillRange$3$ax(receiver, a0, a1, a2) {
      return J.getInterceptor$ax(receiver).fillRange$3(receiver, a0, a1, a2);
    },
    getRange$2$ax(receiver, a0, a1) {
      return J.getInterceptor$ax(receiver).getRange$2(receiver, a0, a1);
    },
    map$1$ax(receiver, a0) {
      return J.getInterceptor$ax(receiver).map$1(receiver, a0);
    },
    map$1$1$ax(receiver, a0, $T1) {
      return J.getInterceptor$ax(receiver).map$1$1(receiver, a0, $T1);
    },
    matchAsPrefix$2$s(receiver, a0, a1) {
      return J.getInterceptor$s(receiver).matchAsPrefix$2(receiver, a0, a1);
    },
    skip$1$ax(receiver, a0) {
      return J.getInterceptor$ax(receiver).skip$1(receiver, a0);
    },
    sort$1$ax(receiver, a0) {
      return J.getInterceptor$ax(receiver).sort$1(receiver, a0);
    },
    take$1$ax(receiver, a0) {
      return J.getInterceptor$ax(receiver).take$1(receiver, a0);
    },
    toList$0$ax(receiver) {
      return J.getInterceptor$ax(receiver).toList$0(receiver);
    },
    toString$0$(receiver) {
      return J.getInterceptor$(receiver).toString$0(receiver);
    },
    Interceptor: function Interceptor() {
    },
    JSBool: function JSBool() {
    },
    JSNull: function JSNull() {
    },
    JavaScriptObject: function JavaScriptObject() {
    },
    LegacyJavaScriptObject: function LegacyJavaScriptObject() {
    },
    PlainJavaScriptObject: function PlainJavaScriptObject() {
    },
    UnknownJavaScriptObject: function UnknownJavaScriptObject() {
    },
    JavaScriptFunction: function JavaScriptFunction() {
    },
    JavaScriptBigInt: function JavaScriptBigInt() {
    },
    JavaScriptSymbol: function JavaScriptSymbol() {
    },
    JSArray: function JSArray(t0) {
      this.$ti = t0;
    },
    JSArraySafeToStringHook: function JSArraySafeToStringHook() {
    },
    JSUnmodifiableArray: function JSUnmodifiableArray(t0) {
      this.$ti = t0;
    },
    ArrayIterator: function ArrayIterator(t0, t1, t2) {
      var _ = this;
      _._iterable = t0;
      _._length = t1;
      _._index = 0;
      _._current = null;
      _.$ti = t2;
    },
    JSNumber: function JSNumber() {
    },
    JSInt: function JSInt() {
    },
    JSNumNotInt: function JSNumNotInt() {
    },
    JSString: function JSString() {
    }
  },
  A = {JS_CONST: function JS_CONST() {
    },
    CastIterable_CastIterable(source, $S, $T) {
      if (type$.EfficientLengthIterable_dynamic._is(source))
        return new A._EfficientLengthCastIterable(source, $S._eval$1("@<0>")._bind$1($T)._eval$1("_EfficientLengthCastIterable<1,2>"));
      return new A.CastIterable(source, $S._eval$1("@<0>")._bind$1($T)._eval$1("CastIterable<1,2>"));
    },
    LateError$fieldADI(fieldName) {
      return new A.LateError("Field '" + fieldName + "' has been assigned during initialization.");
    },
    LateError$fieldNI(fieldName) {
      return new A.LateError("Field '" + fieldName + "' has not been initialized.");
    },
    LateError$fieldAI(fieldName) {
      return new A.LateError("Field '" + fieldName + "' has already been initialized.");
    },
    hexDigitValue(char) {
      var letter,
        digit = char ^ 48;
      if (digit <= 9)
        return digit;
      letter = char | 32;
      if (97 <= letter && letter <= 102)
        return letter - 87;
      return -1;
    },
    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;
    },
    isToStringVisiting(object) {
      var t1, i;
      for (t1 = $.toStringVisiting.length, i = 0; i < t1; ++i)
        if (object === $.toStringVisiting[i])
          return true;
      return false;
    },
    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>"));
    },
    TakeIterable_TakeIterable(iterable, takeCount, $E) {
      var _s9_ = "takeCount";
      A.ArgumentError_checkNotNull(takeCount, _s9_, type$.int);
      A.RangeError_checkNotNegative(takeCount, _s9_);
      if (type$.EfficientLengthIterable_dynamic._is(iterable))
        return new A.EfficientLengthTakeIterable(iterable, takeCount, $E._eval$1("EfficientLengthTakeIterable<0>"));
      return new A.TakeIterable(iterable, takeCount, $E._eval$1("TakeIterable<0>"));
    },
    SkipIterable_SkipIterable(iterable, count, $E) {
      var _s5_ = "count";
      if (type$.EfficientLengthIterable_dynamic._is(iterable)) {
        A.ArgumentError_checkNotNull(count, _s5_, type$.int);
        A.RangeError_checkNotNegative(count, _s5_);
        return new A.EfficientLengthSkipIterable(iterable, count, $E._eval$1("EfficientLengthSkipIterable<0>"));
      }
      A.ArgumentError_checkNotNull(count, _s5_, type$.int);
      A.RangeError_checkNotNegative(count, _s5_);
      return new A.SkipIterable(iterable, count, $E._eval$1("SkipIterable<0>"));
    },
    IterableElementError_noElement() {
      return new A.StateError("No element");
    },
    IterableElementError_tooFew() {
      return new A.StateError("Too few elements");
    },
    Sort__doSort(a, left, right, compare, $E) {
      if (right - left <= 32)
        A.Sort__insertionSort(a, left, right, compare, $E);
      else
        A.Sort__dualPivotQuicksort(a, left, right, compare, $E);
    },
    Sort__insertionSort(a, left, right, compare, $E) {
      var i, t1, el, j, t2, j0;
      for (i = left + 1, t1 = J.getInterceptor$asx(a); i <= right; ++i) {
        el = t1.$index(a, i);
        j = i;
        while (true) {
          if (j > left) {
            t2 = compare.call$2(t1.$index(a, j - 1), el);
            if (typeof t2 !== "number")
              return t2.$gt();
            t2 = t2 > 0;
          } else
            t2 = false;
          if (!t2)
            break;
          j0 = j - 1;
          t1.$indexSet(a, j, t1.$index(a, j0));
          j = j0;
        }
        t1.$indexSet(a, j, el);
      }
    },
    Sort__dualPivotQuicksort(a, left, right, compare, $E) {
      var t0, less, great, pivots_are_equal, k, ak, comp, great0, less0,
        sixth = B.JSInt_methods._tdivFast$1(right - left + 1, 6),
        index1 = left + sixth,
        index5 = right - sixth,
        index3 = B.JSInt_methods._tdivFast$1(left + right, 2),
        index2 = index3 - sixth,
        index4 = index3 + sixth,
        t1 = J.getInterceptor$asx(a),
        el1 = t1.$index(a, index1),
        el2 = t1.$index(a, index2),
        el3 = t1.$index(a, index3),
        el4 = t1.$index(a, index4),
        el5 = t1.$index(a, index5),
        t2 = compare.call$2(el1, el2);
      if (typeof t2 !== "number")
        return t2.$gt();
      if (t2 > 0) {
        t0 = el2;
        el2 = el1;
        el1 = t0;
      }
      t2 = compare.call$2(el4, el5);
      if (typeof t2 !== "number")
        return t2.$gt();
      if (t2 > 0) {
        t0 = el5;
        el5 = el4;
        el4 = t0;
      }
      t2 = compare.call$2(el1, el3);
      if (typeof t2 !== "number")
        return t2.$gt();
      if (t2 > 0) {
        t0 = el3;
        el3 = el1;
        el1 = t0;
      }
      t2 = compare.call$2(el2, el3);
      if (typeof t2 !== "number")
        return t2.$gt();
      if (t2 > 0) {
        t0 = el3;
        el3 = el2;
        el2 = t0;
      }
      t2 = compare.call$2(el1, el4);
      if (typeof t2 !== "number")
        return t2.$gt();
      if (t2 > 0) {
        t0 = el4;
        el4 = el1;
        el1 = t0;
      }
      t2 = compare.call$2(el3, el4);
      if (typeof t2 !== "number")
        return t2.$gt();
      if (t2 > 0) {
        t0 = el4;
        el4 = el3;
        el3 = t0;
      }
      t2 = compare.call$2(el2, el5);
      if (typeof t2 !== "number")
        return t2.$gt();
      if (t2 > 0) {
        t0 = el5;
        el5 = el2;
        el2 = t0;
      }
      t2 = compare.call$2(el2, el3);
      if (typeof t2 !== "number")
        return t2.$gt();
      if (t2 > 0) {
        t0 = el3;
        el3 = el2;
        el2 = t0;
      }
      t2 = compare.call$2(el4, el5);
      if (typeof t2 !== "number")
        return t2.$gt();
      if (t2 > 0) {
        t0 = el5;
        el5 = el4;
        el4 = t0;
      }
      t1.$indexSet(a, index1, el1);
      t1.$indexSet(a, index3, el3);
      t1.$indexSet(a, index5, el5);
      t1.$indexSet(a, index2, t1.$index(a, left));
      t1.$indexSet(a, index4, t1.$index(a, right));
      less = left + 1;
      great = right - 1;
      pivots_are_equal = J.$eq$(compare.call$2(el2, el4), 0);
      if (pivots_are_equal)
        for (k = less; k <= great; ++k) {
          ak = t1.$index(a, k);
          comp = compare.call$2(ak, el2);
          if (comp === 0)
            continue;
          if (comp < 0) {
            if (k !== less) {
              t1.$indexSet(a, k, t1.$index(a, less));
              t1.$indexSet(a, less, ak);
            }
            ++less;
          } else
            for (; true;) {
              comp = compare.call$2(t1.$index(a, great), el2);
              if (comp > 0) {
                --great;
                continue;
              } else {
                great0 = great - 1;
                if (comp < 0) {
                  t1.$indexSet(a, k, t1.$index(a, less));
                  less0 = less + 1;
                  t1.$indexSet(a, less, t1.$index(a, great));
                  t1.$indexSet(a, great, ak);
                  great = great0;
                  less = less0;
                  break;
                } else {
                  t1.$indexSet(a, k, t1.$index(a, great));
                  t1.$indexSet(a, great, ak);
                  great = great0;
                  break;
                }
              }
            }
        }
      else
        for (k = less; k <= great; ++k) {
          ak = t1.$index(a, k);
          if (compare.call$2(ak, el2) < 0) {
            if (k !== less) {
              t1.$indexSet(a, k, t1.$index(a, less));
              t1.$indexSet(a, less, ak);
            }
            ++less;
          } else if (compare.call$2(ak, el4) > 0)
            for (; true;)
              if (compare.call$2(t1.$index(a, great), el4) > 0) {
                --great;
                if (great < k)
                  break;
                continue;
              } else {
                great0 = great - 1;
                if (compare.call$2(t1.$index(a, great), el2) < 0) {
                  t1.$indexSet(a, k, t1.$index(a, less));
                  less0 = less + 1;
                  t1.$indexSet(a, less, t1.$index(a, great));
                  t1.$indexSet(a, great, ak);
                  less = less0;
                } else {
                  t1.$indexSet(a, k, t1.$index(a, great));
                  t1.$indexSet(a, great, ak);
                }
                great = great0;
                break;
              }
        }
      t2 = less - 1;
      t1.$indexSet(a, left, t1.$index(a, t2));
      t1.$indexSet(a, t2, el2);
      t2 = great + 1;
      t1.$indexSet(a, right, t1.$index(a, t2));
      t1.$indexSet(a, t2, el4);
      A.Sort__doSort(a, left, less - 2, compare, $E);
      A.Sort__doSort(a, great + 2, right, compare, $E);
      if (pivots_are_equal)
        return;
      if (less < index1 && great > index5) {
        for (; J.$eq$(compare.call$2(t1.$index(a, less), el2), 0);)
          ++less;
        for (; J.$eq$(compare.call$2(t1.$index(a, great), el4), 0);)
          --great;
        for (k = less; k <= great; ++k) {
          ak = t1.$index(a, k);
          if (compare.call$2(ak, el2) === 0) {
            if (k !== less) {
              t1.$indexSet(a, k, t1.$index(a, less));
              t1.$indexSet(a, less, ak);
            }
            ++less;
          } else if (compare.call$2(ak, el4) === 0)
            for (; true;)
              if (compare.call$2(t1.$index(a, great), el4) === 0) {
                --great;
                if (great < k)
                  break;
                continue;
              } else {
                great0 = great - 1;
                if (compare.call$2(t1.$index(a, great), el2) < 0) {
                  t1.$indexSet(a, k, t1.$index(a, less));
                  less0 = less + 1;
                  t1.$indexSet(a, less, t1.$index(a, great));
                  t1.$indexSet(a, great, ak);
                  less = less0;
                } else {
                  t1.$indexSet(a, k, t1.$index(a, great));
                  t1.$indexSet(a, great, ak);
                }
                great = great0;
                break;
              }
        }
        A.Sort__doSort(a, less, great, compare, $E);
      } else
        A.Sort__doSort(a, less, great, compare, $E);
    },
    _CastIterableBase: function _CastIterableBase() {
    },
    CastIterator: function CastIterator(t0, t1) {
      this.__internal$_source = t0;
      this.$ti = t1;
    },
    CastIterable: function CastIterable(t0, t1) {
      this.__internal$_source = t0;
      this.$ti = t1;
    },
    _EfficientLengthCastIterable: function _EfficientLengthCastIterable(t0, t1) {
      this.__internal$_source = t0;
      this.$ti = t1;
    },
    _CastListBase: function _CastListBase() {
    },
    _CastListBase_sort_closure: function _CastListBase_sort_closure(t0, t1) {
      this.$this = t0;
      this.compare = t1;
    },
    CastList: function CastList(t0, t1) {
      this.__internal$_source = t0;
      this.$ti = t1;
    },
    CastMap: function CastMap(t0, t1) {
      this.__internal$_source = t0;
      this.$ti = t1;
    },
    CastMap_forEach_closure: function CastMap_forEach_closure(t0, t1) {
      this.$this = t0;
      this.f = t1;
    },
    LateError: function LateError(t0) {
      this._message = t0;
    },
    CodeUnits: function CodeUnits(t0) {
      this.__internal$_string = t0;
    },
    nullFuture_closure: function nullFuture_closure() {
    },
    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.__internal$_source = t0;
      this._f = t1;
      this.$ti = t2;
    },
    WhereIterable: function WhereIterable(t0, t1, t2) {
      this.__internal$_iterable = t0;
      this._f = t1;
      this.$ti = t2;
    },
    WhereIterator: function WhereIterator(t0, t1, t2) {
      this._iterator = t0;
      this._f = t1;
      this.$ti = t2;
    },
    ExpandIterable: function ExpandIterable(t0, t1, t2) {
      this.__internal$_iterable = t0;
      this._f = t1;
      this.$ti = t2;
    },
    ExpandIterator: function ExpandIterator(t0, t1, t2, t3) {
      var _ = this;
      _._iterator = t0;
      _._f = t1;
      _._currentExpansion = t2;
      _.__internal$_current = null;
      _.$ti = t3;
    },
    TakeIterable: function TakeIterable(t0, t1, t2) {
      this.__internal$_iterable = t0;
      this._takeCount = t1;
      this.$ti = t2;
    },
    EfficientLengthTakeIterable: function EfficientLengthTakeIterable(t0, t1, t2) {
      this.__internal$_iterable = t0;
      this._takeCount = t1;
      this.$ti = t2;
    },
    TakeIterator: function TakeIterator(t0, t1, t2) {
      this._iterator = t0;
      this._remaining = t1;
      this.$ti = t2;
    },
    SkipIterable: function SkipIterable(t0, t1, t2) {
      this.__internal$_iterable = t0;
      this._skipCount = t1;
      this.$ti = t2;
    },
    EfficientLengthSkipIterable: function EfficientLengthSkipIterable(t0, t1, t2) {
      this.__internal$_iterable = t0;
      this._skipCount = t1;
      this.$ti = t2;
    },
    SkipIterator: function SkipIterator(t0, t1, t2) {
      this._iterator = t0;
      this._skipCount = t1;
      this.$ti = t2;
    },
    EmptyIterable: function EmptyIterable(t0) {
      this.$ti = t0;
    },
    EmptyIterator: function EmptyIterator(t0) {
      this.$ti = t0;
    },
    WhereTypeIterable: function WhereTypeIterable(t0, t1) {
      this.__internal$_source = t0;
      this.$ti = t1;
    },
    WhereTypeIterator: function WhereTypeIterator(t0, t1) {
      this.__internal$_source = t0;
      this.$ti = t1;
    },
    FixedLengthListMixin: function FixedLengthListMixin() {
    },
    UnmodifiableListMixin: function UnmodifiableListMixin() {
    },
    UnmodifiableListBase: function UnmodifiableListBase() {
    },
    ReversedListIterable: function ReversedListIterable(t0, t1) {
      this.__internal$_source = t0;
      this.$ti = t1;
    },
    __CastListBase__CastIterableBase_ListMixin: function __CastListBase__CastIterableBase_ListMixin() {
    },
    ConstantMap__throwUnmodifiable() {
      throw A.wrapException(A.UnsupportedError$("Cannot modify unmodifiable Map"));
    },
    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_parseInt(source, radix) {
      var decimalMatch, maxCharCode, digitsPart, t1, i, _null = null,
        match = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source);
      if (match == null)
        return _null;
      if (3 >= match.length)
        return A.ioore(match, 3);
      decimalMatch = match[3];
      if (radix == null) {
        if (decimalMatch != null)
          return parseInt(source, 10);
        if (match[2] != null)
          return parseInt(source, 16);
        return _null;
      }
      if (radix < 2 || radix > 36)
        throw A.wrapException(A.RangeError$range(radix, 2, 36, "radix", _null));
      if (radix === 10 && decimalMatch != null)
        return parseInt(source, 10);
      if (radix < 10 || decimalMatch == null) {
        maxCharCode = radix <= 10 ? 47 + radix : 86 + radix;
        digitsPart = match[1];
        for (t1 = digitsPart.length, i = 0; i < t1; ++i)
          if ((digitsPart.charCodeAt(i) | 32) > maxCharCode)
            return _null;
      }
      return parseInt(source, radix);
    },
    Primitives_objectTypeName(object) {
      var interceptor, dispatchName, $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);
        if (dispatchName !== "Object" && dispatchName !== "")
          return dispatchName;
        $constructor = object.constructor;
        if (typeof $constructor == "function") {
          constructorName = $constructor.name;
          if (typeof constructorName == "string" && constructorName !== "Object" && constructorName !== "")
            return constructorName;
        }
      }
      return A._rtiToString(A.instanceType(object), null);
    },
    Primitives_safeToString(object) {
      var hooks, i, hookResult;
      if (object == null || typeof object == "number" || A._isBool(object))
        return J.toString$0$(object);
      if (typeof object == "string")
        return JSON.stringify(object);
      if (object instanceof A.Closure)
        return object.toString$0(0);
      if (object instanceof A._Record)
        return object._toString$1(true);
      hooks = $.$get$_safeToStringHooks();
      for (i = 0; i < 1; ++i) {
        hookResult = hooks[i].tryFormat$1(object);
        if (hookResult != null)
          return hookResult;
      }
      return "Instance of '" + A.Primitives_objectTypeName(object) + "'";
    },
    Primitives_currentUri() {
      if (!!self.location)
        return self.location.href;
      return 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 (0 <= charCode) {
        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._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_extractStackTrace(error) {
      var jsError = error.$thrownJsError;
      if (jsError == null)
        return null;
      return A.getTraceFromException(jsError);
    },
    Primitives_trySetStackTrace(error, stackTrace) {
      var jsError;
      if (error.$thrownJsError == null) {
        jsError = new Error();
        A.initializeExceptionWrapper(error, jsError);
        error.$thrownJsError = jsError;
        jsError.stack = stackTrace.toString$0(0);
      }
    },
    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";
      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$withLength(index, $length, indexable, null, _s5_);
      return A.RangeError$value(index, _s5_);
    },
    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) {
      return A.initializeExceptionWrapper(ex, new Error());
    },
    initializeExceptionWrapper(ex, wrapper) {
      var t1;
      if (ex == null)
        ex = new A.TypeError();
      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, wrapper) {
      throw A.initializeExceptionWrapper(ex, wrapper == null ? new Error() : wrapper);
    },
    throwUnsupportedOperation(o, operation, verb) {
      var wrapper;
      if (operation == null)
        operation = 0;
      if (verb == null)
        verb = 0;
      wrapper = Error();
      A.throwExpression(A._diagnoseUnsupportedOperation(o, operation, verb), wrapper);
    },
    _diagnoseUnsupportedOperation(o, encodedOperation, encodedVerb) {
      var operation, table, tableLength, index, verb, object, flags, article, adjective;
      if (typeof encodedOperation == "string")
        operation = encodedOperation;
      else {
        table = "[]=;add;removeWhere;retainWhere;removeRange;setRange;setInt8;setInt16;setInt32;setUint8;setUint16;setUint32;setFloat32;setFloat64".split(";");
        tableLength = table.length;
        index = encodedOperation;
        if (index > tableLength) {
          encodedVerb = index / tableLength | 0;
          index %= tableLength;
        }
        operation = table[index];
      }
      verb = typeof encodedVerb == "string" ? encodedVerb : "modify;remove from;add to".split(";")[encodedVerb];
      object = type$.List_dynamic._is(o) ? "list" : "ByteData";
      flags = o.$flags | 0;
      article = "a ";
      if ((flags & 4) !== 0)
        adjective = "constant ";
      else if ((flags & 2) !== 0) {
        adjective = "unmodifiable ";
        article = "an ";
      } else
        adjective = (flags & 1) !== 0 ? "fixed-length " : "";
      return new A.UnsupportedError("'" + operation + "': Cannot " + verb + " " + article + adjective + object);
    },
    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, nsme, notClosure, nullCall, nullLiteralCall, undefCall, undefLiteralCall, nullProperty, undefProperty, undefLiteralProperty, match;
      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:
              A.S(message);
              return A.saveStackTrace(ex, new A.NullError());
          }
      }
      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 if (nullCall.matchTypeError$1(message) != null || nullLiteralCall.matchTypeError$1(message) != null || undefCall.matchTypeError$1(message) != null || undefLiteralCall.matchTypeError$1(message) != null || nullProperty.matchTypeError$1(message) != null || nullLiteralCall.matchTypeError$1(message) != null || undefProperty.matchTypeError$1(message) != null || undefLiteralProperty.matchTypeError$1(message) != null) {
            A._asString(message);
            return A.saveStackTrace(ex, new A.NullError());
          }
        }
        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;
      trace = new A._StackTrace(exception);
      if (typeof exception === "object")
        exception.$cachedTrace = trace;
      return trace;
    },
    objectHashCode(object) {
      if (object == null)
        return J.get$hashCode$(object);
      if (typeof object == "object")
        return A.Primitives_objectHashCode(object);
      return J.get$hashCode$(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 = A.convertDartClosureToJSUncached(closure, arity);
      closure.$identity = $function;
      return $function;
    },
    convertDartClosureToJSUncached(closure, arity) {
      var entry;
      switch (arity) {
        case 0:
          entry = closure.call$0;
          break;
        case 1:
          entry = closure.call$1;
          break;
        case 2:
          entry = closure.call$2;
          break;
        case 3:
          entry = closure.call$3;
          break;
        case 4:
          entry = closure.call$4;
          break;
        default:
          entry = null;
      }
      if (entry != null)
        return entry.bind(closure);
      return function(closure, arity, invoke) {
        return function(a1, a2, a3, a4) {
          return invoke(closure, arity, a1, a2, a3, a4);
        };
      }(closure, arity, A._invokeClosure);
    },
    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;
      $constructor = isStatic ? function static_tear_off() {
        this.$initialize();
      } : 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__computeSignatureFunction(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__computeSignatureFunction(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) {
      if (isIntercepted)
        return A.Closure_forwardInterceptedCallTo(stubName, $function, needsDirectAccess);
      return A.Closure_cspForwardCall($function.length, needsDirectAccess, stubName, $function);
    },
    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 names, i, $name,
        template = new A.BoundClosure("receiver", "interceptor"),
        t1 = Object.getOwnPropertyNames(template);
      t1.$flags = 1;
      names = t1;
      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));
    },
    getIsolateAffinityTag($name) {
      return init.getIsolateTag($name);
    },
    staticInteropGlobalContext() {
      return init.G;
    },
    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 (Array.isArray(transformers))
          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;
    },
    createRecordTypePredicate(shape, fieldRtis) {
      var $length = fieldRtis.length,
        $function = init.rttc["" + $length + ";" + shape];
      if ($function == null)
        return null;
      if ($length === 0)
        return $function;
      if ($length === $function.length)
        return $function.apply(null, fieldRtis);
      return $function(fieldRtis);
    },
    JSSyntaxRegExp_makeNative(source, multiLine, caseSensitive, unicode, dotAll, extraFlags) {
      var m = multiLine ? "m" : "",
        i = caseSensitive ? "" : "i",
        u = unicode ? "u" : "",
        s = dotAll ? "s" : "",
        regexp = function(source, modifiers) {
          try {
            return new RegExp(source, modifiers);
          } catch (e) {
            return e;
          }
        }(source, m + i + u + s + extraFlags);
      if (regexp instanceof RegExp)
        return regexp;
      throw A.wrapException(A.FormatException$("Illegal RegExp pattern (" + String(regexp) + ")", source, null));
    },
    stringContainsUnchecked(receiver, other, startIndex) {
      var t1;
      if (typeof other == "string")
        return receiver.indexOf(other, startIndex) >= 0;
      else if (other instanceof A.JSSyntaxRegExp) {
        t1 = B.JSString_methods.substring$1(receiver, startIndex);
        return other._nativeRegExp.test(t1);
      } else
        return !J.allMatches$1$s(other, B.JSString_methods.substring$1(receiver, startIndex)).get$isEmpty(0);
    },
    escapeReplacement(replacement) {
      if (replacement.indexOf("$", 0) >= 0)
        return replacement.replace(/\$/g, "$$$$");
      return replacement;
    },
    stringReplaceFirstRE(receiver, regexp, replacement, startIndex) {
      var match = regexp._execGlobal$2(receiver, startIndex);
      if (match == null)
        return receiver;
      return A.stringReplaceRangeUnchecked(receiver, match._match.index, match.get$end(), replacement);
    },
    quoteStringForRegExp(string) {
      if (/[[\]{}()*+?.\\^$|]/.test(string))
        return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&");
      return string;
    },
    stringReplaceAllUnchecked(receiver, pattern, replacement) {
      var nativeRegexp;
      if (typeof pattern == "string")
        return A.stringReplaceAllUncheckedString(receiver, pattern, replacement);
      if (pattern instanceof A.JSSyntaxRegExp) {
        nativeRegexp = pattern.get$_nativeGlobalVersion();
        nativeRegexp.lastIndex = 0;
        return receiver.replace(nativeRegexp, A.escapeReplacement(replacement));
      }
      return A.stringReplaceAllGeneral(receiver, pattern, replacement);
    },
    stringReplaceAllGeneral(receiver, pattern, replacement) {
      var t1, startIndex, t2, match;
      for (t1 = J.allMatches$1$s(pattern, receiver), t1 = t1.get$iterator(t1), startIndex = 0, t2 = ""; t1.moveNext$0();) {
        match = t1.get$current();
        t2 = t2 + receiver.substring(startIndex, match.get$start()) + replacement;
        startIndex = match.get$end();
      }
      t1 = t2 + receiver.substring(startIndex);
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    },
    stringReplaceAllUncheckedString(receiver, pattern, replacement) {
      var $length, t1, i;
      if (pattern === "") {
        if (receiver === "")
          return replacement;
        $length = receiver.length;
        for (t1 = replacement, i = 0; i < $length; ++i)
          t1 = t1 + receiver[i] + replacement;
        return t1.charCodeAt(0) == 0 ? t1 : t1;
      }
      if (receiver.indexOf(pattern, 0) < 0)
        return receiver;
      if (receiver.length < 500 || replacement.indexOf("$", 0) >= 0)
        return receiver.split(pattern).join(replacement);
      return receiver.replace(new RegExp(A.quoteStringForRegExp(pattern), "g"), A.escapeReplacement(replacement));
    },
    _stringIdentity(string) {
      return string;
    },
    stringReplaceAllFuncUnchecked(receiver, pattern, onMatch, onNonMatch) {
      var t1, t2, startIndex, t3, match, t4, t5;
      for (t1 = pattern.allMatches$1(0, receiver), t1 = new A._AllMatchesIterator(t1._re, t1._string, t1.__js_helper$_start), t2 = type$.RegExpMatch, startIndex = 0, t3 = ""; t1.moveNext$0();) {
        match = t1.__js_helper$_current;
        if (match == null)
          match = t2._as(match);
        t4 = match._match;
        t5 = t4.index;
        t3 = t3 + A.S(A._stringIdentity(B.JSString_methods.substring$2(receiver, startIndex, t5))) + A.S(onMatch.call$1(match));
        startIndex = t5 + t4[0].length;
      }
      t1 = t3 + A.S(A._stringIdentity(B.JSString_methods.substring$1(receiver, startIndex)));
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    },
    stringReplaceFirstUnchecked(receiver, pattern, replacement, startIndex) {
      var index, t1, matches, match;
      if (typeof pattern == "string") {
        index = receiver.indexOf(pattern, startIndex);
        if (index < 0)
          return receiver;
        return A.stringReplaceRangeUnchecked(receiver, index, index + pattern.length, replacement);
      }
      if (pattern instanceof A.JSSyntaxRegExp)
        return startIndex === 0 ? receiver.replace(pattern._nativeRegExp, A.escapeReplacement(replacement)) : A.stringReplaceFirstRE(receiver, pattern, replacement, startIndex);
      t1 = J.allMatches$2$s(pattern, receiver, startIndex);
      matches = t1.get$iterator(t1);
      if (!matches.moveNext$0())
        return receiver;
      match = matches.get$current();
      return B.JSString_methods.replaceRange$3(receiver, match.get$start(), match.get$end(), replacement);
    },
    stringReplaceRangeUnchecked(receiver, start, end, replacement) {
      return receiver.substring(0, start) + replacement + receiver.substring(end);
    },
    ConstantMap: function ConstantMap() {
    },
    ConstantMap_map_closure: function ConstantMap_map_closure(t0, t1, t2) {
      this.$this = t0;
      this.transform = t1;
      this.result = t2;
    },
    ConstantStringMap: function ConstantStringMap(t0, t1, t2) {
      this._jsIndex = t0;
      this._values = t1;
      this.$ti = t2;
    },
    _KeysOrValues: function _KeysOrValues(t0, t1) {
      this._elements = t0;
      this.$ti = t1;
    },
    _KeysOrValuesOrElementsIterator: function _KeysOrValuesOrElementsIterator(t0, t1, t2) {
      var _ = this;
      _._elements = t0;
      _.__js_helper$_length = t1;
      _.__js_helper$_index = 0;
      _.__js_helper$_current = null;
      _.$ti = t2;
    },
    Instantiation: function Instantiation() {
    },
    Instantiation1: function Instantiation1(t0, t1) {
      this._genericClosure = t0;
      this.$ti = t1;
    },
    SafeToStringHook: function SafeToStringHook() {
    },
    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() {
    },
    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;
    },
    JsLinkedHashMap: function JsLinkedHashMap(t0) {
      var _ = this;
      _.__js_helper$_length = 0;
      _._last = _._first = _.__js_helper$_rest = _.__js_helper$_nums = _.__js_helper$_strings = null;
      _._modifications = 0;
      _.$ti = t0;
    },
    JsLinkedHashMap_addAll_closure: function JsLinkedHashMap_addAll_closure(t0) {
      this.$this = t0;
    },
    LinkedHashMapCell: function LinkedHashMapCell(t0, t1) {
      var _ = this;
      _.hashMapCellKey = t0;
      _.hashMapCellValue = t1;
      _._previous = _._next = null;
    },
    LinkedHashMapKeysIterable: function LinkedHashMapKeysIterable(t0, t1) {
      this.__js_helper$_map = t0;
      this.$ti = t1;
    },
    LinkedHashMapKeyIterator: function LinkedHashMapKeyIterator(t0, t1, t2, t3) {
      var _ = this;
      _.__js_helper$_map = t0;
      _._modifications = t1;
      _._cell = t2;
      _.__js_helper$_current = null;
      _.$ti = t3;
    },
    LinkedHashMapValuesIterable: function LinkedHashMapValuesIterable(t0, t1) {
      this.__js_helper$_map = t0;
      this.$ti = t1;
    },
    LinkedHashMapValueIterator: function LinkedHashMapValueIterator(t0, t1, t2, t3) {
      var _ = this;
      _.__js_helper$_map = t0;
      _._modifications = t1;
      _._cell = t2;
      _.__js_helper$_current = null;
      _.$ti = t3;
    },
    LinkedHashMapEntriesIterable: function LinkedHashMapEntriesIterable(t0, t1) {
      this.__js_helper$_map = t0;
      this.$ti = t1;
    },
    LinkedHashMapEntryIterator: function LinkedHashMapEntryIterator(t0, t1, t2, t3) {
      var _ = this;
      _.__js_helper$_map = t0;
      _._modifications = t1;
      _._cell = t2;
      _.__js_helper$_current = null;
      _.$ti = t3;
    },
    JsIdentityLinkedHashMap: function JsIdentityLinkedHashMap(t0) {
      var _ = this;
      _.__js_helper$_length = 0;
      _._last = _._first = _.__js_helper$_rest = _.__js_helper$_nums = _.__js_helper$_strings = null;
      _._modifications = 0;
      _.$ti = t0;
    },
    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;
    },
    _Record: function _Record() {
    },
    JSSyntaxRegExp: function JSSyntaxRegExp(t0, t1) {
      var _ = this;
      _.pattern = t0;
      _._nativeRegExp = t1;
      _._hasCapturesCache = _._nativeAnchoredRegExp = _._nativeGlobalRegExp = null;
    },
    _MatchImplementation: function _MatchImplementation(t0) {
      this._match = t0;
    },
    _AllMatchesIterable: function _AllMatchesIterable(t0, t1, t2) {
      this._re = t0;
      this._string = t1;
      this.__js_helper$_start = t2;
    },
    _AllMatchesIterator: function _AllMatchesIterator(t0, t1, t2) {
      var _ = this;
      _._regExp = t0;
      _._string = t1;
      _._nextIndex = t2;
      _.__js_helper$_current = null;
    },
    StringMatch: function StringMatch(t0, t1) {
      this.start = t0;
      this.pattern = t1;
    },
    _StringAllMatchesIterable: function _StringAllMatchesIterable(t0, t1, t2) {
      this._input = t0;
      this._pattern = t1;
      this.__js_helper$_index = t2;
    },
    _StringAllMatchesIterator: function _StringAllMatchesIterator(t0, t1, t2) {
      var _ = this;
      _._input = t0;
      _._pattern = t1;
      _.__js_helper$_index = t2;
      _.__js_helper$_current = null;
    },
    throwLateFieldNI(fieldName) {
      throw A.initializeExceptionWrapper(A.LateError$fieldNI(fieldName), new Error());
    },
    throwLateFieldAI(fieldName) {
      throw A.initializeExceptionWrapper(A.LateError$fieldAI(fieldName), new Error());
    },
    throwLateFieldADI(fieldName) {
      throw A.initializeExceptionWrapper(A.LateError$fieldADI(fieldName), new Error());
    },
    _Cell$named(_name) {
      var t1 = new A._Cell(_name);
      return t1.__late_helper$_value = t1;
    },
    _Cell: function _Cell(t0) {
      this._name = t0;
      this.__late_helper$_value = null;
    },
    _ensureNativeList(list) {
      var t1, result, i;
      if (type$.JSIndexable_dynamic._is(list))
        return list;
      t1 = J.getInterceptor$asx(list);
      result = A.List_List$filled(t1.get$length(list), null, false, type$.dynamic);
      for (i = 0; i < t1.get$length(list); ++i)
        B.JSArray_methods.$indexSet(result, i, t1.$index(list, i));
      return result;
    },
    NativeInt8List__create1(arg) {
      return new Int8Array(arg);
    },
    NativeUint8List_NativeUint8List($length) {
      return new Uint8Array($length);
    },
    NativeUint8List_NativeUint8List$view(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;
    },
    NativeByteBuffer: function NativeByteBuffer() {
    },
    NativeTypedData: function NativeTypedData() {
    },
    NativeByteData: function NativeByteData() {
    },
    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__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)
        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, t1, fields, substitutedFields, 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__lookupQuestionRti(universe, substitutedBaseType, true);
        case 7:
          baseType = rti._primary;
          substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth);
          if (substitutedBaseType === baseType)
            return rti;
          return A._Universe__lookupFutureOrRti(universe, substitutedBaseType, true);
        case 8:
          interfaceTypeArguments = rti._rest;
          substitutedInterfaceTypeArguments = A._substituteArray(universe, interfaceTypeArguments, typeArguments, depth);
          if (substitutedInterfaceTypeArguments === interfaceTypeArguments)
            return rti;
          return A._Universe__lookupInterfaceRti(universe, rti._primary, substitutedInterfaceTypeArguments);
        case 9:
          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 10:
          t1 = rti._primary;
          fields = rti._rest;
          substitutedFields = A._substituteArray(universe, fields, typeArguments, depth);
          if (substitutedFields === fields)
            return rti;
          return A._Universe__lookupRecordRti(universe, t1, substitutedFields);
        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) {
      if (object instanceof A.Object)
        return A._instanceType(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 ? Object.getPrototypeOf(Object.getPrototypeOf(instance)).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;
    },
    getRuntimeTypeOfDartObject(object) {
      return A.createRuntimeType(A._instanceType(object));
    },
    getRuntimeTypeOfClosure(closure) {
      var rti = A.closureFunctionType(closure);
      return A.createRuntimeType(rti == null ? A.instanceType(closure) : rti);
    },
    _structuralTypeOf(object) {
      var functionRti;
      if (object instanceof A._Record)
        return object._getRti$0();
      functionRti = object instanceof A.Closure ? A.closureFunctionType(object) : null;
      if (functionRti != null)
        return functionRti;
      if (type$.TrustedGetRuntimeType._is(object))
        return J.get$runtimeType$(object)._rti;
      if (Array.isArray(object))
        return A._arrayInstanceType(object);
      return A.instanceType(object);
    },
    createRuntimeType(rti) {
      var t1 = rti._cachedRuntimeType;
      return t1 == null ? rti._cachedRuntimeType = new A._Type(rti) : t1;
    },
    evaluateRtiForRecord(recordRecipe, valuesList) {
      var bindings, i,
        values = valuesList,
        $length = values.length;
      if ($length === 0)
        return type$.Record_0;
      if (0 >= $length)
        return A.ioore(values, 0);
      bindings = A._Universe_evalInEnvironment(init.typeUniverse, A._structuralTypeOf(values[0]), "@<0>");
      for (i = 1; i < $length; ++i) {
        if (!(i < values.length))
          return A.ioore(values, i);
        bindings = A._Universe_bind(init.typeUniverse, bindings, A._structuralTypeOf(values[i]));
      }
      return A._Universe_evalInEnvironment(init.typeUniverse, bindings, recordRecipe);
    },
    typeLiteral(recipe) {
      return A.createRuntimeType(A._Universe_eval(init.typeUniverse, recipe, false));
    },
    _installSpecializedIsTest(object) {
      var testRti = this;
      testRti._is = A._specializedIsTest(testRti);
      return testRti._is(object);
    },
    _specializedIsTest(testRti) {
      var kind, simpleIsFn, $name, predicate, t2,
        t1 = type$.Object;
      if (testRti === t1)
        return A._isObject;
      if (A.isTopType(testRti))
        return A._isTop;
      kind = testRti._kind;
      if (kind === 6)
        return A._generalNullableIsTestImplementation;
      if (kind === 1)
        return A._isNever;
      if (kind === 7)
        return A._isFutureOr;
      simpleIsFn = A._simpleSpecializedIsTest(testRti);
      if (simpleIsFn != null)
        return simpleIsFn;
      if (kind === 8) {
        $name = testRti._primary;
        if (testRti._rest.every(A.isTopType)) {
          testRti._specializedTestResource = "$is" + $name;
          if ($name === "List")
            return A._isListTestViaProperty;
          if (testRti === type$.JSObject)
            return A._isJSObject;
          return A._isTestViaProperty;
        }
      } else if (kind === 10) {
        predicate = A.createRecordTypePredicate(testRti._primary, testRti._rest);
        t2 = predicate == null ? A._isNever : predicate;
        return t2 == null ? t1._as(t2) : t2;
      }
      return A._generalIsTestImplementation;
    },
    _simpleSpecializedIsTest(testRti) {
      if (testRti._kind === 8) {
        if (testRti === type$.int)
          return A._isInt;
        if (testRti === type$.double || testRti === type$.num)
          return A._isNum;
        if (testRti === type$.String)
          return A._isString;
        if (testRti === type$.bool)
          return A._isBool;
      }
      return null;
    },
    _installSpecializedAsCheck(object) {
      var testRti = this,
        asFn = A._generalAsCheckImplementation;
      if (A.isTopType(testRti))
        asFn = A._asTop;
      else if (testRti === type$.Object)
        asFn = A._asObject;
      else if (A.isNullable(testRti)) {
        asFn = A._generalNullableAsCheckImplementation;
        if (testRti === type$.nullable_int)
          asFn = A._asIntQ;
        else if (testRti === type$.nullable_String)
          asFn = A._asStringQ;
        else if (testRti === type$.nullable_bool)
          asFn = A._asBoolQ;
        else if (testRti === type$.nullable_num)
          asFn = A._asNumQ;
        else if (testRti === type$.nullable_double)
          asFn = A._asDoubleQ;
      } else if (testRti === type$.int)
        asFn = A._asInt;
      else if (testRti === type$.String)
        asFn = A._asString;
      else if (testRti === type$.bool)
        asFn = A._asBool;
      else if (testRti === type$.num)
        asFn = A._asNum;
      else if (testRti === type$.double)
        asFn = A._asDouble;
      testRti._as = asFn;
      return testRti._as(object);
    },
    _generalIsTestImplementation(object) {
      var testRti = this;
      if (object == null)
        return A.isNullable(testRti);
      return A.isSubtype(init.typeUniverse, A.instanceOrFunctionType(object, testRti), testRti);
    },
    _generalNullableIsTestImplementation(object) {
      if (object == null)
        return true;
      return this._primary._is(object);
    },
    _isTestViaProperty(object) {
      var tag, testRti = this;
      if (object == null)
        return A.isNullable(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.isNullable(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];
    },
    _isJSObject(object) {
      var t1 = this;
      if (object == null)
        return false;
      if (typeof object == "object") {
        if (object instanceof A.Object)
          return !!object[t1._specializedTestResource];
        return true;
      }
      if (typeof object == "function")
        return true;
      return false;
    },
    _generalAsCheckImplementation(object) {
      var testRti = this;
      if (object == null) {
        if (A.isNullable(testRti))
          return object;
      } else if (testRti._is(object))
        return object;
      throw A.initializeExceptionWrapper(A._errorForAsCheck(object, testRti), new Error());
    },
    _generalNullableAsCheckImplementation(object) {
      var testRti = this;
      if (object == null || testRti._is(object))
        return object;
      throw A.initializeExceptionWrapper(A._errorForAsCheck(object, testRti), new Error());
    },
    _errorForAsCheck(object, testRti) {
      return new A._TypeError("TypeError: " + A._Error_compose(object, A._rtiToString(testRti, null)));
    },
    checkTypeBound(type, bound, variable, methodName) {
      if (A.isSubtype(init.typeUniverse, type, bound))
        return type;
      throw A.initializeExceptionWrapper(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 + "'."), new Error());
    },
    _Error_compose(object, checkedTypeDescription) {
      return A.Error_safeToString(object) + ": type '" + A._rtiToString(A._structuralTypeOf(object), 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, type));
    },
    _isFutureOr(object) {
      var testRti = this;
      return testRti._primary._is(object) || A.Rti__getFutureFromFutureOr(init.typeUniverse, testRti)._is(object);
    },
    _isObject(object) {
      return object != null;
    },
    _asObject(object) {
      if (object != null)
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "Object"), new Error());
    },
    _isTop(object) {
      return true;
    },
    _asTop(object) {
      return object;
    },
    _isNever(object) {
      return false;
    },
    _isBool(object) {
      return true === object || false === object;
    },
    _asBool(object) {
      if (true === object)
        return true;
      if (false === object)
        return false;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "bool"), new Error());
    },
    _asBoolQ(object) {
      if (true === object)
        return true;
      if (false === object)
        return false;
      if (object == null)
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "bool?"), new Error());
    },
    _asDouble(object) {
      if (typeof object == "number")
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "double"), new Error());
    },
    _asDoubleQ(object) {
      if (typeof object == "number")
        return object;
      if (object == null)
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "double?"), new Error());
    },
    _isInt(object) {
      return typeof object == "number" && Math.floor(object) === object;
    },
    _asInt(object) {
      if (typeof object == "number" && Math.floor(object) === object)
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "int"), new Error());
    },
    _asIntQ(object) {
      if (typeof object == "number" && Math.floor(object) === object)
        return object;
      if (object == null)
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "int?"), new Error());
    },
    _isNum(object) {
      return typeof object == "number";
    },
    _asNum(object) {
      if (typeof object == "number")
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "num"), new Error());
    },
    _asNumQ(object) {
      if (typeof object == "number")
        return object;
      if (object == null)
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "num?"), new Error());
    },
    _isString(object) {
      return typeof object == "string";
    },
    _asString(object) {
      if (typeof object == "string")
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "String"), new Error());
    },
    _asStringQ(object) {
      if (typeof object == "string")
        return object;
      if (object == null)
        return object;
      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "String?"), new Error());
    },
    _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;
    },
    _recordRtiToString(recordType, genericContext) {
      var fieldCount, names, namesIndex, s, comma, i,
        partialShape = recordType._primary,
        fields = recordType._rest;
      if ("" === partialShape)
        return "(" + A._rtiArrayToString(fields, genericContext) + ")";
      fieldCount = fields.length;
      names = partialShape.split(",");
      namesIndex = names.length - fieldCount;
      for (s = "(", comma = "", i = 0; i < fieldCount; ++i, comma = ", ") {
        s += comma;
        if (namesIndex === 0)
          s += "{";
        s += A._rtiToString(fields[i], genericContext);
        if (namesIndex >= 0)
          s += " " + names[namesIndex];
        ++namesIndex;
      }
      return s + "})";
    },
    _functionRtiToString(functionType, genericContext, bounds) {
      var boundsLength, offset, i, t1, typeParametersText, typeSep, t2, t3, boundRti, kind, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", ", outerContextLength = null;
      if (bounds != null) {
        boundsLength = bounds.length;
        if (genericContext == null)
          genericContext = A._setArrayType([], type$.JSArray_String);
        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, typeParametersText = "<", typeSep = "", i = 0; i < boundsLength; ++i, typeSep = _s2_) {
          t2 = genericContext.length;
          t3 = t2 - 1 - i;
          if (!(t3 >= 0))
            return A.ioore(genericContext, t3);
          typeParametersText = typeParametersText + typeSep + genericContext[t3];
          boundRti = bounds[i];
          kind = boundRti._kind;
          if (!(kind === 2 || kind === 3 || kind === 4 || kind === 5 || boundRti === t1))
            typeParametersText += " extends " + A._rtiToString(boundRti, genericContext);
        }
        typeParametersText += ">";
      } else
        typeParametersText = "";
      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 questionArgument, s, 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) {
        questionArgument = rti._primary;
        s = A._rtiToString(questionArgument, genericContext);
        argumentKind = questionArgument._kind;
        return (argumentKind === 11 || argumentKind === 12 ? "(" + s + ")" : s) + "?";
      }
      if (kind === 7)
        return "FutureOr<" + A._rtiToString(rti._primary, genericContext) + ">";
      if (kind === 8) {
        $name = A._unminifyOrTag(rti._primary);
        $arguments = rti._rest;
        return $arguments.length > 0 ? $name + ("<" + A._rtiArrayToString($arguments, genericContext) + ">") : $name;
      }
      if (kind === 10)
        return A._recordRtiToString(rti, genericContext);
      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,
        metadata = universe.eT,
        probe = metadata[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);
        metadata[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,
        cache = universe.eC,
        probe = cache.get(recipe);
      if (probe != null)
        return probe;
      rti = A._Parser_parse(A._Parser_create(universe, null, recipe, false));
      cache.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 === 9 ? 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__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, rti;
      if (normalize) {
        baseKind = baseType._kind;
        t1 = true;
        if (!A.isTopType(baseType))
          if (!(baseType === type$.Null || baseType === type$.JSNull))
            if (baseKind !== 6)
              t1 = baseKind === 7 && A.isNullable(baseType._primary);
        if (t1)
          return baseType;
        else if (baseKind === 1)
          return type$.Null;
      }
      rti = new A.Rti(null, null);
      rti._kind = 6;
      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, rti;
      if (normalize) {
        t1 = baseType._kind;
        if (A.isTopType(baseType) || 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 = 7;
      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 = 8;
      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 === 9) {
        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 = 9;
      rti._primary = newBase;
      rti._rest = newArguments;
      rti._canonicalRecipe = key;
      t1 = A._Universe__installTypeTests(universe, rti);
      universe.eC.set(key, t1);
      return t1;
    },
    _Universe__lookupRecordRti(universe, partialShapeTag, fields) {
      var rti, t1,
        key = "+" + (partialShapeTag + "(" + A._Universe__canonicalRecipeJoin(fields) + ")"),
        probe = universe.eC.get(key);
      if (probe != null)
        return probe;
      rti = new A.Rti(null, null);
      rti._kind = 10;
      rti._primary = partialShapeTag;
      rti._rest = fields;
      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 t1, i, ch, u, array, end, item,
        source = parser.r,
        stack = parser.s;
      for (t1 = source.length, i = 0; i < t1;) {
        ch = source.charCodeAt(i);
        if (ch >= 48 && ch <= 57)
          i = A._Parser_handleDigit(i + 1, ch, source, stack);
        else if ((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36 || ch === 124)
          i = A._Parser_handleIdentifier(parser, i, source, stack, false);
        else if (ch === 46)
          i = A._Parser_handleIdentifier(parser, i, source, stack, true);
        else {
          ++i;
          switch (ch) {
            case 44:
              break;
            case 58:
              stack.push(false);
              break;
            case 33:
              stack.push(true);
              break;
            case 59:
              stack.push(A._Parser_toType(parser.u, parser.e, stack.pop()));
              break;
            case 94:
              stack.push(A._Universe__lookupGenericFunctionParameterRti(parser.u, stack.pop()));
              break;
            case 35:
              stack.push(A._Universe__lookupTerminalRti(parser.u, 5, "#"));
              break;
            case 64:
              stack.push(A._Universe__lookupTerminalRti(parser.u, 2, "@"));
              break;
            case 126:
              stack.push(A._Universe__lookupTerminalRti(parser.u, 3, "~"));
              break;
            case 60:
              stack.push(parser.p);
              parser.p = stack.length;
              break;
            case 62:
              A._Parser_handleTypeArguments(parser, stack);
              break;
            case 38:
              A._Parser_handleExtendedOperations(parser, stack);
              break;
            case 63:
              u = parser.u;
              stack.push(A._Universe__lookupQuestionRti(u, A._Parser_toType(u, parser.e, stack.pop()), parser.n));
              break;
            case 47:
              u = parser.u;
              stack.push(A._Universe__lookupFutureOrRti(u, A._Parser_toType(u, parser.e, stack.pop()), parser.n));
              break;
            case 40:
              stack.push(-3);
              stack.push(parser.p);
              parser.p = stack.length;
              break;
            case 41:
              A._Parser_handleArguments(parser, stack);
              break;
            case 91:
              stack.push(parser.p);
              parser.p = stack.length;
              break;
            case 93:
              array = stack.splice(parser.p);
              A._Parser_toTypes(parser.u, parser.e, array);
              parser.p = stack.pop();
              stack.push(array);
              stack.push(-1);
              break;
            case 123:
              stack.push(parser.p);
              parser.p = stack.length;
              break;
            case 125:
              array = stack.splice(parser.p);
              A._Parser_toTypesNamed(parser.u, parser.e, array);
              parser.p = stack.pop();
              stack.push(array);
              stack.push(-2);
              break;
            case 43:
              end = source.indexOf("(", i);
              stack.push(source.substring(i, end));
              stack.push(-4);
              stack.push(parser.p);
              parser.p = stack.length;
              i = end + 1;
              break;
            default:
              throw "Bad character " + ch;
          }
        }
      }
      item = stack.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 || ch === 124))
            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 === 9)
          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_handleTypeArguments(parser, stack) {
      var base,
        universe = parser.u,
        $arguments = A._Parser_collectArray(parser, stack),
        head = stack.pop();
      if (typeof head == "string")
        stack.push(A._Universe__lookupInterfaceRti(universe, head, $arguments));
      else {
        base = A._Parser_toType(universe, parser.e, head);
        switch (base._kind) {
          case 11:
            stack.push(A._Universe__lookupGenericFunctionRti(universe, base, $arguments, parser.n));
            break;
          default:
            stack.push(A._Universe__lookupBindingRti(universe, base, $arguments));
            break;
        }
      }
    },
    _Parser_handleArguments(parser, stack) {
      var requiredPositional, returnType, parameters,
        universe = parser.u,
        head = stack.pop(),
        optionalPositional = null, named = null;
      if (typeof head == "number")
        switch (head) {
          case -1:
            optionalPositional = stack.pop();
            break;
          case -2:
            named = stack.pop();
            break;
          default:
            stack.push(head);
            break;
        }
      else
        stack.push(head);
      requiredPositional = A._Parser_collectArray(parser, stack);
      head = stack.pop();
      switch (head) {
        case -3:
          head = stack.pop();
          if (optionalPositional == null)
            optionalPositional = universe.sEA;
          if (named == null)
            named = universe.sEA;
          returnType = A._Parser_toType(universe, parser.e, head);
          parameters = new A._FunctionParameters();
          parameters._requiredPositional = requiredPositional;
          parameters._optionalPositional = optionalPositional;
          parameters._named = named;
          stack.push(A._Universe__lookupFunctionRti(universe, returnType, parameters));
          return;
        case -4:
          stack.push(A._Universe__lookupRecordRti(universe, stack.pop(), requiredPositional));
          return;
        default:
          throw A.wrapException(A.AssertionError$("Unexpected state under `()`: " + A.S(head)));
      }
    },
    _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_collectArray(parser, stack) {
      var array = stack.splice(parser.p);
      A._Parser_toTypes(parser.u, parser.e, array);
      parser.p = stack.pop();
      return array;
    },
    _Parser_toType(universe, environment, item) {
      if (typeof item == "string")
        return A._Universe__lookupInterfaceRti(universe, item, universe.sEA);
      else if (typeof item == "number") {
        environment.toString;
        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 === 9) {
        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 !== 8)
        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, t) {
      var result,
        sCache = s._isSubtypeCache;
      if (sCache == null)
        sCache = s._isSubtypeCache = new Map();
      result = sCache.get(t);
      if (result == null) {
        result = A._isSubtype(universe, s, null, t, null);
        sCache.set(t, result);
      }
      return result;
    },
    _isSubtype(universe, s, sEnv, t, tEnv) {
      var sKind, leftTypeVariable, tKind, t1, t2, sBounds, tBounds, sLength, i, sBound, tBound;
      if (s === t)
        return true;
      if (A.isTopType(t))
        return true;
      sKind = s._kind;
      if (sKind === 4)
        return true;
      if (A.isTopType(s))
        return false;
      if (s._kind === 1)
        return true;
      leftTypeVariable = sKind === 13;
      if (leftTypeVariable)
        if (A._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv))
          return true;
      tKind = t._kind;
      t1 = type$.Null;
      if (s === t1 || s === type$.JSNull) {
        if (tKind === 7)
          return A._isSubtype(universe, s, sEnv, t._primary, tEnv);
        return t === t1 || t === type$.JSNull || tKind === 6;
      }
      if (t === type$.Object) {
        if (sKind === 7)
          return A._isSubtype(universe, s._primary, sEnv, t, tEnv);
        return sKind !== 6;
      }
      if (sKind === 7) {
        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 === 6)
        return A._isSubtype(universe, t1, sEnv, t, tEnv) && A._isSubtype(universe, s._primary, sEnv, t, tEnv);
      if (tKind === 7) {
        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 === 6)
        return A._isSubtype(universe, s, sEnv, t1, tEnv) || A._isSubtype(universe, s, sEnv, t._primary, tEnv);
      if (leftTypeVariable)
        return false;
      t1 = sKind !== 11;
      if ((!t1 || sKind === 12) && t === type$.Function)
        return true;
      t2 = sKind === 10;
      if (t2 && t === type$.Record)
        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 === 8) {
        if (tKind !== 8)
          return false;
        return A._isInterfaceSubtype(universe, s, sEnv, t, tEnv);
      }
      if (t2 && tKind === 10)
        return A._isRecordSubtype(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,
        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);
      }
      return A._areArgumentsSubtypes(universe, s._rest, null, sEnv, t._rest, tEnv);
    },
    _areArgumentsSubtypes(universe, sArgs, sVariances, sEnv, tArgs, tEnv) {
      var i,
        $length = sArgs.length;
      for (i = 0; i < $length; ++i)
        if (!A._isSubtype(universe, sArgs[i], sEnv, tArgs[i], tEnv))
          return false;
      return true;
    },
    _isRecordSubtype(universe, s, sEnv, t, tEnv) {
      var i,
        sFields = s._rest,
        tFields = t._rest,
        sCount = sFields.length;
      if (sCount !== tFields.length)
        return false;
      if (s._primary !== t._primary)
        return false;
      for (i = 0; i < sCount; ++i)
        if (!A._isSubtype(universe, sFields[i], sEnv, tFields[i], tEnv))
          return false;
      return true;
    },
    isNullable(t) {
      var kind = t._kind,
        t1 = true;
      if (!(t === type$.Null || t === type$.JSNull))
        if (!A.isTopType(t))
          if (kind !== 6)
            t1 = kind === 7 && A.isNullable(t._primary);
      return t1;
    },
    isTopType(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 = _._isSubtypeCache = _._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 t1, div, span;
      if (self.scheduleImmediate != null)
        return A.async__AsyncRun__scheduleImmediateJsOverride$closure();
      if (self.MutationObserver != null && self.document != null) {
        t1 = {};
        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) {
      A.Timer__createTimer(B.Duration_0, type$.void_Function._as(callback));
    },
    Timer__createTimer(duration, callback) {
      var milliseconds = B.JSInt_methods._tdivFast$1(duration._duration, 1000);
      return A._TimerImpl$(milliseconds < 0 ? 0 : milliseconds, callback);
    },
    _TimerImpl$(milliseconds, callback) {
      var t1 = new A._TimerImpl(true);
      t1._TimerImpl$2(milliseconds, callback);
      return t1;
    },
    _TimerImpl$periodic(milliseconds, callback) {
      var t1 = new A._TimerImpl(false);
      t1._TimerImpl$periodic$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(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 (object instanceof A._Future)
          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);
    },
    AsyncError_defaultStackTrace(error) {
      var stackTrace;
      if (type$.Error._is(error)) {
        stackTrace = error.get$stackTrace();
        if (stackTrace != null)
          return stackTrace;
      }
      return B._StringStackTrace_OdL;
    },
    Future_Future$microtask(computation, $T) {
      var result = new A._Future($.Zone__current, $T._eval$1("_Future<0>"));
      A.scheduleMicrotask(new A.Future_Future$microtask_closure(computation, result));
      return result;
    },
    Future_Future$sync(computation, $T) {
      var error, stackTrace, exception, t1, t2, t3, t4, result = null;
      try {
        result = computation.call$0();
      } catch (exception) {
        error = A.unwrapException(exception);
        stackTrace = A.getTraceFromException(exception);
        t1 = new A._Future($.Zone__current, $T._eval$1("_Future<0>"));
        t2 = error;
        t3 = stackTrace;
        t4 = A._interceptError(t2, t3);
        if (t4 == null)
          t2 = new A.AsyncError(t2, t3 == null ? A.AsyncError_defaultStackTrace(t2) : t3);
        else
          t2 = t4;
        t1._asyncCompleteErrorObject$1(t2);
        return t1;
      }
      return $T._eval$1("Future<0>")._is(result) ? result : A._Future$value(result, $T);
    },
    Future_Future$value(value, $T) {
      var t1 = value == null ? $T._as(value) : value,
        t2 = new A._Future($.Zone__current, $T._eval$1("_Future<0>"));
      t2._asyncComplete$1(t1);
      return t2;
    },
    Completer_Completer($T) {
      return new A._AsyncCompleter(new A._Future($.Zone__current, $T._eval$1("_Future<0>")), $T._eval$1("_AsyncCompleter<0>"));
    },
    _interceptError(error, stackTrace) {
      var replacement, t1, t2,
        zone = $.Zone__current;
      if (zone === B.C__RootZone)
        return null;
      replacement = zone.errorCallback$2(error, stackTrace);
      if (replacement == null)
        return null;
      t1 = replacement.error;
      t2 = replacement.stackTrace;
      if (type$.Error._is(t1))
        A.Primitives_trySetStackTrace(t1, t2);
      return replacement;
    },
    _interceptUserError(error, stackTrace) {
      var replacement;
      if ($.Zone__current !== B.C__RootZone) {
        replacement = A._interceptError(error, stackTrace);
        if (replacement != null)
          return replacement;
      }
      if (stackTrace == null)
        if (type$.Error._is(error)) {
          stackTrace = error.get$stackTrace();
          if (stackTrace == null) {
            A.Primitives_trySetStackTrace(error, B._StringStackTrace_OdL);
            stackTrace = B._StringStackTrace_OdL;
          }
        } else
          stackTrace = B._StringStackTrace_OdL;
      else if (type$.Error._is(error))
        A.Primitives_trySetStackTrace(error, stackTrace);
      return new A.AsyncError(error, stackTrace);
    },
    _Future$value(value, $T) {
      var t1 = new A._Future($.Zone__current, $T._eval$1("_Future<0>"));
      $T._as(value);
      t1._state = 8;
      t1._resultOrListeners = value;
      return t1;
    },
    _Future__chainCoreFuture(source, target, sync) {
      var t2, t3, ignoreError, listeners, _box_0 = {},
        t1 = _box_0.source = source;
      for (t2 = type$._Future_dynamic; t3 = t1._state, (t3 & 4) !== 0; t1 = source) {
        source = t2._as(t1._resultOrListeners);
        _box_0.source = source;
      }
      if (t1 === target) {
        t2 = A.StackTrace_current();
        target._asyncCompleteErrorObject$1(new A.AsyncError(new A.ArgumentError(true, t1, null, "Cannot complete a future with itself"), t2));
        return;
      }
      ignoreError = target._state & 1;
      t2 = t1._state = t3 | ignoreError;
      if ((t2 & 24) === 0) {
        listeners = type$.nullable__FutureListener_dynamic_dynamic._as(target._resultOrListeners);
        target._state = target._state & 1 | 4;
        target._resultOrListeners = t1;
        t1._prependListeners$1(listeners);
        return;
      }
      if (!sync)
        if (target._resultOrListeners == null)
          t1 = (t2 & 16) === 0 || ignoreError !== 0;
        else
          t1 = false;
      else
        t1 = true;
      if (t1) {
        listeners = target._removeListeners$0();
        target._cloneResult$1(_box_0.source);
        A._Future__propagateToListeners(target, listeners);
        return;
      }
      target._state ^= 2;
      target._zone.scheduleMicrotask$1(new A._Future__chainCoreFuture_closure(_box_0, target));
    },
    _Future__propagateToListeners(source, listeners) {
      var t2, t3, _box_0, t4, t5, hasError, asyncError, nextListener, nextListener0, sourceResult, t6, zone, oldZone, result, current, _box_1 = {},
        t1 = _box_1.source = source;
      for (t2 = type$.AsyncError, t3 = type$.nullable__FutureListener_dynamic_dynamic; true;) {
        _box_0 = {};
        t4 = t1._state;
        t5 = (t4 & 16) === 0;
        hasError = !t5;
        if (listeners == null) {
          if (hasError && (t4 & 1) === 0) {
            asyncError = t2._as(t1._resultOrListeners);
            t1._zone.handleUncaughtError$2(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;
        }
        t4 = _box_1.source;
        sourceResult = t4._resultOrListeners;
        _box_0.listenerHasError = hasError;
        _box_0.listenerValueOrError = sourceResult;
        if (t5) {
          t6 = t1.state;
          t6 = (t6 & 1) !== 0 || (t6 & 15) === 8;
        } else
          t6 = true;
        if (t6) {
          zone = t1.result._zone;
          if (hasError) {
            t1 = t4._zone;
            t1 = !(t1 === zone || t1.get$errorZone() === zone.get$errorZone());
          } else
            t1 = false;
          if (t1) {
            t1 = _box_1.source;
            asyncError = t2._as(t1._resultOrListeners);
            t1._zone.handleUncaughtError$2(asyncError.error, asyncError.stackTrace);
            return;
          }
          oldZone = $.Zone__current;
          if (oldZone !== zone)
            $.Zone__current = zone;
          else
            oldZone = null;
          t1 = _box_0.listener.state;
          if ((t1 & 15) === 8)
            new A._Future__propagateToListeners_handleWhenCompleteCallback(_box_0, _box_1, hasError).call$0();
          else if (t5) {
            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 (t1 instanceof A._Future) {
            t4 = _box_0.listener.$ti;
            t4 = t4._eval$1("Future<2>")._is(t1) || !t4._rest[1]._is(t1);
          } else
            t4 = false;
          if (t4) {
            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, true);
            return;
          }
        }
        result = _box_0.listener.result;
        current = t3._as(result._resultOrListeners);
        result._resultOrListeners = null;
        listeners = result._reverseListeners$1(current);
        t1 = _box_0.listenerHasError;
        t4 = _box_0.listenerValueOrError;
        if (!t1) {
          result.$ti._precomputed1._as(t4);
          result._state = 8;
          result._resultOrListeners = t4;
        } else {
          t2._as(t4);
          result._state = result._state & 1 | 16;
          result._resultOrListeners = t4;
        }
        _box_1.source = result;
        t1 = result;
      }
    },
    _registerErrorHandler(errorHandler, zone) {
      if (type$.dynamic_Function_Object_StackTrace._is(errorHandler))
        return zone.registerBinaryCallback$3$1(errorHandler, type$.dynamic, type$.Object, type$.StackTrace);
      if (type$.dynamic_Function_Object._is(errorHandler))
        return zone.registerUnaryCallback$2$1(errorHandler, type$.dynamic, type$.Object);
      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 t1, _null = null,
        currentZone = $.Zone__current;
      if (B.C__RootZone === currentZone) {
        A._rootScheduleMicrotask(_null, _null, B.C__RootZone, callback);
        return;
      }
      if (B.C__RootZone === currentZone.get$_scheduleMicrotask().zone)
        t1 = B.C__RootZone.get$errorZone() === currentZone.get$errorZone();
      else
        t1 = false;
      if (t1) {
        A._rootScheduleMicrotask(_null, _null, currentZone, currentZone.registerCallback$1$1(callback, type$.void));
        return;
      }
      t1 = $.Zone__current;
      t1.scheduleMicrotask$1(t1.bindCallbackGuarded$1(callback));
    },
    Stream_Stream$value(value, $T) {
      var _null = null,
        t1 = $T._eval$1("_AsyncStreamController<0>"),
        t2 = new A._AsyncStreamController(_null, _null, _null, _null, t1);
      t2._add$1(value);
      t2._closeUnchecked$0();
      return new A._ControllerStream(t2, t1._eval$1("_ControllerStream<1>"));
    },
    StreamIterator_StreamIterator(stream, $T) {
      A.checkNotNullable(stream, "stream", type$.Object);
      return new A._StreamIterator($T._eval$1("_StreamIterator<0>"));
    },
    StreamController_StreamController(onCancel, onListen, sync, $T) {
      var _null = null;
      return sync ? new A._SyncStreamController(onListen, _null, _null, onCancel, $T._eval$1("_SyncStreamController<0>")) : new A._AsyncStreamController(onListen, _null, _null, onCancel, $T._eval$1("_AsyncStreamController<0>"));
    },
    _runGuarded(notificationHandler) {
      var e, s, exception;
      if (notificationHandler == null)
        return;
      try {
        notificationHandler.call$0();
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        $.Zone__current.handleUncaughtError$2(e, s);
      }
    },
    _BufferingStreamSubscription__registerDataHandler(zone, handleData, $T) {
      var t1 = handleData == null ? A.async___nullDataHandler$closure() : handleData;
      return zone.registerUnaryCallback$2$1(t1, type$.void, $T);
    },
    _BufferingStreamSubscription__registerErrorHandler(zone, handleError) {
      if (handleError == null)
        handleError = A.async___nullErrorHandler$closure();
      if (type$.void_Function_Object_StackTrace._is(handleError))
        return zone.registerBinaryCallback$3$1(handleError, type$.dynamic, type$.Object, type$.StackTrace);
      if (type$.void_Function_Object._is(handleError))
        return zone.registerUnaryCallback$2$1(handleError, type$.dynamic, type$.Object);
      throw A.wrapException(A.ArgumentError$("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace.", null));
    },
    _nullDataHandler(value) {
    },
    _nullErrorHandler(error, stackTrace) {
      type$.Object._as(error);
      type$.StackTrace._as(stackTrace);
      $.Zone__current.handleUncaughtError$2(error, stackTrace);
    },
    _nullDoneHandler() {
    },
    _cancelAndValue(subscription, future, value) {
      var cancelFuture = subscription.cancel$0();
      if (cancelFuture !== $.$get$Future__nullFuture())
        cancelFuture.whenComplete$1(new A._cancelAndValue_closure(future, value));
      else
        future._complete$1(value);
    },
    Timer_Timer(duration, callback) {
      var t1 = $.Zone__current;
      if (t1 === B.C__RootZone)
        return t1.createTimer$2(duration, callback);
      return t1.createTimer$2(duration, t1.bindCallbackGuarded$1(callback));
    },
    ZoneSpecification_ZoneSpecification$from(other, handleUncaughtError) {
      var t1 = handleUncaughtError == null ? other.handleUncaughtError : handleUncaughtError;
      return new A._ZoneSpecification(t1, other.run, other.runUnary, other.runBinary, other.registerCallback, other.registerUnaryCallback, other.registerBinaryCallback, other.errorCallback, other.scheduleMicrotask, other.createTimer, other.createPeriodicTimer, other.print, other.fork);
    },
    _rootHandleUncaughtError($self, $parent, zone, error, stackTrace) {
      A._rootHandleError(error, type$.StackTrace._as(stackTrace));
    },
    _rootHandleError(error, stackTrace) {
      A._schedulePriorityAsyncCallback(new A._rootHandleError_closure(error, stackTrace));
    },
    _rootRun($self, $parent, zone, f, $R) {
      var old, t1;
      type$.nullable_Zone._as($self);
      type$.nullable_ZoneDelegate._as($parent);
      type$.Zone._as(zone);
      $R._eval$1("0()")._as(f);
      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;
      type$.nullable_Zone._as($self);
      type$.nullable_ZoneDelegate._as($parent);
      type$.Zone._as(zone);
      $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f);
      $T._as(arg);
      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;
      type$.nullable_Zone._as($self);
      type$.nullable_ZoneDelegate._as($parent);
      type$.Zone._as(zone);
      $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f);
      T1._as(arg1);
      T2._as(arg2);
      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;
      }
    },
    _rootRegisterCallback($self, $parent, zone, f, $R) {
      return $R._eval$1("0()")._as(f);
    },
    _rootRegisterUnaryCallback($self, $parent, zone, f, $R, $T) {
      return $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f);
    },
    _rootRegisterBinaryCallback($self, $parent, zone, f, $R, T1, T2) {
      return $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f);
    },
    _rootErrorCallback($self, $parent, zone, error, stackTrace) {
      type$.nullable_StackTrace._as(stackTrace);
      return null;
    },
    _rootScheduleMicrotask($self, $parent, zone, f) {
      var t1, t2;
      type$.void_Function._as(f);
      if (B.C__RootZone !== zone) {
        t1 = B.C__RootZone.get$errorZone();
        t2 = zone.get$errorZone();
        f = t1 !== t2 ? zone.bindCallbackGuarded$1(f) : zone.bindCallback$1$1(f, type$.void);
      }
      A._scheduleAsyncCallback(f);
    },
    _rootCreateTimer($self, $parent, zone, duration, callback) {
      type$.Duration._as(duration);
      type$.void_Function._as(callback);
      return A.Timer__createTimer(duration, B.C__RootZone !== zone ? zone.bindCallback$1$1(callback, type$.void) : callback);
    },
    _rootCreatePeriodicTimer($self, $parent, zone, duration, callback) {
      var milliseconds;
      type$.Duration._as(duration);
      type$.void_Function_Timer._as(callback);
      if (B.C__RootZone !== zone)
        callback = zone.bindUnaryCallback$2$1(callback, type$.void, type$.Timer);
      milliseconds = B.JSInt_methods._tdivFast$1(duration._duration, 1000);
      return A._TimerImpl$periodic(milliseconds < 0 ? 0 : milliseconds, callback);
    },
    _rootPrint($self, $parent, zone, line) {
      A.printString(A._asString(line));
    },
    _printToZone(line) {
      $.Zone__current.print$1(line);
    },
    _rootFork($self, $parent, zone, specification, zoneValues) {
      var valueMap, t1, handleUncaughtError;
      type$.nullable_ZoneSpecification._as(specification);
      type$.nullable_Map_of_nullable_Object_and_nullable_Object._as(zoneValues);
      $.printToZone = A.async___printToZone$closure();
      valueMap = zone.get$_map();
      t1 = new A._CustomZone(zone.get$_run(), zone.get$_runUnary(), zone.get$_runBinary(), zone.get$_registerCallback(), zone.get$_registerUnaryCallback(), zone.get$_registerBinaryCallback(), zone.get$_errorCallback(), zone.get$_scheduleMicrotask(), zone.get$_createTimer(), zone.get$_createPeriodicTimer(), zone.get$_print(), zone.get$_fork(), zone.get$_handleUncaughtError(), zone, valueMap);
      handleUncaughtError = specification.handleUncaughtError;
      if (handleUncaughtError != null)
        t1._handleUncaughtError = new A._ZoneFunction(t1, handleUncaughtError, type$._ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace);
      return t1;
    },
    runZonedGuarded(body, onError, $R) {
      var error, stackTrace, t1, exception, _null = null, zoneSpecification = null, zoneValues = null,
        parentZone = $.Zone__current,
        errorHandler = new A.runZonedGuarded_closure(parentZone, onError);
      if (zoneSpecification == null)
        zoneSpecification = new A._ZoneSpecification(errorHandler, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
      else
        zoneSpecification = A.ZoneSpecification_ZoneSpecification$from(zoneSpecification, errorHandler);
      try {
        t1 = parentZone.fork$2$specification$zoneValues(zoneSpecification, zoneValues).run$1$1(body, $R);
        return t1;
      } catch (exception) {
        error = A.unwrapException(exception);
        stackTrace = A.getTraceFromException(exception);
        onError.call$2(error, stackTrace);
      }
      return _null;
    },
    _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(t0) {
      this._once = t0;
      this._handle = null;
      this._tick = 0;
    },
    _TimerImpl_internalCallback: function _TimerImpl_internalCallback(t0, t1) {
      this.$this = t0;
      this.callback = t1;
    },
    _TimerImpl$periodic_closure: function _TimerImpl$periodic_closure(t0, t1, t2, t3) {
      var _ = this;
      _.$this = t0;
      _.milliseconds = t1;
      _.start = t2;
      _.callback = t3;
    },
    _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;
    },
    AsyncError: function AsyncError(t0, t1) {
      this.error = t0;
      this.stackTrace = t1;
    },
    Future_Future$microtask_closure: function Future_Future$microtask_closure(t0, t1) {
      this.computation = t0;
      this.result = t1;
    },
    TimeoutException: function TimeoutException() {
    },
    _Completer: function _Completer() {
    },
    _AsyncCompleter: function _AsyncCompleter(t0, t1) {
      this.future = t0;
      this.$ti = t1;
    },
    _SyncCompleter: function _SyncCompleter(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__chainCoreFuture_closure: function _Future__chainCoreFuture_closure(t0, t1) {
      this._box_0 = t0;
      this.target = t1;
    },
    _Future__asyncCompleteWithValue_closure: function _Future__asyncCompleteWithValue_closure(t0, t1) {
      this.$this = t0;
      this.value = t1;
    },
    _Future__asyncCompleteErrorObject_closure: function _Future__asyncCompleteErrorObject_closure(t0, t1) {
      this.$this = t0;
      this.error = t1;
    },
    _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, t1) {
      this.joinedResult = t0;
      this.originalSource = t1;
    },
    _Future__propagateToListeners_handleWhenCompleteCallback_closure0: function _Future__propagateToListeners_handleWhenCompleteCallback_closure0(t0) {
      this.joinedResult = 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;
    },
    _Future_timeout_closure: function _Future_timeout_closure(t0, t1, t2, t3) {
      var _ = this;
      _.$this = t0;
      _._future = t1;
      _.zone = t2;
      _.onTimeoutHandler = t3;
    },
    _Future_timeout_closure0: function _Future_timeout_closure0(t0, t1, t2) {
      this._box_0 = t0;
      this.$this = t1;
      this._future = t2;
    },
    _Future_timeout_closure1: function _Future_timeout_closure1(t0, t1) {
      this._box_0 = t0;
      this._future = t1;
    },
    _AsyncCallbackEntry: function _AsyncCallbackEntry(t0) {
      this.callback = t0;
      this.next = null;
    },
    Stream: function Stream() {
    },
    Stream_length_closure: function Stream_length_closure(t0, t1) {
      this._box_0 = t0;
      this.$this = t1;
    },
    Stream_length_closure0: function Stream_length_closure0(t0, t1) {
      this._box_0 = t0;
      this.future = t1;
    },
    Stream_first_closure: function Stream_first_closure(t0) {
      this.future = t0;
    },
    Stream_first_closure0: function Stream_first_closure0(t0, t1, t2) {
      this.$this = t0;
      this.subscription = t1;
      this.future = t2;
    },
    StreamView: function StreamView() {
    },
    _StreamController: function _StreamController() {
    },
    _StreamController__subscribe_closure: function _StreamController__subscribe_closure(t0) {
      this.$this = t0;
    },
    _StreamController__recordCancel_complete: function _StreamController__recordCancel_complete(t0) {
      this.$this = t0;
    },
    _SyncStreamControllerDispatch: function _SyncStreamControllerDispatch() {
    },
    _AsyncStreamControllerDispatch: function _AsyncStreamControllerDispatch() {
    },
    _AsyncStreamController: function _AsyncStreamController(t0, t1, t2, t3, t4) {
      var _ = this;
      _._varData = null;
      _._state = 0;
      _._doneFuture = null;
      _.onListen = t0;
      _.onPause = t1;
      _.onResume = t2;
      _.onCancel = t3;
      _.$ti = t4;
    },
    _SyncStreamController: function _SyncStreamController(t0, t1, t2, t3, t4) {
      var _ = this;
      _._varData = null;
      _._state = 0;
      _._doneFuture = null;
      _.onListen = t0;
      _.onPause = t1;
      _.onResume = t2;
      _.onCancel = t3;
      _.$ti = t4;
    },
    _ControllerStream: function _ControllerStream(t0, t1) {
      this._controller = t0;
      this.$ti = t1;
    },
    _ControllerSubscription: function _ControllerSubscription(t0, t1, t2, t3, t4, t5, t6) {
      var _ = this;
      _._controller = t0;
      _._async$_onData = t1;
      _._onError = t2;
      _._onDone = t3;
      _._zone = t4;
      _._state = t5;
      _._pending = _._cancelFuture = null;
      _.$ti = t6;
    },
    _StreamSinkWrapper: function _StreamSinkWrapper(t0, t1) {
      this._async$_target = t0;
      this.$ti = t1;
    },
    _BufferingStreamSubscription: function _BufferingStreamSubscription() {
    },
    _BufferingStreamSubscription_asFuture_closure: function _BufferingStreamSubscription_asFuture_closure(t0, t1) {
      this._box_0 = t0;
      this.result = t1;
    },
    _BufferingStreamSubscription_asFuture_closure0: function _BufferingStreamSubscription_asFuture_closure0(t0, t1) {
      this.$this = t0;
      this.result = t1;
    },
    _BufferingStreamSubscription_asFuture__closure: function _BufferingStreamSubscription_asFuture__closure(t0, t1, t2) {
      this.result = t0;
      this.error = t1;
      this.stackTrace = t2;
    },
    _BufferingStreamSubscription__sendError_sendError: function _BufferingStreamSubscription__sendError_sendError(t0, t1, t2) {
      this.$this = t0;
      this.error = t1;
      this.stackTrace = t2;
    },
    _BufferingStreamSubscription__sendDone_sendDone: function _BufferingStreamSubscription__sendDone_sendDone(t0) {
      this.$this = t0;
    },
    _StreamImpl: function _StreamImpl() {
    },
    _DelayedEvent: function _DelayedEvent() {
    },
    _DelayedData: function _DelayedData(t0, t1) {
      this.value = t0;
      this.next = null;
      this.$ti = t1;
    },
    _DelayedError: function _DelayedError(t0, t1) {
      this.error = t0;
      this.stackTrace = t1;
      this.next = null;
    },
    _DelayedDone: function _DelayedDone() {
    },
    _PendingEvents: function _PendingEvents(t0) {
      var _ = this;
      _._state = 0;
      _.lastPendingEvent = _.firstPendingEvent = null;
      _.$ti = t0;
    },
    _PendingEvents_schedule_closure: function _PendingEvents_schedule_closure(t0, t1) {
      this.$this = t0;
      this.dispatch = t1;
    },
    _DoneStreamSubscription: function _DoneStreamSubscription(t0, t1) {
      var _ = this;
      _._state = 1;
      _._zone = t0;
      _._onDone = null;
      _.$ti = t1;
    },
    _StreamIterator: function _StreamIterator(t0) {
      this.$ti = t0;
    },
    _EmptyStream: function _EmptyStream(t0) {
      this.$ti = t0;
    },
    _cancelAndValue_closure: function _cancelAndValue_closure(t0, t1) {
      this.future = t0;
      this.value = t1;
    },
    _ForwardingStream: function _ForwardingStream() {
    },
    _ForwardingStreamSubscription: function _ForwardingStreamSubscription(t0, t1, t2, t3, t4, t5, t6) {
      var _ = this;
      _._stream = t0;
      _._subscription = null;
      _._async$_onData = t1;
      _._onError = t2;
      _._onDone = t3;
      _._zone = t4;
      _._state = t5;
      _._pending = _._cancelFuture = null;
      _.$ti = t6;
    },
    _MapStream: function _MapStream(t0, t1, t2) {
      this._transform = t0;
      this._source = t1;
      this.$ti = t2;
    },
    _ZoneFunction: function _ZoneFunction(t0, t1, t2) {
      this.zone = t0;
      this.$function = t1;
      this.$ti = t2;
    },
    _ZoneSpecification: function _ZoneSpecification(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
      var _ = this;
      _.handleUncaughtError = t0;
      _.run = t1;
      _.runUnary = t2;
      _.runBinary = t3;
      _.registerCallback = t4;
      _.registerUnaryCallback = t5;
      _.registerBinaryCallback = t6;
      _.errorCallback = t7;
      _.scheduleMicrotask = t8;
      _.createTimer = t9;
      _.createPeriodicTimer = t10;
      _.print = t11;
      _.fork = t12;
    },
    _ZoneDelegate: function _ZoneDelegate(t0) {
      this._delegationTarget = t0;
    },
    _Zone: function _Zone() {
    },
    _CustomZone: function _CustomZone(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
      var _ = this;
      _._run = t0;
      _._runUnary = t1;
      _._runBinary = t2;
      _._registerCallback = t3;
      _._registerUnaryCallback = t4;
      _._registerBinaryCallback = t5;
      _._errorCallback = t6;
      _._scheduleMicrotask = t7;
      _._createTimer = t8;
      _._createPeriodicTimer = t9;
      _._print = t10;
      _._fork = t11;
      _._handleUncaughtError = t12;
      _._delegateCache = null;
      _.parent = t13;
      _._map = t14;
    },
    _CustomZone_bindCallback_closure: function _CustomZone_bindCallback_closure(t0, t1, t2) {
      this.$this = t0;
      this.registered = t1;
      this.R = t2;
    },
    _CustomZone_bindUnaryCallback_closure: function _CustomZone_bindUnaryCallback_closure(t0, t1, t2, t3) {
      var _ = this;
      _.$this = t0;
      _.registered = t1;
      _.T = t2;
      _.R = t3;
    },
    _CustomZone_bindCallbackGuarded_closure: function _CustomZone_bindCallbackGuarded_closure(t0, t1) {
      this.$this = t0;
      this.registered = t1;
    },
    _CustomZone_bindUnaryCallbackGuarded_closure: function _CustomZone_bindUnaryCallbackGuarded_closure(t0, t1, t2) {
      this.$this = t0;
      this.registered = t1;
      this.T = t2;
    },
    _rootHandleError_closure: function _rootHandleError_closure(t0, t1) {
      this.error = t0;
      this.stackTrace = t1;
    },
    _RootZone: function _RootZone() {
    },
    _RootZone_bindCallback_closure: function _RootZone_bindCallback_closure(t0, t1, t2) {
      this.$this = t0;
      this.f = t1;
      this.R = t2;
    },
    _RootZone_bindUnaryCallback_closure: function _RootZone_bindUnaryCallback_closure(t0, t1, t2, t3) {
      var _ = this;
      _.$this = t0;
      _.f = t1;
      _.T = t2;
      _.R = t3;
    },
    _RootZone_bindCallbackGuarded_closure: function _RootZone_bindCallbackGuarded_closure(t0, t1) {
      this.$this = t0;
      this.f = t1;
    },
    _RootZone_bindUnaryCallbackGuarded_closure: function _RootZone_bindUnaryCallbackGuarded_closure(t0, t1, t2) {
      this.$this = t0;
      this.f = t1;
      this.T = t2;
    },
    runZonedGuarded_closure: function runZonedGuarded_closure(t0, t1) {
      this.parentZone = t0;
      this.onError = t1;
    },
    HashMap_HashMap(equals, hashCode, isValidKey, $K, $V) {
      if (isValidKey == null)
        if (hashCode == null) {
          if (equals == null)
            return new A._HashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("_HashMap<1,2>"));
          hashCode = A.collection___defaultHashCode$closure();
        } else {
          if (A.core__identityHashCode$closure() === hashCode && A.core__identical$closure() === equals)
            return new A._IdentityHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("_IdentityHashMap<1,2>"));
          if (equals == null)
            equals = A.collection___defaultEquals$closure();
        }
      else {
        if (hashCode == null)
          hashCode = A.collection___defaultHashCode$closure();
        if (equals == null)
          equals = A.collection___defaultEquals$closure();
      }
      return A._CustomHashMap$(equals, hashCode, isValidKey, $K, $V);
    },
    _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;
    },
    _CustomHashMap$(_equals, _hashCode, validKey, $K, $V) {
      var t1 = validKey != null ? validKey : new A._CustomHashMap_closure($K);
      return new A._CustomHashMap(_equals, _hashCode, t1, $K._eval$1("@<0>")._bind$1($V)._eval$1("_CustomHashMap<1,2>"));
    },
    LinkedHashMap_LinkedHashMap(equals, hashCode, $K, $V) {
      if (hashCode == null) {
        if (equals == null)
          return new A.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>"));
        hashCode = A.collection___defaultHashCode$closure();
      } else {
        if (A.core__identityHashCode$closure() === hashCode && A.core__identical$closure() === equals)
          return new A.JsIdentityLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsIdentityLinkedHashMap<1,2>"));
        if (equals == null)
          equals = A.collection___defaultEquals$closure();
      }
      return A._LinkedCustomHashMap$(equals, hashCode, null, $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) {
      return new A._LinkedCustomHashMap(_equals, _hashCode, new A._LinkedCustomHashMap_closure($K), $K._eval$1("@<0>")._bind$1($V)._eval$1("_LinkedCustomHashMap<1,2>"));
    },
    HashSet_HashSet(equals, hashCode, $E) {
      return new A._HashSet($E._eval$1("_HashSet<0>"));
    },
    _HashSet__newHashTable() {
      var table = Object.create(null);
      table["<non-identifier-key>"] = table;
      delete table["<non-identifier-key>"];
      return table;
    },
    LinkedHashSet_LinkedHashSet($E) {
      return new A._LinkedHashSet($E._eval$1("_LinkedHashSet<0>"));
    },
    LinkedHashSet_LinkedHashSet$_empty($E) {
      return new A._LinkedHashSet($E._eval$1("_LinkedHashSet<0>"));
    },
    _LinkedHashSet__newHashTable() {
      var table = Object.create(null);
      table["<non-identifier-key>"] = table;
      delete table["<non-identifier-key>"];
      return table;
    },
    _LinkedHashSetIterator$(_set, _modifications, $E) {
      var t1 = new A._LinkedHashSetIterator(_set, _modifications, $E._eval$1("_LinkedHashSetIterator<0>"));
      t1._collection$_cell = _set._collection$_first;
      return t1;
    },
    _defaultEquals0(a, b) {
      return J.$eq$(a, b);
    },
    _defaultHashCode(a) {
      return J.get$hashCode$(a);
    },
    LinkedHashMap_LinkedHashMap$from(other, $K, $V) {
      var result = A.LinkedHashMap_LinkedHashMap(null, null, $K, $V);
      other.forEach$1(0, new A.LinkedHashMap_LinkedHashMap$from_closure(result, $K, $V));
      return result;
    },
    LinkedHashSet_LinkedHashSet$from(elements, $E) {
      var t1, _i,
        result = A.LinkedHashSet_LinkedHashSet($E);
      for (t1 = elements.length, _i = 0; _i < elements.length; elements.length === t1 || (0, A.throwConcurrentModificationError)(elements), ++_i)
        result.add$1(0, $E._as(elements[_i]));
      return result;
    },
    ListBase__compareAny(a, b) {
      var t1 = type$.Comparable_dynamic;
      return J.compareTo$1$ns(t1._as(a), t1._as(b));
    },
    MapBase_mapToString(m) {
      var result, t1;
      if (A.isToStringVisiting(m))
        return "{...}";
      result = new A.StringBuffer("");
      try {
        t1 = {};
        B.JSArray_methods.add$1($.toStringVisiting, m);
        result._contents += "{";
        t1.first = true;
        m.forEach$1(0, 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;
    },
    ListQueue$($E) {
      return new A.ListQueue(A.List_List$filled(A.ListQueue__calculateCapacity(null), null, false, $E._eval$1("0?")), $E._eval$1("ListQueue<0>"));
    },
    ListQueue__calculateCapacity(initialCapacity) {
      return 8;
    },
    SplayTreeSet$(compare, isValidKey, $E) {
      return new A.SplayTreeSet(compare, isValidKey, $E._eval$1("SplayTreeSet<0>"));
    },
    _HashMap: function _HashMap(t0) {
      var _ = this;
      _._collection$_length = 0;
      _._keys = _._collection$_rest = _._nums = _._strings = null;
      _.$ti = t0;
    },
    _IdentityHashMap: function _IdentityHashMap(t0) {
      var _ = this;
      _._collection$_length = 0;
      _._keys = _._collection$_rest = _._nums = _._strings = null;
      _.$ti = t0;
    },
    _CustomHashMap: function _CustomHashMap(t0, t1, t2, t3) {
      var _ = this;
      _._equals = t0;
      _._hashCode = t1;
      _._validKey = t2;
      _._collection$_length = 0;
      _._keys = _._collection$_rest = _._nums = _._strings = null;
      _.$ti = t3;
    },
    _CustomHashMap_closure: function _CustomHashMap_closure(t0) {
      this.K = t0;
    },
    _HashMapKeyIterable: function _HashMapKeyIterable(t0, t1) {
      this._collection$_map = t0;
      this.$ti = t1;
    },
    _HashMapKeyIterator: function _HashMapKeyIterator(t0, t1, t2) {
      var _ = this;
      _._collection$_map = t0;
      _._keys = t1;
      _._offset = 0;
      _._collection$_current = null;
      _.$ti = t2;
    },
    _LinkedCustomHashMap: function _LinkedCustomHashMap(t0, t1, t2, t3) {
      var _ = this;
      _._equals = t0;
      _._hashCode = t1;
      _._validKey = t2;
      _.__js_helper$_length = 0;
      _._last = _._first = _.__js_helper$_rest = _.__js_helper$_nums = _.__js_helper$_strings = null;
      _._modifications = 0;
      _.$ti = t3;
    },
    _LinkedCustomHashMap_closure: function _LinkedCustomHashMap_closure(t0) {
      this.K = t0;
    },
    _HashSet: function _HashSet(t0) {
      var _ = this;
      _._collection$_length = 0;
      _._collection$_elements = _._collection$_rest = _._nums = _._strings = null;
      _.$ti = t0;
    },
    _HashSetIterator: function _HashSetIterator(t0, t1, t2) {
      var _ = this;
      _._set = t0;
      _._collection$_elements = t1;
      _._offset = 0;
      _._collection$_current = null;
      _.$ti = t2;
    },
    _LinkedHashSet: function _LinkedHashSet(t0) {
      var _ = this;
      _._collection$_length = 0;
      _._collection$_last = _._collection$_first = _._collection$_rest = _._nums = _._strings = null;
      _._collection$_modifications = 0;
      _.$ti = t0;
    },
    _LinkedHashSetCell: function _LinkedHashSetCell(t0) {
      this._element = t0;
      this._collection$_previous = this._collection$_next = null;
    },
    _LinkedHashSetIterator: function _LinkedHashSetIterator(t0, t1, t2) {
      var _ = this;
      _._set = t0;
      _._collection$_modifications = t1;
      _._collection$_current = _._collection$_cell = null;
      _.$ti = t2;
    },
    UnmodifiableListView: function UnmodifiableListView(t0, t1) {
      this._collection$_source = t0;
      this.$ti = t1;
    },
    LinkedHashMap_LinkedHashMap$from_closure: function LinkedHashMap_LinkedHashMap$from_closure(t0, t1, t2) {
      this.result = t0;
      this.K = t1;
      this.V = t2;
    },
    ListBase: function ListBase() {
    },
    MapBase: function MapBase() {
    },
    MapBase_mapToString_closure: function MapBase_mapToString_closure(t0, t1) {
      this._box_0 = t0;
      this.result = t1;
    },
    _UnmodifiableMapMixin: function _UnmodifiableMapMixin() {
    },
    MapView: function MapView() {
    },
    UnmodifiableMapView: function UnmodifiableMapView(t0, t1) {
      this._collection$_map = t0;
      this.$ti = t1;
    },
    ListQueue: function ListQueue(t0, t1) {
      var _ = this;
      _._table = t0;
      _._modificationCount = _._tail = _._head = 0;
      _.$ti = t1;
    },
    _ListQueueIterator: function _ListQueueIterator(t0, t1, t2, t3, t4) {
      var _ = this;
      _._queue = t0;
      _._end = t1;
      _._modificationCount = t2;
      _._position = t3;
      _._collection$_current = null;
      _.$ti = t4;
    },
    SetBase: function SetBase() {
    },
    _SetBase: function _SetBase() {
    },
    _SplayTreeNode: function _SplayTreeNode() {
    },
    _SplayTreeSetNode: function _SplayTreeSetNode(t0, t1) {
      var _ = this;
      _.key = t0;
      _._right = _._left = null;
      _.$ti = t1;
    },
    _SplayTree: function _SplayTree() {
    },
    _SplayTreeIterator: function _SplayTreeIterator() {
    },
    _SplayTreeKeyIterator: function _SplayTreeKeyIterator(t0, t1, t2, t3) {
      var _ = this;
      _._tree = t0;
      _._path = t1;
      _._modificationCount = null;
      _._splayCount = t2;
      _.$ti = t3;
    },
    SplayTreeSet: function SplayTreeSet(t0, t1, t2) {
      var _ = this;
      _._root = null;
      _._compare = t0;
      _._validKey = t1;
      _._splayCount = _._modificationCount = _._count = 0;
      _.$ti = t2;
    },
    _SplayTreeSet__SplayTree_Iterable: function _SplayTreeSet__SplayTree_Iterable() {
    },
    _SplayTreeSet__SplayTree_Iterable_SetMixin: function _SplayTreeSet__SplayTree_Iterable_SetMixin() {
    },
    _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 (!Array.isArray(object))
        return new A._JsonMap(object, Object.create(null));
      for (i = 0; i < object.length; ++i)
        object[i] = A._convertJsonToDartLazy(object[i]);
      return object;
    },
    _Utf8Decoder__makeNativeUint8List(codeUnits, start, end) {
      var bytes, t1, i, b,
        $length = end - start;
      if ($length <= 4096)
        bytes = $.$get$_Utf8Decoder__reusableBuffer();
      else
        bytes = new Uint8Array($length);
      for (t1 = J.getInterceptor$asx(codeUnits), i = 0; i < $length; ++i) {
        b = t1.$index(codeUnits, start + i);
        if ((b & 255) !== b)
          b = 255;
        bytes[i] = b;
      }
      return bytes;
    },
    _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, end));
    },
    _Utf8Decoder__useTextDecoder(decoder, codeUnits) {
      var t1, exception;
      try {
        t1 = decoder.decode(codeUnits);
        return t1;
      } catch (exception) {
      }
      return null;
    },
    Base64Codec__checkPadding(source, sourceIndex, sourceEnd, firstPadding, paddingCount, $length) {
      if (B.JSInt_methods.$mod($length, 4) !== 0)
        throw A.wrapException(A.FormatException$("Invalid base64 padding, padded length must be multiple of four, is " + $length, source, sourceEnd));
      if (firstPadding + paddingCount !== $length)
        throw A.wrapException(A.FormatException$("Invalid base64 padding, '=' not at the end", source, sourceIndex));
      if (paddingCount > 2)
        throw A.wrapException(A.FormatException$("Invalid base64 padding, more than two '=' characters", source, sourceIndex));
    },
    _Base64Encoder_encodeChunk(alphabet, bytes, start, end, isLast, output, outputIndex, state) {
      var t1, t2, t3, i, byteOr, byte, outputIndex0, t4, t5, outputIndex1,
        bits = state >>> 2,
        expectedChars = 3 - (state & 3);
      for (t1 = J.getInterceptor$asx(bytes), t2 = alphabet.length, t3 = output.$flags | 0, i = start, byteOr = 0; i < end; ++i) {
        byte = t1.$index(bytes, i);
        byteOr = (byteOr | byte) >>> 0;
        bits = (bits << 8 | byte) & 16777215;
        --expectedChars;
        if (expectedChars === 0) {
          outputIndex0 = outputIndex + 1;
          t4 = bits >>> 18 & 63;
          if (!(t4 < t2))
            return A.ioore(alphabet, t4);
          t3 & 2 && A.throwUnsupportedOperation(output);
          t5 = output.length;
          if (!(outputIndex < t5))
            return A.ioore(output, outputIndex);
          output[outputIndex] = alphabet.charCodeAt(t4);
          outputIndex = outputIndex0 + 1;
          t4 = bits >>> 12 & 63;
          if (!(t4 < t2))
            return A.ioore(alphabet, t4);
          if (!(outputIndex0 < t5))
            return A.ioore(output, outputIndex0);
          output[outputIndex0] = alphabet.charCodeAt(t4);
          outputIndex0 = outputIndex + 1;
          t4 = bits >>> 6 & 63;
          if (!(t4 < t2))
            return A.ioore(alphabet, t4);
          if (!(outputIndex < t5))
            return A.ioore(output, outputIndex);
          output[outputIndex] = alphabet.charCodeAt(t4);
          outputIndex = outputIndex0 + 1;
          t4 = bits & 63;
          if (!(t4 < t2))
            return A.ioore(alphabet, t4);
          if (!(outputIndex0 < t5))
            return A.ioore(output, outputIndex0);
          output[outputIndex0] = alphabet.charCodeAt(t4);
          bits = 0;
          expectedChars = 3;
        }
      }
      if (byteOr >= 0 && byteOr <= 255) {
        if (isLast && expectedChars < 3) {
          outputIndex0 = outputIndex + 1;
          outputIndex1 = outputIndex0 + 1;
          if (3 - expectedChars === 1) {
            t1 = bits >>> 2 & 63;
            if (!(t1 < t2))
              return A.ioore(alphabet, t1);
            t3 & 2 && A.throwUnsupportedOperation(output);
            t3 = output.length;
            if (!(outputIndex < t3))
              return A.ioore(output, outputIndex);
            output[outputIndex] = alphabet.charCodeAt(t1);
            t1 = bits << 4 & 63;
            if (!(t1 < t2))
              return A.ioore(alphabet, t1);
            if (!(outputIndex0 < t3))
              return A.ioore(output, outputIndex0);
            output[outputIndex0] = alphabet.charCodeAt(t1);
            outputIndex = outputIndex1 + 1;
            if (!(outputIndex1 < t3))
              return A.ioore(output, outputIndex1);
            output[outputIndex1] = 61;
            if (!(outputIndex < t3))
              return A.ioore(output, outputIndex);
            output[outputIndex] = 61;
          } else {
            t1 = bits >>> 10 & 63;
            if (!(t1 < t2))
              return A.ioore(alphabet, t1);
            t3 & 2 && A.throwUnsupportedOperation(output);
            t3 = output.length;
            if (!(outputIndex < t3))
              return A.ioore(output, outputIndex);
            output[outputIndex] = alphabet.charCodeAt(t1);
            t1 = bits >>> 4 & 63;
            if (!(t1 < t2))
              return A.ioore(alphabet, t1);
            if (!(outputIndex0 < t3))
              return A.ioore(output, outputIndex0);
            output[outputIndex0] = alphabet.charCodeAt(t1);
            outputIndex = outputIndex1 + 1;
            t1 = bits << 2 & 63;
            if (!(t1 < t2))
              return A.ioore(alphabet, t1);
            if (!(outputIndex1 < t3))
              return A.ioore(output, outputIndex1);
            output[outputIndex1] = alphabet.charCodeAt(t1);
            if (!(outputIndex < t3))
              return A.ioore(output, outputIndex);
            output[outputIndex] = 61;
          }
          return 0;
        }
        return (bits << 2 | 3 - expectedChars) >>> 0;
      }
      for (i = start; i < end;) {
        byte = t1.$index(bytes, i);
        if (byte < 0 || byte > 255)
          break;
        ++i;
      }
      throw A.wrapException(A.ArgumentError$value(bytes, "Not a byte value at index " + i + ": 0x" + B.JSInt_methods.toRadixString$1(t1.$index(bytes, i), 16), null));
    },
    _Base64Decoder_decodeChunk(input, start, end, output, outIndex, state) {
      var t1, t2, t3, i, charOr, char, t4, code, outIndex0, expectedPadding,
        _s31_ = "Invalid encoding before padding",
        _s17_ = "Invalid character",
        bits = B.JSInt_methods._shrOtherPositive$1(state, 2),
        count = state & 3,
        inverseAlphabet = $.$get$_Base64Decoder__inverseAlphabet();
      for (t1 = input.length, t2 = inverseAlphabet.length, t3 = output.$flags | 0, i = start, charOr = 0; i < end; ++i) {
        if (!(i < t1))
          return A.ioore(input, i);
        char = input.charCodeAt(i);
        charOr |= char;
        t4 = char & 127;
        if (!(t4 < t2))
          return A.ioore(inverseAlphabet, t4);
        code = inverseAlphabet[t4];
        if (code >= 0) {
          bits = (bits << 6 | code) & 16777215;
          count = count + 1 & 3;
          if (count === 0) {
            outIndex0 = outIndex + 1;
            t3 & 2 && A.throwUnsupportedOperation(output);
            t4 = output.length;
            if (!(outIndex < t4))
              return A.ioore(output, outIndex);
            output[outIndex] = bits >>> 16 & 255;
            outIndex = outIndex0 + 1;
            if (!(outIndex0 < t4))
              return A.ioore(output, outIndex0);
            output[outIndex0] = bits >>> 8 & 255;
            outIndex0 = outIndex + 1;
            if (!(outIndex < t4))
              return A.ioore(output, outIndex);
            output[outIndex] = bits & 255;
            outIndex = outIndex0;
            bits = 0;
          }
          continue;
        } else if (code === -1 && count > 1) {
          if (charOr > 127)
            break;
          if (count === 3) {
            if ((bits & 3) !== 0)
              throw A.wrapException(A.FormatException$(_s31_, input, i));
            outIndex0 = outIndex + 1;
            t3 & 2 && A.throwUnsupportedOperation(output);
            t1 = output.length;
            if (!(outIndex < t1))
              return A.ioore(output, outIndex);
            output[outIndex] = bits >>> 10;
            if (!(outIndex0 < t1))
              return A.ioore(output, outIndex0);
            output[outIndex0] = bits >>> 2;
          } else {
            if ((bits & 15) !== 0)
              throw A.wrapException(A.FormatException$(_s31_, input, i));
            t3 & 2 && A.throwUnsupportedOperation(output);
            if (!(outIndex < output.length))
              return A.ioore(output, outIndex);
            output[outIndex] = bits >>> 4;
          }
          expectedPadding = (3 - count) * 3;
          if (char === 37)
            expectedPadding += 2;
          return A._Base64Decoder__checkPadding(input, i + 1, end, -expectedPadding - 1);
        }
        throw A.wrapException(A.FormatException$(_s17_, input, i));
      }
      if (charOr >= 0 && charOr <= 127)
        return (bits << 2 | count) >>> 0;
      for (i = start; i < end; ++i) {
        if (!(i < t1))
          return A.ioore(input, i);
        if (input.charCodeAt(i) > 127)
          break;
      }
      throw A.wrapException(A.FormatException$(_s17_, input, i));
    },
    _Base64Decoder__allocateBuffer(input, start, end, state) {
      var paddingStart = A._Base64Decoder__trimPaddingChars(input, start, end),
        $length = (state & 3) + (paddingStart - start),
        bufferLength = B.JSInt_methods._shrOtherPositive$1($length, 2) * 3,
        remainderLength = $length & 3;
      if (remainderLength !== 0 && paddingStart < end)
        bufferLength += remainderLength - 1;
      if (bufferLength > 0)
        return new Uint8Array(bufferLength);
      return $.$get$_Base64Decoder__emptyBuffer();
    },
    _Base64Decoder__trimPaddingChars(input, start, end) {
      var char,
        t1 = input.length,
        newEnd = end,
        index = newEnd,
        padding = 0;
      while (true) {
        if (!(index > start && padding < 2))
          break;
        c$0: {
          --index;
          if (!(index >= 0 && index < t1))
            return A.ioore(input, index);
          char = input.charCodeAt(index);
          if (char === 61) {
            ++padding;
            newEnd = index;
            break c$0;
          }
          if ((char | 32) === 100) {
            if (index === start)
              break;
            --index;
            if (!(index >= 0 && index < t1))
              return A.ioore(input, index);
            char = input.charCodeAt(index);
          }
          if (char === 51) {
            if (index === start)
              break;
            --index;
            if (!(index >= 0 && index < t1))
              return A.ioore(input, index);
            char = input.charCodeAt(index);
          }
          if (char === 37) {
            ++padding;
            newEnd = index;
            break c$0;
          }
          break;
        }
      }
      return newEnd;
    },
    _Base64Decoder__checkPadding(input, start, end, state) {
      var expectedPadding, t1, char;
      if (start === end)
        return state;
      expectedPadding = -state - 1;
      for (t1 = input.length; expectedPadding > 0;) {
        if (!(start < t1))
          return A.ioore(input, start);
        char = input.charCodeAt(start);
        if (expectedPadding === 3) {
          if (char === 61) {
            expectedPadding -= 3;
            ++start;
            break;
          }
          if (char === 37) {
            --expectedPadding;
            ++start;
            if (start === end)
              break;
            if (!(start < t1))
              return A.ioore(input, start);
            char = input.charCodeAt(start);
          } else
            break;
        }
        if ((expectedPadding > 3 ? expectedPadding - 3 : expectedPadding) === 2) {
          if (char !== 51)
            break;
          ++start;
          --expectedPadding;
          if (start === end)
            break;
          if (!(start < t1))
            return A.ioore(input, start);
          char = input.charCodeAt(start);
        }
        if ((char | 32) !== 100)
          break;
        ++start;
        --expectedPadding;
        if (start === end)
          break;
      }
      if (start !== end)
        throw A.wrapException(A.FormatException$("Invalid padding character", input, start));
      return -expectedPadding - 1;
    },
    Encoding_getByName($name) {
      return $.$get$Encoding__nameToEncoding().$index(0, $name.toLowerCase());
    },
    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 t1,
        output = new A.StringBuffer("");
      A._JsonStringStringifier_printOn(object, output, toEncodable, indent);
      t1 = output._contents;
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    },
    _JsonStringStringifier_printOn(object, output, toEncodable, indent) {
      var stringifier = A._JsonStringStringifier$(output, toEncodable);
      stringifier.writeObject$1(object);
    },
    _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 "";
      }
    },
    _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() {
    },
    AsciiCodec: function AsciiCodec() {
    },
    _UnicodeSubsetEncoder: function _UnicodeSubsetEncoder() {
    },
    AsciiEncoder: function AsciiEncoder(t0) {
      this._subsetMask = t0;
    },
    _UnicodeSubsetDecoder: function _UnicodeSubsetDecoder() {
    },
    AsciiDecoder: function AsciiDecoder(t0, t1) {
      this._allowInvalid = t0;
      this._subsetMask = t1;
    },
    Base64Codec: function Base64Codec() {
    },
    Base64Encoder: function Base64Encoder() {
    },
    _Base64Encoder: function _Base64Encoder(t0) {
      this._convert$_state = 0;
      this._alphabet = t0;
    },
    Base64Decoder: function Base64Decoder() {
    },
    _Base64Decoder: function _Base64Decoder() {
      this._convert$_state = 0;
    },
    ByteConversionSink: function ByteConversionSink() {
    },
    _ByteCallbackSink: function _ByteCallbackSink(t0, t1) {
      this._callback = t0;
      this._convert$_buffer = t1;
      this._bufferIndex = 0;
    },
    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) {
      this._toEncodable = t0;
    },
    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;
    },
    _JsonStringStringifier: function _JsonStringStringifier(t0, t1, t2) {
      this._convert$_sink = t0;
      this._seen = t1;
      this._toEncodable = t2;
    },
    Latin1Codec: function Latin1Codec() {
    },
    Latin1Encoder: function Latin1Encoder(t0) {
      this._subsetMask = t0;
    },
    Latin1Decoder: function Latin1Decoder(t0, t1) {
      this._allowInvalid = t0;
      this._subsetMask = t1;
    },
    Utf8Codec: function Utf8Codec() {
    },
    Utf8Encoder: function Utf8Encoder() {
    },
    _Utf8Encoder: function _Utf8Encoder(t0) {
      this._bufferIndex = this._carry = 0;
      this._convert$_buffer = t0;
    },
    Utf8Decoder: function Utf8Decoder(t0) {
      this._allowMalformed = t0;
    },
    _Utf8Decoder: function _Utf8Decoder(t0) {
      this.allowMalformed = t0;
      this._convert$_state = 16;
      this._charOrIndex = 0;
    },
    _BigIntImpl__parseDecimal(source, isNegative) {
      var part, i,
        result = $.$get$_BigIntImpl_zero(),
        t1 = source.length,
        digitInPartCount = 4 - t1 % 4;
      if (digitInPartCount === 4)
        digitInPartCount = 0;
      for (part = 0, i = 0; i < t1; ++i) {
        part = part * 10 + source.charCodeAt(i) - 48;
        ++digitInPartCount;
        if (digitInPartCount === 4) {
          result = result.$mul(0, $.$get$_BigIntImpl__bigInt10000()).$add(0, A._BigIntImpl__BigIntImpl$_fromInt(part));
          part = 0;
          digitInPartCount = 0;
        }
      }
      if (isNegative)
        return result.$negate(0);
      return result;
    },
    _BigIntImpl__codeUnitToRadixValue(codeUnit) {
      if (48 <= codeUnit && codeUnit <= 57)
        return codeUnit - 48;
      return (codeUnit | 32) - 97 + 10;
    },
    _BigIntImpl__parseHex(source, startPos, isNegative) {
      var i, chunk, j, i0, digitValue, digitIndex, digitIndex0,
        t1 = source.length,
        sourceLength = t1 - startPos,
        chunkCount = B.JSNumber_methods.ceil$0(sourceLength / 4),
        digits = new Uint16Array(chunkCount),
        t2 = chunkCount - 1,
        lastDigitLength = sourceLength - t2 * 4;
      for (i = startPos, chunk = 0, j = 0; j < lastDigitLength; ++j, i = i0) {
        i0 = i + 1;
        if (!(i < t1))
          return A.ioore(source, i);
        digitValue = A._BigIntImpl__codeUnitToRadixValue(source.charCodeAt(i));
        if (digitValue >= 16)
          return null;
        chunk = chunk * 16 + digitValue;
      }
      digitIndex = t2 - 1;
      if (!(t2 >= 0 && t2 < chunkCount))
        return A.ioore(digits, t2);
      digits[t2] = chunk;
      for (; i < t1; digitIndex = digitIndex0) {
        for (chunk = 0, j = 0; j < 4; ++j, i = i0) {
          i0 = i + 1;
          if (!(i >= 0 && i < t1))
            return A.ioore(source, i);
          digitValue = A._BigIntImpl__codeUnitToRadixValue(source.charCodeAt(i));
          if (digitValue >= 16)
            return null;
          chunk = chunk * 16 + digitValue;
        }
        digitIndex0 = digitIndex - 1;
        if (!(digitIndex >= 0 && digitIndex < chunkCount))
          return A.ioore(digits, digitIndex);
        digits[digitIndex] = chunk;
      }
      if (chunkCount === 1) {
        if (0 >= chunkCount)
          return A.ioore(digits, 0);
        t1 = digits[0] === 0;
      } else
        t1 = false;
      if (t1)
        return $.$get$_BigIntImpl_zero();
      t1 = A._BigIntImpl__normalize(chunkCount, digits);
      return new A._BigIntImpl(t1 === 0 ? false : isNegative, digits, t1);
    },
    _BigIntImpl__tryParse(source, radix) {
      var match, t1, t2, isNegative, decimalMatch, hexMatch;
      if (source === "")
        return null;
      match = $.$get$_BigIntImpl__parseRE().firstMatch$1(source);
      if (match == null)
        return null;
      t1 = match._match;
      t2 = t1.length;
      if (1 >= t2)
        return A.ioore(t1, 1);
      isNegative = t1[1] === "-";
      if (4 >= t2)
        return A.ioore(t1, 4);
      decimalMatch = t1[4];
      hexMatch = t1[3];
      if (5 >= t2)
        return A.ioore(t1, 5);
      if (decimalMatch != null)
        return A._BigIntImpl__parseDecimal(decimalMatch, isNegative);
      if (hexMatch != null)
        return A._BigIntImpl__parseHex(hexMatch, 2, isNegative);
      return null;
    },
    _BigIntImpl__normalize(used, digits) {
      var t2,
        t1 = digits.length;
      while (true) {
        if (used > 0) {
          t2 = used - 1;
          if (!(t2 < t1))
            return A.ioore(digits, t2);
          t2 = digits[t2] === 0;
        } else
          t2 = false;
        if (!t2)
          break;
        --used;
      }
      return used;
    },
    _BigIntImpl__cloneDigits(digits, from, to, $length) {
      var t1, i, t2,
        resultDigits = new Uint16Array($length),
        n = to - from;
      for (t1 = digits.length, i = 0; i < n; ++i) {
        t2 = from + i;
        if (!(t2 >= 0 && t2 < t1))
          return A.ioore(digits, t2);
        t2 = digits[t2];
        if (!(i < $length))
          return A.ioore(resultDigits, i);
        resultDigits[i] = t2;
      }
      return resultDigits;
    },
    _BigIntImpl__BigIntImpl$_fromInt(value) {
      var digits, t1, i, i0,
        isNegative = value < 0;
      if (isNegative) {
        if (value === -9223372036854776e3) {
          digits = new Uint16Array(4);
          digits[3] = 32768;
          t1 = A._BigIntImpl__normalize(4, digits);
          return new A._BigIntImpl(t1 !== 0, digits, t1);
        }
        value = -value;
      }
      if (value < 65536) {
        digits = new Uint16Array(1);
        digits[0] = value;
        t1 = A._BigIntImpl__normalize(1, digits);
        return new A._BigIntImpl(t1 === 0 ? false : isNegative, digits, t1);
      }
      if (value <= 4294967295) {
        digits = new Uint16Array(2);
        digits[0] = value & 65535;
        digits[1] = B.JSInt_methods._shrOtherPositive$1(value, 16);
        t1 = A._BigIntImpl__normalize(2, digits);
        return new A._BigIntImpl(t1 === 0 ? false : isNegative, digits, t1);
      }
      t1 = B.JSInt_methods._tdivFast$1(B.JSInt_methods.get$bitLength(value) - 1, 16) + 1;
      digits = new Uint16Array(t1);
      for (i = 0; value !== 0; i = i0) {
        i0 = i + 1;
        if (!(i < t1))
          return A.ioore(digits, i);
        digits[i] = value & 65535;
        value = B.JSInt_methods._tdivFast$1(value, 65536);
      }
      t1 = A._BigIntImpl__normalize(t1, digits);
      return new A._BigIntImpl(t1 === 0 ? false : isNegative, digits, t1);
    },
    _BigIntImpl__dlShiftDigits(xDigits, xUsed, n, resultDigits) {
      var i, t1, t2, t3, t4;
      if (xUsed === 0)
        return 0;
      if (n === 0 && resultDigits === xDigits)
        return xUsed;
      for (i = xUsed - 1, t1 = xDigits.length, t2 = resultDigits.$flags | 0; i >= 0; --i) {
        t3 = i + n;
        if (!(i < t1))
          return A.ioore(xDigits, i);
        t4 = xDigits[i];
        t2 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(t3 >= 0 && t3 < resultDigits.length))
          return A.ioore(resultDigits, t3);
        resultDigits[t3] = t4;
      }
      for (i = n - 1; i >= 0; --i) {
        t2 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(i < resultDigits.length))
          return A.ioore(resultDigits, i);
        resultDigits[i] = 0;
      }
      return xUsed + n;
    },
    _BigIntImpl__lsh(xDigits, xUsed, n, resultDigits) {
      var i, t1, t2, carry, digit, t3, t4,
        digitShift = B.JSInt_methods._tdivFast$1(n, 16),
        bitShift = B.JSInt_methods.$mod(n, 16),
        carryBitShift = 16 - bitShift,
        bitMask = B.JSInt_methods.$shl(1, carryBitShift) - 1;
      for (i = xUsed - 1, t1 = xDigits.length, t2 = resultDigits.$flags | 0, carry = 0; i >= 0; --i) {
        if (!(i < t1))
          return A.ioore(xDigits, i);
        digit = xDigits[i];
        t3 = i + digitShift + 1;
        t4 = B.JSInt_methods.$shr(digit, carryBitShift);
        t2 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(t3 >= 0 && t3 < resultDigits.length))
          return A.ioore(resultDigits, t3);
        resultDigits[t3] = (t4 | carry) >>> 0;
        carry = B.JSInt_methods.$shl((digit & bitMask) >>> 0, bitShift);
      }
      t2 & 2 && A.throwUnsupportedOperation(resultDigits);
      if (!(digitShift >= 0 && digitShift < resultDigits.length))
        return A.ioore(resultDigits, digitShift);
      resultDigits[digitShift] = carry;
    },
    _BigIntImpl__lShiftDigits(xDigits, xUsed, n, resultDigits) {
      var resultUsed, t1, i,
        digitsShift = B.JSInt_methods._tdivFast$1(n, 16);
      if (B.JSInt_methods.$mod(n, 16) === 0)
        return A._BigIntImpl__dlShiftDigits(xDigits, xUsed, digitsShift, resultDigits);
      resultUsed = xUsed + digitsShift + 1;
      A._BigIntImpl__lsh(xDigits, xUsed, n, resultDigits);
      for (t1 = resultDigits.$flags | 0, i = digitsShift; --i, i >= 0;) {
        t1 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(i < resultDigits.length))
          return A.ioore(resultDigits, i);
        resultDigits[i] = 0;
      }
      t1 = resultUsed - 1;
      if (!(t1 >= 0 && t1 < resultDigits.length))
        return A.ioore(resultDigits, t1);
      if (resultDigits[t1] === 0)
        resultUsed = t1;
      return resultUsed;
    },
    _BigIntImpl__rsh(xDigits, xUsed, n, resultDigits) {
      var carry, last, t2, i, t3, digit,
        digitsShift = B.JSInt_methods._tdivFast$1(n, 16),
        bitShift = B.JSInt_methods.$mod(n, 16),
        carryBitShift = 16 - bitShift,
        bitMask = B.JSInt_methods.$shl(1, bitShift) - 1,
        t1 = xDigits.length;
      if (!(digitsShift >= 0 && digitsShift < t1))
        return A.ioore(xDigits, digitsShift);
      carry = B.JSInt_methods.$shr(xDigits[digitsShift], bitShift);
      last = xUsed - digitsShift - 1;
      for (t2 = resultDigits.$flags | 0, i = 0; i < last; ++i) {
        t3 = i + digitsShift + 1;
        if (!(t3 < t1))
          return A.ioore(xDigits, t3);
        digit = xDigits[t3];
        t3 = B.JSInt_methods.$shl((digit & bitMask) >>> 0, carryBitShift);
        t2 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(i < resultDigits.length))
          return A.ioore(resultDigits, i);
        resultDigits[i] = (t3 | carry) >>> 0;
        carry = B.JSInt_methods.$shr(digit, bitShift);
      }
      t2 & 2 && A.throwUnsupportedOperation(resultDigits);
      if (!(last >= 0 && last < resultDigits.length))
        return A.ioore(resultDigits, last);
      resultDigits[last] = carry;
    },
    _BigIntImpl__compareDigits(digits, used, otherDigits, otherUsed) {
      var i, t1, t2, t3,
        result = used - otherUsed;
      if (result === 0)
        for (i = used - 1, t1 = digits.length, t2 = otherDigits.length; i >= 0; --i) {
          if (!(i < t1))
            return A.ioore(digits, i);
          t3 = digits[i];
          if (!(i < t2))
            return A.ioore(otherDigits, i);
          result = t3 - otherDigits[i];
          if (result !== 0)
            return result;
        }
      return result;
    },
    _BigIntImpl__absAdd(digits, used, otherDigits, otherUsed, resultDigits) {
      var t1, t2, t3, carry, i, t4;
      for (t1 = digits.length, t2 = otherDigits.length, t3 = resultDigits.$flags | 0, carry = 0, i = 0; i < otherUsed; ++i) {
        if (!(i < t1))
          return A.ioore(digits, i);
        t4 = digits[i];
        if (!(i < t2))
          return A.ioore(otherDigits, i);
        carry += t4 + otherDigits[i];
        t3 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(i < resultDigits.length))
          return A.ioore(resultDigits, i);
        resultDigits[i] = carry & 65535;
        carry = B.JSInt_methods._shrOtherPositive$1(carry, 16);
      }
      for (i = otherUsed; i < used; ++i) {
        if (!(i >= 0 && i < t1))
          return A.ioore(digits, i);
        carry += digits[i];
        t3 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(i < resultDigits.length))
          return A.ioore(resultDigits, i);
        resultDigits[i] = carry & 65535;
        carry = B.JSInt_methods._shrOtherPositive$1(carry, 16);
      }
      t3 & 2 && A.throwUnsupportedOperation(resultDigits);
      if (!(used >= 0 && used < resultDigits.length))
        return A.ioore(resultDigits, used);
      resultDigits[used] = carry;
    },
    _BigIntImpl__absSub(digits, used, otherDigits, otherUsed, resultDigits) {
      var t1, t2, t3, carry, i, t4;
      for (t1 = digits.length, t2 = otherDigits.length, t3 = resultDigits.$flags | 0, carry = 0, i = 0; i < otherUsed; ++i) {
        if (!(i < t1))
          return A.ioore(digits, i);
        t4 = digits[i];
        if (!(i < t2))
          return A.ioore(otherDigits, i);
        carry += t4 - otherDigits[i];
        t3 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(i < resultDigits.length))
          return A.ioore(resultDigits, i);
        resultDigits[i] = carry & 65535;
        carry = 0 - (B.JSInt_methods._shrOtherPositive$1(carry, 16) & 1);
      }
      for (i = otherUsed; i < used; ++i) {
        if (!(i >= 0 && i < t1))
          return A.ioore(digits, i);
        carry += digits[i];
        t3 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(i < resultDigits.length))
          return A.ioore(resultDigits, i);
        resultDigits[i] = carry & 65535;
        carry = 0 - (B.JSInt_methods._shrOtherPositive$1(carry, 16) & 1);
      }
    },
    _BigIntImpl__mulAdd(x, multiplicandDigits, i, accumulatorDigits, j, n) {
      var t1, t2, t3, c, i0, t4, combined, j0, l;
      if (x === 0)
        return;
      for (t1 = multiplicandDigits.length, t2 = accumulatorDigits.length, t3 = accumulatorDigits.$flags | 0, c = 0; --n, n >= 0; j = j0, i = i0) {
        i0 = i + 1;
        if (!(i < t1))
          return A.ioore(multiplicandDigits, i);
        t4 = multiplicandDigits[i];
        if (!(j >= 0 && j < t2))
          return A.ioore(accumulatorDigits, j);
        combined = x * t4 + accumulatorDigits[j] + c;
        j0 = j + 1;
        t3 & 2 && A.throwUnsupportedOperation(accumulatorDigits);
        accumulatorDigits[j] = combined & 65535;
        c = B.JSInt_methods._tdivFast$1(combined, 65536);
      }
      for (; c !== 0; j = j0) {
        if (!(j >= 0 && j < t2))
          return A.ioore(accumulatorDigits, j);
        l = accumulatorDigits[j] + c;
        j0 = j + 1;
        t3 & 2 && A.throwUnsupportedOperation(accumulatorDigits);
        accumulatorDigits[j] = l & 65535;
        c = B.JSInt_methods._tdivFast$1(l, 65536);
      }
    },
    _BigIntImpl__estimateQuotientDigit(topDigitDivisor, digits, i) {
      var t2, t3, quotientDigit,
        t1 = digits.length;
      if (!(i >= 0 && i < t1))
        return A.ioore(digits, i);
      t2 = digits[i];
      if (t2 === topDigitDivisor)
        return 65535;
      t3 = i - 1;
      if (!(t3 >= 0 && t3 < t1))
        return A.ioore(digits, t3);
      quotientDigit = B.JSInt_methods.$tdiv((t2 << 16 | digits[t3]) >>> 0, topDigitDivisor);
      if (quotientDigit > 65535)
        return 65535;
      return quotientDigit;
    },
    identityHashCode(object) {
      return A.objectHashCode(object);
    },
    int_parse(source, radix) {
      var value = A.Primitives_parseInt(source, radix);
      if (value != null)
        return value;
      throw A.wrapException(A.FormatException$(source, null, null));
    },
    Error__throw(error, stackTrace) {
      error = A.initializeExceptionWrapper(error, new Error());
      if (error == null)
        error = type$.Object._as(error);
      error.stack = stackTrace.toString$0(0);
      throw error;
    },
    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, growable, $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()));
      if (growable)
        return list;
      list.$flags = 1;
      return list;
    },
    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());
      return list;
    },
    List_List$unmodifiable(elements, $E) {
      var result = A.List_List$from(elements, false, $E);
      result.$flags = 3;
      return result;
    },
    String_String$fromCharCodes(charCodes, start, end) {
      var t1, t2, maxLength, array, len;
      A.RangeError_checkNotNegative(start, "start");
      t1 = end == null;
      t2 = !t1;
      if (t2) {
        maxLength = end - start;
        if (maxLength < 0)
          throw A.wrapException(A.RangeError$range(end, start, null, "end", null));
        if (maxLength === 0)
          return "";
      }
      if (Array.isArray(charCodes)) {
        array = charCodes;
        len = array.length;
        if (t1)
          end = len;
        return A.Primitives_stringFromCharCodes(start > 0 || end < len ? array.slice(start, end) : array);
      }
      if (type$.NativeUint8List._is(charCodes))
        return A.String__stringFromUint8List(charCodes, start, end);
      if (t2)
        charCodes = J.take$1$ax(charCodes, end);
      if (start > 0)
        charCodes = J.skip$1$ax(charCodes, start);
      t1 = A.List_List$_of(charCodes, type$.int);
      return A.Primitives_stringFromCharCodes(t1);
    },
    String__stringFromUint8List(charCodes, start, endOrNull) {
      var len = charCodes.length;
      if (start >= len)
        return "";
      return A.Primitives_stringFromNativeUint8List(charCodes, start, endOrNull == null || endOrNull > len ? len : endOrNull);
    },
    RegExp_RegExp(source, caseSensitive, multiLine) {
      return new A.JSSyntaxRegExp(source, A.JSSyntaxRegExp_makeNative(source, multiLine, caseSensitive, false, false, ""));
    },
    identical(a, b) {
      return a == null ? b == null : a === b;
    },
    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());
        while (iterator.moveNext$0());
      } else {
        string += A.S(iterator.get$current());
        for (; iterator.moveNext$0();)
          string = string + separator + A.S(iterator.get$current());
      }
      return string;
    },
    Uri_base() {
      var cachedUri, uri,
        current = A.Primitives_currentUri();
      if (current == null)
        throw A.wrapException(A.UnsupportedError$("'Uri.base' is not supported"));
      cachedUri = $.Uri__cachedBaseUri;
      if (cachedUri != null && current === $.Uri__cachedBaseString)
        return cachedUri;
      uri = A.Uri_parse(current);
      $.Uri__cachedBaseUri = uri;
      $.Uri__cachedBaseString = current;
      return uri;
    },
    _Uri__uriEncode(canonicalMask, text, encoding, spaceToPlus) {
      var t1, bytes, i, t2, byte,
        _s16_ = "0123456789ABCDEF";
      if (encoding === B.C_Utf8Codec) {
        t1 = $.$get$_Uri__needsNoEncoding();
        t1 = t1._nativeRegExp.test(text);
      } else
        t1 = false;
      if (t1)
        return text;
      bytes = encoding.encode$1(text);
      for (t1 = bytes.length, i = 0, t2 = ""; i < t1; ++i) {
        byte = bytes[i];
        if (byte < 128 && (string$.x00_____.charCodeAt(byte) & canonicalMask) !== 0)
          t2 += A.Primitives_stringFromCharCode(byte);
        else
          t2 = spaceToPlus && byte === 32 ? t2 + "+" : t2 + "%" + _s16_[byte >>> 4 & 15] + _s16_[byte & 15];
      }
      return t2.charCodeAt(0) == 0 ? t2 : t2;
    },
    StackTrace_current() {
      return A.getTraceFromException(new Error());
    },
    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;
    },
    Duration$(microseconds, milliseconds) {
      return new A.Duration(microseconds + 1000 * milliseconds);
    },
    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.Primitives_safeToString(object);
    },
    Error_throwWithStackTrace(error, stackTrace) {
      A.checkNotNullable(error, "error", type$.Object);
      A.checkNotNullable(stackTrace, "stackTrace", type$.StackTrace);
      A.Error__throw(error, stackTrace);
    },
    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);
    },
    ArgumentError$notNull($name) {
      return new A.ArgumentError(false, null, $name, "Must not be null");
    },
    ArgumentError_checkNotNull(argument, $name, $T) {
      return argument;
    },
    RangeError$(message) {
      var _null = null;
      return new A.RangeError(_null, _null, false, _null, _null, message);
    },
    RangeError$value(value, $name) {
      return new A.RangeError(null, null, true, value, $name, "Value not in range");
    },
    RangeError$range(invalidValue, minValue, maxValue, $name, message) {
      return new A.RangeError(minValue, maxValue, true, invalidValue, $name, "Invalid value");
    },
    RangeError_checkValueInInterval(value, minValue, maxValue, $name) {
      if (value < minValue || value > maxValue)
        throw A.wrapException(A.RangeError$range(value, minValue, maxValue, $name, null));
      return value;
    },
    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$withLength(invalidValue, $length, indexable, message, $name) {
      return new A.IndexError($length, 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_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;
    },
    Iterable_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;
    },
    _iterablePartsToStrings(iterable, parts) {
      var next, ultimateString, penultimateString, penultimate, ultimate, ultimate0, elision,
        it = J.get$iterator$ax(iterable),
        $length = 0, count = 0;
      while (true) {
        if (!($length < 80 || count < 3))
          break;
        if (!it.moveNext$0())
          return;
        next = A.S(it.get$current());
        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();
        ++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();
          ++count;
          for (; it.moveNext$0(); penultimate = ultimate, ultimate = ultimate0) {
            ultimate0 = it.get$current();
            ++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);
    },
    Map_castFrom(source, $K, $V, K2, V2) {
      return new A.CastMap(source, $K._eval$1("@<0>")._bind$1($V)._bind$1(K2)._bind$1(V2)._eval$1("CastMap<1,2,3,4>"));
    },
    Object_hash(object1, object2, object3, object4) {
      var t1;
      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);
      object4 = A.SystemHash_finish(A.SystemHash_combine(A.SystemHash_combine(A.SystemHash_combine(A.SystemHash_combine($.$get$_hashSeed(), t1), object2), object3), object4));
      return object4;
    },
    print(object) {
      var toZone = $.printToZone;
      if (toZone == null)
        A.printString(object);
      else
        toZone.call$1(object);
    },
    Uri_parse(uri) {
      var delta, indices, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, isSimple, scheme, t1, t2, schemeAuth, queryStart0, pathStart0, port, userInfoStart, userInfo, host, portNumber, path, query, _null = null,
        end = uri.length;
      if (end >= 5) {
        if (4 >= end)
          return A.ioore(uri, 4);
        delta = ((uri.charCodeAt(4) ^ 58) * 3 | uri.charCodeAt(0) ^ 100 | uri.charCodeAt(1) ^ 97 | uri.charCodeAt(2) ^ 116 | uri.charCodeAt(3) ^ 97) >>> 0;
        if (delta === 0)
          return A.UriData__parse(end < end ? B.JSString_methods.substring$2(uri, 0, end) : uri, 5, _null).get$uri();
        else if (delta === 32)
          return A.UriData__parse(B.JSString_methods.substring$2(uri, 5, end), 0, _null).get$uri();
      }
      indices = A.List_List$filled(8, 0, false, type$.int);
      B.JSArray_methods.$indexSet(indices, 0, 0);
      B.JSArray_methods.$indexSet(indices, 1, -1);
      B.JSArray_methods.$indexSet(indices, 2, -1);
      B.JSArray_methods.$indexSet(indices, 7, -1);
      B.JSArray_methods.$indexSet(indices, 3, 0);
      B.JSArray_methods.$indexSet(indices, 4, 0);
      B.JSArray_methods.$indexSet(indices, 5, end);
      B.JSArray_methods.$indexSet(indices, 6, end);
      if (A._scan(uri, 0, end, 0, indices) >= 14)
        B.JSArray_methods.$indexSet(indices, 7, end);
      schemeEnd = indices[1];
      if (schemeEnd >= 0)
        if (A._scan(uri, 0, schemeEnd, 20, indices) === 20)
          indices[7] = schemeEnd;
      hostStart = indices[2] + 1;
      portStart = indices[3];
      pathStart = indices[4];
      queryStart = indices[5];
      fragmentStart = indices[6];
      if (fragmentStart < queryStart)
        queryStart = fragmentStart;
      if (pathStart < hostStart)
        pathStart = queryStart;
      else if (pathStart <= schemeEnd)
        pathStart = schemeEnd + 1;
      if (portStart < hostStart)
        portStart = pathStart;
      isSimple = indices[7] < 0;
      scheme = _null;
      if (isSimple) {
        isSimple = false;
        if (!(hostStart > schemeEnd + 3)) {
          t1 = portStart > 0;
          if (!(t1 && portStart + 1 === pathStart)) {
            if (!B.JSString_methods.startsWith$2(uri, "\\", pathStart))
              if (hostStart > 0)
                t2 = B.JSString_methods.startsWith$2(uri, "\\", hostStart - 1) || B.JSString_methods.startsWith$2(uri, "\\", hostStart - 2);
              else
                t2 = false;
            else
              t2 = true;
            if (!t2) {
              if (!(queryStart < end && queryStart === pathStart + 2 && B.JSString_methods.startsWith$2(uri, "..", pathStart)))
                t2 = queryStart > pathStart + 2 && B.JSString_methods.startsWith$2(uri, "/..", queryStart - 3);
              else
                t2 = true;
              if (!t2)
                if (schemeEnd === 4) {
                  if (B.JSString_methods.startsWith$2(uri, "file", 0)) {
                    if (hostStart <= 0) {
                      if (!B.JSString_methods.startsWith$2(uri, "/", pathStart)) {
                        schemeAuth = "file:///";
                        delta = 3;
                      } else {
                        schemeAuth = "file://";
                        delta = 2;
                      }
                      uri = schemeAuth + B.JSString_methods.substring$2(uri, pathStart, end);
                      queryStart += delta;
                      fragmentStart += delta;
                      end = uri.length;
                      hostStart = 7;
                      portStart = 7;
                      pathStart = 7;
                    } else if (pathStart === queryStart) {
                      ++fragmentStart;
                      queryStart0 = queryStart + 1;
                      uri = B.JSString_methods.replaceRange$3(uri, pathStart, queryStart, "/");
                      ++end;
                      queryStart = queryStart0;
                    }
                    scheme = "file";
                  } else if (B.JSString_methods.startsWith$2(uri, "http", 0)) {
                    if (t1 && portStart + 3 === pathStart && B.JSString_methods.startsWith$2(uri, "80", portStart + 1)) {
                      fragmentStart -= 3;
                      pathStart0 = pathStart - 3;
                      queryStart -= 3;
                      uri = B.JSString_methods.replaceRange$3(uri, portStart, pathStart, "");
                      end -= 3;
                      pathStart = pathStart0;
                    }
                    scheme = "http";
                  }
                } else if (schemeEnd === 5 && B.JSString_methods.startsWith$2(uri, "https", 0)) {
                  if (t1 && portStart + 4 === pathStart && B.JSString_methods.startsWith$2(uri, "443", portStart + 1)) {
                    fragmentStart -= 4;
                    pathStart0 = pathStart - 4;
                    queryStart -= 4;
                    uri = B.JSString_methods.replaceRange$3(uri, portStart, pathStart, "");
                    end -= 3;
                    pathStart = pathStart0;
                  }
                  scheme = "https";
                }
              isSimple = !t2;
            }
          }
        }
      }
      if (isSimple)
        return new A._SimpleUri(end < uri.length ? B.JSString_methods.substring$2(uri, 0, end) : uri, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, scheme);
      if (scheme == null)
        if (schemeEnd > 0)
          scheme = A._Uri__makeScheme(uri, 0, schemeEnd);
        else {
          if (schemeEnd === 0)
            A._Uri__fail(uri, 0, "Invalid empty scheme");
          scheme = "";
        }
      port = _null;
      if (hostStart > 0) {
        userInfoStart = schemeEnd + 3;
        userInfo = userInfoStart < hostStart ? A._Uri__makeUserInfo(uri, userInfoStart, hostStart - 1) : "";
        host = A._Uri__makeHost(uri, hostStart, portStart, false);
        t1 = portStart + 1;
        if (t1 < pathStart) {
          portNumber = A.Primitives_parseInt(B.JSString_methods.substring$2(uri, t1, pathStart), _null);
          port = A._Uri__makePort(portNumber == null ? A.throwExpression(A.FormatException$("Invalid port", uri, t1)) : portNumber, scheme);
        }
      } else {
        host = _null;
        userInfo = "";
      }
      path = A._Uri__makePath(uri, pathStart, queryStart, _null, scheme, host != null);
      query = queryStart < fragmentStart ? A._Uri__makeQuery(uri, queryStart + 1, fragmentStart, _null) : _null;
      return A._Uri$_internal(scheme, userInfo, host, port, path, query, fragmentStart < end ? A._Uri__makeFragment(uri, fragmentStart + 1, end) : _null);
    },
    Uri_decodeComponent(encodedComponent) {
      A._asString(encodedComponent);
      return A._Uri__uriDecode(encodedComponent, 0, encodedComponent.length, B.C_Utf8Codec, false);
    },
    Uri__parseIPv4Address(host, start, end) {
      var t1, i, partStart, partIndex, char, part, partIndex0,
        _s43_ = "IPv4 address should contain exactly 4 parts",
        _s37_ = "each part must be in the range 0..255",
        error = new A.Uri__parseIPv4Address_error(host),
        result = new Uint8Array(4);
      for (t1 = host.length, i = start, partStart = i, partIndex = 0; i < end; ++i) {
        if (!(i >= 0 && i < t1))
          return A.ioore(host, i);
        char = host.charCodeAt(i);
        if (char !== 46) {
          if ((char ^ 48) > 9)
            error.call$2("invalid character", i);
        } else {
          if (partIndex === 3)
            error.call$2(_s43_, i);
          part = A.int_parse(B.JSString_methods.substring$2(host, partStart, i), null);
          if (part > 255)
            error.call$2(_s37_, partStart);
          partIndex0 = partIndex + 1;
          if (!(partIndex < 4))
            return A.ioore(result, partIndex);
          result[partIndex] = part;
          partStart = i + 1;
          partIndex = partIndex0;
        }
      }
      if (partIndex !== 3)
        error.call$2(_s43_, end);
      part = A.int_parse(B.JSString_methods.substring$2(host, partStart, end), null);
      if (part > 255)
        error.call$2(_s37_, partStart);
      if (!(partIndex < 4))
        return A.ioore(result, partIndex);
      result[partIndex] = part;
      return result;
    },
    Uri__validateIPvAddress(host, start, end) {
      var error;
      if (start === end)
        throw A.wrapException(A.FormatException$("Empty IP address", host, start));
      if (!(start >= 0 && start < host.length))
        return A.ioore(host, start);
      if (host.charCodeAt(start) === 118) {
        error = A.Uri__validateIPvFutureAddress(host, start, end);
        if (error != null)
          throw A.wrapException(error);
        return false;
      }
      A.Uri_parseIPv6Address(host, start, end);
      return true;
    },
    Uri__validateIPvFutureAddress(host, start, end) {
      var t1, cursor, cursor0, char, ucChar,
        _s38_ = "Missing hex-digit in IPvFuture address",
        _s128_ = string$.x00_____;
      ++start;
      for (t1 = host.length, cursor = start; true; cursor = cursor0) {
        if (cursor < end) {
          cursor0 = cursor + 1;
          if (!(cursor >= 0 && cursor < t1))
            return A.ioore(host, cursor);
          char = host.charCodeAt(cursor);
          if ((char ^ 48) <= 9)
            continue;
          ucChar = char | 32;
          if (ucChar >= 97 && ucChar <= 102)
            continue;
          if (char === 46) {
            if (cursor0 - 1 === start)
              return new A.FormatException(_s38_, host, cursor0);
            cursor = cursor0;
            break;
          }
          return new A.FormatException("Unexpected character", host, cursor0 - 1);
        }
        if (cursor - 1 === start)
          return new A.FormatException(_s38_, host, cursor);
        return new A.FormatException("Missing '.' in IPvFuture address", host, cursor);
      }
      if (cursor === end)
        return new A.FormatException("Missing address in IPvFuture address, host, cursor", null, null);
      for (; true;) {
        if (!(cursor >= 0 && cursor < t1))
          return A.ioore(host, cursor);
        char = host.charCodeAt(cursor);
        if (!(char < 128))
          return A.ioore(_s128_, char);
        if ((_s128_.charCodeAt(char) & 16) !== 0) {
          ++cursor;
          if (cursor < end)
            continue;
          return null;
        }
        return new A.FormatException("Invalid IPvFuture address character", host, cursor);
      }
    },
    Uri_parseIPv6Address(host, start, end) {
      var parts, i, partStart, wildcardSeen, seenDot, char, atEnd, last, bytes, wildCardLength, index, value, j, t2, _null = null,
        error = new A.Uri_parseIPv6Address_error(host),
        parseHex = new A.Uri_parseIPv6Address_parseHex(error, host),
        t1 = host.length;
      if (t1 < 2)
        error.call$2("address is too short", _null);
      parts = A._setArrayType([], type$.JSArray_int);
      for (i = start, partStart = i, wildcardSeen = false, seenDot = false; i < end; ++i) {
        if (!(i >= 0 && i < t1))
          return A.ioore(host, i);
        char = host.charCodeAt(i);
        if (char === 58) {
          if (i === start) {
            ++i;
            if (!(i < t1))
              return A.ioore(host, i);
            if (host.charCodeAt(i) !== 58)
              error.call$2("invalid start colon.", i);
            partStart = i;
          }
          if (i === partStart) {
            if (wildcardSeen)
              error.call$2("only one wildcard `::` is allowed", i);
            B.JSArray_methods.add$1(parts, -1);
            wildcardSeen = true;
          } else
            B.JSArray_methods.add$1(parts, parseHex.call$2(partStart, i));
          partStart = i + 1;
        } else if (char === 46)
          seenDot = true;
      }
      if (parts.length === 0)
        error.call$2("too few parts", _null);
      atEnd = partStart === end;
      t1 = B.JSArray_methods.get$last(parts);
      if (atEnd && t1 !== -1)
        error.call$2("expected a part after last `:`", end);
      if (!atEnd)
        if (!seenDot)
          B.JSArray_methods.add$1(parts, parseHex.call$2(partStart, end));
        else {
          last = A.Uri__parseIPv4Address(host, partStart, end);
          B.JSArray_methods.add$1(parts, (last[0] << 8 | last[1]) >>> 0);
          B.JSArray_methods.add$1(parts, (last[2] << 8 | last[3]) >>> 0);
        }
      if (wildcardSeen) {
        if (parts.length > 7)
          error.call$2("an address with a wildcard must have less than 7 parts", _null);
      } else if (parts.length !== 8)
        error.call$2("an address without a wildcard must contain exactly 8 parts", _null);
      bytes = new Uint8Array(16);
      for (t1 = parts.length, wildCardLength = 9 - t1, i = 0, index = 0; i < t1; ++i) {
        value = parts[i];
        if (value === -1)
          for (j = 0; j < wildCardLength; ++j) {
            if (!(index >= 0 && index < 16))
              return A.ioore(bytes, index);
            bytes[index] = 0;
            t2 = index + 1;
            if (!(t2 < 16))
              return A.ioore(bytes, t2);
            bytes[t2] = 0;
            index += 2;
          }
        else {
          t2 = B.JSInt_methods._shrOtherPositive$1(value, 8);
          if (!(index >= 0 && index < 16))
            return A.ioore(bytes, index);
          bytes[index] = t2;
          t2 = index + 1;
          if (!(t2 < 16))
            return A.ioore(bytes, t2);
          bytes[t2] = value & 255;
          index += 2;
        }
      }
      return bytes;
    },
    _Uri$_internal(scheme, _userInfo, _host, _port, path, _query, _fragment) {
      return new A._Uri(scheme, _userInfo, _host, _port, path, _query, _fragment);
    },
    _Uri__Uri(host, path, pathSegments, scheme) {
      var userInfo, query, fragment, port, isFile, t1, hasAuthority, t2, _null = null;
      scheme = scheme == null ? "" : A._Uri__makeScheme(scheme, 0, scheme.length);
      userInfo = A._Uri__makeUserInfo(_null, 0, 0);
      host = A._Uri__makeHost(host, 0, host == null ? 0 : host.length, false);
      query = A._Uri__makeQuery(_null, 0, 0, _null);
      fragment = A._Uri__makeFragment(_null, 0, 0);
      port = A._Uri__makePort(_null, scheme);
      isFile = scheme === "file";
      if (host == null)
        t1 = userInfo.length !== 0 || port != null || isFile;
      else
        t1 = false;
      if (t1)
        host = "";
      t1 = host == null;
      hasAuthority = !t1;
      path = A._Uri__makePath(path, 0, path == null ? 0 : path.length, pathSegments, scheme, hasAuthority);
      t2 = scheme.length === 0;
      if (t2 && t1 && !B.JSString_methods.startsWith$1(path, "/"))
        path = A._Uri__normalizeRelativePath(path, !t2 || hasAuthority);
      else
        path = A._Uri__removeDotSegments(path);
      return A._Uri$_internal(scheme, userInfo, t1 && B.JSString_methods.startsWith$1(path, "//") ? "" : host, port, path, query, fragment);
    },
    _Uri__defaultPort(scheme) {
      if (scheme === "http")
        return 80;
      if (scheme === "https")
        return 443;
      return 0;
    },
    _Uri__fail(uri, index, message) {
      throw A.wrapException(A.FormatException$(message, uri, index));
    },
    _Uri__checkNonWindowsPathReservedCharacters(segments, argumentError) {
      var t1, _i, segment;
      for (t1 = segments.length, _i = 0; _i < t1; ++_i) {
        segment = segments[_i];
        if (B.JSString_methods.contains$1(segment, "/")) {
          t1 = A.UnsupportedError$("Illegal path character " + segment);
          throw A.wrapException(t1);
        }
      }
    },
    _Uri__makePort(port, scheme) {
      if (port != null && port === A._Uri__defaultPort(scheme))
        return null;
      return port;
    },
    _Uri__makeHost(host, start, end, strictIPv6) {
      var t1, t2, t3, zoneID, index, zoneIDstart, isIPv6, hostChars, i;
      if (host == null)
        return null;
      if (start === end)
        return "";
      t1 = host.length;
      if (!(start >= 0 && start < t1))
        return A.ioore(host, start);
      if (host.charCodeAt(start) === 91) {
        t2 = end - 1;
        if (!(t2 >= 0 && t2 < t1))
          return A.ioore(host, t2);
        if (host.charCodeAt(t2) !== 93)
          A._Uri__fail(host, start, "Missing end `]` to match `[` in host");
        t3 = start + 1;
        if (!(t3 < t1))
          return A.ioore(host, t3);
        zoneID = "";
        if (host.charCodeAt(t3) !== 118) {
          index = A._Uri__checkZoneID(host, t3, t2);
          if (index < t2) {
            zoneIDstart = index + 1;
            zoneID = A._Uri__normalizeZoneID(host, B.JSString_methods.startsWith$2(host, "25", zoneIDstart) ? index + 3 : zoneIDstart, t2, "%25");
          }
        } else
          index = t2;
        isIPv6 = A.Uri__validateIPvAddress(host, t3, index);
        hostChars = B.JSString_methods.substring$2(host, t3, index);
        return "[" + (isIPv6 ? hostChars.toLowerCase() : hostChars) + zoneID + "]";
      }
      for (i = start; i < end; ++i) {
        if (!(i < t1))
          return A.ioore(host, i);
        if (host.charCodeAt(i) === 58) {
          index = B.JSString_methods.indexOf$2(host, "%", start);
          index = index >= start && index < end ? index : end;
          if (index < end) {
            zoneIDstart = index + 1;
            zoneID = A._Uri__normalizeZoneID(host, B.JSString_methods.startsWith$2(host, "25", zoneIDstart) ? index + 3 : zoneIDstart, end, "%25");
          } else
            zoneID = "";
          A.Uri_parseIPv6Address(host, start, index);
          return "[" + B.JSString_methods.substring$2(host, start, index) + zoneID + "]";
        }
      }
      return A._Uri__normalizeRegName(host, start, end);
    },
    _Uri__checkZoneID(host, start, end) {
      var index = B.JSString_methods.indexOf$2(host, "%", start);
      return index >= start && index < end ? index : end;
    },
    _Uri__normalizeZoneID(host, start, end, prefix) {
      var t1, index, sectionStart, isNormalized, char, replacement, t2, t3, sourceLength, tail, slice,
        buffer = prefix !== "" ? new A.StringBuffer(prefix) : null;
      for (t1 = host.length, index = start, sectionStart = index, isNormalized = true; index < end;) {
        if (!(index >= 0 && index < t1))
          return A.ioore(host, index);
        char = host.charCodeAt(index);
        if (char === 37) {
          replacement = A._Uri__normalizeEscape(host, index, true);
          t2 = replacement == null;
          if (t2 && isNormalized) {
            index += 3;
            continue;
          }
          if (buffer == null)
            buffer = new A.StringBuffer("");
          t3 = buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index);
          if (t2)
            replacement = B.JSString_methods.substring$2(host, index, index + 3);
          else if (replacement === "%")
            A._Uri__fail(host, index, "ZoneID should not contain % anymore");
          buffer._contents = t3 + replacement;
          index += 3;
          sectionStart = index;
          isNormalized = true;
        } else if (char < 127 && (string$.x00_____.charCodeAt(char) & 1) !== 0) {
          if (isNormalized && 65 <= char && 90 >= char) {
            if (buffer == null)
              buffer = new A.StringBuffer("");
            if (sectionStart < index) {
              buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index);
              sectionStart = index;
            }
            isNormalized = false;
          }
          ++index;
        } else {
          sourceLength = 1;
          if ((char & 64512) === 55296 && index + 1 < end) {
            t2 = index + 1;
            if (!(t2 < t1))
              return A.ioore(host, t2);
            tail = host.charCodeAt(t2);
            if ((tail & 64512) === 56320) {
              char = 65536 + ((char & 1023) << 10) + (tail & 1023);
              sourceLength = 2;
            }
          }
          slice = B.JSString_methods.substring$2(host, sectionStart, index);
          if (buffer == null) {
            buffer = new A.StringBuffer("");
            t2 = buffer;
          } else
            t2 = buffer;
          t2._contents += slice;
          t3 = A._Uri__escapeChar(char);
          t2._contents += t3;
          index += sourceLength;
          sectionStart = index;
        }
      }
      if (buffer == null)
        return B.JSString_methods.substring$2(host, start, end);
      if (sectionStart < end) {
        slice = B.JSString_methods.substring$2(host, sectionStart, end);
        buffer._contents += slice;
      }
      t1 = buffer._contents;
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    },
    _Uri__normalizeRegName(host, start, end) {
      var t1, index, sectionStart, buffer, isNormalized, char, replacement, t2, slice, t3, sourceLength, tail,
        _s128_ = string$.x00_____;
      for (t1 = host.length, index = start, sectionStart = index, buffer = null, isNormalized = true; index < end;) {
        if (!(index >= 0 && index < t1))
          return A.ioore(host, index);
        char = host.charCodeAt(index);
        if (char === 37) {
          replacement = A._Uri__normalizeEscape(host, index, true);
          t2 = replacement == null;
          if (t2 && isNormalized) {
            index += 3;
            continue;
          }
          if (buffer == null)
            buffer = new A.StringBuffer("");
          slice = B.JSString_methods.substring$2(host, sectionStart, index);
          if (!isNormalized)
            slice = slice.toLowerCase();
          t3 = buffer._contents += slice;
          sourceLength = 3;
          if (t2)
            replacement = B.JSString_methods.substring$2(host, index, index + 3);
          else if (replacement === "%") {
            replacement = "%25";
            sourceLength = 1;
          }
          buffer._contents = t3 + replacement;
          index += sourceLength;
          sectionStart = index;
          isNormalized = true;
        } else if (char < 127 && (_s128_.charCodeAt(char) & 32) !== 0) {
          if (isNormalized && 65 <= char && 90 >= char) {
            if (buffer == null)
              buffer = new A.StringBuffer("");
            if (sectionStart < index) {
              buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index);
              sectionStart = index;
            }
            isNormalized = false;
          }
          ++index;
        } else if (char <= 93 && (_s128_.charCodeAt(char) & 1024) !== 0)
          A._Uri__fail(host, index, "Invalid character");
        else {
          sourceLength = 1;
          if ((char & 64512) === 55296 && index + 1 < end) {
            t2 = index + 1;
            if (!(t2 < t1))
              return A.ioore(host, t2);
            tail = host.charCodeAt(t2);
            if ((tail & 64512) === 56320) {
              char = 65536 + ((char & 1023) << 10) + (tail & 1023);
              sourceLength = 2;
            }
          }
          slice = B.JSString_methods.substring$2(host, sectionStart, index);
          if (!isNormalized)
            slice = slice.toLowerCase();
          if (buffer == null) {
            buffer = new A.StringBuffer("");
            t2 = buffer;
          } else
            t2 = buffer;
          t2._contents += slice;
          t3 = A._Uri__escapeChar(char);
          t2._contents += t3;
          index += sourceLength;
          sectionStart = index;
        }
      }
      if (buffer == null)
        return B.JSString_methods.substring$2(host, start, end);
      if (sectionStart < end) {
        slice = B.JSString_methods.substring$2(host, sectionStart, end);
        if (!isNormalized)
          slice = slice.toLowerCase();
        buffer._contents += slice;
      }
      t1 = buffer._contents;
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    },
    _Uri__makeScheme(scheme, start, end) {
      var t1, i, containsUpperCase, codeUnit;
      if (start === end)
        return "";
      t1 = scheme.length;
      if (!(start < t1))
        return A.ioore(scheme, start);
      if (!A._Uri__isAlphabeticCharacter(scheme.charCodeAt(start)))
        A._Uri__fail(scheme, start, "Scheme not starting with alphabetic character");
      for (i = start, containsUpperCase = false; i < end; ++i) {
        if (!(i < t1))
          return A.ioore(scheme, i);
        codeUnit = scheme.charCodeAt(i);
        if (!(codeUnit < 128 && (string$.x00_____.charCodeAt(codeUnit) & 8) !== 0))
          A._Uri__fail(scheme, i, "Illegal scheme character");
        if (65 <= codeUnit && codeUnit <= 90)
          containsUpperCase = true;
      }
      scheme = B.JSString_methods.substring$2(scheme, start, end);
      return A._Uri__canonicalizeScheme(containsUpperCase ? scheme.toLowerCase() : scheme);
    },
    _Uri__canonicalizeScheme(scheme) {
      if (scheme === "http")
        return "http";
      if (scheme === "file")
        return "file";
      if (scheme === "https")
        return "https";
      if (scheme === "package")
        return "package";
      return scheme;
    },
    _Uri__makeUserInfo(userInfo, start, end) {
      if (userInfo == null)
        return "";
      return A._Uri__normalizeOrSubstring(userInfo, start, end, 16, false, false);
    },
    _Uri__makePath(path, start, end, pathSegments, scheme, hasAuthority) {
      var t1, result,
        isFile = scheme === "file",
        ensureLeadingSlash = isFile || hasAuthority;
      if (path == null) {
        if (pathSegments == null)
          return isFile ? "/" : "";
        t1 = A._arrayInstanceType(pathSegments);
        result = new A.MappedListIterable(pathSegments, t1._eval$1("String(1)")._as(new A._Uri__makePath_closure()), t1._eval$1("MappedListIterable<1,String>")).join$1(0, "/");
      } else if (pathSegments != null)
        throw A.wrapException(A.ArgumentError$("Both path and pathSegments specified", null));
      else
        result = A._Uri__normalizeOrSubstring(path, start, end, 128, true, true);
      if (result.length === 0) {
        if (isFile)
          return "/";
      } else if (ensureLeadingSlash && !B.JSString_methods.startsWith$1(result, "/"))
        result = "/" + result;
      return A._Uri__normalizePath(result, scheme, hasAuthority);
    },
    _Uri__normalizePath(path, scheme, hasAuthority) {
      var t1 = scheme.length === 0;
      if (t1 && !hasAuthority && !B.JSString_methods.startsWith$1(path, "/") && !B.JSString_methods.startsWith$1(path, "\\"))
        return A._Uri__normalizeRelativePath(path, !t1 || hasAuthority);
      return A._Uri__removeDotSegments(path);
    },
    _Uri__makeQuery(query, start, end, queryParameters) {
      if (query != null)
        return A._Uri__normalizeOrSubstring(query, start, end, 256, true, false);
      return null;
    },
    _Uri__makeFragment(fragment, start, end) {
      if (fragment == null)
        return null;
      return A._Uri__normalizeOrSubstring(fragment, start, end, 256, true, false);
    },
    _Uri__normalizeEscape(source, index, lowerCase) {
      var t3, firstDigit, secondDigit, firstDigitValue, secondDigitValue, value,
        _s128_ = string$.x00_____,
        t1 = index + 2,
        t2 = source.length;
      if (t1 >= t2)
        return "%";
      t3 = index + 1;
      if (!(t3 >= 0 && t3 < t2))
        return A.ioore(source, t3);
      firstDigit = source.charCodeAt(t3);
      if (!(t1 >= 0))
        return A.ioore(source, t1);
      secondDigit = source.charCodeAt(t1);
      firstDigitValue = A.hexDigitValue(firstDigit);
      secondDigitValue = A.hexDigitValue(secondDigit);
      if (firstDigitValue < 0 || secondDigitValue < 0)
        return "%";
      value = firstDigitValue * 16 + secondDigitValue;
      if (value < 127) {
        if (!(value >= 0))
          return A.ioore(_s128_, value);
        t1 = (_s128_.charCodeAt(value) & 1) !== 0;
      } else
        t1 = false;
      if (t1)
        return A.Primitives_stringFromCharCode(lowerCase && 65 <= value && 90 >= value ? (value | 32) >>> 0 : value);
      if (firstDigit >= 97 || secondDigit >= 97)
        return B.JSString_methods.substring$2(source, index, index + 3).toUpperCase();
      return null;
    },
    _Uri__escapeChar(char) {
      var codeUnits, t1, flag, encodedBytes, index, byte, t2, t3,
        _s16_ = "0123456789ABCDEF";
      if (char <= 127) {
        codeUnits = new Uint8Array(3);
        codeUnits[0] = 37;
        t1 = char >>> 4;
        if (!(t1 < 16))
          return A.ioore(_s16_, t1);
        codeUnits[1] = _s16_.charCodeAt(t1);
        codeUnits[2] = _s16_.charCodeAt(char & 15);
      } else {
        if (char > 2047)
          if (char > 65535) {
            flag = 240;
            encodedBytes = 4;
          } else {
            flag = 224;
            encodedBytes = 3;
          }
        else {
          flag = 192;
          encodedBytes = 2;
        }
        t1 = 3 * encodedBytes;
        codeUnits = new Uint8Array(t1);
        for (index = 0; --encodedBytes, encodedBytes >= 0; flag = 128) {
          byte = B.JSInt_methods._shrReceiverPositive$1(char, 6 * encodedBytes) & 63 | flag;
          if (!(index < t1))
            return A.ioore(codeUnits, index);
          codeUnits[index] = 37;
          t2 = index + 1;
          t3 = byte >>> 4;
          if (!(t3 < 16))
            return A.ioore(_s16_, t3);
          if (!(t2 < t1))
            return A.ioore(codeUnits, t2);
          codeUnits[t2] = _s16_.charCodeAt(t3);
          t3 = index + 2;
          if (!(t3 < t1))
            return A.ioore(codeUnits, t3);
          codeUnits[t3] = _s16_.charCodeAt(byte & 15);
          index += 3;
        }
      }
      return A.String_String$fromCharCodes(codeUnits, 0, null);
    },
    _Uri__normalizeOrSubstring(component, start, end, charMask, escapeDelimiters, replaceBackslash) {
      var t1 = A._Uri__normalize(component, start, end, charMask, escapeDelimiters, replaceBackslash);
      return t1 == null ? B.JSString_methods.substring$2(component, start, end) : t1;
    },
    _Uri__normalize(component, start, end, charMask, escapeDelimiters, replaceBackslash) {
      var t1, t2, index, sectionStart, buffer, char, sourceLength, replacement, t3, tail, _null = null,
        _s128_ = string$.x00_____;
      for (t1 = !escapeDelimiters, t2 = component.length, index = start, sectionStart = index, buffer = _null; index < end;) {
        if (!(index >= 0 && index < t2))
          return A.ioore(component, index);
        char = component.charCodeAt(index);
        if (char < 127 && (_s128_.charCodeAt(char) & charMask) !== 0)
          ++index;
        else {
          sourceLength = 1;
          if (char === 37) {
            replacement = A._Uri__normalizeEscape(component, index, false);
            if (replacement == null) {
              index += 3;
              continue;
            }
            if ("%" === replacement)
              replacement = "%25";
            else
              sourceLength = 3;
          } else if (char === 92 && replaceBackslash)
            replacement = "/";
          else if (t1 && char <= 93 && (_s128_.charCodeAt(char) & 1024) !== 0) {
            A._Uri__fail(component, index, "Invalid character");
            sourceLength = _null;
            replacement = sourceLength;
          } else {
            if ((char & 64512) === 55296) {
              t3 = index + 1;
              if (t3 < end) {
                if (!(t3 < t2))
                  return A.ioore(component, t3);
                tail = component.charCodeAt(t3);
                if ((tail & 64512) === 56320) {
                  char = 65536 + ((char & 1023) << 10) + (tail & 1023);
                  sourceLength = 2;
                }
              }
            }
            replacement = A._Uri__escapeChar(char);
          }
          if (buffer == null) {
            buffer = new A.StringBuffer("");
            t3 = buffer;
          } else
            t3 = buffer;
          t3._contents = (t3._contents += B.JSString_methods.substring$2(component, sectionStart, index)) + replacement;
          if (typeof sourceLength !== "number")
            return A.iae(sourceLength);
          index += sourceLength;
          sectionStart = index;
        }
      }
      if (buffer == null)
        return _null;
      if (sectionStart < end) {
        t1 = B.JSString_methods.substring$2(component, sectionStart, end);
        buffer._contents += t1;
      }
      t1 = buffer._contents;
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    },
    _Uri__mayContainDotSegments(path) {
      if (B.JSString_methods.startsWith$1(path, "."))
        return true;
      return B.JSString_methods.indexOf$1(path, "/.") !== -1;
    },
    _Uri__removeDotSegments(path) {
      var output, t1, t2, appendSlash, _i, segment, t3;
      if (!A._Uri__mayContainDotSegments(path))
        return path;
      output = A._setArrayType([], type$.JSArray_String);
      for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0; _i < t2; ++_i) {
        segment = t1[_i];
        if (segment === "..") {
          t3 = output.length;
          if (t3 !== 0) {
            if (0 >= t3)
              return A.ioore(output, -1);
            output.pop();
            if (output.length === 0)
              B.JSArray_methods.add$1(output, "");
          }
          appendSlash = true;
        } else {
          appendSlash = "." === segment;
          if (!appendSlash)
            B.JSArray_methods.add$1(output, segment);
        }
      }
      if (appendSlash)
        B.JSArray_methods.add$1(output, "");
      return B.JSArray_methods.join$1(output, "/");
    },
    _Uri__normalizeRelativePath(path, allowScheme) {
      var output, t1, t2, appendSlash, _i, segment;
      if (!A._Uri__mayContainDotSegments(path))
        return !allowScheme ? A._Uri__escapeScheme(path) : path;
      output = A._setArrayType([], type$.JSArray_String);
      for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0; _i < t2; ++_i) {
        segment = t1[_i];
        if (".." === segment) {
          appendSlash = output.length !== 0 && B.JSArray_methods.get$last(output) !== "..";
          if (appendSlash) {
            if (0 >= output.length)
              return A.ioore(output, -1);
            output.pop();
          } else
            B.JSArray_methods.add$1(output, "..");
        } else {
          appendSlash = "." === segment;
          if (!appendSlash)
            B.JSArray_methods.add$1(output, segment);
        }
      }
      t1 = output.length;
      if (t1 !== 0)
        if (t1 === 1) {
          if (0 >= t1)
            return A.ioore(output, 0);
          t1 = output[0].length === 0;
        } else
          t1 = false;
      else
        t1 = true;
      if (t1)
        return "./";
      if (appendSlash || B.JSArray_methods.get$last(output) === "..")
        B.JSArray_methods.add$1(output, "");
      if (!allowScheme) {
        if (0 >= output.length)
          return A.ioore(output, 0);
        B.JSArray_methods.$indexSet(output, 0, A._Uri__escapeScheme(output[0]));
      }
      return B.JSArray_methods.join$1(output, "/");
    },
    _Uri__escapeScheme(path) {
      var i, char, t2,
        _s128_ = string$.x00_____,
        t1 = path.length;
      if (t1 >= 2 && A._Uri__isAlphabeticCharacter(path.charCodeAt(0)))
        for (i = 1; i < t1; ++i) {
          char = path.charCodeAt(i);
          if (char === 58)
            return B.JSString_methods.substring$2(path, 0, i) + "%3A" + B.JSString_methods.substring$1(path, i + 1);
          if (char <= 127) {
            if (!(char < 128))
              return A.ioore(_s128_, char);
            t2 = (_s128_.charCodeAt(char) & 8) === 0;
          } else
            t2 = true;
          if (t2)
            break;
        }
      return path;
    },
    _Uri__packageNameEnd(uri, path) {
      if (uri.isScheme$1("package") && uri._host == null)
        return A._skipPackageNameChars(path, 0, path.length);
      return -1;
    },
    _Uri__hexCharPairToByte(s, pos) {
      var t1, byte, i, t2, charCode;
      for (t1 = s.length, byte = 0, i = 0; i < 2; ++i) {
        t2 = pos + i;
        if (!(t2 < t1))
          return A.ioore(s, t2);
        charCode = s.charCodeAt(t2);
        if (48 <= charCode && charCode <= 57)
          byte = byte * 16 + charCode - 48;
        else {
          charCode |= 32;
          if (97 <= charCode && charCode <= 102)
            byte = byte * 16 + charCode - 87;
          else
            throw A.wrapException(A.ArgumentError$("Invalid URL encoding", null));
        }
      }
      return byte;
    },
    _Uri__uriDecode(text, start, end, encoding, plusToSpace) {
      var simple, codeUnit, t2, bytes,
        t1 = text.length,
        i = start;
      while (true) {
        if (!(i < end)) {
          simple = true;
          break;
        }
        if (!(i < t1))
          return A.ioore(text, i);
        codeUnit = text.charCodeAt(i);
        if (codeUnit <= 127)
          t2 = codeUnit === 37;
        else
          t2 = true;
        if (t2) {
          simple = false;
          break;
        }
        ++i;
      }
      if (simple)
        if (B.C_Utf8Codec === encoding)
          return B.JSString_methods.substring$2(text, start, end);
        else
          bytes = new A.CodeUnits(B.JSString_methods.substring$2(text, start, end));
      else {
        bytes = A._setArrayType([], type$.JSArray_int);
        for (i = start; i < end; ++i) {
          if (!(i < t1))
            return A.ioore(text, i);
          codeUnit = text.charCodeAt(i);
          if (codeUnit > 127)
            throw A.wrapException(A.ArgumentError$("Illegal percent encoding in URI", null));
          if (codeUnit === 37) {
            if (i + 3 > t1)
              throw A.wrapException(A.ArgumentError$("Truncated URI", null));
            B.JSArray_methods.add$1(bytes, A._Uri__hexCharPairToByte(text, i + 1));
            i += 2;
          } else
            B.JSArray_methods.add$1(bytes, codeUnit);
        }
      }
      return encoding.decode$1(bytes);
    },
    _Uri__isAlphabeticCharacter(codeUnit) {
      var lowerCase = codeUnit | 32;
      return 97 <= lowerCase && lowerCase <= 122;
    },
    UriData__parse(text, start, sourceUri) {
      var t1, i, slashIndex, char, equalsIndex, lastSeparator, t2, data,
        _s17_ = "Invalid MIME type",
        indices = A._setArrayType([start - 1], type$.JSArray_int);
      for (t1 = text.length, i = start, slashIndex = -1, char = null; i < t1; ++i) {
        char = text.charCodeAt(i);
        if (char === 44 || char === 59)
          break;
        if (char === 47) {
          if (slashIndex < 0) {
            slashIndex = i;
            continue;
          }
          throw A.wrapException(A.FormatException$(_s17_, text, i));
        }
      }
      if (slashIndex < 0 && i > start)
        throw A.wrapException(A.FormatException$(_s17_, text, i));
      for (; char !== 44;) {
        B.JSArray_methods.add$1(indices, i);
        ++i;
        for (equalsIndex = -1; i < t1; ++i) {
          if (!(i >= 0))
            return A.ioore(text, i);
          char = text.charCodeAt(i);
          if (char === 61) {
            if (equalsIndex < 0)
              equalsIndex = i;
          } else if (char === 59 || char === 44)
            break;
        }
        if (equalsIndex >= 0)
          B.JSArray_methods.add$1(indices, equalsIndex);
        else {
          lastSeparator = B.JSArray_methods.get$last(indices);
          if (char !== 44 || i !== lastSeparator + 7 || !B.JSString_methods.startsWith$2(text, "base64", lastSeparator + 1))
            throw A.wrapException(A.FormatException$("Expecting '='", text, i));
          break;
        }
      }
      B.JSArray_methods.add$1(indices, i);
      t2 = i + 1;
      if ((indices.length & 1) === 1)
        text = B.C_Base64Codec.normalize$3(text, t2, t1);
      else {
        data = A._Uri__normalize(text, t2, t1, 256, true, false);
        if (data != null)
          text = B.JSString_methods.replaceRange$3(text, t2, t1, data);
      }
      return new A.UriData(text, indices, sourceUri);
    },
    _scan(uri, start, end, state, indices) {
      var t1, i, char, t2, transition,
        _s2112_ = '\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe3\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0e\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\n\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\xeb\xeb\x8b\xeb\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x83\xeb\xeb\x8b\xeb\x8b\xeb\xcd\x8b\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x92\x83\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x8b\xeb\x8b\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xebD\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12D\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe8\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\x05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x10\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\f\xec\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\xec\f\xec\f\xec\xcd\f\xec\f\f\f\f\f\f\f\f\f\xec\f\f\f\f\f\f\f\f\f\f\xec\f\xec\f\xec\f\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\r\xed\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\xed\r\xed\r\xed\xed\r\xed\r\r\r\r\r\r\r\r\r\xed\r\r\r\r\r\r\r\r\r\r\xed\r\xed\r\xed\r\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0f\xea\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe9\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\t\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x11\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xe9\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\t\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x13\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\xf5\x15\x15\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5';
      for (t1 = uri.length, i = start; i < end; ++i) {
        if (!(i < t1))
          return A.ioore(uri, i);
        char = uri.charCodeAt(i) ^ 96;
        if (char > 95)
          char = 31;
        t2 = state * 96 + char;
        if (!(t2 < 2112))
          return A.ioore(_s2112_, t2);
        transition = _s2112_.charCodeAt(t2);
        state = transition & 31;
        B.JSArray_methods.$indexSet(indices, transition >>> 5, i);
      }
      return state;
    },
    _SimpleUri__packageNameEnd(uri) {
      if (uri._schemeEnd === 7 && B.JSString_methods.startsWith$1(uri._uri, "package") && uri._hostStart <= 0)
        return A._skipPackageNameChars(uri._uri, uri._pathStart, uri._queryStart);
      return -1;
    },
    _skipPackageNameChars(source, start, end) {
      var t1, i, dots, char;
      for (t1 = source.length, i = start, dots = 0; i < end; ++i) {
        if (!(i >= 0 && i < t1))
          return A.ioore(source, i);
        char = source.charCodeAt(i);
        if (char === 47)
          return dots !== 0 ? i : -1;
        if (char === 37 || char === 58)
          return -1;
        dots |= char ^ 46;
      }
      return -1;
    },
    _caseInsensitiveCompareStart(prefix, string, start) {
      var t1, t2, result, i, t3, stringChar, delta, lowerChar;
      for (t1 = prefix.length, t2 = string.length, result = 0, i = 0; i < t1; ++i) {
        t3 = start + i;
        if (!(t3 < t2))
          return A.ioore(string, t3);
        stringChar = string.charCodeAt(t3);
        delta = prefix.charCodeAt(i) ^ stringChar;
        if (delta !== 0) {
          if (delta === 32) {
            lowerChar = stringChar | delta;
            if (97 <= lowerChar && lowerChar <= 122) {
              result = 32;
              continue;
            }
          }
          return -1;
        }
      }
      return result;
    },
    _BigIntImpl: function _BigIntImpl(t0, t1, t2) {
      this._isNegative = t0;
      this._digits = t1;
      this._used = t2;
    },
    _BigIntImpl_hashCode_combine: function _BigIntImpl_hashCode_combine() {
    },
    _BigIntImpl_hashCode_finish: function _BigIntImpl_hashCode_finish() {
    },
    DateTime: function DateTime(t0, t1, t2) {
      this._value = t0;
      this._microsecond = t1;
      this.isUtc = t2;
    },
    Duration: function Duration(t0) {
      this._duration = t0;
    },
    Error: function Error() {
    },
    AssertionError: function AssertionError(t0) {
      this.message = t0;
    },
    TypeError: function TypeError() {
    },
    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;
    },
    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() {
    },
    _Exception: function _Exception(t0) {
      this.message = t0;
    },
    FormatException: function FormatException(t0, t1, t2) {
      this.message = t0;
      this.source = t1;
      this.offset = t2;
    },
    IntegerDivisionByZeroException: function IntegerDivisionByZeroException() {
    },
    Iterable: function Iterable() {
    },
    MapEntry: function MapEntry(t0, t1, t2) {
      this.key = t0;
      this.value = t1;
      this.$ti = t2;
    },
    Null: function Null() {
    },
    Object: function Object() {
    },
    _StringStackTrace: function _StringStackTrace(t0) {
      this._stackTrace = t0;
    },
    StringBuffer: function StringBuffer(t0) {
      this._contents = t0;
    },
    Uri__parseIPv4Address_error: function Uri__parseIPv4Address_error(t0) {
      this.host = t0;
    },
    Uri_parseIPv6Address_error: function Uri_parseIPv6Address_error(t0) {
      this.host = t0;
    },
    Uri_parseIPv6Address_parseHex: function Uri_parseIPv6Address_parseHex(t0, t1) {
      this.error = t0;
      this.host = t1;
    },
    _Uri: function _Uri(t0, t1, t2, t3, t4, t5, t6) {
      var _ = this;
      _.scheme = t0;
      _._userInfo = t1;
      _._host = t2;
      _._port = t3;
      _.path = t4;
      _._query = t5;
      _._fragment = t6;
      _.___Uri_hashCode_FI = _.___Uri_pathSegments_FI = _.___Uri__text_FI = $;
    },
    _Uri__makePath_closure: function _Uri__makePath_closure() {
    },
    UriData: function UriData(t0, t1, t2) {
      this._text = t0;
      this._separatorIndices = t1;
      this._uriCache = t2;
    },
    _SimpleUri: function _SimpleUri(t0, t1, t2, t3, t4, t5, t6, t7) {
      var _ = this;
      _._uri = t0;
      _._schemeEnd = t1;
      _._hostStart = t2;
      _._portStart = t3;
      _._pathStart = t4;
      _._queryStart = t5;
      _._fragmentStart = t6;
      _._schemeCache = t7;
      _._hashCodeCache = null;
    },
    _DataUri: function _DataUri(t0, t1, t2, t3, t4, t5, t6) {
      var _ = this;
      _.scheme = t0;
      _._userInfo = t1;
      _._host = t2;
      _._port = t3;
      _.path = t4;
      _._query = t5;
      _._fragment = t6;
      _.___Uri_hashCode_FI = _.___Uri_pathSegments_FI = _.___Uri__text_FI = $;
    },
    JSAnyUtilityExtension_instanceOfString(_this, constructorName) {
      var parts, $constructor, t1, t2, _i, t3;
      if (constructorName.length === 0)
        return false;
      parts = constructorName.split(".");
      $constructor = init.G;
      for (t1 = parts.length, t2 = type$.nullable_JSObject, _i = 0; _i < t1; ++_i, $constructor = t3) {
        t3 = $constructor[parts[_i]];
        t2._as(t3);
        if (t3 == null)
          return false;
      }
      return _this instanceof type$.JavaScriptFunction._as($constructor);
    },
    FutureOfJSAnyToJSPromise_get_toJS(_this, $T) {
      return type$.JSObject._as(new init.G.Promise(A._functionToJS2(new A.FutureOfJSAnyToJSPromise_get_toJS_closure(_this))));
    },
    FutureOfVoidToJSPromise_get_toJS(_this) {
      return type$.JSObject._as(new init.G.Promise(A._functionToJS2(new A.FutureOfVoidToJSPromise_get_toJS_closure(_this))));
    },
    FutureOfJSAnyToJSPromise_get_toJS_closure: function FutureOfJSAnyToJSPromise_get_toJS_closure(t0) {
      this._this = t0;
    },
    FutureOfJSAnyToJSPromise_get_toJS__closure: function FutureOfJSAnyToJSPromise_get_toJS__closure(t0) {
      this.resolve = t0;
    },
    FutureOfJSAnyToJSPromise_get_toJS__closure0: function FutureOfJSAnyToJSPromise_get_toJS__closure0(t0) {
      this.reject = t0;
    },
    FutureOfVoidToJSPromise_get_toJS_closure: function FutureOfVoidToJSPromise_get_toJS_closure(t0) {
      this._this = t0;
    },
    FutureOfVoidToJSPromise_get_toJS__closure: function FutureOfVoidToJSPromise_get_toJS__closure(t0) {
      this.resolve = t0;
    },
    FutureOfVoidToJSPromise_get_toJS__closure0: function FutureOfVoidToJSPromise_get_toJS__closure0(t0) {
      this.reject = t0;
    },
    _functionToJS0(f) {
      var result;
      if (typeof f == "function")
        throw A.wrapException(A.ArgumentError$("Attempting to rewrap a JS function.", null));
      result = function(_call, f) {
        return function() {
          return _call(f);
        };
      }(A._callDartFunctionFast0, f);
      result[$.$get$DART_CLOSURE_PROPERTY_NAME()] = f;
      return result;
    },
    _functionToJS1(f) {
      var result;
      if (typeof f == "function")
        throw A.wrapException(A.ArgumentError$("Attempting to rewrap a JS function.", null));
      result = function(_call, f) {
        return function(arg1) {
          return _call(f, arg1, arguments.length);
        };
      }(A._callDartFunctionFast1, f);
      result[$.$get$DART_CLOSURE_PROPERTY_NAME()] = f;
      return result;
    },
    _functionToJS2(f) {
      var result;
      if (typeof f == "function")
        throw A.wrapException(A.ArgumentError$("Attempting to rewrap a JS function.", null));
      result = function(_call, f) {
        return function(arg1, arg2) {
          return _call(f, arg1, arg2, arguments.length);
        };
      }(A._callDartFunctionFast2, f);
      result[$.$get$DART_CLOSURE_PROPERTY_NAME()] = f;
      return result;
    },
    _callDartFunctionFast0(callback) {
      return type$.Function._as(callback).call$0();
    },
    _callDartFunctionFast1(callback, arg1, $length) {
      type$.Function._as(callback);
      if (A._asInt($length) >= 1)
        return callback.call$1(arg1);
      return callback.call$0();
    },
    _callDartFunctionFast2(callback, arg1, arg2, $length) {
      type$.Function._as(callback);
      A._asInt($length);
      if ($length >= 2)
        return callback.call$2(arg1, arg2);
      if ($length === 1)
        return callback.call$1(arg1);
      return callback.call$0();
    },
    _noJsifyRequired(o) {
      return o == null || A._isBool(o) || typeof o == "number" || typeof o == "string" || type$.Int8List._is(o) || type$.Uint8List._is(o) || type$.Uint8ClampedList._is(o) || type$.Int16List._is(o) || type$.Uint16List._is(o) || type$.Int32List._is(o) || type$.Uint32List._is(o) || type$.Float32List._is(o) || type$.Float64List._is(o) || type$.ByteBuffer._is(o) || type$.ByteData._is(o);
    },
    jsify(object) {
      if (A._noJsifyRequired(object))
        return object;
      return new A.jsify__convert(new A._IdentityHashMap(type$._IdentityHashMap_of_nullable_Object_and_nullable_Object)).call$1(object);
    },
    getProperty(o, $name, $T) {
      return $T._as(o[$name]);
    },
    callConstructor(constr, $arguments, $T) {
      var args, factoryFunction;
      if ($arguments == null)
        return $T._as(new constr());
      if ($arguments instanceof Array)
        switch ($arguments.length) {
          case 0:
            return $T._as(new constr());
          case 1:
            return $T._as(new constr($arguments[0]));
          case 2:
            return $T._as(new constr($arguments[0], $arguments[1]));
          case 3:
            return $T._as(new constr($arguments[0], $arguments[1], $arguments[2]));
          case 4:
            return $T._as(new constr($arguments[0], $arguments[1], $arguments[2], $arguments[3]));
        }
      args = [null];
      B.JSArray_methods.addAll$1(args, $arguments);
      factoryFunction = constr.bind.apply(constr, args);
      String(factoryFunction);
      return $T._as(new factoryFunction());
    },
    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;
    },
    _noDartifyRequired(o) {
      return o == null || typeof o === "boolean" || typeof o === "number" || typeof o === "string" || o instanceof Int8Array || o instanceof Uint8Array || o instanceof Uint8ClampedArray || o instanceof Int16Array || o instanceof Uint16Array || o instanceof Int32Array || o instanceof Uint32Array || o instanceof Float32Array || o instanceof Float64Array || o instanceof ArrayBuffer || o instanceof DataView;
    },
    dartify(o) {
      if (A._noDartifyRequired(o))
        return o;
      return new A.dartify_convert(new A._IdentityHashMap(type$._IdentityHashMap_of_nullable_Object_and_nullable_Object)).call$1(o);
    },
    jsify__convert: function jsify__convert(t0) {
      this._convertedObjects = t0;
    },
    promiseToFuture_closure: function promiseToFuture_closure(t0, t1) {
      this.completer = t0;
      this.T = t1;
    },
    promiseToFuture_closure0: function promiseToFuture_closure0(t0) {
      this.completer = t0;
    },
    dartify_convert: function dartify_convert(t0) {
      this._convertedObjects = t0;
    },
    NullRejectionException: function NullRejectionException(t0) {
      this.isUndefined = t0;
    },
    max(a, b, $T) {
      A.checkTypeBound($T, type$.num, "T", "max");
      return Math.max($T._as(a), $T._as(b));
    },
    Random_Random(seed) {
      return B.C__JSRandom;
    },
    _JSRandom: function _JSRandom() {
    },
    AsyncMemoizer: function AsyncMemoizer(t0, t1) {
      this._async_memoizer$_completer = t0;
      this.$ti = t1;
    },
    DelegatingStreamSink: function DelegatingStreamSink() {
    },
    ErrorResult: function ErrorResult(t0, t1) {
      this.error = t0;
      this.stackTrace = t1;
    },
    ValueResult: function ValueResult(t0, t1) {
      this.value = t0;
      this.$ti = t1;
    },
    StreamQueue: function StreamQueue(t0, t1, t2, t3) {
      var _ = this;
      _._stream_queue$_source = t0;
      _._stream_queue$_subscription = null;
      _._isDone = false;
      _._eventsReceived = 0;
      _._eventQueue = t1;
      _._requestQueue = t2;
      _.$ti = t3;
    },
    StreamQueue__ensureListening_closure: function StreamQueue__ensureListening_closure(t0) {
      this.$this = t0;
    },
    StreamQueue__ensureListening_closure1: function StreamQueue__ensureListening_closure1(t0) {
      this.$this = t0;
    },
    StreamQueue__ensureListening_closure0: function StreamQueue__ensureListening_closure0(t0) {
      this.$this = t0;
    },
    _NextRequest: function _NextRequest(t0, t1) {
      this._stream_queue$_completer = t0;
      this.$ti = t1;
    },
    _HasNextRequest: function _HasNextRequest(t0, t1) {
      this._stream_queue$_completer = t0;
      this.$ti = t1;
    },
    hashObjects(objects) {
      return A._finish(B.JSArray_methods.fold$1$2(objects, 0, new A.hashObjects_closure(), type$.int));
    },
    _combine(hash, value) {
      hash = hash + value & 536870911;
      hash = hash + ((hash & 524287) << 10) & 536870911;
      return hash ^ hash >>> 6;
    },
    _finish(hash) {
      hash = hash + ((hash & 67108863) << 3) & 536870911;
      hash ^= hash >>> 11;
      return hash + ((hash & 16383) << 15) & 536870911;
    },
    hashObjects_closure: function hashObjects_closure() {
    },
    BuiltList_BuiltList$from(iterable, $E) {
      var t1;
      if (iterable instanceof A._BuiltList) {
        t1 = A.createRuntimeType($E);
        t1 = A.createRuntimeType(iterable.$ti._precomputed1) === t1;
      } else
        t1 = false;
      if (t1)
        return $E._eval$1("BuiltList<0>")._as(iterable);
      else {
        t1 = new A._BuiltList(A.List_List$from(iterable, false, $E), $E._eval$1("_BuiltList<0>"));
        t1._list$_maybeCheckForNull$0();
        return t1;
      }
    },
    ListBuilder_ListBuilder(iterable, $E) {
      var t1 = new A.ListBuilder($E._eval$1("ListBuilder<0>"));
      t1.replace$1(iterable);
      return t1;
    },
    BuiltList: function BuiltList() {
    },
    _BuiltList: function _BuiltList(t0, t1) {
      this._list = t0;
      this._list$_hashCode = null;
      this.$ti = t1;
    },
    ListBuilder: function ListBuilder(t0) {
      this.__ListBuilder__list_A = $;
      this._listOwner = null;
      this.$ti = t0;
    },
    BuiltListMultimap_BuiltListMultimap($K, $V) {
      var t1 = A._BuiltListMultimap$copy(B.Map_empty.get$keys(), new A.BuiltListMultimap_BuiltListMultimap_closure(B.Map_empty), $K, $V);
      return t1;
    },
    _BuiltListMultimap$copy(keys, lookup, $K, $V) {
      var t1 = new A._BuiltListMultimap(A.LinkedHashMap_LinkedHashMap$_empty($K, $V._eval$1("BuiltList<0>")), A.BuiltList_BuiltList$from(B.List_empty0, $V), $K._eval$1("@<0>")._bind$1($V)._eval$1("_BuiltListMultimap<1,2>"));
      t1._BuiltListMultimap$copy$2(keys, lookup, $K, $V);
      return t1;
    },
    ListMultimapBuilder_ListMultimapBuilder($K, $V) {
      var t1 = new A.ListMultimapBuilder($K._eval$1("@<0>")._bind$1($V)._eval$1("ListMultimapBuilder<1,2>"));
      t1.replace$1(B.Map_empty);
      return t1;
    },
    BuiltListMultimap: function BuiltListMultimap() {
    },
    BuiltListMultimap_BuiltListMultimap_closure: function BuiltListMultimap_BuiltListMultimap_closure(t0) {
      this.multimap = t0;
    },
    BuiltListMultimap_hashCode_closure: function BuiltListMultimap_hashCode_closure(t0) {
      this.$this = t0;
    },
    _BuiltListMultimap: function _BuiltListMultimap(t0, t1, t2) {
      var _ = this;
      _._list_multimap$_map = t0;
      _._emptyList = t1;
      _._list_multimap$_keys = _._list_multimap$_hashCode = null;
      _.$ti = t2;
    },
    ListMultimapBuilder: function ListMultimapBuilder(t0) {
      var _ = this;
      _.__ListMultimapBuilder__builtMap_A = $;
      _._list_multimap$_builtMapOwner = null;
      _.__ListMultimapBuilder__builderMap_A = $;
      _.$ti = t0;
    },
    ListMultimapBuilder_replace_closure: function ListMultimapBuilder_replace_closure(t0) {
      this.multimap = t0;
    },
    BuiltMap_BuiltMap($K, $V) {
      var t1 = new A._BuiltMap(null, A.LinkedHashMap_LinkedHashMap$_empty($K, $V), $K._eval$1("@<0>")._bind$1($V)._eval$1("_BuiltMap<1,2>"));
      t1._BuiltMap$copyAndCheckTypes$2(B.Map_empty.get$keys(), new A.BuiltMap_BuiltMap_closure(B.Map_empty), $K, $V);
      return t1;
    },
    MapBuilder_MapBuilder($K, $V) {
      var t1 = new A.MapBuilder(null, $, null, $K._eval$1("@<0>")._bind$1($V)._eval$1("MapBuilder<1,2>"));
      t1.replace$1(B.Map_empty);
      return t1;
    },
    BuiltMap: function BuiltMap() {
    },
    BuiltMap_BuiltMap_closure: function BuiltMap_BuiltMap_closure(t0) {
      this.map = t0;
    },
    BuiltMap_hashCode_closure: function BuiltMap_hashCode_closure(t0) {
      this.$this = t0;
    },
    _BuiltMap: function _BuiltMap(t0, t1, t2) {
      var _ = this;
      _._mapFactory = t0;
      _._map$_map = t1;
      _._map$_keys = _._map$_hashCode = null;
      _.$ti = t2;
    },
    MapBuilder: function MapBuilder(t0, t1, t2, t3) {
      var _ = this;
      _._mapFactory = t0;
      _.__MapBuilder__map_A = t1;
      _._mapOwner = t2;
      _.$ti = t3;
    },
    MapBuilder_replace_closure: function MapBuilder_replace_closure(t0, t1) {
      this.$this = t0;
      this.replacement = t1;
    },
    BuiltSet_BuiltSet$from(iterable, $E) {
      var t1 = new A._BuiltSet(null, A.LinkedHashSet_LinkedHashSet$from(iterable, $E), $E._eval$1("_BuiltSet<0>"));
      t1._maybeCheckForNull$0();
      return t1;
    },
    SetBuilder_SetBuilder($E) {
      var t1 = new A.SetBuilder(null, $, null, $E._eval$1("SetBuilder<0>"));
      t1.replace$1(B.List_empty0);
      return t1;
    },
    BuiltSet: function BuiltSet() {
    },
    BuiltSet_hashCode_closure: function BuiltSet_hashCode_closure(t0) {
      this.$this = t0;
    },
    _BuiltSet: function _BuiltSet(t0, t1, t2) {
      var _ = this;
      _._setFactory = t0;
      _._set$_set = t1;
      _._set$_hashCode = null;
      _.$ti = t2;
    },
    SetBuilder: function SetBuilder(t0, t1, t2, t3) {
      var _ = this;
      _._setFactory = t0;
      _.__SetBuilder__set_A = t1;
      _._setOwner = t2;
      _.$ti = t3;
    },
    SetMultimapBuilder_SetMultimapBuilder($K, $V) {
      var t1 = new A.SetMultimapBuilder($K._eval$1("@<0>")._bind$1($V)._eval$1("SetMultimapBuilder<1,2>"));
      t1.replace$1(B.Map_empty);
      return t1;
    },
    BuiltSetMultimap: function BuiltSetMultimap() {
    },
    BuiltSetMultimap_hashCode_closure: function BuiltSetMultimap_hashCode_closure(t0) {
      this.$this = t0;
    },
    _BuiltSetMultimap: function _BuiltSetMultimap(t0, t1, t2) {
      var _ = this;
      _._set_multimap$_map = t0;
      _._emptySet = t1;
      _._set_multimap$_keys = _._set_multimap$_hashCode = null;
      _.$ti = t2;
    },
    SetMultimapBuilder: function SetMultimapBuilder(t0) {
      var _ = this;
      _.__SetMultimapBuilder__builtMap_A = $;
      _._builtMapOwner = null;
      _.__SetMultimapBuilder__builderMap_A = $;
      _.$ti = t0;
    },
    SetMultimapBuilder_replace_closure: function SetMultimapBuilder_replace_closure(t0) {
      this.multimap = t0;
    },
    $jc(hash, value) {
      hash = hash + value & 536870911;
      hash = hash + ((hash & 524287) << 10) & 536870911;
      return hash ^ hash >>> 6;
    },
    $jf(hash) {
      hash = hash + ((hash & 67108863) << 3) & 536870911;
      hash ^= hash >>> 11;
      return hash + ((hash & 16383) << 15) & 536870911;
    },
    BuiltValueNullFieldError_checkNotNull(value, type, field, $T) {
      if (value == null)
        throw A.wrapException(new A.BuiltValueNullFieldError(type, field));
      return value;
    },
    BuiltValueNestedFieldError$(type, field, error) {
      return new A.BuiltValueNestedFieldError(type, field, error);
    },
    EnumClass: function EnumClass() {
    },
    newBuiltValueToStringHelper_closure: function newBuiltValueToStringHelper_closure() {
    },
    IndentingBuiltValueToStringHelper: function IndentingBuiltValueToStringHelper(t0) {
      this._result = t0;
    },
    BuiltValueNullFieldError: function BuiltValueNullFieldError(t0, t1) {
      this.type = t0;
      this.field = t1;
    },
    BuiltValueNestedFieldError: function BuiltValueNestedFieldError(t0, t1, t2) {
      this.type = t0;
      this.field = t1;
      this.error = t2;
    },
    JsonObject_JsonObject(value) {
      if (typeof value == "number")
        return new A.NumJsonObject(value);
      else if (typeof value == "string")
        return new A.StringJsonObject(value);
      else if (A._isBool(value))
        return new A.BoolJsonObject(value);
      else if (type$.List_dynamic._is(value))
        return new A.ListJsonObject(new A.UnmodifiableListView(value, type$.UnmodifiableListView_nullable_Object));
      else if (type$.Map_of_String_and_nullable_Object._is(value))
        return new A.MapJsonObject(new A.UnmodifiableMapView(value, type$.UnmodifiableMapView_of_String_and_nullable_Object));
      else if (type$.Map_dynamic_dynamic._is(value))
        return new A.MapJsonObject(new A.UnmodifiableMapView(value.cast$2$0(0, type$.String, type$.nullable_Object), type$.UnmodifiableMapView_of_String_and_nullable_Object));
      else
        throw A.wrapException(A.ArgumentError$value(value, "value", "Must be bool, List<Object?>, Map<String?, Object?>, num or String"));
    },
    JsonObject: function JsonObject() {
    },
    BoolJsonObject: function BoolJsonObject(t0) {
      this.value = t0;
    },
    ListJsonObject: function ListJsonObject(t0) {
      this.value = t0;
    },
    MapJsonObject: function MapJsonObject(t0) {
      this.value = t0;
    },
    NumJsonObject: function NumJsonObject(t0) {
      this.value = t0;
    },
    StringJsonObject: function StringJsonObject(t0) {
      this.value = t0;
    },
    Serializers_Serializers() {
      var t1 = type$.Type,
        t2 = type$.Serializer_dynamic,
        t3 = type$.String;
      t2 = new A.BuiltJsonSerializersBuilder(A.MapBuilder_MapBuilder(t1, t2), A.MapBuilder_MapBuilder(t3, t2), A.MapBuilder_MapBuilder(t3, t2), A.MapBuilder_MapBuilder(type$.FullType, type$.Function), A.ListBuilder_ListBuilder(B.List_empty0, type$.SerializerPlugin));
      t2.add$1(0, new A.BigIntSerializer(A.BuiltList_BuiltList$from([B.Type_BigInt_DZK, A.getRuntimeTypeOfDartObject($.$get$_BigIntImpl_zero())], t1)));
      t2.add$1(0, new A.BoolSerializer(A.BuiltList_BuiltList$from([B.Type_bool_wF1], t1)));
      t2.add$1(0, new A.ListSerializer(A.BuiltList_BuiltList$from([B.Type_List_hc9, A.createRuntimeType(A._arrayInstanceType(A._setArrayType([], type$.JSArray_Object)))], t1)));
      t3 = type$.Object;
      t2.add$1(0, new A.MapSerializer(A.BuiltList_BuiltList$from([B.Type_Map_9Aj, A.getRuntimeTypeOfDartObject(A.LinkedHashMap_LinkedHashMap$_empty(t3, t3))], t1)));
      t2.add$1(0, new A.SetSerializer(A.BuiltSet_BuiltSet$from([B.Type_Set_tZi, A.getRuntimeTypeOfDartObject(A.LinkedHashSet_LinkedHashSet$_empty(t3))], t1)));
      t2.add$1(0, new A.BuiltListSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltList_fj6, A.getRuntimeTypeOfDartObject(A.BuiltList_BuiltList$from(B.List_empty0, t3))], t1)));
      t2.add$1(0, new A.BuiltListMultimapSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltListMultimap_HQW, A.getRuntimeTypeOfDartObject(A.BuiltListMultimap_BuiltListMultimap(t3, t3))], t1)));
      t2.add$1(0, new A.BuiltMapSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltMap_TeX, A.getRuntimeTypeOfDartObject(A.BuiltMap_BuiltMap(t3, t3))], t1)));
      t2.add$1(0, new A.BuiltSetSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltSet_oHu, A.getRuntimeTypeOfDartObject(A.BuiltSet_BuiltSet$from(B.List_empty0, t3))], t1)));
      t2.add$1(0, new A.BuiltSetMultimapSerializer(A.BuiltSet_BuiltSet$from([B.Type_BuiltSetMultimap_yT7], t1)));
      t2.add$1(0, new A.DateTimeSerializer(A.BuiltList_BuiltList$from([B.Type_DateTime_akv], t1)));
      t2.add$1(0, new A.DoubleSerializer(A.BuiltList_BuiltList$from([B.Type_double_JIQ], t1)));
      t2.add$1(0, new A.DurationSerializer(A.BuiltList_BuiltList$from([B.Type_Duration_VAs], t1)));
      t2.add$1(0, new A.IntSerializer(A.BuiltList_BuiltList$from([B.Type_int_T7V], t1)));
      t2.add$1(0, new A.Int32Serializer(A.BuiltList_BuiltList$from([B.Type_Int32_291], t1)));
      t2.add$1(0, new A.Int64Serializer(A.BuiltList_BuiltList$from([B.Type_Int64_LHp], t1)));
      t2.add$1(0, new A.JsonObjectSerializer(A.BuiltList_BuiltList$from([B.Type_JsonObject_5jQ, B.Type_BoolJsonObject_Zqn, B.Type_ListJsonObject_qcV, B.Type_MapJsonObject_VMr, B.Type_NumJsonObject_hYY, B.Type_StringJsonObject_NL7], t1)));
      t2.add$1(0, new A.NullSerializer(A.BuiltList_BuiltList$from([B.Type_Null_0Rm], t1)));
      t2.add$1(0, new A.NumSerializer(A.BuiltList_BuiltList$from([B.Type_num_LZa], t1)));
      t2.add$1(0, new A.RegExpSerializer(A.BuiltList_BuiltList$from([B.Type_RegExp_w5l, $.$get$_runtimeType()], t1)));
      t2.add$1(0, new A.StringSerializer(A.BuiltList_BuiltList$from([B.Type_String_AXU], t1)));
      t2.add$1(0, new A.Uint8ListSerializer());
      t2.add$1(0, new A.UriSerializer(A.BuiltList_BuiltList$from([B.Type_Uri_l9i, A.getRuntimeTypeOfDartObject(A.Uri_parse("http://example.com")), A.getRuntimeTypeOfDartObject(A.Uri_parse("http://example.com:"))], t1)));
      t2.addBuilderFactory$2(B.FullType_hm4, new A.Serializers_Serializers_closure());
      t2.addBuilderFactory$2(B.FullType_WP0, new A.Serializers_Serializers_closure0());
      t2.addBuilderFactory$2(B.FullType_mo5, new A.Serializers_Serializers_closure1());
      t2.addBuilderFactory$2(B.FullType_tpw, new A.Serializers_Serializers_closure2());
      t2.addBuilderFactory$2(B.FullType_SWR, new A.Serializers_Serializers_closure3());
      return t2.build$0();
    },
    FullType__getRawName(type) {
      var $name = J.toString$0$(type),
        genericsStart = B.JSString_methods.indexOf$1($name, "<");
      return genericsStart === -1 ? $name : B.JSString_methods.substring$2($name, 0, genericsStart);
    },
    DeserializationError_DeserializationError(json, type, error) {
      var limitedJson = J.toString$0$(json),
        t1 = limitedJson.length;
      if (t1 > 80)
        B.JSString_methods.replaceRange$3(limitedJson, 77, t1, "...");
      return new A.DeserializationError(type, error);
    },
    Serializers_Serializers_closure: function Serializers_Serializers_closure() {
    },
    Serializers_Serializers_closure0: function Serializers_Serializers_closure0() {
    },
    Serializers_Serializers_closure1: function Serializers_Serializers_closure1() {
    },
    Serializers_Serializers_closure2: function Serializers_Serializers_closure2() {
    },
    Serializers_Serializers_closure3: function Serializers_Serializers_closure3() {
    },
    FullType: function FullType(t0, t1, t2) {
      this.root = t0;
      this.parameters = t1;
      this.nullable = t2;
    },
    DeserializationError: function DeserializationError(t0, t1) {
      this.type = t0;
      this.error = t1;
    },
    BigIntSerializer: function BigIntSerializer(t0) {
      this.types = t0;
    },
    BoolSerializer: function BoolSerializer(t0) {
      this.types = t0;
    },
    BuiltJsonSerializersBuilder$_(_typeToSerializer, _wireNameToSerializer, _typeNameToSerializer, _builderFactories, _plugins) {
      return new A.BuiltJsonSerializersBuilder(_typeToSerializer, _wireNameToSerializer, _typeNameToSerializer, _builderFactories, _plugins);
    },
    _getRawName(type) {
      var $name = J.toString$0$(type),
        genericsStart = B.JSString_methods.indexOf$1($name, "<");
      return genericsStart === -1 ? $name : B.JSString_methods.substring$2($name, 0, genericsStart);
    },
    _noSerializerMessageFor(typeName) {
      var maybeRecordAdvice = B.JSString_methods.contains$1(typeName, "(") ? " Note that record types are not automatically serializable, please write and install your own `Serializer`." : "";
      return "No serializer for '" + typeName + "'." + maybeRecordAdvice;
    },
    BuiltJsonSerializers: function BuiltJsonSerializers(t0, t1, t2, t3, t4) {
      var _ = this;
      _._typeToSerializer = t0;
      _._wireNameToSerializer = t1;
      _._typeNameToSerializer = t2;
      _.builderFactories = t3;
      _.serializerPlugins = t4;
    },
    BuiltJsonSerializersBuilder: function BuiltJsonSerializersBuilder(t0, t1, t2, t3, t4) {
      var _ = this;
      _._typeToSerializer = t0;
      _._wireNameToSerializer = t1;
      _._typeNameToSerializer = t2;
      _._builderFactories = t3;
      _._plugins = t4;
    },
    BuiltListMultimapSerializer: function BuiltListMultimapSerializer(t0) {
      this.types = t0;
    },
    BuiltListMultimapSerializer_serialize_closure: function BuiltListMultimapSerializer_serialize_closure(t0, t1) {
      this.serializers = t0;
      this.valueType = t1;
    },
    BuiltListMultimapSerializer_deserialize_closure: function BuiltListMultimapSerializer_deserialize_closure(t0, t1) {
      this.serializers = t0;
      this.valueType = t1;
    },
    BuiltListSerializer: function BuiltListSerializer(t0) {
      this.types = t0;
    },
    BuiltListSerializer_serialize_closure: function BuiltListSerializer_serialize_closure(t0, t1) {
      this.serializers = t0;
      this.elementType = t1;
    },
    BuiltListSerializer_deserialize_closure: function BuiltListSerializer_deserialize_closure(t0, t1) {
      this.serializers = t0;
      this.elementType = t1;
    },
    BuiltMapSerializer: function BuiltMapSerializer(t0) {
      this.types = t0;
    },
    BuiltSetMultimapSerializer: function BuiltSetMultimapSerializer(t0) {
      this.types = t0;
    },
    BuiltSetMultimapSerializer_serialize_closure: function BuiltSetMultimapSerializer_serialize_closure(t0, t1) {
      this.serializers = t0;
      this.valueType = t1;
    },
    BuiltSetMultimapSerializer_deserialize_closure: function BuiltSetMultimapSerializer_deserialize_closure(t0, t1) {
      this.serializers = t0;
      this.valueType = t1;
    },
    BuiltSetSerializer: function BuiltSetSerializer(t0) {
      this.types = t0;
    },
    BuiltSetSerializer_serialize_closure: function BuiltSetSerializer_serialize_closure(t0, t1) {
      this.serializers = t0;
      this.elementType = t1;
    },
    BuiltSetSerializer_deserialize_closure: function BuiltSetSerializer_deserialize_closure(t0, t1) {
      this.serializers = t0;
      this.elementType = t1;
    },
    DateTimeSerializer: function DateTimeSerializer(t0) {
      this.types = t0;
    },
    DoubleSerializer: function DoubleSerializer(t0) {
      this.types = t0;
    },
    DurationSerializer: function DurationSerializer(t0) {
      this.types = t0;
    },
    Int32Serializer: function Int32Serializer(t0) {
      this.types = t0;
    },
    Int64Serializer: function Int64Serializer(t0) {
      this.types = t0;
    },
    IntSerializer: function IntSerializer(t0) {
      this.types = t0;
    },
    JsonObjectSerializer: function JsonObjectSerializer(t0) {
      this.types = t0;
    },
    ListSerializer: function ListSerializer(t0) {
      this.types = t0;
    },
    ListSerializer_serialize_closure: function ListSerializer_serialize_closure(t0, t1) {
      this.serializers = t0;
      this.elementType = t1;
    },
    MapSerializer: function MapSerializer(t0) {
      this.types = t0;
    },
    NullSerializer: function NullSerializer(t0) {
      this.types = t0;
    },
    NumSerializer: function NumSerializer(t0) {
      this.types = t0;
    },
    RegExpSerializer: function RegExpSerializer(t0) {
      this.types = t0;
    },
    SetSerializer: function SetSerializer(t0) {
      this.types = t0;
    },
    SetSerializer_serialize_closure: function SetSerializer_serialize_closure(t0, t1) {
      this.serializers = t0;
      this.elementType = t1;
    },
    StringSerializer: function StringSerializer(t0) {
      this.types = t0;
    },
    Uint8ListSerializer: function Uint8ListSerializer() {
    },
    UriSerializer: function UriSerializer(t0) {
      this.types = t0;
    },
    CanonicalizedMap: function CanonicalizedMap() {
    },
    CanonicalizedMap_addAll_closure: function CanonicalizedMap_addAll_closure(t0) {
      this.$this = t0;
    },
    CanonicalizedMap_forEach_closure: function CanonicalizedMap_forEach_closure(t0, t1) {
      this.$this = t0;
      this.f = t1;
    },
    CanonicalizedMap_keys_closure: function CanonicalizedMap_keys_closure(t0) {
      this.$this = t0;
    },
    CanonicalizedMap_map_closure: function CanonicalizedMap_map_closure(t0, t1, t2, t3) {
      var _ = this;
      _.$this = t0;
      _.transform = t1;
      _.K2 = t2;
      _.V2 = t3;
    },
    DefaultEquality: function DefaultEquality(t0) {
      this.$ti = t0;
    },
    IterableEquality: function IterableEquality(t0, t1) {
      this._elementEquality = t0;
      this.$ti = t1;
    },
    ListEquality: function ListEquality(t0, t1) {
      this._elementEquality = t0;
      this.$ti = t1;
    },
    _UnorderedEquality: function _UnorderedEquality() {
    },
    SetEquality: function SetEquality(t0, t1) {
      this._elementEquality = t0;
      this.$ti = t1;
    },
    _MapEntry: function _MapEntry(t0, t1, t2) {
      this.equality = t0;
      this.key = t1;
      this.value = t2;
    },
    MapEquality: function MapEquality(t0, t1, t2) {
      this._keyEquality = t0;
      this._valueEquality = t1;
      this.$ti = t2;
    },
    DeepCollectionEquality: function DeepCollectionEquality() {
    },
    QueueList__computeInitialCapacity(initialCapacity) {
      return 8;
    },
    QueueList__nextPowerOf2(number) {
      var nextNumber;
      number = (number << 1 >>> 0) - 1;
      for (; true; number = nextNumber) {
        nextNumber = (number & number - 1) >>> 0;
        if (nextNumber === 0)
          return number;
      }
    },
    QueueList: function QueueList(t0, t1, t2, t3) {
      var _ = this;
      _._queue_list$_table = t0;
      _._queue_list$_head = t1;
      _._queue_list$_tail = t2;
      _.$ti = t3;
    },
    _CastQueueList: function _CastQueueList(t0, t1, t2, t3, t4) {
      var _ = this;
      _._queue_list$_delegate = t0;
      _._queue_list$_table = t1;
      _._queue_list$_head = t2;
      _._queue_list$_tail = t3;
      _.$ti = t4;
    },
    _QueueList_Object_ListMixin: function _QueueList_Object_ListMixin() {
    },
    _$valueOf($name) {
      switch ($name) {
        case "started":
          return B.BuildStatus_started;
        case "succeeded":
          return B.BuildStatus_succeeded;
        case "failed":
          return B.BuildStatus_failed;
        default:
          throw A.wrapException(A.ArgumentError$($name, null));
      }
    },
    BuildStatus: function BuildStatus(t0) {
      this.name = t0;
    },
    BuildResult: function BuildResult() {
    },
    _$BuildStatusSerializer: function _$BuildStatusSerializer() {
    },
    _$BuildResultSerializer: function _$BuildResultSerializer() {
    },
    _$BuildResult: function _$BuildResult(t0) {
      this.status = t0;
    },
    BuildResultBuilder: function BuildResultBuilder() {
      this._status = this._build_result$_$v = null;
    },
    ConnectRequest: function ConnectRequest() {
    },
    _$ConnectRequestSerializer: function _$ConnectRequestSerializer() {
    },
    _$ConnectRequest: function _$ConnectRequest(t0, t1, t2) {
      this.appId = t0;
      this.instanceId = t1;
      this.entrypointPath = t2;
    },
    ConnectRequestBuilder: function ConnectRequestBuilder() {
      var _ = this;
      _._entrypointPath = _._instanceId = _._connect_request$_appId = _._connect_request$_$v = null;
    },
    DebugEvent: function DebugEvent() {
    },
    BatchedDebugEvents: function BatchedDebugEvents() {
    },
    _$DebugEventSerializer: function _$DebugEventSerializer() {
    },
    _$BatchedDebugEventsSerializer: function _$BatchedDebugEventsSerializer() {
    },
    _$DebugEvent: function _$DebugEvent(t0, t1, t2) {
      this.kind = t0;
      this.eventData = t1;
      this.timestamp = t2;
    },
    DebugEventBuilder: function DebugEventBuilder() {
      var _ = this;
      _._timestamp = _._eventData = _._debug_event$_kind = _._debug_event$_$v = null;
    },
    _$BatchedDebugEvents: function _$BatchedDebugEvents(t0) {
      this.events = t0;
    },
    BatchedDebugEventsBuilder: function BatchedDebugEventsBuilder() {
      this._events = this._debug_event$_$v = null;
    },
    DebugInfo: function DebugInfo() {
    },
    _$DebugInfoSerializer: function _$DebugInfoSerializer() {
    },
    _$DebugInfo: function _$DebugInfo(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
      var _ = this;
      _.appEntrypointPath = t0;
      _.appId = t1;
      _.appInstanceId = t2;
      _.appOrigin = t3;
      _.appUrl = t4;
      _.authUrl = t5;
      _.dwdsVersion = t6;
      _.extensionUrl = t7;
      _.isInternalBuild = t8;
      _.isFlutterApp = t9;
      _.workspaceName = t10;
      _.tabUrl = t11;
      _.tabId = t12;
    },
    DebugInfoBuilder: function DebugInfoBuilder() {
      var _ = this;
      _._tabId = _._tabUrl = _._workspaceName = _._isFlutterApp = _._isInternalBuild = _._extensionUrl = _._dwdsVersion = _._authUrl = _._appUrl = _._appOrigin = _._appInstanceId = _._appId = _._appEntrypointPath = _._$v = null;
    },
    DevToolsRequest: function DevToolsRequest() {
    },
    DevToolsResponse: function DevToolsResponse() {
    },
    _$DevToolsRequestSerializer: function _$DevToolsRequestSerializer() {
    },
    _$DevToolsResponseSerializer: function _$DevToolsResponseSerializer() {
    },
    _$DevToolsRequest: function _$DevToolsRequest(t0, t1, t2, t3, t4, t5) {
      var _ = this;
      _.appId = t0;
      _.instanceId = t1;
      _.contextId = t2;
      _.tabUrl = t3;
      _.uriOnly = t4;
      _.client = t5;
    },
    DevToolsRequestBuilder: function DevToolsRequestBuilder() {
      var _ = this;
      _._devtools_request$_client = _._uriOnly = _._devtools_request$_tabUrl = _._contextId = _._devtools_request$_instanceId = _._devtools_request$_appId = _._devtools_request$_$v = null;
    },
    _$DevToolsResponse: function _$DevToolsResponse(t0, t1, t2) {
      this.success = t0;
      this.promptExtension = t1;
      this.error = t2;
    },
    DevToolsResponseBuilder: function DevToolsResponseBuilder() {
      var _ = this;
      _._error = _._promptExtension = _._success = _._devtools_request$_$v = null;
    },
    ErrorResponse: function ErrorResponse() {
    },
    _$ErrorResponseSerializer: function _$ErrorResponseSerializer() {
    },
    _$ErrorResponse: function _$ErrorResponse(t0, t1) {
      this.error = t0;
      this.stackTrace = t1;
    },
    ErrorResponseBuilder: function ErrorResponseBuilder() {
      this._error_response$_stackTrace = this._error_response$_error = this._error_response$_$v = null;
    },
    ExtensionRequest: function ExtensionRequest() {
    },
    ExtensionResponse: function ExtensionResponse() {
    },
    ExtensionEvent: function ExtensionEvent() {
    },
    BatchedEvents: function BatchedEvents() {
    },
    _$ExtensionRequestSerializer: function _$ExtensionRequestSerializer() {
    },
    _$ExtensionResponseSerializer: function _$ExtensionResponseSerializer() {
    },
    _$ExtensionEventSerializer: function _$ExtensionEventSerializer() {
    },
    _$BatchedEventsSerializer: function _$BatchedEventsSerializer() {
    },
    _$ExtensionRequest: function _$ExtensionRequest(t0, t1, t2) {
      this.id = t0;
      this.command = t1;
      this.commandParams = t2;
    },
    ExtensionRequestBuilder: function ExtensionRequestBuilder() {
      var _ = this;
      _._commandParams = _._command = _._id = _._extension_request$_$v = null;
    },
    _$ExtensionResponse: function _$ExtensionResponse(t0, t1, t2, t3) {
      var _ = this;
      _.id = t0;
      _.success = t1;
      _.result = t2;
      _.error = t3;
    },
    ExtensionResponseBuilder: function ExtensionResponseBuilder() {
      var _ = this;
      _._extension_request$_error = _._extension_request$_result = _._extension_request$_success = _._id = _._extension_request$_$v = null;
    },
    _$ExtensionEvent: function _$ExtensionEvent(t0, t1) {
      this.params = t0;
      this.method = t1;
    },
    ExtensionEventBuilder: function ExtensionEventBuilder() {
      this._extension_request$_method = this._params = this._extension_request$_$v = null;
    },
    _$BatchedEvents: function _$BatchedEvents(t0) {
      this.events = t0;
    },
    BatchedEventsBuilder: function BatchedEventsBuilder() {
      this._extension_request$_events = this._extension_request$_$v = null;
    },
    HotReloadRequest: function HotReloadRequest() {
    },
    _$HotReloadRequestSerializer: function _$HotReloadRequestSerializer() {
    },
    _$HotReloadRequest: function _$HotReloadRequest(t0) {
      this.id = t0;
    },
    HotReloadRequestBuilder: function HotReloadRequestBuilder() {
      this._hot_reload_request$_id = this._hot_reload_request$_$v = null;
    },
    HotReloadResponse___new_tearOff(updates) {
      var t1 = new A.HotReloadResponseBuilder();
      type$.nullable_void_Function_HotReloadResponseBuilder._as(type$.void_Function_HotReloadResponseBuilder._as(updates)).call$1(t1);
      return t1._hot_reload_response$_build$0();
    },
    HotReloadResponse: function HotReloadResponse() {
    },
    _$HotReloadResponseSerializer: function _$HotReloadResponseSerializer() {
    },
    _$HotReloadResponse: function _$HotReloadResponse(t0, t1, t2) {
      this.id = t0;
      this.success = t1;
      this.errorMessage = t2;
    },
    HotReloadResponseBuilder: function HotReloadResponseBuilder() {
      var _ = this;
      _._errorMessage = _._hot_reload_response$_success = _._hot_reload_response$_id = _._hot_reload_response$_$v = null;
    },
    IsolateExit: function IsolateExit() {
    },
    IsolateStart: function IsolateStart() {
    },
    _$IsolateExitSerializer: function _$IsolateExitSerializer() {
    },
    _$IsolateStartSerializer: function _$IsolateStartSerializer() {
    },
    _$IsolateExit: function _$IsolateExit() {
    },
    IsolateExitBuilder: function IsolateExitBuilder() {
      this._isolate_events$_$v = null;
    },
    _$IsolateStart: function _$IsolateStart() {
    },
    IsolateStartBuilder: function IsolateStartBuilder() {
      this._isolate_events$_$v = null;
    },
    RegisterEvent: function RegisterEvent() {
    },
    _$RegisterEventSerializer: function _$RegisterEventSerializer() {
    },
    _$RegisterEvent: function _$RegisterEvent(t0, t1) {
      this.eventData = t0;
      this.timestamp = t1;
    },
    RegisterEventBuilder: function RegisterEventBuilder() {
      this._register_event$_timestamp = this._register_event$_eventData = this._register_event$_$v = null;
    },
    RunRequest: function RunRequest() {
    },
    _$RunRequestSerializer: function _$RunRequestSerializer() {
    },
    _$RunRequest: function _$RunRequest() {
    },
    _$serializers_closure: function _$serializers_closure() {
    },
    _$serializers_closure0: function _$serializers_closure0() {
    },
    BatchedStreamController: function BatchedStreamController(t0, t1, t2, t3, t4, t5) {
      var _ = this;
      _._checkDelayMilliseconds = t0;
      _._batchDelayMilliseconds = t1;
      _._inputController = t2;
      _.__BatchedStreamController__inputQueue_A = $;
      _._outputController = t3;
      _._completer = t4;
      _.$ti = t5;
    },
    BatchedStreamController__hasEventOrTimeOut_closure: function BatchedStreamController__hasEventOrTimeOut_closure() {
    },
    BatchedStreamController__hasEventDuring_closure: function BatchedStreamController__hasEventDuring_closure() {
    },
    SocketClient: function SocketClient() {
    },
    SseSocketClient: function SseSocketClient(t0) {
      this._sockets$_client = t0;
    },
    WebSocketClient: function WebSocketClient(t0) {
      this._channel = t0;
    },
    WebSocketClient_stream_closure: function WebSocketClient_stream_closure() {
    },
    safeUnawaited(future) {
      future.catchError$1(new A.safeUnawaited_closure());
    },
    safeUnawaited_closure: function safeUnawaited_closure() {
    },
    Int32: function Int32(t0) {
      this._i = t0;
    },
    Int64__parseRadix(s, radix, throwOnError) {
      var d0, d1, d2, digit, d00, d10,
        negative = B.JSString_methods.startsWith$1(s, "-"),
        i = negative ? 1 : 0,
        t1 = s.length;
      if (i >= t1)
        throw A.wrapException(A.FormatException$("No digits", s, i));
      for (d0 = 0, d1 = 0, d2 = 0; i < t1; ++i, d1 = d10, d0 = d00) {
        digit = A.decodeDigit(s.charCodeAt(i));
        if (digit < radix) {
          d0 = d0 * radix + digit;
          d00 = d0 & 4194303;
          d1 = d1 * radix + B.JSInt_methods._shrOtherPositive$1(d0, 22);
          d10 = d1 & 4194303;
          d2 = d2 * radix + (d1 >>> 22) & 1048575;
        } else
          throw A.wrapException(A.FormatException$("Not radix digit", s, i));
      }
      if (negative)
        return A.Int64__sub(0, 0, 0, d0, d1, d2);
      return new A.Int64(d0 & 4194303, d1 & 4194303, d2 & 1048575);
    },
    Int64_Int64(value) {
      var v2, v1, t1, t2, t3,
        negative = value < 0;
      if (negative)
        value = -value;
      v2 = B.JSInt_methods._tdivFast$1(value, 17592186044416);
      value -= v2 * 17592186044416;
      v1 = B.JSInt_methods._tdivFast$1(value, 4194304);
      t1 = value - v1 * 4194304 & 4194303;
      t2 = v1 & 4194303;
      t3 = v2 & 1048575;
      return negative ? A.Int64__sub(0, 0, 0, t1, t2, t3) : new A.Int64(t1, t2, t3);
    },
    Int64__promote(value) {
      if (value instanceof A.Int64)
        return value;
      else if (A._isInt(value))
        return A.Int64_Int64(value);
      else if (value instanceof A.Int32)
        return A.Int64_Int64(value._i);
      throw A.wrapException(A.ArgumentError$value(value, "other", "not an int, Int32 or Int64"));
    },
    Int64__toRadixStringUnsigned(radix, d0, d1, d2, sign) {
      var d4, d3, fatRadix, chunk1, chunk2, chunk3, q, q0, q1, q2, q3, chunk10, residue;
      if (d0 === 0 && d1 === 0 && d2 === 0)
        return "0";
      d4 = (d2 << 4 | d1 >>> 18) >>> 0;
      d3 = d1 >>> 8 & 1023;
      d2 = (d1 << 2 | d0 >>> 20) & 1023;
      d1 = d0 >>> 10 & 1023;
      d0 &= 1023;
      if (!(radix < 37))
        return A.ioore(B.List_ZNA, radix);
      fatRadix = B.List_ZNA[radix];
      chunk1 = "";
      chunk2 = "";
      chunk3 = "";
      while (true) {
        if (!!(d4 === 0 && d3 === 0))
          break;
        q = B.JSInt_methods.$tdiv(d4, fatRadix);
        d3 += d4 - q * fatRadix << 10 >>> 0;
        q0 = B.JSInt_methods.$tdiv(d3, fatRadix);
        d2 += d3 - q0 * fatRadix << 10 >>> 0;
        q1 = B.JSInt_methods.$tdiv(d2, fatRadix);
        d1 += d2 - q1 * fatRadix << 10 >>> 0;
        q2 = B.JSInt_methods.$tdiv(d1, fatRadix);
        d0 += d1 - q2 * fatRadix << 10 >>> 0;
        q3 = B.JSInt_methods.$tdiv(d0, fatRadix);
        chunk10 = B.JSString_methods.substring$1(B.JSInt_methods.toRadixString$1(fatRadix + (d0 - q3 * fatRadix), radix), 1);
        chunk3 = chunk2;
        chunk2 = chunk1;
        chunk1 = chunk10;
        d3 = q0;
        d4 = q;
        d2 = q1;
        d1 = q2;
        d0 = q3;
      }
      residue = (d2 << 20 >>> 0) + (d1 << 10 >>> 0) + d0;
      return sign + (residue === 0 ? "" : B.JSInt_methods.toRadixString$1(residue, radix)) + chunk1 + chunk2 + chunk3;
    },
    Int64__sub(a0, a1, a2, b0, b1, b2) {
      var diff0 = a0 - b0,
        diff1 = a1 - b1 - (B.JSInt_methods._shrOtherPositive$1(diff0, 22) & 1);
      return new A.Int64(diff0 & 4194303, diff1 & 4194303, a2 - b2 - (B.JSInt_methods._shrOtherPositive$1(diff1, 22) & 1) & 1048575);
    },
    Int64: function Int64(t0, t1, t2) {
      this._l = t0;
      this._m = t1;
      this._h = t2;
    },
    stronglyConnectedComponents(nodes, edges, $T) {
      var t2, t3, t4, node, index, t5, state, iterator, index0, lowLink, t6, next, component, _null = null,
        result = A._setArrayType([], $T._eval$1("JSArray<List<0>>")),
        t1 = type$.int,
        lowLinks = A.HashMap_HashMap(_null, _null, _null, $T, t1),
        indexes = A.HashMap_HashMap(_null, _null, _null, $T, t1),
        onStack = A.HashSet_HashSet(_null, _null, $T),
        lastVisited = A.ListQueue$($T);
      t1 = A._setArrayType([], $T._eval$1("JSArray<_StackState<0>>"));
      for (t2 = nodes.$ti, t3 = new A.ListIterator(nodes, nodes.get$length(0), t2._eval$1("ListIterator<ListIterable.E>")), t4 = $T._eval$1("_StackState<0>"), t2 = t2._eval$1("ListIterable.E"); t3.moveNext$0();) {
        node = t3.__internal$_current;
        t1.push(new A._StackState(node == null ? t2._as(node) : node, _null, t4));
      }
      $label0$0:
        for (t2 = lastVisited.$ti._precomputed1, t3 = $T._eval$1("JSArray<0>"), index = 0; t5 = t1.length, t5 !== 0;) {
          if (0 >= t5)
            return A.ioore(t1, -1);
          state = t1.pop();
          node = state.node;
          iterator = state.iterator;
          if (iterator == null) {
            if (indexes.containsKey$1(node))
              continue $label0$0;
            indexes.$indexSet(0, node, index);
            lowLinks.$indexSet(0, node, index);
            index0 = index + 1;
            iterator = J.get$iterator$ax(edges.call$1(node));
            if (!iterator.moveNext$0()) {
              B.JSArray_methods.add$1(result, A._setArrayType([node], t3));
              index = index0;
              continue $label0$0;
            }
            lastVisited._collection$_add$1(t2._as(node));
            onStack.add$1(0, node);
            lowLink = index;
            index = index0;
          } else {
            t5 = lowLinks.$index(0, node);
            t5.toString;
            t6 = lowLinks.$index(0, iterator.get$current());
            t6.toString;
            lowLink = Math.min(t5, t6);
          }
          do {
            next = iterator.get$current();
            if (!indexes.containsKey$1(next)) {
              B.JSArray_methods.add$1(t1, new A._StackState(node, iterator, t4));
              B.JSArray_methods.add$1(t1, new A._StackState(next, _null, t4));
              continue $label0$0;
            } else if (onStack.contains$1(0, next)) {
              t5 = indexes.$index(0, next);
              t5.toString;
              lowLink = Math.min(lowLink, t5);
              lowLinks.$indexSet(0, node, lowLink);
            }
          } while (iterator.moveNext$0());
          if (lowLink === indexes.$index(0, node)) {
            component = A._setArrayType([], t3);
            do {
              next = lastVisited.removeLast$0(0);
              onStack.remove$1(0, next);
              B.JSArray_methods.add$1(component, next);
            } while (!A._defaultEquals(next, node));
            B.JSArray_methods.add$1(result, component);
          }
        }
      return result;
    },
    _defaultEquals(a, b) {
      return J.$eq$(a, b);
    },
    _StackState: function _StackState(t0, t1, t2) {
      this.node = t0;
      this.iterator = t1;
      this.$ti = t2;
    },
    BaseClient: function BaseClient() {
    },
    BaseRequest: function BaseRequest() {
    },
    BaseRequest_closure: function BaseRequest_closure() {
    },
    BaseRequest_closure0: function BaseRequest_closure0() {
    },
    BaseResponse: function BaseResponse() {
    },
    _extension_0_get_responseHeaders(_this) {
      var _i, header, splitIdx, key, value,
        t1 = type$.String,
        headers = A.LinkedHashMap_LinkedHashMap$_empty(t1, t1),
        headersList = A._asString(_this.getAllResponseHeaders()).split("\r\n");
      for (t1 = headersList.length, _i = 0; _i < t1; ++_i) {
        header = headersList[_i];
        if (header.length === 0)
          continue;
        splitIdx = B.JSString_methods.indexOf$1(header, ": ");
        if (splitIdx === -1)
          continue;
        key = B.JSString_methods.substring$2(header, 0, splitIdx).toLowerCase();
        value = B.JSString_methods.substring$1(header, splitIdx + 2);
        if (headers.containsKey$1(key))
          headers.$indexSet(0, key, A.S(headers.$index(0, key)) + ", " + value);
        else
          headers.$indexSet(0, key, value);
      }
      return headers;
    },
    BrowserClient: function BrowserClient(t0) {
      this._xhrs = t0;
      this.withCredentials = false;
    },
    BrowserClient_send_closure: function BrowserClient_send_closure(t0, t1, t2) {
      this.xhr = t0;
      this.completer = t1;
      this.request = t2;
    },
    BrowserClient_send_closure0: function BrowserClient_send_closure0(t0, t1) {
      this.completer = t0;
      this.request = t1;
    },
    ByteStream: function ByteStream(t0) {
      this._stream = t0;
    },
    ByteStream_toBytes_closure: function ByteStream_toBytes_closure(t0) {
      this.completer = t0;
    },
    ClientException: function ClientException(t0, t1) {
      this.message = t0;
      this.uri = t1;
    },
    Request$(method, url) {
      var t1 = new Uint8Array(0),
        t2 = $.$get$BaseRequest__tokenRE();
      if (!t2._nativeRegExp.test(method))
        A.throwExpression(A.ArgumentError$value(method, "method", "Not a valid method"));
      t2 = type$.String;
      return new A.Request(B.C_Utf8Codec, t1, method, url, A.LinkedHashMap_LinkedHashMap(new A.BaseRequest_closure(), new A.BaseRequest_closure0(), t2, t2));
    },
    Request: function Request(t0, t1, t2, t3, t4) {
      var _ = this;
      _._defaultEncoding = t0;
      _._bodyBytes = t1;
      _.method = t2;
      _.url = t3;
      _.headers = t4;
      _._finalized = false;
    },
    Response_fromStream(response) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.Response),
        $async$returnValue, body, t1, t2, t3, t4, t5, t6;
      var $async$Response_fromStream = 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
              $async$goto = 3;
              return A._asyncAwait(response.stream.toBytes$0(), $async$Response_fromStream);
            case 3:
              // returning from await.
              body = $async$result;
              t1 = response.statusCode;
              t2 = response.request;
              t3 = response.headers;
              t4 = response.reasonPhrase;
              t5 = A.toUint8List(body);
              t6 = body.length;
              t5 = new A.Response(t5, t2, t1, t4, t6, t3, false, true);
              t5.BaseResponse$7$contentLength$headers$isRedirect$persistentConnection$reasonPhrase$request(t1, t6, t3, false, true, t4, t2);
              $async$returnValue = t5;
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$Response_fromStream, $async$completer);
    },
    _contentTypeForHeaders(headers) {
      var contentType = headers.$index(0, "content-type");
      if (contentType != null)
        return A.MediaType_MediaType$parse(contentType);
      return A.MediaType$("application", "octet-stream", null);
    },
    Response: function Response(t0, t1, t2, t3, t4, t5, t6, t7) {
      var _ = this;
      _.bodyBytes = t0;
      _.request = t1;
      _.statusCode = t2;
      _.reasonPhrase = t3;
      _.contentLength = t4;
      _.headers = t5;
      _.isRedirect = t6;
      _.persistentConnection = t7;
    },
    StreamedResponse: function StreamedResponse() {
    },
    StreamedResponseV2: function StreamedResponseV2(t0, t1, t2, t3, t4, t5, t6, t7) {
      var _ = this;
      _.stream = t0;
      _.request = t1;
      _.statusCode = t2;
      _.reasonPhrase = t3;
      _.contentLength = t4;
      _.headers = t5;
      _.isRedirect = t6;
      _.persistentConnection = t7;
    },
    CaseInsensitiveMap__canonicalizer(key) {
      return A._asString(key).toLowerCase();
    },
    CaseInsensitiveMap: function CaseInsensitiveMap(t0, t1, t2) {
      this._canonicalize = t0;
      this._base = t1;
      this.$ti = t2;
    },
    MediaType_MediaType$parse(mediaType) {
      return A.wrapFormatException("media type", mediaType, new A.MediaType_MediaType$parse_closure(mediaType), type$.MediaType);
    },
    MediaType$(type, subtype, parameters) {
      var t1 = type$.String;
      if (parameters == null)
        t1 = A.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
      else {
        t1 = new A.CaseInsensitiveMap(A.case_insensitive_map_CaseInsensitiveMap__canonicalizer$closure(), A.LinkedHashMap_LinkedHashMap$_empty(t1, type$.MapEntry_String_String), type$.CaseInsensitiveMap_String);
        t1.addAll$1(0, parameters);
      }
      return new A.MediaType(type.toLowerCase(), subtype.toLowerCase(), new A.UnmodifiableMapView(t1, type$.UnmodifiableMapView_String_String));
    },
    MediaType: function MediaType(t0, t1, t2) {
      this.type = t0;
      this.subtype = t1;
      this.parameters = t2;
    },
    MediaType_MediaType$parse_closure: function MediaType_MediaType$parse_closure(t0) {
      this.mediaType = t0;
    },
    MediaType_toString_closure: function MediaType_toString_closure(t0) {
      this.buffer = t0;
    },
    MediaType_toString__closure: function MediaType_toString__closure() {
    },
    expectQuotedString(scanner) {
      var string;
      scanner.expect$2$name($.$get$_quotedString(), "quoted string");
      string = scanner.get$lastMatch().$index(0, 0);
      return A.stringReplaceAllFuncUnchecked(B.JSString_methods.substring$2(string, 1, string.length - 1), $.$get$_quotedPair(), type$.nullable_String_Function_Match._as(type$.String_Function_Match._as(new A.expectQuotedString_closure())), null);
    },
    expectQuotedString_closure: function expectQuotedString_closure() {
    },
    Level: function Level(t0, t1) {
      this.name = t0;
      this.value = t1;
    },
    LogRecord: function LogRecord(t0, t1, t2) {
      this.level = t0;
      this.message = t1;
      this.loggerName = t2;
    },
    Logger_Logger($name) {
      return $.Logger__loggers.putIfAbsent$2($name, new A.Logger_Logger_closure($name));
    },
    Logger: function Logger(t0, t1, t2) {
      var _ = this;
      _.name = t0;
      _.parent = t1;
      _._level = null;
      _._children = t2;
    },
    Logger_Logger_closure: function Logger_Logger_closure(t0) {
      this.name = t0;
    },
    _parseUri(uri) {
      return uri;
    },
    _validateArgList(method, args) {
      var numArgs, i, numArgs0, message, t1, t2, t3, t4;
      for (numArgs = args.length, i = 1; i < numArgs; ++i) {
        if (args[i] == null || args[i - 1] != null)
          continue;
        for (; numArgs >= 1; numArgs = numArgs0) {
          numArgs0 = numArgs - 1;
          if (args[numArgs0] != null)
            break;
        }
        message = new A.StringBuffer("");
        t1 = method + "(";
        message._contents = t1;
        t2 = A._arrayInstanceType(args);
        t3 = t2._eval$1("SubListIterable<1>");
        t4 = new A.SubListIterable(args, 0, numArgs, t3);
        t4.SubListIterable$3(args, 0, numArgs, t2._precomputed1);
        t3 = t1 + new A.MappedListIterable(t4, t3._eval$1("String(ListIterable.E)")._as(new A._validateArgList_closure()), t3._eval$1("MappedListIterable<ListIterable.E,String>")).join$1(0, ", ");
        message._contents = t3;
        message._contents = t3 + ("): part " + (i - 1) + " was null, but part " + i + " was not.");
        throw A.wrapException(A.ArgumentError$(message.toString$0(0), null));
      }
    },
    Context: function Context(t0, t1) {
      this.style = t0;
      this._context$_current = t1;
    },
    Context_joinAll_closure: function Context_joinAll_closure() {
    },
    Context_split_closure: function Context_split_closure() {
    },
    _validateArgList_closure: function _validateArgList_closure() {
    },
    InternalStyle: function InternalStyle() {
    },
    ParsedPath_ParsedPath$parse(path, style) {
      var t1, parts, separators, t2, start, i,
        root = style.getRoot$1(path);
      style.isRootRelative$1(path);
      if (root != null)
        path = B.JSString_methods.substring$1(path, root.length);
      t1 = type$.JSArray_String;
      parts = A._setArrayType([], t1);
      separators = A._setArrayType([], t1);
      t1 = path.length;
      if (t1 !== 0) {
        if (0 >= t1)
          return A.ioore(path, 0);
        t2 = style.isSeparator$1(path.charCodeAt(0));
      } else
        t2 = false;
      if (t2) {
        if (0 >= t1)
          return A.ioore(path, 0);
        B.JSArray_methods.add$1(separators, path[0]);
        start = 1;
      } else {
        B.JSArray_methods.add$1(separators, "");
        start = 0;
      }
      for (i = start; i < t1; ++i)
        if (style.isSeparator$1(path.charCodeAt(i))) {
          B.JSArray_methods.add$1(parts, B.JSString_methods.substring$2(path, start, i));
          B.JSArray_methods.add$1(separators, path[i]);
          start = i + 1;
        }
      if (start < t1) {
        B.JSArray_methods.add$1(parts, B.JSString_methods.substring$1(path, start));
        B.JSArray_methods.add$1(separators, "");
      }
      return new A.ParsedPath(style, root, parts, separators);
    },
    ParsedPath: function ParsedPath(t0, t1, t2, t3) {
      var _ = this;
      _.style = t0;
      _.root = t1;
      _.parts = t2;
      _.separators = t3;
    },
    PathException$(message) {
      return new A.PathException(message);
    },
    PathException: function PathException(t0) {
      this.message = t0;
    },
    Style__getPlatformStyle() {
      if (A.Uri_base().get$scheme() !== "file")
        return $.$get$Style_url();
      if (!B.JSString_methods.endsWith$1(A.Uri_base().get$path(), "/"))
        return $.$get$Style_url();
      if (A._Uri__Uri(null, "a/b", null, null).toFilePath$0() === "a\\b")
        return $.$get$Style_windows();
      return $.$get$Style_posix();
    },
    Style: function Style() {
    },
    PosixStyle: function PosixStyle(t0, t1, t2) {
      this.separatorPattern = t0;
      this.needsSeparatorPattern = t1;
      this.rootPattern = t2;
    },
    UrlStyle: function UrlStyle(t0, t1, t2, t3) {
      var _ = this;
      _.separatorPattern = t0;
      _.needsSeparatorPattern = t1;
      _.rootPattern = t2;
      _.relativeRootPattern = t3;
    },
    WindowsStyle: function WindowsStyle(t0, t1, t2, t3) {
      var _ = this;
      _.separatorPattern = t0;
      _.needsSeparatorPattern = t1;
      _.rootPattern = t2;
      _.relativeRootPattern = t3;
    },
    Pool: function Pool(t0, t1, t2, t3, t4) {
      var _ = this;
      _._requestedResources = t0;
      _._onReleaseCallbacks = t1;
      _._onReleaseCompleters = t2;
      _._maxAllocatedResources = t3;
      _._allocatedResources = 0;
      _._timer = null;
      _._closeMemo = t4;
    },
    Pool__runOnRelease_closure: function Pool__runOnRelease_closure(t0) {
      this.$this = t0;
    },
    Pool__runOnRelease_closure0: function Pool__runOnRelease_closure0(t0) {
      this.$this = t0;
    },
    PoolResource: function PoolResource(t0) {
      this._pool = t0;
      this._released = false;
    },
    FileLocation$_(file, offset) {
      if (offset < 0)
        A.throwExpression(A.RangeError$("Offset may not be negative, was " + offset + "."));
      else if (offset > file._decodedChars.length)
        A.throwExpression(A.RangeError$("Offset " + offset + string$.x20must_ + file.get$length(0) + "."));
      return new A.FileLocation(file, offset);
    },
    SourceFile: function SourceFile(t0, t1, t2) {
      var _ = this;
      _.url = t0;
      _._lineStarts = t1;
      _._decodedChars = t2;
      _._cachedLine = null;
    },
    FileLocation: function FileLocation(t0, t1) {
      this.file = t0;
      this.offset = t1;
    },
    _FileSpan: function _FileSpan(t0, t1, t2) {
      this.file = t0;
      this._file$_start = t1;
      this._file$_end = t2;
    },
    Highlighter$(span, color) {
      var t1 = A.Highlighter__collateLines(A._setArrayType([A._Highlight$(span, true)], type$.JSArray__Highlight)),
        t2 = new A.Highlighter_closure(color).call$0(),
        t3 = B.JSInt_methods.toString$0(B.JSArray_methods.get$last(t1).number + 1),
        t4 = A.Highlighter__contiguous(t1) ? 0 : 3,
        t5 = A._arrayInstanceType(t1);
      return new A.Highlighter(t1, t2, null, 1 + Math.max(t3.length, t4), new A.MappedListIterable(t1, t5._eval$1("int(1)")._as(new A.Highlighter$__closure()), t5._eval$1("MappedListIterable<1,int>")).reduce$1(0, B.CONSTANT), !A.isAllTheSame(new A.MappedListIterable(t1, t5._eval$1("Object?(1)")._as(new A.Highlighter$__closure0()), t5._eval$1("MappedListIterable<1,Object?>"))), new A.StringBuffer(""));
    },
    Highlighter__contiguous(lines) {
      var i, thisLine, nextLine;
      for (i = 0; i < lines.length - 1;) {
        thisLine = lines[i];
        ++i;
        nextLine = lines[i];
        if (thisLine.number + 1 !== nextLine.number && J.$eq$(thisLine.url, nextLine.url))
          return false;
      }
      return true;
    },
    Highlighter__collateLines(highlights) {
      var t1, t2,
        highlightsByUrl = A.groupBy(highlights, new A.Highlighter__collateLines_closure(), type$._Highlight, type$.Object);
      for (t1 = A._instanceType(highlightsByUrl), t2 = new A.LinkedHashMapValueIterator(highlightsByUrl, highlightsByUrl._modifications, highlightsByUrl._first, t1._eval$1("LinkedHashMapValueIterator<2>")); t2.moveNext$0();)
        J.sort$1$ax(t2.__js_helper$_current, new A.Highlighter__collateLines_closure0());
      t1 = t1._eval$1("LinkedHashMapEntriesIterable<1,2>");
      t2 = t1._eval$1("ExpandIterable<Iterable.E,_Line>");
      t1 = A.List_List$_of(new A.ExpandIterable(new A.LinkedHashMapEntriesIterable(highlightsByUrl, t1), t1._eval$1("Iterable<_Line>(Iterable.E)")._as(new A.Highlighter__collateLines_closure1()), t2), t2._eval$1("Iterable.E"));
      return t1;
    },
    _Highlight$(span, primary) {
      var t1 = new A._Highlight_closure(span).call$0();
      return new A._Highlight(t1, true, null);
    },
    _Highlight__normalizeNewlines(span) {
      var endOffset, t1, i, t2, t3, t4,
        text = span.get$text();
      if (!B.JSString_methods.contains$1(text, "\r\n"))
        return span;
      endOffset = span.get$end().get$offset();
      for (t1 = text.length - 1, i = 0; i < t1; ++i)
        if (text.charCodeAt(i) === 13 && text.charCodeAt(i + 1) === 10)
          --endOffset;
      t1 = span.get$start();
      t2 = span.get$sourceUrl();
      t3 = span.get$end().get$line();
      t2 = A.SourceLocation$(endOffset, span.get$end().get$column(), t3, t2);
      t3 = A.stringReplaceAllUnchecked(text, "\r\n", "\n");
      t4 = span.get$context();
      return A.SourceSpanWithContext$(t1, t2, t3, A.stringReplaceAllUnchecked(t4, "\r\n", "\n"));
    },
    _Highlight__normalizeTrailingNewline(span) {
      var context, text, start, end, t1, t2, t3;
      if (!B.JSString_methods.endsWith$1(span.get$context(), "\n"))
        return span;
      if (B.JSString_methods.endsWith$1(span.get$text(), "\n\n"))
        return span;
      context = B.JSString_methods.substring$2(span.get$context(), 0, span.get$context().length - 1);
      text = span.get$text();
      start = span.get$start();
      end = span.get$end();
      if (B.JSString_methods.endsWith$1(span.get$text(), "\n")) {
        t1 = A.findLineStart(span.get$context(), span.get$text(), span.get$start().get$column());
        t1.toString;
        t1 = t1 + span.get$start().get$column() + span.get$length(span) === span.get$context().length;
      } else
        t1 = false;
      if (t1) {
        text = B.JSString_methods.substring$2(span.get$text(), 0, span.get$text().length - 1);
        if (text.length === 0)
          end = start;
        else {
          t1 = span.get$end().get$offset();
          t2 = span.get$sourceUrl();
          t3 = span.get$end().get$line();
          end = A.SourceLocation$(t1 - 1, A._Highlight__lastLineLength(context), t3 - 1, t2);
          start = span.get$start().get$offset() === span.get$end().get$offset() ? end : span.get$start();
        }
      }
      return A.SourceSpanWithContext$(start, end, text, context);
    },
    _Highlight__normalizeEndOfLine(span) {
      var text, t1, t2, t3, t4;
      if (span.get$end().get$column() !== 0)
        return span;
      if (span.get$end().get$line() === span.get$start().get$line())
        return span;
      text = B.JSString_methods.substring$2(span.get$text(), 0, span.get$text().length - 1);
      t1 = span.get$start();
      t2 = span.get$end().get$offset();
      t3 = span.get$sourceUrl();
      t4 = span.get$end().get$line();
      t3 = A.SourceLocation$(t2 - 1, text.length - B.JSString_methods.lastIndexOf$1(text, "\n") - 1, t4 - 1, t3);
      return A.SourceSpanWithContext$(t1, t3, text, B.JSString_methods.endsWith$1(span.get$context(), "\n") ? B.JSString_methods.substring$2(span.get$context(), 0, span.get$context().length - 1) : span.get$context());
    },
    _Highlight__lastLineLength(text) {
      var t2,
        t1 = text.length;
      if (t1 === 0)
        return 0;
      else {
        t2 = t1 - 1;
        if (!(t2 >= 0))
          return A.ioore(text, t2);
        if (text.charCodeAt(t2) === 10)
          return t1 === 1 ? 0 : t1 - B.JSString_methods.lastIndexOf$2(text, "\n", t1 - 2) - 1;
        else
          return t1 - B.JSString_methods.lastIndexOf$1(text, "\n") - 1;
      }
    },
    Highlighter: function Highlighter(t0, t1, t2, t3, t4, t5, t6) {
      var _ = this;
      _._lines = t0;
      _._primaryColor = t1;
      _._secondaryColor = t2;
      _._paddingBeforeSidebar = t3;
      _._maxMultilineSpans = t4;
      _._multipleFiles = t5;
      _._buffer = t6;
    },
    Highlighter_closure: function Highlighter_closure(t0) {
      this.color = t0;
    },
    Highlighter$__closure: function Highlighter$__closure() {
    },
    Highlighter$___closure: function Highlighter$___closure() {
    },
    Highlighter$__closure0: function Highlighter$__closure0() {
    },
    Highlighter__collateLines_closure: function Highlighter__collateLines_closure() {
    },
    Highlighter__collateLines_closure0: function Highlighter__collateLines_closure0() {
    },
    Highlighter__collateLines_closure1: function Highlighter__collateLines_closure1() {
    },
    Highlighter__collateLines__closure: function Highlighter__collateLines__closure(t0) {
      this.line = t0;
    },
    Highlighter_highlight_closure: function Highlighter_highlight_closure() {
    },
    Highlighter__writeFileStart_closure: function Highlighter__writeFileStart_closure(t0) {
      this.$this = t0;
    },
    Highlighter__writeMultilineHighlights_closure: function Highlighter__writeMultilineHighlights_closure(t0, t1, t2) {
      this.$this = t0;
      this.startLine = t1;
      this.line = t2;
    },
    Highlighter__writeMultilineHighlights_closure0: function Highlighter__writeMultilineHighlights_closure0(t0, t1) {
      this.$this = t0;
      this.highlight = t1;
    },
    Highlighter__writeMultilineHighlights_closure1: function Highlighter__writeMultilineHighlights_closure1(t0) {
      this.$this = t0;
    },
    Highlighter__writeMultilineHighlights_closure2: function Highlighter__writeMultilineHighlights_closure2(t0, t1, t2, t3, t4, t5, t6) {
      var _ = this;
      _._box_0 = t0;
      _.$this = t1;
      _.current = t2;
      _.startLine = t3;
      _.line = t4;
      _.highlight = t5;
      _.endLine = t6;
    },
    Highlighter__writeMultilineHighlights__closure: function Highlighter__writeMultilineHighlights__closure(t0, t1) {
      this._box_0 = t0;
      this.$this = t1;
    },
    Highlighter__writeMultilineHighlights__closure0: function Highlighter__writeMultilineHighlights__closure0(t0, t1) {
      this.$this = t0;
      this.vertical = t1;
    },
    Highlighter__writeHighlightedText_closure: function Highlighter__writeHighlightedText_closure(t0, t1, t2, t3) {
      var _ = this;
      _.$this = t0;
      _.text = t1;
      _.startColumn = t2;
      _.endColumn = t3;
    },
    Highlighter__writeIndicator_closure: function Highlighter__writeIndicator_closure(t0, t1, t2) {
      this.$this = t0;
      this.line = t1;
      this.highlight = t2;
    },
    Highlighter__writeIndicator_closure0: function Highlighter__writeIndicator_closure0(t0, t1, t2) {
      this.$this = t0;
      this.line = t1;
      this.highlight = t2;
    },
    Highlighter__writeIndicator_closure1: function Highlighter__writeIndicator_closure1(t0, t1, t2, t3) {
      var _ = this;
      _.$this = t0;
      _.coversWholeLine = t1;
      _.line = t2;
      _.highlight = t3;
    },
    Highlighter__writeSidebar_closure: function Highlighter__writeSidebar_closure(t0, t1, t2) {
      this._box_0 = t0;
      this.$this = t1;
      this.end = t2;
    },
    _Highlight: function _Highlight(t0, t1, t2) {
      this.span = t0;
      this.isPrimary = t1;
      this.label = t2;
    },
    _Highlight_closure: function _Highlight_closure(t0) {
      this.span = t0;
    },
    _Line: function _Line(t0, t1, t2, t3) {
      var _ = this;
      _.text = t0;
      _.number = t1;
      _.url = t2;
      _.highlights = t3;
    },
    SourceLocation$(offset, column, line, sourceUrl) {
      if (offset < 0)
        A.throwExpression(A.RangeError$("Offset may not be negative, was " + offset + "."));
      else if (line < 0)
        A.throwExpression(A.RangeError$("Line may not be negative, was " + line + "."));
      else if (column < 0)
        A.throwExpression(A.RangeError$("Column may not be negative, was " + column + "."));
      return new A.SourceLocation(sourceUrl, offset, line, column);
    },
    SourceLocation: function SourceLocation(t0, t1, t2, t3) {
      var _ = this;
      _.sourceUrl = t0;
      _.offset = t1;
      _.line = t2;
      _.column = t3;
    },
    SourceLocationMixin: function SourceLocationMixin() {
    },
    SourceSpanBase: function SourceSpanBase() {
    },
    SourceSpanFormatException$(message, span, source) {
      return new A.SourceSpanFormatException(source, message, span);
    },
    SourceSpanException: function SourceSpanException() {
    },
    SourceSpanFormatException: function SourceSpanFormatException(t0, t1, t2) {
      this.source = t0;
      this._span_exception$_message = t1;
      this._span = t2;
    },
    SourceSpanMixin: function SourceSpanMixin() {
    },
    SourceSpanWithContext$(start, end, text, _context) {
      var t1 = new A.SourceSpanWithContext(_context, start, end, text);
      t1.SourceSpanBase$3(start, end, text);
      if (!B.JSString_methods.contains$1(_context, text))
        A.throwExpression(A.ArgumentError$('The context line "' + _context + '" must contain "' + text + '".', null));
      if (A.findLineStart(_context, text, start.get$column()) == null)
        A.throwExpression(A.ArgumentError$('The span text "' + text + '" must start at column ' + (start.get$column() + 1) + ' in a line within "' + _context + '".', null));
      return t1;
    },
    SourceSpanWithContext: function SourceSpanWithContext(t0, t1, t2, t3) {
      var _ = this;
      _._context = t0;
      _.start = t1;
      _.end = t2;
      _.text = t3;
    },
    SseClient$(serverUrl, debugKey) {
      var t3, t4, t5, _null = null,
        t1 = type$.String,
        t2 = A.StreamController_StreamController(_null, _null, false, t1);
      t1 = A.StreamController_StreamController(_null, _null, false, t1);
      t3 = A.Logger_Logger("SseClient");
      t4 = $.Zone__current;
      t5 = A.generateUuidV4();
      t1 = new A.SseClient(debugKey + "-" + t5, t2, t1, t3, new A._AsyncCompleter(new A._Future(t4, type$._Future_void), type$._AsyncCompleter_void));
      t1.SseClient$2$debugKey(serverUrl, debugKey);
      return t1;
    },
    SseClient: function SseClient(t0, t1, t2, t3, t4) {
      var _ = this;
      _._clientId = t0;
      _._incomingController = t1;
      _._outgoingController = t2;
      _._logger = t3;
      _._onConnected = t4;
      _._lastMessageId = -1;
      _.__SseClient__serverUrl_A = _.__SseClient__eventSource_A = $;
      _._errorTimer = null;
    },
    SseClient_closure: function SseClient_closure(t0) {
      this.$this = t0;
    },
    SseClient_closure0: function SseClient_closure0(t0) {
      this.$this = t0;
    },
    SseClient_closure1: function SseClient_closure1(t0) {
      this.$this = t0;
    },
    SseClient__closure: function SseClient__closure(t0, t1) {
      this.$this = t0;
      this.error = t1;
    },
    SseClient__onOutgoingMessage_closure: function SseClient__onOutgoingMessage_closure(t0, t1, t2) {
      this._box_0 = t0;
      this.$this = t1;
      this.message = t2;
    },
    generateUuidV4() {
      var t1 = new A.generateUuidV4_printDigits(),
        t2 = new A.generateUuidV4_bitsDigits(t1, new A.generateUuidV4_generateBits(B.C__JSRandom)),
        t3 = B.C__JSRandom.nextInt$1(4);
      return A.S(t2.call$2(16, 4)) + A.S(t2.call$2(16, 4)) + "-" + A.S(t2.call$2(16, 4)) + "-4" + A.S(t2.call$2(12, 3)) + "-" + A.S(t1.call$2(8 + t3, 1)) + A.S(t2.call$2(12, 3)) + "-" + A.S(t2.call$2(16, 4)) + A.S(t2.call$2(16, 4)) + A.S(t2.call$2(16, 4));
    },
    generateUuidV4_generateBits: function generateUuidV4_generateBits(t0) {
      this.random = t0;
    },
    generateUuidV4_printDigits: function generateUuidV4_printDigits() {
    },
    generateUuidV4_bitsDigits: function generateUuidV4_bitsDigits(t0, t1) {
      this.printDigits = t0;
      this.generateBits = t1;
    },
    GuaranteeChannel$(innerStream, innerSink, allowSinkErrors, $T) {
      var t2, t1 = {};
      t1.innerStream = innerStream;
      t2 = new A.GuaranteeChannel($T._eval$1("GuaranteeChannel<0>"));
      t2.GuaranteeChannel$3$allowSinkErrors(innerSink, allowSinkErrors, t1, $T);
      return t2;
    },
    GuaranteeChannel: function GuaranteeChannel(t0) {
      var _ = this;
      _.__GuaranteeChannel__streamController_F = _.__GuaranteeChannel__sink_F = $;
      _._guarantee_channel$_subscription = null;
      _._disconnected = false;
      _.$ti = t0;
    },
    GuaranteeChannel_closure: function GuaranteeChannel_closure(t0, t1, t2) {
      this._box_0 = t0;
      this.$this = t1;
      this.T = t2;
    },
    GuaranteeChannel__closure: function GuaranteeChannel__closure(t0) {
      this.$this = t0;
    },
    _GuaranteeSink: function _GuaranteeSink(t0, t1, t2, t3, t4) {
      var _ = this;
      _._inner = t0;
      _._guarantee_channel$_channel = t1;
      _._doneCompleter = t2;
      _._closed = _._disconnected = false;
      _._addStreamCompleter = _._addStreamSubscription = null;
      _._allowErrors = t3;
      _.$ti = t4;
    },
    _GuaranteeSink__addError_closure: function _GuaranteeSink__addError_closure() {
    },
    StreamChannelController: function StreamChannelController(t0) {
      this.__StreamChannelController__foreign_F = this.__StreamChannelController__local_F = $;
      this.$ti = t0;
    },
    StreamChannelMixin: function StreamChannelMixin() {
    },
    StringScannerException: function StringScannerException(t0, t1, t2) {
      this.source = t0;
      this._span_exception$_message = t1;
      this._span = t2;
    },
    StringScanner: function StringScanner(t0, t1) {
      var _ = this;
      _.sourceUrl = t0;
      _.string = t1;
      _._string_scanner$_position = 0;
      _._lastMatchPosition = _._lastMatch = null;
    },
    RNG: function RNG() {
    },
    MathRNG: function MathRNG(t0) {
      this._rnd = t0;
    },
    UuidV1: function UuidV1(t0) {
      this.goptions = t0;
    },
    _EventStreamSubscription$(_target, _eventType, onData, _useCapture, $T) {
      var t1;
      if (onData == null)
        t1 = null;
      else {
        t1 = A._wrapZone(new A._EventStreamSubscription_closure(onData), type$.JSObject);
        t1 = t1 == null ? null : A._functionToJS1(t1);
      }
      t1 = new A._EventStreamSubscription(_target, _eventType, t1, false, $T._eval$1("_EventStreamSubscription<0>"));
      t1._tryResume$0();
      return t1;
    },
    _wrapZone(callback, $T) {
      var t1 = $.Zone__current;
      if (t1 === B.C__RootZone)
        return callback;
      return t1.bindUnaryCallbackGuarded$1$1(callback, $T);
    },
    EventStreamProvider: function EventStreamProvider(t0, t1) {
      this._eventType = t0;
      this.$ti = t1;
    },
    _EventStream: function _EventStream(t0, t1, t2, t3) {
      var _ = this;
      _._target = t0;
      _._eventType = t1;
      _._useCapture = t2;
      _.$ti = t3;
    },
    _EventStreamSubscription: function _EventStreamSubscription(t0, t1, t2, t3, t4) {
      var _ = this;
      _._pauseCount = 0;
      _._target = t0;
      _._eventType = t1;
      _._onData = t2;
      _._useCapture = t3;
      _.$ti = t4;
    },
    _EventStreamSubscription_closure: function _EventStreamSubscription_closure(t0) {
      this.onData = t0;
    },
    _EventStreamSubscription_onData_closure: function _EventStreamSubscription_onData_closure(t0) {
      this.handleData = t0;
    },
    BrowserWebSocket_connect(url, protocols) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.BrowserWebSocket),
        $async$returnValue, t1, t2, t3, t4, webSocket, browserSocket, webSocketConnected;
      var $async$BrowserWebSocket_connect = 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
              if (!url.isScheme$1("ws") && !url.isScheme$1("wss"))
                throw A.wrapException(A.ArgumentError$value(url, "url", "only ws: and wss: schemes are supported"));
              t1 = init.G;
              t2 = t1.WebSocket;
              t3 = url.toString$0(0);
              t1 = t1.Array;
              t1 = type$.JSArray_nullable_Object._as(new t1());
              t4 = type$.JSObject;
              webSocket = t4._as(new t2(t3, t1));
              webSocket.binaryType = "arraybuffer";
              browserSocket = new A.BrowserWebSocket(webSocket, A.StreamController_StreamController(null, null, false, type$.WebSocketEvent));
              t1 = new A._Future($.Zone__current, type$._Future_BrowserWebSocket);
              webSocketConnected = new A._AsyncCompleter(t1, type$._AsyncCompleter_BrowserWebSocket);
              if (A._asInt(webSocket.readyState) === 1)
                webSocketConnected.complete$1(browserSocket);
              else if (A._asInt(webSocket.readyState) === 2 || A._asInt(webSocket.readyState) === 3) {
                A._asInt(webSocket.readyState);
                webSocketConnected.completeError$1(new A.WebSocketException());
              } else
                new A._EventStream(webSocket, "open", false, type$._EventStream_JSObject).get$first(0).then$1$1(new A.BrowserWebSocket_connect_closure(webSocketConnected, browserSocket), type$.void);
              t2 = type$._EventStream_JSObject;
              t3 = type$.void;
              new A._EventStream(webSocket, "error", false, t2).get$first(0).then$1$1(new A.BrowserWebSocket_connect_closure0(webSocketConnected, browserSocket), t3);
              A._EventStreamSubscription$(webSocket, "message", type$.nullable_void_Function_JSObject._as(new A.BrowserWebSocket_connect_closure1(browserSocket)), false, t4);
              new A._EventStream(webSocket, "close", false, t2).get$first(0).then$1$1(new A.BrowserWebSocket_connect_closure2(webSocketConnected, browserSocket), t3);
              $async$returnValue = t1;
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$BrowserWebSocket_connect, $async$completer);
    },
    BrowserWebSocket: function BrowserWebSocket(t0, t1) {
      this._webSocket = t0;
      this._browser_web_socket$_events = t1;
    },
    BrowserWebSocket_connect_closure: function BrowserWebSocket_connect_closure(t0, t1) {
      this.webSocketConnected = t0;
      this.browserSocket = t1;
    },
    BrowserWebSocket_connect_closure0: function BrowserWebSocket_connect_closure0(t0, t1) {
      this.webSocketConnected = t0;
      this.browserSocket = t1;
    },
    BrowserWebSocket_connect_closure1: function BrowserWebSocket_connect_closure1(t0) {
      this.browserSocket = t0;
    },
    BrowserWebSocket_connect_closure2: function BrowserWebSocket_connect_closure2(t0, t1) {
      this.webSocketConnected = t0;
      this.browserSocket = t1;
    },
    WebSocketConnectionClosed$() {
      return new A.WebSocketConnectionClosed();
    },
    WebSocketEvent: function WebSocketEvent() {
    },
    TextDataReceived: function TextDataReceived(t0) {
      this.text = t0;
    },
    BinaryDataReceived: function BinaryDataReceived(t0) {
      this.data = t0;
    },
    CloseReceived: function CloseReceived(t0, t1) {
      this.code = t0;
      this.reason = t1;
    },
    WebSocketException: function WebSocketException() {
    },
    WebSocketConnectionClosed: function WebSocketConnectionClosed() {
    },
    AdapterWebSocketChannel$(webSocket) {
      var _null = null,
        t1 = $.Zone__current,
        t2 = new A.StreamChannelController(type$.StreamChannelController_nullable_Object),
        t3 = type$.nullable_Object,
        localToForeignController = A.StreamController_StreamController(_null, _null, true, t3),
        foreignToLocalController = A.StreamController_StreamController(_null, _null, true, t3),
        t4 = A._instanceType(foreignToLocalController),
        t5 = A._instanceType(localToForeignController);
      t2.__StreamChannelController__local_F = A.GuaranteeChannel$(new A._ControllerStream(foreignToLocalController, t4._eval$1("_ControllerStream<1>")), new A._StreamSinkWrapper(localToForeignController, t5._eval$1("_StreamSinkWrapper<1>")), true, t3);
      t2.__StreamChannelController__foreign_F = A.GuaranteeChannel$(new A._ControllerStream(localToForeignController, t5._eval$1("_ControllerStream<1>")), new A._StreamSinkWrapper(foreignToLocalController, t4._eval$1("_StreamSinkWrapper<1>")), false, t3);
      t2 = new A.AdapterWebSocketChannel(new A._AsyncCompleter(new A._Future(t1, type$._Future_void), type$._AsyncCompleter_void), t2);
      t2.AdapterWebSocketChannel$1(webSocket);
      return t2;
    },
    AdapterWebSocketChannel: function AdapterWebSocketChannel(t0, t1) {
      var _ = this;
      _._localCloseReason = _._localCloseCode = null;
      _._readyCompleter = t0;
      _._adapter_web_socket_channel$_controller = t1;
      _.__AdapterWebSocketChannel_sink_FI = $;
    },
    AdapterWebSocketChannel_closure: function AdapterWebSocketChannel_closure(t0) {
      this.$this = t0;
    },
    AdapterWebSocketChannel__closure: function AdapterWebSocketChannel__closure(t0) {
      this.$this = t0;
    },
    AdapterWebSocketChannel__closure0: function AdapterWebSocketChannel__closure0(t0) {
      this.webSocket = t0;
    },
    AdapterWebSocketChannel__closure1: function AdapterWebSocketChannel__closure1(t0, t1) {
      this.$this = t0;
      this.webSocket = t1;
    },
    AdapterWebSocketChannel_closure0: function AdapterWebSocketChannel_closure0(t0) {
      this.$this = t0;
    },
    _WebSocketSink: function _WebSocketSink(t0, t1) {
      this._adapter_web_socket_channel$_channel = t0;
      this._sink = t1;
    },
    WebSocketChannelException: function WebSocketChannelException(t0) {
      this.message = t0;
    },
    main() {
      return A.runZonedGuarded(new A.main_closure(), new A.main_closure0(), type$.Future_void);
    },
    _trySendEvent(sink, serialized, $T) {
      var exception;
      try {
        sink.add$1(0, serialized);
      } catch (exception) {
        if (A.unwrapException(exception) instanceof A.StateError)
          A.print("Cannot send event " + A.S(serialized) + ". Injected client connection is closed.");
        else
          throw exception;
      }
    },
    _sendConnectRequest(clientSink) {
      var t1 = $.$get$serializers(),
        t2 = new A.ConnectRequestBuilder();
      type$.nullable_void_Function_ConnectRequestBuilder._as(new A._sendConnectRequest_closure()).call$1(t2);
      A._trySendEvent(clientSink, B.C_JsonCodec.encode$2$toEncodable(t1.serialize$1(t2._connect_request$_build$0()), null), type$.dynamic);
    },
    _launchCommunicationWithDebugExtension() {
      var t1, t2;
      type$.JSObject._as(init.G.window).addEventListener("message", A._functionToJS1(A.client___handleAuthRequest$closure()));
      t1 = $.$get$serializers();
      t2 = new A.DebugInfoBuilder();
      type$.nullable_void_Function_DebugInfoBuilder._as(new A._launchCommunicationWithDebugExtension_closure()).call$1(t2);
      A._dispatchEvent("dart-app-ready", B.C_JsonCodec.encode$2$toEncodable(t1.serialize$1(t2._build$0()), null));
    },
    _dispatchEvent(message, detail) {
      var t1 = init.G,
        t2 = type$.JSObject,
        $event = t2._as(new t1.CustomEvent(message, {detail: detail}));
      A._asBool(t2._as(t1.document).dispatchEvent($event));
    },
    _handleAuthRequest($event) {
      var t1,
        data = type$.JSObject._as($event).data;
      if (!(typeof data === "string"))
        return;
      if (A._asString(data) !== "dart-auth-request")
        return;
      if (A._authUrl() != null) {
        t1 = A._authUrl();
        t1.toString;
        A._authenticateUser(t1).then$1$1(new A._handleAuthRequest_closure(), type$.void);
      }
    },
    _authenticateUser(authUrl) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.bool),
        $async$returnValue, response, client;
      var $async$_authenticateUser = 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
              client = new A.BrowserClient(A.LinkedHashSet_LinkedHashSet$_empty(type$.JSObject));
              client.withCredentials = true;
              $async$goto = 3;
              return A._asyncAwait(client._sendUnstreamed$3("GET", A.Uri_parse(authUrl), null), $async$_authenticateUser);
            case 3:
              // returning from await.
              response = $async$result;
              $async$returnValue = B.JSString_methods.contains$1(A.encodingForCharset(A._contentTypeForHeaders(response.headers).parameters._collection$_map.$index(0, "charset")).decode$1(response.bodyBytes), "Dart Debug Authentication Success!");
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$_authenticateUser, $async$completer);
    },
    _sendResponse(clientSink, builder, requestId, errorMessage, success, $T) {
      A._trySendEvent(clientSink, B.C_JsonCodec.encode$2$toEncodable($.$get$serializers().serialize$1(builder.call$1(new A._sendResponse_closure(requestId, success, errorMessage))), null), type$.dynamic);
    },
    handleWebSocketHotReloadRequest($event, manager, clientSink) {
      return A.handleWebSocketHotReloadRequest$body($event, manager, clientSink);
    },
    handleWebSocketHotReloadRequest$body($event, manager, clientSink) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        $async$handler = 1, $async$errorStack = [], e, exception, t1, requestId, $async$exception;
      var $async$handleWebSocketHotReloadRequest = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
        if ($async$errorCode === 1) {
          $async$errorStack.push($async$result);
          $async$goto = $async$handler;
        }
        while (true)
          switch ($async$goto) {
            case 0:
              // Function start
              requestId = $event.id;
              $async$handler = 3;
              $async$goto = 6;
              return A._asyncAwait(manager._restarter.hotReloadStart$1(A.hotReloadSourcesPath()), $async$handleWebSocketHotReloadRequest);
            case 6:
              // returning from await.
              $async$goto = 7;
              return A._asyncAwait(manager.hotReloadEnd$0(), $async$handleWebSocketHotReloadRequest);
            case 7:
              // returning from await.
              A._sendResponse(clientSink, A.hot_reload_response_HotReloadResponse___new_tearOff$closure(), requestId, null, true, type$.HotReloadResponse);
              $async$handler = 1;
              // goto after finally
              $async$goto = 5;
              break;
            case 3:
              // catch
              $async$handler = 2;
              $async$exception = $async$errorStack.pop();
              e = A.unwrapException($async$exception);
              t1 = J.toString$0$(e);
              A._sendResponse(clientSink, A.hot_reload_response_HotReloadResponse___new_tearOff$closure(), requestId, t1, false, type$.HotReloadResponse);
              // goto after finally
              $async$goto = 5;
              break;
            case 2:
              // uncaught
              // goto rethrow
              $async$goto = 1;
              break;
            case 5:
              // after finally
              // implicit return
              return A._asyncReturn(null, $async$completer);
            case 1:
              // rethrow
              return A._asyncRethrow($async$errorStack.at(-1), $async$completer);
          }
      });
      return A._asyncStartSync($async$handleWebSocketHotReloadRequest, $async$completer);
    },
    hotReloadSourcesPath() {
      var path = A._asStringQ(init.G.$hotReloadSourcesPath);
      if (path == null)
        throw A.wrapException(A.StateError$("Expected 'hotReloadSourcePath' to not be null in a hot reload."));
      return path;
    },
    _isChromium() {
      var t1 = type$.JSObject;
      return B.JSString_methods.contains$1(A._asString(t1._as(t1._as(init.G.window).navigator).vendor), "Google");
    },
    _authUrl() {
      var authUrl,
        extensionUrl = A._asStringQ(type$.JavaScriptObject._as(init.G.window).$dartExtensionUri);
      if (extensionUrl == null)
        return null;
      authUrl = A.Uri_parse(extensionUrl).replace$1$path("$dwdsExtensionAuthentication");
      switch (authUrl.scheme) {
        case "ws":
          return authUrl.replace$1$scheme("http").get$_text();
        case "wss":
          return authUrl.replace$1$scheme("https").get$_text();
        default:
          return authUrl.get$_text();
      }
    },
    main_closure: function main_closure() {
    },
    main__closure: function main__closure(t0) {
      this.manager = t0;
    },
    main__closure0: function main__closure0(t0) {
      this.manager = t0;
    },
    main__closure1: function main__closure1(t0, t1) {
      this._box_0 = t0;
      this.manager = t1;
    },
    main__closure2: function main__closure2(t0) {
      this._box_0 = t0;
    },
    main__closure3: function main__closure3(t0) {
      this.client = t0;
    },
    main___closure2: function main___closure2(t0) {
      this.events = t0;
    },
    main__closure4: function main__closure4(t0) {
      this.debugEventController = t0;
    },
    main___closure1: function main___closure1(t0, t1) {
      this.kind = t0;
      this.eventData = t1;
    },
    main__closure5: function main__closure5(t0) {
      this.client = t0;
    },
    main___closure0: function main___closure0(t0) {
      this.eventData = t0;
    },
    main__closure6: function main__closure6(t0) {
      this.client = t0;
    },
    main___closure: function main___closure() {
    },
    main__closure7: function main__closure7(t0, t1) {
      this.manager = t0;
      this.client = t1;
    },
    main__closure8: function main__closure8() {
    },
    main__closure9: function main__closure9() {
    },
    main_closure0: function main_closure0() {
    },
    _sendConnectRequest_closure: function _sendConnectRequest_closure() {
    },
    _launchCommunicationWithDebugExtension_closure: function _launchCommunicationWithDebugExtension_closure() {
    },
    _handleAuthRequest_closure: function _handleAuthRequest_closure() {
    },
    _sendResponse_closure: function _sendResponse_closure(t0, t1, t2) {
      this.requestId = t0;
      this.success = t1;
      this.errorMessage = t2;
    },
    _Debugger_maybeInvokeFlutterDisassemble(_this) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        t1;
      var $async$_Debugger_maybeInvokeFlutterDisassemble = 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 = type$.JSArray_nullable_Object._as(_this.extensionNames);
              $async$goto = J.contains$1$asx(type$.List_String._is(t1) ? t1 : new A.CastList(t1, A._arrayInstanceType(t1)._eval$1("CastList<1,String>")), "ext.flutter.disassemble") ? 2 : 3;
              break;
            case 2:
              // then
              $async$goto = 4;
              return A._asyncAwait(A.promiseToFuture(type$.JSObject._as(_this.invokeExtension("ext.flutter.disassemble", "{}")), type$.String), $async$_Debugger_maybeInvokeFlutterDisassemble);
            case 4:
              // returning from await.
            case 3:
              // join
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$_Debugger_maybeInvokeFlutterDisassemble, $async$completer);
    },
    DdcLibraryBundleRestarter: function DdcLibraryBundleRestarter() {
      this._capturedHotReloadEndCallback = null;
    },
    DdcLibraryBundleRestarter_restart_closure: function DdcLibraryBundleRestarter_restart_closure(t0, t1) {
      this.$this = t0;
      this.readyToRunMain = t1;
    },
    DdcLibraryBundleRestarter_hotReloadStart_closure: function DdcLibraryBundleRestarter_hotReloadStart_closure(t0, t1) {
      this.xhr = t0;
      this.completer = t1;
    },
    DdcLibraryBundleRestarter_hotReloadStart_closure0: function DdcLibraryBundleRestarter_hotReloadStart_closure0(t0) {
      this.$this = t0;
    },
    DdcRestarter: function DdcRestarter() {
    },
    DdcRestarter_restart_closure0: function DdcRestarter_restart_closure0(t0) {
      this.reloadCompleter = t0;
    },
    DdcRestarter_restart_closure: function DdcRestarter_restart_closure(t0) {
      this.sub = t0;
    },
    ReloadingManager: function ReloadingManager(t0, t1) {
      this._client = t0;
      this._restarter = t1;
    },
    SdkDeveloperExtension_maybeInvokeFlutterDisassemble(_this) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void);
      var $async$SdkDeveloperExtension_maybeInvokeFlutterDisassemble = 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
              $async$goto = A._asBool(type$.JavaScriptObject._as(_this._extensions).containsKey("ext.flutter.disassemble")) ? 2 : 3;
              break;
            case 2:
              // then
              $async$goto = 4;
              return A._asyncAwait(A.promiseToFuture(type$.JSObject._as(_this.invokeExtension("ext.flutter.disassemble", "{}")), type$.String), $async$SdkDeveloperExtension_maybeInvokeFlutterDisassemble);
            case 4:
              // returning from await.
            case 3:
              // join
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$SdkDeveloperExtension_maybeInvokeFlutterDisassemble, $async$completer);
    },
    HotReloadFailedException$(_s) {
      return new A.HotReloadFailedException(_s);
    },
    RequireRestarter_create() {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.RequireRestarter),
        $async$returnValue, reloader, t1, t2, t3;
      var $async$RequireRestarter_create = 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 = type$.String;
              t2 = A.HashMap_HashMap(null, null, null, t1, type$.int);
              t3 = new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_bool), type$._AsyncCompleter_bool);
              t3.complete$1(true);
              reloader = new A.RequireRestarter(t2, t3);
              reloader.__RequireRestarter__dirtyModules_A = type$.SplayTreeSet_String._as(A.SplayTreeSet$(reloader.get$_moduleTopologicalCompare(), null, t1));
              $async$goto = 3;
              return A._asyncAwait(reloader._initialize$0(), $async$RequireRestarter_create);
            case 3:
              // returning from await.
              $async$returnValue = reloader;
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$RequireRestarter_create, $async$completer);
    },
    HotReloadFailedException: function HotReloadFailedException(t0) {
      this._s = t0;
    },
    RequireRestarter: function RequireRestarter(t0, t1) {
      this._moduleOrdering = t0;
      this.__RequireRestarter__dirtyModules_A = $;
      this._running = t1;
    },
    RequireRestarter__reload_closure: function RequireRestarter__reload_closure(t0, t1) {
      this._box_0 = t0;
      this.dart = t1;
    },
    RequireRestarter__reloadModule_closure: function RequireRestarter__reloadModule_closure(t0) {
      this.completer = t0;
    },
    RequireRestarter__reloadModule_closure0: function RequireRestarter__reloadModule_closure0(t0, t1) {
      this.completer = t0;
      this.stackTrace = t1;
    },
    _findNonce() {
      var t2, i, element, t3, nonceValue,
        t1 = type$.JSObject,
        elements = t1._as(t1._as(t1._as(init.G.window).document).querySelectorAll("script"));
      for (t2 = type$.nullable_JSObject, i = 0; i < A._asInt(elements.length); ++i) {
        element = t2._as(elements.item(i));
        t3 = element == null ? t1._as(element) : element;
        nonceValue = A._asString(t3.nonce);
        t3 = $.$get$_noncePattern();
        if (t3._nativeRegExp.test(nonceValue))
          return nonceValue;
      }
      return null;
    },
    runMain() {
      var t1, t2,
        scriptElement = $.$get$_createScript().call$0();
      scriptElement.innerHTML = "window.$dartRunMain();";
      t1 = type$.nullable_JSObject._as(type$.JSObject._as(init.G.document).body);
      t1.toString;
      t2 = A.jsify(scriptElement);
      t2.toString;
      t1.append(t2);
      A.Future_Future$microtask(new A.runMain_closure(scriptElement), type$.void);
    },
    _createScript_closure: function _createScript_closure() {
    },
    _createScript__closure: function _createScript__closure() {
    },
    _createScript__closure0: function _createScript__closure0(t0) {
      this.nonce = t0;
    },
    runMain_closure: function runMain_closure(t0) {
      this.scriptElement = t0;
    },
    JSArrayExtension_toDartIterable(_this, $T) {
      return B.JSArray_methods.map$1$1(_this, new A.JSArrayExtension_toDartIterable_closure($T), $T);
    },
    JSArrayExtension_toDartIterable_closure: function JSArrayExtension_toDartIterable_closure(t0) {
      this.T = t0;
    },
    printString(string) {
      if (typeof dartPrint == "function") {
        dartPrint(string);
        return;
      }
      if (typeof console == "object" && typeof console.log != "undefined") {
        console.log(string);
        return;
      }
      if (typeof print == "function") {
        print(string);
        return;
      }
      throw "Unable to print message: " + String(string);
    },
    JSFunctionUnsafeUtilExtension_callAsConstructor(_this, arg1, $R) {
      return $R._as(A.callConstructor(_this, [arg1], type$.JSObject));
    },
    groupBy(values, key, $S, $T) {
      var t1, _i, element, t2, t3,
        map = A.LinkedHashMap_LinkedHashMap$_empty($T, $S._eval$1("List<0>"));
      for (t1 = $S._eval$1("JSArray<0>"), _i = 0; _i < 1; ++_i) {
        element = values[_i];
        t2 = key.call$1(element);
        t3 = map.$index(0, t2);
        if (t3 == null) {
          t3 = A._setArrayType([], t1);
          map.$indexSet(0, t2, t3);
          t2 = t3;
        } else
          t2 = t3;
        J.add$1$ax(t2, element);
      }
      return map;
    },
    decodeDigit(c) {
      var letter,
        digit = c ^ 48;
      if (digit < 10)
        return digit;
      letter = (c | 32) - 97;
      if (letter >= 0)
        return letter + 10;
      else
        return 255;
    },
    encodingForCharset(charset) {
      var t1;
      if (charset == null)
        return B.C_Latin1Codec;
      t1 = A.Encoding_getByName(charset);
      return t1 == null ? B.C_Latin1Codec : t1;
    },
    toUint8List(input) {
      return input;
    },
    toByteStream(stream) {
      return stream;
    },
    wrapFormatException($name, value, body, $T) {
      var error, error0, t1, exception;
      try {
        t1 = body.call$0();
        return t1;
      } catch (exception) {
        t1 = A.unwrapException(exception);
        if (t1 instanceof A.SourceSpanFormatException) {
          error = t1;
          throw A.wrapException(A.SourceSpanFormatException$("Invalid " + $name + ": " + error._span_exception$_message, error._span, error.get$source()));
        } else if (type$.FormatException._is(t1)) {
          error0 = t1;
          throw A.wrapException(A.FormatException$("Invalid " + $name + ' "' + value + '": ' + error0.get$message(), error0.get$source(), error0.get$offset()));
        } else
          throw exception;
      }
    },
    current() {
      var exception, t1, path, lastIndex, uri = null;
      try {
        uri = A.Uri_base();
      } catch (exception) {
        if (type$.Exception._is(A.unwrapException(exception))) {
          t1 = $._current;
          if (t1 != null)
            return t1;
          throw exception;
        } else
          throw exception;
      }
      if (J.$eq$(uri, $._currentUriBase)) {
        t1 = $._current;
        t1.toString;
        return t1;
      }
      $._currentUriBase = uri;
      if ($.$get$Style_platform() === $.$get$Style_url())
        t1 = $._current = uri.resolve$1(".").toString$0(0);
      else {
        path = uri.toFilePath$0();
        lastIndex = path.length - 1;
        t1 = $._current = lastIndex === 0 ? path : B.JSString_methods.substring$2(path, 0, lastIndex);
      }
      return t1;
    },
    isAlphabetic(char) {
      var t1;
      if (!(char >= 65 && char <= 90))
        t1 = char >= 97 && char <= 122;
      else
        t1 = true;
      return t1;
    },
    driveLetterEnd(path, index) {
      var t2, t3, _null = null,
        t1 = path.length,
        index0 = index + 2;
      if (t1 < index0)
        return _null;
      if (!(index >= 0 && index < t1))
        return A.ioore(path, index);
      if (!A.isAlphabetic(path.charCodeAt(index)))
        return _null;
      t2 = index + 1;
      if (!(t2 < t1))
        return A.ioore(path, t2);
      if (path.charCodeAt(t2) !== 58) {
        t3 = index + 4;
        if (t1 < t3)
          return _null;
        if (B.JSString_methods.substring$2(path, t2, t3).toLowerCase() !== "%3a")
          return _null;
        index = index0;
      }
      t2 = index + 2;
      if (t1 === t2)
        return t2;
      if (!(t2 >= 0 && t2 < t1))
        return A.ioore(path, t2);
      if (path.charCodeAt(t2) !== 47)
        return _null;
      return index + 3;
    },
    isAllTheSame(iter) {
      var firstValue, t1, t2, value;
      if (iter.get$length(0) === 0)
        return true;
      firstValue = iter.get$first(0);
      for (t1 = A.SubListIterable$(iter, 1, null, iter.$ti._eval$1("ListIterable.E")), t2 = t1.$ti, t1 = new A.ListIterator(t1, t1.get$length(0), t2._eval$1("ListIterator<ListIterable.E>")), t2 = t2._eval$1("ListIterable.E"); t1.moveNext$0();) {
        value = t1.__internal$_current;
        if (!J.$eq$(value == null ? t2._as(value) : value, firstValue))
          return false;
      }
      return true;
    },
    replaceFirstNull(list, element, $E) {
      var index = B.JSArray_methods.indexOf$1(list, null);
      if (index < 0)
        throw A.wrapException(A.ArgumentError$(A.S(list) + " contains no null elements.", null));
      B.JSArray_methods.$indexSet(list, index, element);
    },
    replaceWithNull(list, element, $E) {
      var index = B.JSArray_methods.indexOf$1(list, element);
      if (index < 0)
        throw A.wrapException(A.ArgumentError$(A.S(list) + " contains no elements matching " + element.toString$0(0) + ".", null));
      B.JSArray_methods.$indexSet(list, index, null);
    },
    countCodeUnits(string, codeUnit) {
      var t1, t2, count, t3;
      for (t1 = new A.CodeUnits(string), t2 = type$.CodeUnits, t1 = new A.ListIterator(t1, t1.get$length(0), t2._eval$1("ListIterator<ListBase.E>")), t2 = t2._eval$1("ListBase.E"), count = 0; t1.moveNext$0();) {
        t3 = t1.__internal$_current;
        if ((t3 == null ? t2._as(t3) : t3) === codeUnit)
          ++count;
      }
      return count;
    },
    findLineStart(context, text, column) {
      var beginningOfLine, index, lineStart;
      if (text.length === 0)
        for (beginningOfLine = 0; true;) {
          index = B.JSString_methods.indexOf$2(context, "\n", beginningOfLine);
          if (index === -1)
            return context.length - beginningOfLine >= column ? beginningOfLine : null;
          if (index - beginningOfLine >= column)
            return beginningOfLine;
          beginningOfLine = index + 1;
        }
      index = B.JSString_methods.indexOf$1(context, text);
      for (; index !== -1;) {
        lineStart = index === 0 ? 0 : B.JSString_methods.lastIndexOf$2(context, "\n", index - 1) + 1;
        if (column === index - lineStart)
          return lineStart;
        index = B.JSString_methods.indexOf$2(context, text, index + 1);
      }
      return null;
    }
  },
  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) + "'";
    },
    get$runtimeType(receiver) {
      return A.createRuntimeType(A._instanceTypeFromConstructor(this));
    }
  };
  J.JSBool.prototype = {
    toString$0(receiver) {
      return String(receiver);
    },
    get$hashCode(receiver) {
      return receiver ? 519018 : 218159;
    },
    get$runtimeType(receiver) {
      return A.createRuntimeType(type$.bool);
    },
    $isTrustedGetRuntimeType: 1,
    $isbool: 1
  };
  J.JSNull.prototype = {
    $eq(receiver, other) {
      return null == other;
    },
    toString$0(receiver) {
      return "null";
    },
    get$hashCode(receiver) {
      return 0;
    },
    get$runtimeType(receiver) {
      return A.createRuntimeType(type$.Null);
    },
    $isTrustedGetRuntimeType: 1,
    $isNull: 1
  };
  J.JavaScriptObject.prototype = {$isJSObject: 1};
  J.LegacyJavaScriptObject.prototype = {
    get$hashCode(receiver) {
      return 0;
    },
    get$runtimeType(receiver) {
      return B.Type_JSObject_ttY;
    },
    toString$0(receiver) {
      return String(receiver);
    }
  };
  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 " + J.toString$0$(dartClosure);
    },
    $isFunction: 1
  };
  J.JavaScriptBigInt.prototype = {
    get$hashCode(receiver) {
      return 0;
    },
    toString$0(receiver) {
      return String(receiver);
    }
  };
  J.JavaScriptSymbol.prototype = {
    get$hashCode(receiver) {
      return 0;
    },
    toString$0(receiver) {
      return String(receiver);
    }
  };
  J.JSArray.prototype = {
    cast$1$0(receiver, $R) {
      return new A.CastList(receiver, A._arrayInstanceType(receiver)._eval$1("@<1>")._bind$1($R)._eval$1("CastList<1,2>"));
    },
    add$1(receiver, value) {
      A._arrayInstanceType(receiver)._precomputed1._as(value);
      receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, 29);
      receiver.push(value);
    },
    removeAt$1(receiver, index) {
      var t1;
      receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "removeAt", 1);
      t1 = receiver.length;
      if (index >= t1)
        throw A.wrapException(A.RangeError$value(index, null));
      return receiver.splice(index, 1)[0];
    },
    insert$2(receiver, index, value) {
      var t1;
      A._arrayInstanceType(receiver)._precomputed1._as(value);
      receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "insert", 2);
      t1 = receiver.length;
      if (index > t1)
        throw A.wrapException(A.RangeError$value(index, null));
      receiver.splice(index, 0, value);
    },
    insertAll$2(receiver, index, iterable) {
      var insertionLength, end;
      A._arrayInstanceType(receiver)._eval$1("Iterable<1>")._as(iterable);
      receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "insertAll", 2);
      A.RangeError_checkValueInInterval(index, 0, receiver.length, "index");
      if (!type$.EfficientLengthIterable_dynamic._is(iterable))
        iterable = J.toList$0$ax(iterable);
      insertionLength = J.get$length$asx(iterable);
      receiver.length = receiver.length + insertionLength;
      end = index + insertionLength;
      this.setRange$4(receiver, end, receiver.length, receiver, index);
      this.setRange$3(receiver, index, end, iterable);
    },
    removeLast$0(receiver) {
      receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "removeLast", 1);
      if (receiver.length === 0)
        throw A.wrapException(A.diagnoseIndexError(receiver, -1));
      return receiver.pop();
    },
    _removeWhere$2(receiver, test, removeMatching) {
      var retained, end, i, element, t1;
      A._arrayInstanceType(receiver)._eval$1("bool(1)")._as(test);
      retained = [];
      end = receiver.length;
      for (i = 0; i < end; ++i) {
        element = receiver[i];
        if (!test.call$1(element))
          retained.push(element);
        if (receiver.length !== end)
          throw A.wrapException(A.ConcurrentModificationError$(receiver));
      }
      t1 = retained.length;
      if (t1 === end)
        return;
      this.set$length(receiver, t1);
      for (i = 0; i < retained.length; ++i)
        receiver[i] = retained[i];
    },
    addAll$1(receiver, collection) {
      var t1;
      A._arrayInstanceType(receiver)._eval$1("Iterable<1>")._as(collection);
      receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "addAll", 2);
      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());
    },
    _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]);
    },
    clear$0(receiver) {
      receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "clear", "clear");
      receiver.length = 0;
    },
    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>"));
    },
    map$1(receiver, f) {
      return this.map$1$1(receiver, f, type$.dynamic);
    },
    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);
    },
    take$1(receiver, n) {
      return A.SubListIterable$(receiver, 0, A.checkNotNullable(n, "count", type$.int), A._arrayInstanceType(receiver)._precomputed1);
    },
    skip$1(receiver, n) {
      return A.SubListIterable$(receiver, n, null, A._arrayInstanceType(receiver)._precomputed1);
    },
    fold$1$2(receiver, initialValue, combine, $T) {
      var $length, value, i;
      $T._as(initialValue);
      A._arrayInstanceType(receiver)._bind$1($T)._eval$1("1(1,2)")._as(combine);
      $length = receiver.length;
      for (value = initialValue, i = 0; i < $length; ++i) {
        value = combine.call$2(value, receiver[i]);
        if (receiver.length !== $length)
          throw A.wrapException(A.ConcurrentModificationError$(receiver));
      }
      return value;
    },
    elementAt$1(receiver, index) {
      if (!(index >= 0 && index < receiver.length))
        return A.ioore(receiver, index);
      return receiver[index];
    },
    sublist$2(receiver, start, end) {
      var t1 = receiver.length;
      if (start > t1)
        throw A.wrapException(A.RangeError$range(start, 0, t1, "start", null));
      if (start === t1)
        return A._setArrayType([], A._arrayInstanceType(receiver));
      return A._setArrayType(receiver.slice(start, t1), A._arrayInstanceType(receiver));
    },
    sublist$1(receiver, start) {
      return this.sublist$2(receiver, start, null);
    },
    getRange$2(receiver, start, end) {
      A.RangeError_checkValidRange(start, end, receiver.length);
      return A.SubListIterable$(receiver, start, end, A._arrayInstanceType(receiver)._precomputed1);
    },
    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);
      receiver.$flags & 2 && A.throwUnsupportedOperation(receiver, 5);
      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);
    },
    setRange$3(receiver, start, end, iterable) {
      return this.setRange$4(receiver, start, end, iterable, 0);
    },
    fillRange$3(receiver, start, end, fillValue) {
      var i;
      receiver.$flags & 2 && A.throwUnsupportedOperation(receiver, "fillRange");
      A.RangeError_checkValidRange(start, end, receiver.length);
      A._arrayInstanceType(receiver)._precomputed1._as(fillValue);
      for (i = start; i < end; ++i)
        receiver[i] = fillValue;
    },
    sort$1(receiver, compare) {
      var len, a, b, undefineds, i,
        t1 = A._arrayInstanceType(receiver);
      t1._eval$1("int(1,1)?")._as(compare);
      receiver.$flags & 2 && A.throwUnsupportedOperation(receiver, "sort");
      len = receiver.length;
      if (len < 2)
        return;
      if (compare == null)
        compare = J._interceptors_JSArray__compareAny$closure();
      if (len === 2) {
        a = receiver[0];
        b = receiver[1];
        t1 = compare.call$2(a, b);
        if (typeof t1 !== "number")
          return t1.$gt();
        if (t1 > 0) {
          receiver[0] = b;
          receiver[1] = a;
        }
        return;
      }
      undefineds = 0;
      if (t1._precomputed1._is(null))
        for (i = 0; i < receiver.length; ++i)
          if (receiver[i] === void 0) {
            receiver[i] = null;
            ++undefineds;
          }
      receiver.sort(A.convertDartClosureToJS(compare, 2));
      if (undefineds > 0)
        this._replaceSomeNullsWithUndefined$1(receiver, undefineds);
    },
    sort$0(receiver) {
      return this.sort$1(receiver, null);
    },
    _replaceSomeNullsWithUndefined$1(receiver, count) {
      var i0,
        i = receiver.length;
      for (; i0 = i - 1, i > 0; i = i0)
        if (receiver[i0] === null) {
          receiver[i0] = void 0;
          --count;
          if (count === 0)
            break;
        }
    },
    indexOf$2(receiver, element, start) {
      var i,
        $length = receiver.length;
      if (start >= $length)
        return -1;
      for (i = start; i < $length; ++i) {
        if (!(i < receiver.length))
          return A.ioore(receiver, i);
        if (J.$eq$(receiver[i], element))
          return i;
      }
      return -1;
    },
    indexOf$1(receiver, element) {
      return this.indexOf$2(receiver, element, 0);
    },
    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.Iterable_iterableToFullString(receiver, "[", "]");
    },
    toList$1$growable(receiver, growable) {
      var t1 = A._setArrayType(receiver.slice(0), A._arrayInstanceType(receiver));
      return t1;
    },
    toList$0(receiver) {
      return this.toList$1$growable(receiver, true);
    },
    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) {
      receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "set length", "change the length of");
      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) {
      if (!(index >= 0 && index < receiver.length))
        throw A.wrapException(A.diagnoseIndexError(receiver, index));
      return receiver[index];
    },
    $indexSet(receiver, index, value) {
      A._arrayInstanceType(receiver)._precomputed1._as(value);
      receiver.$flags & 2 && A.throwUnsupportedOperation(receiver);
      if (!(index >= 0 && index < receiver.length))
        throw A.wrapException(A.diagnoseIndexError(receiver, index));
      receiver[index] = value;
    },
    indexWhere$2(receiver, test, start) {
      var i;
      A._arrayInstanceType(receiver)._eval$1("bool(1)")._as(test);
      if (start >= receiver.length)
        return -1;
      for (i = start; i < receiver.length; ++i)
        if (test.call$1(receiver[i]))
          return i;
      return -1;
    },
    indexWhere$1(receiver, test) {
      return this.indexWhere$2(receiver, test, 0);
    },
    get$runtimeType(receiver) {
      return A.createRuntimeType(A._arrayInstanceType(receiver));
    },
    $isJSIndexable: 1,
    $isEfficientLengthIterable: 1,
    $isIterable: 1,
    $isList: 1
  };
  J.JSArraySafeToStringHook.prototype = {
    tryFormat$1(array) {
      var flags, info, base;
      if (!Array.isArray(array))
        return null;
      flags = array.$flags | 0;
      if ((flags & 4) !== 0)
        info = "const, ";
      else if ((flags & 2) !== 0)
        info = "unmodifiable, ";
      else
        info = (flags & 1) !== 0 ? "fixed, " : "";
      base = "Instance of '" + A.Primitives_objectTypeName(array) + "'";
      if (info === "")
        return base;
      return base + " (" + info + "length: " + array.length + ")";
    }
  };
  J.JSUnmodifiableArray.prototype = {};
  J.ArrayIterator.prototype = {
    get$current() {
      var t1 = this._current;
      return t1 == null ? this.$ti._precomputed1._as(t1) : t1;
    },
    moveNext$0() {
      var t2, _this = this,
        t1 = _this._iterable,
        $length = t1.length;
      if (_this._length !== $length) {
        t1 = A.throwConcurrentModificationError(t1);
        throw A.wrapException(t1);
      }
      t2 = _this._index;
      if (t2 >= $length) {
        _this._current = null;
        return false;
      }
      _this._current = t1[t2];
      _this._index = t2 + 1;
      return true;
    },
    $isIterator: 1
  };
  J.JSNumber.prototype = {
    compareTo$1(receiver, b) {
      var bIsNegative;
      A._asNum(b);
      if (receiver < b)
        return -1;
      else if (receiver > b)
        return 1;
      else if (receiver === b) {
        if (receiver === 0) {
          bIsNegative = this.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;
    },
    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()"));
    },
    toRadixString$1(receiver, radix) {
      var result, t1, t2, match, exponent;
      if (radix < 2 || radix > 36)
        throw A.wrapException(A.RangeError$range(radix, 2, 36, "radix", null));
      result = receiver.toString(radix);
      t1 = result.length;
      t2 = t1 - 1;
      if (!(t2 >= 0))
        return A.ioore(result, t2);
      if (result.charCodeAt(t2) !== 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) {
      return receiver + other;
    },
    $mod(receiver, other) {
      var result = receiver % other;
      if (result === 0)
        return 0;
      if (result > 0)
        return result;
      return result + other;
    },
    $tdiv(receiver, 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;
    },
    get$runtimeType(receiver) {
      return A.createRuntimeType(type$.num);
    },
    $isComparable: 1,
    $isdouble: 1,
    $isnum: 1
  };
  J.JSInt.prototype = {
    get$bitLength(receiver) {
      var wordBits,
        t1 = receiver < 0 ? -receiver - 1 : receiver,
        nonneg = t1;
      for (wordBits = 32; nonneg >= 4294967296;) {
        nonneg = this._tdivFast$1(nonneg, 4294967296);
        wordBits += 32;
      }
      return wordBits - Math.clz32(nonneg);
    },
    get$runtimeType(receiver) {
      return A.createRuntimeType(type$.int);
    },
    $isTrustedGetRuntimeType: 1,
    $isint: 1
  };
  J.JSNumNotInt.prototype = {
    get$runtimeType(receiver) {
      return A.createRuntimeType(type$.double);
    },
    $isTrustedGetRuntimeType: 1
  };
  J.JSString.prototype = {
    allMatches$2(receiver, string, start) {
      var t1 = string.length;
      if (start > t1)
        throw A.wrapException(A.RangeError$range(start, 0, t1, null, null));
      return new A._StringAllMatchesIterable(string, receiver, start);
    },
    allMatches$1(receiver, string) {
      return this.allMatches$2(receiver, string, 0);
    },
    matchAsPrefix$2(receiver, string, start) {
      var t1, t2, i, t3, _null = null;
      if (start < 0 || start > string.length)
        throw A.wrapException(A.RangeError$range(start, 0, string.length, _null, _null));
      t1 = receiver.length;
      t2 = string.length;
      if (start + t1 > t2)
        return _null;
      for (i = 0; i < t1; ++i) {
        t3 = start + i;
        if (!(t3 >= 0 && t3 < t2))
          return A.ioore(string, t3);
        if (string.charCodeAt(t3) !== receiver.charCodeAt(i))
          return _null;
      }
      return new A.StringMatch(start, receiver);
    },
    endsWith$1(receiver, other) {
      var otherLength = other.length,
        t1 = receiver.length;
      if (otherLength > t1)
        return false;
      return other === this.substring$1(receiver, t1 - otherLength);
    },
    replaceFirst$2(receiver, from, to) {
      A.RangeError_checkValueInInterval(0, 0, receiver.length, "startIndex");
      return A.stringReplaceFirstUnchecked(receiver, from, to, 0);
    },
    replaceRange$3(receiver, start, end, replacement) {
      var e = A.RangeError_checkValidRange(start, end, receiver.length);
      return A.stringReplaceRangeUnchecked(receiver, start, e, replacement);
    },
    startsWith$2(receiver, pattern, index) {
      var endIndex;
      if (index < 0 || index > receiver.length)
        throw A.wrapException(A.RangeError$range(index, 0, receiver.length, null, null));
      if (typeof pattern == "string") {
        endIndex = index + pattern.length;
        if (endIndex > receiver.length)
          return false;
        return pattern === receiver.substring(index, endIndex);
      }
      return J.matchAsPrefix$2$s(pattern, receiver, index) != null;
    },
    startsWith$1(receiver, pattern) {
      return this.startsWith$2(receiver, pattern, 0);
    },
    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;
    },
    padLeft$2(receiver, width, padding) {
      var delta = width - receiver.length;
      if (delta <= 0)
        return receiver;
      return this.$mul(padding, delta) + receiver;
    },
    padRight$1(receiver, width) {
      var delta = width - receiver.length;
      if (delta <= 0)
        return receiver;
      return receiver + this.$mul(" ", delta);
    },
    indexOf$2(receiver, pattern, start) {
      var t1;
      if (start < 0 || start > receiver.length)
        throw A.wrapException(A.RangeError$range(start, 0, receiver.length, null, null));
      t1 = receiver.indexOf(pattern, start);
      return t1;
    },
    indexOf$1(receiver, pattern) {
      return this.indexOf$2(receiver, pattern, 0);
    },
    lastIndexOf$2(receiver, pattern, start) {
      var t1, t2;
      if (start == null)
        start = receiver.length;
      else if (start < 0 || start > receiver.length)
        throw A.wrapException(A.RangeError$range(start, 0, receiver.length, null, null));
      t1 = pattern.length;
      t2 = receiver.length;
      if (start + t1 > t2)
        start = t2 - t1;
      return receiver.lastIndexOf(pattern, start);
    },
    lastIndexOf$1(receiver, pattern) {
      return this.lastIndexOf$2(receiver, pattern, null);
    },
    contains$1(receiver, other) {
      return A.stringContainsUnchecked(receiver, other, 0);
    },
    compareTo$1(receiver, other) {
      var t1;
      A._asString(other);
      if (receiver === other)
        t1 = 0;
      else
        t1 = receiver < other ? -1 : 1;
      return t1;
    },
    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$runtimeType(receiver) {
      return A.createRuntimeType(type$.String);
    },
    get$length(receiver) {
      return receiver.length;
    },
    $isJSIndexable: 1,
    $isTrustedGetRuntimeType: 1,
    $isComparable: 1,
    $isPattern: 1,
    $isString: 1
  };
  A._CastIterableBase.prototype = {
    get$iterator(_) {
      return new A.CastIterator(J.get$iterator$ax(this.get$__internal$_source()), A._instanceType(this)._eval$1("CastIterator<1,2>"));
    },
    get$length(_) {
      return J.get$length$asx(this.get$__internal$_source());
    },
    get$isEmpty(_) {
      return J.get$isEmpty$asx(this.get$__internal$_source());
    },
    get$isNotEmpty(_) {
      return J.get$isNotEmpty$asx(this.get$__internal$_source());
    },
    skip$1(_, count) {
      var t1 = A._instanceType(this);
      return A.CastIterable_CastIterable(J.skip$1$ax(this.get$__internal$_source(), count), t1._precomputed1, t1._rest[1]);
    },
    take$1(_, count) {
      var t1 = A._instanceType(this);
      return A.CastIterable_CastIterable(J.take$1$ax(this.get$__internal$_source(), count), t1._precomputed1, t1._rest[1]);
    },
    elementAt$1(_, index) {
      return A._instanceType(this)._rest[1]._as(J.elementAt$1$ax(this.get$__internal$_source(), index));
    },
    get$first(_) {
      return A._instanceType(this)._rest[1]._as(J.get$first$ax(this.get$__internal$_source()));
    },
    contains$1(_, other) {
      return J.contains$1$asx(this.get$__internal$_source(), other);
    },
    toString$0(_) {
      return J.toString$0$(this.get$__internal$_source());
    }
  };
  A.CastIterator.prototype = {
    moveNext$0() {
      return this.__internal$_source.moveNext$0();
    },
    get$current() {
      return this.$ti._rest[1]._as(this.__internal$_source.get$current());
    },
    $isIterator: 1
  };
  A.CastIterable.prototype = {
    get$__internal$_source() {
      return this.__internal$_source;
    }
  };
  A._EfficientLengthCastIterable.prototype = {$isEfficientLengthIterable: 1};
  A._CastListBase.prototype = {
    $index(_, index) {
      return this.$ti._rest[1]._as(J.$index$asx(this.__internal$_source, index));
    },
    $indexSet(_, index, value) {
      var t1 = this.$ti;
      J.$indexSet$ax(this.__internal$_source, index, t1._precomputed1._as(t1._rest[1]._as(value)));
    },
    set$length(_, $length) {
      J.set$length$asx(this.__internal$_source, $length);
    },
    add$1(_, value) {
      var t1 = this.$ti;
      J.add$1$ax(this.__internal$_source, t1._precomputed1._as(t1._rest[1]._as(value)));
    },
    sort$1(_, compare) {
      var t1;
      this.$ti._eval$1("int(2,2)?")._as(compare);
      t1 = compare == null ? null : new A._CastListBase_sort_closure(this, compare);
      J.sort$1$ax(this.__internal$_source, t1);
    },
    getRange$2(_, start, end) {
      var t1 = this.$ti;
      return A.CastIterable_CastIterable(J.getRange$2$ax(this.__internal$_source, start, end), t1._precomputed1, t1._rest[1]);
    },
    fillRange$3(_, start, end, fillValue) {
      J.fillRange$3$ax(this.__internal$_source, start, end, this.$ti._precomputed1._as(fillValue));
    },
    $isEfficientLengthIterable: 1,
    $isList: 1
  };
  A._CastListBase_sort_closure.prototype = {
    call$2(v1, v2) {
      var t1 = this.$this.$ti,
        t2 = t1._precomputed1;
      t2._as(v1);
      t2._as(v2);
      t1 = t1._rest[1];
      return this.compare.call$2(t1._as(v1), t1._as(v2));
    },
    $signature() {
      return this.$this.$ti._eval$1("int(1,1)");
    }
  };
  A.CastList.prototype = {
    cast$1$0(_, $R) {
      return new A.CastList(this.__internal$_source, this.$ti._eval$1("@<1>")._bind$1($R)._eval$1("CastList<1,2>"));
    },
    get$__internal$_source() {
      return this.__internal$_source;
    }
  };
  A.CastMap.prototype = {
    cast$2$0(_, RK, RV) {
      return new A.CastMap(this.__internal$_source, this.$ti._eval$1("@<1,2>")._bind$1(RK)._bind$1(RV)._eval$1("CastMap<1,2,3,4>"));
    },
    containsKey$1(key) {
      return this.__internal$_source.containsKey$1(key);
    },
    $index(_, key) {
      return this.$ti._eval$1("4?")._as(this.__internal$_source.$index(0, key));
    },
    $indexSet(_, key, value) {
      var t1 = this.$ti;
      t1._rest[2]._as(key);
      t1._rest[3]._as(value);
      this.__internal$_source.$indexSet(0, t1._precomputed1._as(key), t1._rest[1]._as(value));
    },
    forEach$1(_, f) {
      this.__internal$_source.forEach$1(0, new A.CastMap_forEach_closure(this, this.$ti._eval$1("~(3,4)")._as(f)));
    },
    get$keys() {
      var t1 = this.$ti;
      return A.CastIterable_CastIterable(this.__internal$_source.get$keys(), t1._precomputed1, t1._rest[2]);
    },
    get$length(_) {
      var t1 = this.__internal$_source;
      return t1.get$length(t1);
    },
    get$isEmpty(_) {
      var t1 = this.__internal$_source;
      return t1.get$isEmpty(t1);
    }
  };
  A.CastMap_forEach_closure.prototype = {
    call$2(key, value) {
      var t1 = this.$this.$ti;
      t1._precomputed1._as(key);
      t1._rest[1]._as(value);
      this.f.call$2(t1._rest[2]._as(key), t1._rest[3]._as(value));
    },
    $signature() {
      return this.$this.$ti._eval$1("~(1,2)");
    }
  };
  A.LateError.prototype = {
    toString$0(_) {
      return "LateInitializationError: " + this._message;
    }
  };
  A.CodeUnits.prototype = {
    get$length(_) {
      return this.__internal$_string.length;
    },
    $index(_, i) {
      var t1 = this.__internal$_string;
      if (!(i >= 0 && i < t1.length))
        return A.ioore(t1, i);
      return t1.charCodeAt(i);
    }
  };
  A.nullFuture_closure.prototype = {
    call$0() {
      return A.Future_Future$value(null, type$.void);
    },
    $signature: 19
  };
  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);
    },
    contains$1(_, element) {
      var i, _this = this,
        $length = _this.get$length(_this);
      for (i = 0; i < $length; ++i) {
        if (J.$eq$(_this.elementAt$1(0, i), element))
          return true;
        if ($length !== _this.get$length(_this))
          throw A.wrapException(A.ConcurrentModificationError$(_this));
      }
      return false;
    },
    join$1(_, separator) {
      var first, t1, i, _this = this,
        $length = _this.get$length(_this);
      if (separator.length !== 0) {
        if ($length === 0)
          return "";
        first = A.S(_this.elementAt$1(0, 0));
        if ($length !== _this.get$length(_this))
          throw A.wrapException(A.ConcurrentModificationError$(_this));
        for (t1 = first, i = 1; i < $length; ++i) {
          t1 = t1 + separator + A.S(_this.elementAt$1(0, i));
          if ($length !== _this.get$length(_this))
            throw A.wrapException(A.ConcurrentModificationError$(_this));
        }
        return t1.charCodeAt(0) == 0 ? t1 : t1;
      } else {
        for (i = 0, t1 = ""; i < $length; ++i) {
          t1 += A.S(_this.elementAt$1(0, i));
          if ($length !== _this.get$length(_this))
            throw A.wrapException(A.ConcurrentModificationError$(_this));
        }
        return t1.charCodeAt(0) == 0 ? t1 : t1;
      }
    },
    join$0(_) {
      return this.join$1(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>"));
    },
    map$1(_, toElement) {
      return this.map$1$1(0, toElement, type$.dynamic);
    },
    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;
    },
    skip$1(_, count) {
      return A.SubListIterable$(this, count, null, A._instanceType(this)._eval$1("ListIterable.E"));
    },
    take$1(_, count) {
      return A.SubListIterable$(this, 0, A.checkNotNullable(count, "count", type$.int), A._instanceType(this)._eval$1("ListIterable.E"));
    },
    toList$1$growable(_, growable) {
      var t1 = A.List_List$_of(this, A._instanceType(this)._eval$1("ListIterable.E"));
      return t1;
    },
    toList$0(_) {
      return this.toList$1$growable(0, true);
    }
  };
  A.SubListIterable.prototype = {
    SubListIterable$3(_iterable, _start, _endOrLength, $E) {
      var endOrLength,
        t1 = this._start;
      A.RangeError_checkNotNegative(t1, "start");
      endOrLength = this._endOrLength;
      if (endOrLength != null) {
        A.RangeError_checkNotNegative(endOrLength, "end");
        if (t1 > endOrLength)
          throw A.wrapException(A.RangeError$range(t1, 0, endOrLength, "start", null));
      }
    },
    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;
      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$withLength(index, _this.get$length(0), _this, null, "index"));
      return J.elementAt$1$ax(_this.__internal$_iterable, realIndex);
    },
    skip$1(_, count) {
      var newStart, endOrLength, _this = this;
      A.RangeError_checkNotNegative(count, "count");
      newStart = _this._start + count;
      endOrLength = _this._endOrLength;
      if (endOrLength != null && newStart >= endOrLength)
        return new A.EmptyIterable(_this.$ti._eval$1("EmptyIterable<1>"));
      return A.SubListIterable$(_this.__internal$_iterable, newStart, endOrLength, _this.$ti._precomputed1);
    },
    take$1(_, count) {
      var endOrLength, t1, newEnd, _this = this;
      A.RangeError_checkNotNegative(count, "count");
      endOrLength = _this._endOrLength;
      t1 = _this._start;
      if (endOrLength == null)
        return A.SubListIterable$(_this.__internal$_iterable, t1, B.JSInt_methods.$add(t1, count), _this.$ti._precomputed1);
      else {
        newEnd = B.JSInt_methods.$add(t1, count);
        if (endOrLength < newEnd)
          return _this;
        return A.SubListIterable$(_this.__internal$_iterable, t1, newEnd, _this.$ti._precomputed1);
      }
    },
    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 = J.JSArray_JSArray$fixed(0, _this.$ti._precomputed1);
        return t1;
      }
      result = A.List_List$filled($length, t2.elementAt$1(t1, start), false, _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;
    }
  };
  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.__internal$_current = null;
        return false;
      }
      _this.__internal$_current = t2.elementAt$1(t1, t3);
      ++_this.__internal$_index;
      return true;
    },
    $isIterator: 1
  };
  A.MappedIterable.prototype = {
    get$iterator(_) {
      return new A.MappedIterator(J.get$iterator$ax(this.__internal$_iterable), this._f, A._instanceType(this)._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));
    },
    elementAt$1(_, index) {
      return this._f.call$1(J.elementAt$1$ax(this.__internal$_iterable, index));
    }
  };
  A.EfficientLengthMappedIterable.prototype = {$isEfficientLengthIterable: 1};
  A.MappedIterator.prototype = {
    moveNext$0() {
      var _this = this,
        t1 = _this._iterator;
      if (t1.moveNext$0()) {
        _this.__internal$_current = _this._f.call$1(t1.get$current());
        return true;
      }
      _this.__internal$_current = null;
      return false;
    },
    get$current() {
      var t1 = this.__internal$_current;
      return t1 == null ? this.$ti._rest[1]._as(t1) : t1;
    },
    $isIterator: 1
  };
  A.MappedListIterable.prototype = {
    get$length(_) {
      return J.get$length$asx(this.__internal$_source);
    },
    elementAt$1(_, index) {
      return this._f.call$1(J.elementAt$1$ax(this.__internal$_source, index));
    }
  };
  A.WhereIterable.prototype = {
    get$iterator(_) {
      return new A.WhereIterator(J.get$iterator$ax(this.__internal$_iterable), this._f, this.$ti._eval$1("WhereIterator<1>"));
    },
    map$1$1(_, toElement, $T) {
      var t1 = this.$ti;
      return new A.MappedIterable(this, t1._bind$1($T)._eval$1("1(2)")._as(toElement), t1._eval$1("@<1>")._bind$1($T)._eval$1("MappedIterable<1,2>"));
    },
    map$1(_, toElement) {
      return this.map$1$1(0, toElement, type$.dynamic);
    }
  };
  A.WhereIterator.prototype = {
    moveNext$0() {
      var t1, t2;
      for (t1 = this._iterator, t2 = this._f; t1.moveNext$0();)
        if (t2.call$1(t1.get$current()))
          return true;
      return false;
    },
    get$current() {
      return this._iterator.get$current();
    },
    $isIterator: 1
  };
  A.ExpandIterable.prototype = {
    get$iterator(_) {
      return new A.ExpandIterator(J.get$iterator$ax(this.__internal$_iterable), this._f, B.C_EmptyIterator, this.$ti._eval$1("ExpandIterator<1,2>"));
    }
  };
  A.ExpandIterator.prototype = {
    get$current() {
      var t1 = this.__internal$_current;
      return t1 == null ? this.$ti._rest[1]._as(t1) : t1;
    },
    moveNext$0() {
      var t2, t3, _this = this,
        t1 = _this._currentExpansion;
      if (t1 == null)
        return false;
      for (t2 = _this._iterator, t3 = _this._f; !t1.moveNext$0();) {
        _this.__internal$_current = null;
        if (t2.moveNext$0()) {
          _this._currentExpansion = null;
          t1 = J.get$iterator$ax(t3.call$1(t2.get$current()));
          _this._currentExpansion = t1;
        } else
          return false;
      }
      _this.__internal$_current = _this._currentExpansion.get$current();
      return true;
    },
    $isIterator: 1
  };
  A.TakeIterable.prototype = {
    get$iterator(_) {
      return new A.TakeIterator(J.get$iterator$ax(this.__internal$_iterable), this._takeCount, A._instanceType(this)._eval$1("TakeIterator<1>"));
    }
  };
  A.EfficientLengthTakeIterable.prototype = {
    get$length(_) {
      var iterableLength = J.get$length$asx(this.__internal$_iterable),
        t1 = this._takeCount;
      if (iterableLength > t1)
        return t1;
      return iterableLength;
    },
    $isEfficientLengthIterable: 1
  };
  A.TakeIterator.prototype = {
    moveNext$0() {
      if (--this._remaining >= 0)
        return this._iterator.moveNext$0();
      this._remaining = -1;
      return false;
    },
    get$current() {
      if (this._remaining < 0) {
        this.$ti._precomputed1._as(null);
        return null;
      }
      return this._iterator.get$current();
    },
    $isIterator: 1
  };
  A.SkipIterable.prototype = {
    skip$1(_, count) {
      A.ArgumentError_checkNotNull(count, "count", type$.int);
      A.RangeError_checkNotNegative(count, "count");
      return new A.SkipIterable(this.__internal$_iterable, this._skipCount + count, A._instanceType(this)._eval$1("SkipIterable<1>"));
    },
    get$iterator(_) {
      return new A.SkipIterator(J.get$iterator$ax(this.__internal$_iterable), this._skipCount, A._instanceType(this)._eval$1("SkipIterator<1>"));
    }
  };
  A.EfficientLengthSkipIterable.prototype = {
    get$length(_) {
      var $length = J.get$length$asx(this.__internal$_iterable) - this._skipCount;
      if ($length >= 0)
        return $length;
      return 0;
    },
    skip$1(_, count) {
      A.ArgumentError_checkNotNull(count, "count", type$.int);
      A.RangeError_checkNotNegative(count, "count");
      return new A.EfficientLengthSkipIterable(this.__internal$_iterable, this._skipCount + count, this.$ti);
    },
    $isEfficientLengthIterable: 1
  };
  A.SkipIterator.prototype = {
    moveNext$0() {
      var t1, i;
      for (t1 = this._iterator, i = 0; i < this._skipCount; ++i)
        t1.moveNext$0();
      this._skipCount = 0;
      return t1.moveNext$0();
    },
    get$current() {
      return this._iterator.get$current();
    },
    $isIterator: 1
  };
  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());
    },
    elementAt$1(_, index) {
      throw A.wrapException(A.RangeError$range(index, 0, 0, "index", null));
    },
    contains$1(_, element) {
      return false;
    },
    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>"));
    },
    map$1(_, toElement) {
      return this.map$1$1(0, toElement, type$.dynamic);
    },
    skip$1(_, count) {
      A.RangeError_checkNotNegative(count, "count");
      return this;
    },
    take$1(_, count) {
      A.RangeError_checkNotNegative(count, "count");
      return this;
    },
    toList$1$growable(_, growable) {
      var t1 = this.$ti._precomputed1;
      return growable ? J.JSArray_JSArray$growable(0, t1) : J.JSArray_JSArray$fixed(0, t1);
    },
    toList$0(_) {
      return this.toList$1$growable(0, 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.__internal$_source), this.$ti._eval$1("WhereTypeIterator<1>"));
    }
  };
  A.WhereTypeIterator.prototype = {
    moveNext$0() {
      var t1, t2;
      for (t1 = this.__internal$_source, t2 = this.$ti._precomputed1; t1.moveNext$0();)
        if (t2._is(t1.get$current()))
          return true;
      return false;
    },
    get$current() {
      return this.$ti._precomputed1._as(this.__internal$_source.get$current());
    },
    $isIterator: 1
  };
  A.FixedLengthListMixin.prototype = {
    set$length(receiver, newLength) {
      throw A.wrapException(A.UnsupportedError$("Cannot change the length of a fixed-length list"));
    },
    add$1(receiver, value) {
      A.instanceType(receiver)._eval$1("FixedLengthListMixin.E")._as(value);
      throw A.wrapException(A.UnsupportedError$("Cannot add to a fixed-length list"));
    }
  };
  A.UnmodifiableListMixin.prototype = {
    $indexSet(_, index, value) {
      A._instanceType(this)._eval$1("UnmodifiableListMixin.E")._as(value);
      throw A.wrapException(A.UnsupportedError$("Cannot modify an unmodifiable list"));
    },
    set$length(_, newLength) {
      throw A.wrapException(A.UnsupportedError$("Cannot change the length of an unmodifiable list"));
    },
    add$1(_, value) {
      A._instanceType(this)._eval$1("UnmodifiableListMixin.E")._as(value);
      throw A.wrapException(A.UnsupportedError$("Cannot add to an unmodifiable list"));
    },
    sort$1(_, compare) {
      A._instanceType(this)._eval$1("int(UnmodifiableListMixin.E,UnmodifiableListMixin.E)?")._as(compare);
      throw A.wrapException(A.UnsupportedError$("Cannot modify an unmodifiable list"));
    },
    fillRange$3(_, start, end, fillValue) {
      throw A.wrapException(A.UnsupportedError$("Cannot modify an unmodifiable list"));
    }
  };
  A.UnmodifiableListBase.prototype = {};
  A.ReversedListIterable.prototype = {
    get$length(_) {
      return J.get$length$asx(this.__internal$_source);
    },
    elementAt$1(_, index) {
      var t1 = this.__internal$_source,
        t2 = J.getInterceptor$asx(t1);
      return t2.elementAt$1(t1, t2.get$length(t1) - 1 - index);
    }
  };
  A.__CastListBase__CastIterableBase_ListMixin.prototype = {};
  A.ConstantMap.prototype = {
    cast$2$0(_, RK, RV) {
      var t1 = A._instanceType(this);
      return A.Map_castFrom(this, t1._precomputed1, t1._rest[1], RK, RV);
    },
    get$isEmpty(_) {
      return this.get$length(this) === 0;
    },
    toString$0(_) {
      return A.MapBase_mapToString(this);
    },
    $indexSet(_, key, value) {
      var t1 = A._instanceType(this);
      t1._precomputed1._as(key);
      t1._rest[1]._as(value);
      A.ConstantMap__throwUnmodifiable();
    },
    map$2$1(_, transform, K2, V2) {
      var result = A.LinkedHashMap_LinkedHashMap$_empty(K2, V2);
      this.forEach$1(0, new A.ConstantMap_map_closure(this, A._instanceType(this)._bind$1(K2)._bind$1(V2)._eval$1("MapEntry<1,2>(3,4)")._as(transform), result));
      return result;
    },
    map$1(_, transform) {
      var t1 = type$.dynamic;
      return this.map$2$1(0, transform, t1, t1);
    },
    $isMap: 1
  };
  A.ConstantMap_map_closure.prototype = {
    call$2(key, value) {
      var t1 = A._instanceType(this.$this),
        entry = this.transform.call$2(t1._precomputed1._as(key), t1._rest[1]._as(value));
      this.result.$indexSet(0, entry.key, entry.value);
    },
    $signature() {
      return A._instanceType(this.$this)._eval$1("~(1,2)");
    }
  };
  A.ConstantStringMap.prototype = {
    get$length(_) {
      return this._values.length;
    },
    get$__js_helper$_keys() {
      var keys = this.$keys;
      if (keys == null) {
        keys = Object.keys(this._jsIndex);
        this.$keys = keys;
      }
      return keys;
    },
    containsKey$1(key) {
      if (typeof key != "string")
        return false;
      if ("__proto__" === key)
        return false;
      return this._jsIndex.hasOwnProperty(key);
    },
    $index(_, key) {
      if (!this.containsKey$1(key))
        return null;
      return this._values[this._jsIndex[key]];
    },
    forEach$1(_, f) {
      var keys, values, t1, i;
      this.$ti._eval$1("~(1,2)")._as(f);
      keys = this.get$__js_helper$_keys();
      values = this._values;
      for (t1 = keys.length, i = 0; i < t1; ++i)
        f.call$2(keys[i], values[i]);
    },
    get$keys() {
      return new A._KeysOrValues(this.get$__js_helper$_keys(), this.$ti._eval$1("_KeysOrValues<1>"));
    }
  };
  A._KeysOrValues.prototype = {
    get$length(_) {
      return this._elements.length;
    },
    get$isEmpty(_) {
      return 0 === this._elements.length;
    },
    get$isNotEmpty(_) {
      return 0 !== this._elements.length;
    },
    get$iterator(_) {
      var t1 = this._elements;
      return new A._KeysOrValuesOrElementsIterator(t1, t1.length, this.$ti._eval$1("_KeysOrValuesOrElementsIterator<1>"));
    }
  };
  A._KeysOrValuesOrElementsIterator.prototype = {
    get$current() {
      var t1 = this.__js_helper$_current;
      return t1 == null ? this.$ti._precomputed1._as(t1) : t1;
    },
    moveNext$0() {
      var _this = this,
        t1 = _this.__js_helper$_index;
      if (t1 >= _this.__js_helper$_length) {
        _this.__js_helper$_current = null;
        return false;
      }
      _this.__js_helper$_current = _this._elements[t1];
      _this.__js_helper$_index = t1 + 1;
      return true;
    },
    $isIterator: 1
  };
  A.Instantiation.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A.Instantiation1 && this._genericClosure.$eq(0, other._genericClosure) && A.getRuntimeTypeOfClosure(this) === A.getRuntimeTypeOfClosure(other);
    },
    get$hashCode(_) {
      return A.Object_hash(this._genericClosure, A.getRuntimeTypeOfClosure(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]);
    },
    call$4(a0, a1, a2, a3) {
      return this._genericClosure.call$1$4(a0, a1, a2, a3, this.$ti._rest[0]);
    },
    $signature() {
      return A.instantiatedGenericFunctionType(A.closureFunctionType(this._genericClosure), this.$ti);
    }
  };
  A.SafeToStringHook.prototype = {};
  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(_) {
      return "Null check operator used on a null value";
    }
  };
  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)";
    },
    $isException: 1
  };
  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) + "'";
    },
    get$runtimeType(_) {
      var rti = A.closureFunctionType(this);
      return A.createRuntimeType(rti == null ? A.instanceType(this) : rti);
    },
    $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.JsLinkedHashMap.prototype = {
    get$length(_) {
      return this.__js_helper$_length;
    },
    get$isEmpty(_) {
      return this.__js_helper$_length === 0;
    },
    get$keys() {
      return new A.LinkedHashMapKeysIterable(this, A._instanceType(this)._eval$1("LinkedHashMapKeysIterable<1>"));
    },
    containsKey$1(key) {
      var strings, nums;
      if (typeof key == "string") {
        strings = this.__js_helper$_strings;
        if (strings == null)
          return false;
        return strings[key] != null;
      } else if (typeof key == "number" && (key & 0x3fffffff) === key) {
        nums = this.__js_helper$_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;
    },
    addAll$1(_, other) {
      A._instanceType(this)._eval$1("Map<1,2>")._as(other).forEach$1(0, new A.JsLinkedHashMap_addAll_closure(this));
    },
    $index(_, key) {
      var strings, cell, t1, nums, _null = null;
      if (typeof key == "string") {
        strings = this.__js_helper$_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.__js_helper$_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.__js_helper$_strings;
        _this._addHashTableEntry$3(strings == null ? _this.__js_helper$_strings = _this._newHashTable$0() : strings, key, value);
      } else if (typeof key == "number" && (key & 0x3fffffff) === key) {
        nums = _this.__js_helper$_nums;
        _this._addHashTableEntry$3(nums == null ? _this.__js_helper$_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));
      }
    },
    putIfAbsent$2(key, ifAbsent) {
      var t2, value, _this = this,
        t1 = A._instanceType(_this);
      t1._precomputed1._as(key);
      t1._eval$1("2()")._as(ifAbsent);
      if (_this.containsKey$1(key)) {
        t2 = _this.$index(0, key);
        return t2 == null ? t1._rest[1]._as(t2) : t2;
      }
      value = ifAbsent.call$0();
      _this.$indexSet(0, key, value);
      return value;
    },
    remove$1(_, key) {
      var _this = this;
      if (typeof key == "string")
        return _this._removeHashTableEntry$2(_this.__js_helper$_strings, key);
      else if (typeof key == "number" && (key & 0x3fffffff) === key)
        return _this._removeHashTableEntry$2(_this.__js_helper$_nums, key);
      else
        return _this.internalRemove$1(key);
    },
    internalRemove$1(key) {
      var hash, bucket, index, cell, _this = this,
        rest = _this.__js_helper$_rest;
      if (rest == null)
        return null;
      hash = _this.internalComputeHashCode$1(key);
      bucket = rest[hash];
      index = _this.internalFindBucketIndex$2(bucket, key);
      if (index < 0)
        return null;
      cell = bucket.splice(index, 1)[0];
      _this.__js_helper$_unlinkCell$1(cell);
      if (bucket.length === 0)
        delete rest[hash];
      return cell.hashMapCellValue;
    },
    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;
    },
    _removeHashTableEntry$2(table, key) {
      var cell;
      if (table == null)
        return null;
      cell = table[key];
      if (cell == null)
        return null;
      this.__js_helper$_unlinkCell$1(cell);
      delete table[key];
      return cell.hashMapCellValue;
    },
    _modified$0() {
      this._modifications = this._modifications + 1 & 1073741823;
    },
    _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 {
        t1 = _this._last;
        t1.toString;
        cell._previous = t1;
        _this._last = t1._next = cell;
      }
      ++_this.__js_helper$_length;
      _this._modified$0();
      return cell;
    },
    __js_helper$_unlinkCell$1(cell) {
      var _this = this,
        previous = cell._previous,
        next = cell._next;
      if (previous == null)
        _this._first = next;
      else
        previous._next = next;
      if (next == null)
        _this._last = previous;
      else
        next._previous = previous;
      --_this.__js_helper$_length;
      _this._modified$0();
    },
    internalComputeHashCode$1(key) {
      return J.get$hashCode$(key) & 1073741823;
    },
    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_addAll_closure.prototype = {
    call$2(key, value) {
      var t1 = this.$this,
        t2 = A._instanceType(t1);
      t1.$indexSet(0, t2._precomputed1._as(key), t2._rest[1]._as(value));
    },
    $signature() {
      return A._instanceType(this.$this)._eval$1("~(1,2)");
    }
  };
  A.LinkedHashMapCell.prototype = {};
  A.LinkedHashMapKeysIterable.prototype = {
    get$length(_) {
      return this.__js_helper$_map.__js_helper$_length;
    },
    get$isEmpty(_) {
      return this.__js_helper$_map.__js_helper$_length === 0;
    },
    get$iterator(_) {
      var t1 = this.__js_helper$_map;
      return new A.LinkedHashMapKeyIterator(t1, t1._modifications, t1._first, this.$ti._eval$1("LinkedHashMapKeyIterator<1>"));
    },
    contains$1(_, element) {
      return this.__js_helper$_map.containsKey$1(element);
    }
  };
  A.LinkedHashMapKeyIterator.prototype = {
    get$current() {
      return this.__js_helper$_current;
    },
    moveNext$0() {
      var cell, _this = this,
        t1 = _this.__js_helper$_map;
      if (_this._modifications !== t1._modifications)
        throw A.wrapException(A.ConcurrentModificationError$(t1));
      cell = _this._cell;
      if (cell == null) {
        _this.__js_helper$_current = null;
        return false;
      } else {
        _this.__js_helper$_current = cell.hashMapCellKey;
        _this._cell = cell._next;
        return true;
      }
    },
    $isIterator: 1
  };
  A.LinkedHashMapValuesIterable.prototype = {
    get$length(_) {
      return this.__js_helper$_map.__js_helper$_length;
    },
    get$isEmpty(_) {
      return this.__js_helper$_map.__js_helper$_length === 0;
    },
    get$iterator(_) {
      var t1 = this.__js_helper$_map;
      return new A.LinkedHashMapValueIterator(t1, t1._modifications, t1._first, this.$ti._eval$1("LinkedHashMapValueIterator<1>"));
    }
  };
  A.LinkedHashMapValueIterator.prototype = {
    get$current() {
      return this.__js_helper$_current;
    },
    moveNext$0() {
      var cell, _this = this,
        t1 = _this.__js_helper$_map;
      if (_this._modifications !== t1._modifications)
        throw A.wrapException(A.ConcurrentModificationError$(t1));
      cell = _this._cell;
      if (cell == null) {
        _this.__js_helper$_current = null;
        return false;
      } else {
        _this.__js_helper$_current = cell.hashMapCellValue;
        _this._cell = cell._next;
        return true;
      }
    },
    $isIterator: 1
  };
  A.LinkedHashMapEntriesIterable.prototype = {
    get$length(_) {
      return this.__js_helper$_map.__js_helper$_length;
    },
    get$isEmpty(_) {
      return this.__js_helper$_map.__js_helper$_length === 0;
    },
    get$iterator(_) {
      var t1 = this.__js_helper$_map;
      return new A.LinkedHashMapEntryIterator(t1, t1._modifications, t1._first, this.$ti._eval$1("LinkedHashMapEntryIterator<1,2>"));
    }
  };
  A.LinkedHashMapEntryIterator.prototype = {
    get$current() {
      var t1 = this.__js_helper$_current;
      t1.toString;
      return t1;
    },
    moveNext$0() {
      var cell, _this = this,
        t1 = _this.__js_helper$_map;
      if (_this._modifications !== t1._modifications)
        throw A.wrapException(A.ConcurrentModificationError$(t1));
      cell = _this._cell;
      if (cell == null) {
        _this.__js_helper$_current = null;
        return false;
      } else {
        _this.__js_helper$_current = new A.MapEntry(cell.hashMapCellKey, cell.hashMapCellValue, _this.$ti._eval$1("MapEntry<1,2>"));
        _this._cell = cell._next;
        return true;
      }
    },
    $isIterator: 1
  };
  A.JsIdentityLinkedHashMap.prototype = {
    internalComputeHashCode$1(key) {
      return A.objectHashCode(key) & 1073741823;
    },
    internalFindBucketIndex$2(bucket, key) {
      var $length, i, t1;
      if (bucket == null)
        return -1;
      $length = bucket.length;
      for (i = 0; i < $length; ++i) {
        t1 = bucket[i].hashMapCellKey;
        if (t1 == null ? key == null : t1 === key)
          return i;
      }
      return -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: 83
  };
  A.initHooks_closure1.prototype = {
    call$1(tag) {
      return this.prototypeForTag(A._asString(tag));
    },
    $signature: 90
  };
  A._Record.prototype = {};
  A.JSSyntaxRegExp.prototype = {
    toString$0(_) {
      return "RegExp/" + this.pattern + "/" + this._nativeRegExp.flags;
    },
    get$_nativeGlobalVersion() {
      var _this = this,
        t1 = _this._nativeGlobalRegExp;
      if (t1 != null)
        return t1;
      t1 = _this._nativeRegExp;
      return _this._nativeGlobalRegExp = A.JSSyntaxRegExp_makeNative(_this.pattern, t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, "g");
    },
    get$_nativeAnchoredVersion() {
      var _this = this,
        t1 = _this._nativeAnchoredRegExp;
      if (t1 != null)
        return t1;
      t1 = _this._nativeRegExp;
      return _this._nativeAnchoredRegExp = A.JSSyntaxRegExp_makeNative(_this.pattern, t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, "y");
    },
    firstMatch$1(string) {
      var m = this._nativeRegExp.exec(string);
      if (m == null)
        return null;
      return new A._MatchImplementation(m);
    },
    allMatches$2(_, string, start) {
      var t1 = string.length;
      if (start > t1)
        throw A.wrapException(A.RangeError$range(start, 0, t1, null, null));
      return new A._AllMatchesIterable(this, string, start);
    },
    allMatches$1(_, string) {
      return this.allMatches$2(0, string, 0);
    },
    _execGlobal$2(string, start) {
      var match,
        regexp = this.get$_nativeGlobalVersion();
      if (regexp == null)
        regexp = type$.Object._as(regexp);
      regexp.lastIndex = start;
      match = regexp.exec(string);
      if (match == null)
        return null;
      return new A._MatchImplementation(match);
    },
    _execAnchored$2(string, start) {
      var match,
        regexp = this.get$_nativeAnchoredVersion();
      if (regexp == null)
        regexp = type$.Object._as(regexp);
      regexp.lastIndex = start;
      match = regexp.exec(string);
      if (match == null)
        return null;
      return new A._MatchImplementation(match);
    },
    matchAsPrefix$2(_, string, start) {
      if (start < 0 || start > string.length)
        throw A.wrapException(A.RangeError$range(start, 0, string.length, null, null));
      return this._execAnchored$2(string, start);
    },
    $isPattern: 1,
    $isRegExp: 1
  };
  A._MatchImplementation.prototype = {
    get$start() {
      return this._match.index;
    },
    get$end() {
      var t1 = this._match;
      return t1.index + t1[0].length;
    },
    $index(_, index) {
      var t1 = this._match;
      if (!(index < t1.length))
        return A.ioore(t1, index);
      return t1[index];
    },
    $isMatch: 1,
    $isRegExpMatch: 1
  };
  A._AllMatchesIterable.prototype = {
    get$iterator(_) {
      return new A._AllMatchesIterator(this._re, this._string, this.__js_helper$_start);
    }
  };
  A._AllMatchesIterator.prototype = {
    get$current() {
      var t1 = this.__js_helper$_current;
      return t1 == null ? type$.RegExpMatch._as(t1) : t1;
    },
    moveNext$0() {
      var t1, t2, t3, match, nextIndex, t4, _this = this,
        string = _this._string;
      if (string == null)
        return false;
      t1 = _this._nextIndex;
      t2 = string.length;
      if (t1 <= t2) {
        t3 = _this._regExp;
        match = t3._execGlobal$2(string, t1);
        if (match != null) {
          _this.__js_helper$_current = match;
          nextIndex = match.get$end();
          if (match._match.index === nextIndex) {
            t1 = false;
            if (t3._nativeRegExp.unicode) {
              t3 = _this._nextIndex;
              t4 = t3 + 1;
              if (t4 < t2) {
                if (!(t3 >= 0 && t3 < t2))
                  return A.ioore(string, t3);
                t3 = string.charCodeAt(t3);
                if (t3 >= 55296 && t3 <= 56319) {
                  if (!(t4 >= 0))
                    return A.ioore(string, t4);
                  t1 = string.charCodeAt(t4);
                  t1 = t1 >= 56320 && t1 <= 57343;
                }
              }
            }
            nextIndex = (t1 ? nextIndex + 1 : nextIndex) + 1;
          }
          _this._nextIndex = nextIndex;
          return true;
        }
      }
      _this._string = _this.__js_helper$_current = null;
      return false;
    },
    $isIterator: 1
  };
  A.StringMatch.prototype = {
    get$end() {
      return this.start + this.pattern.length;
    },
    $index(_, g) {
      if (g !== 0)
        A.throwExpression(A.RangeError$value(g, null));
      return this.pattern;
    },
    $isMatch: 1,
    get$start() {
      return this.start;
    }
  };
  A._StringAllMatchesIterable.prototype = {
    get$iterator(_) {
      return new A._StringAllMatchesIterator(this._input, this._pattern, this.__js_helper$_index);
    },
    get$first(_) {
      var t1 = this._pattern,
        index = this._input.indexOf(t1, this.__js_helper$_index);
      if (index >= 0)
        return new A.StringMatch(index, t1);
      throw A.wrapException(A.IterableElementError_noElement());
    }
  };
  A._StringAllMatchesIterator.prototype = {
    moveNext$0() {
      var index, end, _this = this,
        t1 = _this.__js_helper$_index,
        t2 = _this._pattern,
        t3 = t2.length,
        t4 = _this._input,
        t5 = t4.length;
      if (t1 + t3 > t5) {
        _this.__js_helper$_current = null;
        return false;
      }
      index = t4.indexOf(t2, t1);
      if (index < 0) {
        _this.__js_helper$_index = t5 + 1;
        _this.__js_helper$_current = null;
        return false;
      }
      end = index + t3;
      _this.__js_helper$_current = new A.StringMatch(index, t2);
      _this.__js_helper$_index = end === _this.__js_helper$_index ? end + 1 : end;
      return true;
    },
    get$current() {
      var t1 = this.__js_helper$_current;
      t1.toString;
      return t1;
    },
    $isIterator: 1
  };
  A._Cell.prototype = {
    readLocal$1$0() {
      var t1 = this.__late_helper$_value;
      if (t1 === this)
        A.throwExpression(new A.LateError("Local '" + this._name + "' has not been initialized."));
      return t1;
    },
    readLocal$0() {
      return this.readLocal$1$0(type$.dynamic);
    },
    _readLocal$0() {
      var t1 = this.__late_helper$_value;
      if (t1 === this)
        throw A.wrapException(new A.LateError("Local '" + this._name + "' has not been initialized."));
      return t1;
    },
    _readField$0() {
      var t1 = this.__late_helper$_value;
      if (t1 === this)
        throw A.wrapException(A.LateError$fieldNI(this._name));
      return t1;
    }
  };
  A.NativeByteBuffer.prototype = {
    get$runtimeType(receiver) {
      return B.Type_ByteBuffer_rqD;
    },
    $isTrustedGetRuntimeType: 1,
    $isNativeByteBuffer: 1,
    $isByteBuffer: 1
  };
  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);
    }
  };
  A.NativeByteData.prototype = {
    get$runtimeType(receiver) {
      return B.Type_ByteData_9dB;
    },
    $isTrustedGetRuntimeType: 1,
    $isByteData: 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);
    },
    $isJSIndexable: 1,
    $isJavaScriptIndexingBehavior: 1
  };
  A.NativeTypedArrayOfDouble.prototype = {
    $index(receiver, index) {
      A._checkValidIndex(index, receiver, receiver.length);
      return receiver[index];
    },
    $indexSet(receiver, index, value) {
      A._asDouble(value);
      receiver.$flags & 2 && A.throwUnsupportedOperation(receiver);
      A._checkValidIndex(index, receiver, receiver.length);
      receiver[index] = value;
    },
    $isEfficientLengthIterable: 1,
    $isIterable: 1,
    $isList: 1
  };
  A.NativeTypedArrayOfInt.prototype = {
    $indexSet(receiver, index, value) {
      A._asInt(value);
      receiver.$flags & 2 && A.throwUnsupportedOperation(receiver);
      A._checkValidIndex(index, receiver, receiver.length);
      receiver[index] = value;
    },
    setRange$4(receiver, start, end, iterable, skipCount) {
      type$.Iterable_int._as(iterable);
      receiver.$flags & 2 && A.throwUnsupportedOperation(receiver, 5);
      if (type$.NativeTypedArrayOfInt._is(iterable)) {
        this._setRangeFast$4(receiver, start, end, iterable, skipCount);
        return;
      }
      this.super$ListBase$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 = {
    get$runtimeType(receiver) {
      return B.Type_Float32List_9Kz;
    },
    sublist$2(receiver, start, end) {
      return new Float32Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length)));
    },
    sublist$1(receiver, start) {
      return this.sublist$2(receiver, start, null);
    },
    $isTrustedGetRuntimeType: 1,
    $isFloat32List: 1
  };
  A.NativeFloat64List.prototype = {
    get$runtimeType(receiver) {
      return B.Type_Float64List_9Kz;
    },
    sublist$2(receiver, start, end) {
      return new Float64Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length)));
    },
    sublist$1(receiver, start) {
      return this.sublist$2(receiver, start, null);
    },
    $isTrustedGetRuntimeType: 1,
    $isFloat64List: 1
  };
  A.NativeInt16List.prototype = {
    get$runtimeType(receiver) {
      return B.Type_Int16List_s5h;
    },
    $index(receiver, 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)));
    },
    sublist$1(receiver, start) {
      return this.sublist$2(receiver, start, null);
    },
    $isTrustedGetRuntimeType: 1,
    $isInt16List: 1
  };
  A.NativeInt32List.prototype = {
    get$runtimeType(receiver) {
      return B.Type_Int32List_O8Z;
    },
    $index(receiver, 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)));
    },
    sublist$1(receiver, start) {
      return this.sublist$2(receiver, start, null);
    },
    $isTrustedGetRuntimeType: 1,
    $isInt32List: 1
  };
  A.NativeInt8List.prototype = {
    get$runtimeType(receiver) {
      return B.Type_Int8List_rFV;
    },
    $index(receiver, 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)));
    },
    sublist$1(receiver, start) {
      return this.sublist$2(receiver, start, null);
    },
    $isTrustedGetRuntimeType: 1,
    $isInt8List: 1
  };
  A.NativeUint16List.prototype = {
    get$runtimeType(receiver) {
      return B.Type_Uint16List_kmP;
    },
    $index(receiver, 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)));
    },
    sublist$1(receiver, start) {
      return this.sublist$2(receiver, start, null);
    },
    $isTrustedGetRuntimeType: 1,
    $isUint16List: 1
  };
  A.NativeUint32List.prototype = {
    get$runtimeType(receiver) {
      return B.Type_Uint32List_kmP;
    },
    $index(receiver, 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);
    },
    $isTrustedGetRuntimeType: 1,
    $isUint32List: 1
  };
  A.NativeUint8ClampedList.prototype = {
    get$runtimeType(receiver) {
      return B.Type_Uint8ClampedList_04U;
    },
    get$length(receiver) {
      return receiver.length;
    },
    $index(receiver, 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)));
    },
    sublist$1(receiver, start) {
      return this.sublist$2(receiver, start, null);
    },
    $isTrustedGetRuntimeType: 1,
    $isUint8ClampedList: 1
  };
  A.NativeUint8List.prototype = {
    get$runtimeType(receiver) {
      return B.Type_Uint8List_8Eb;
    },
    get$length(receiver) {
      return receiver.length;
    },
    $index(receiver, 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);
    },
    $isTrustedGetRuntimeType: 1,
    $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(__wc0_formal) {
      var t1 = this._box_0,
        f = t1.storedCallback;
      t1.storedCallback = null;
      f.call$0();
    },
    $signature: 6
  };
  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: 63
  };
  A._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = {
    call$0() {
      this.callback.call$0();
    },
    $signature: 1
  };
  A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback.prototype = {
    call$0() {
      this.callback.call$0();
    },
    $signature: 1
  };
  A._TimerImpl.prototype = {
    _TimerImpl$2(milliseconds, callback) {
      if (self.setTimeout != null)
        this._handle = self.setTimeout(A.convertDartClosureToJS(new A._TimerImpl_internalCallback(this, callback), 0), milliseconds);
      else
        throw A.wrapException(A.UnsupportedError$("`setTimeout()` not found."));
    },
    _TimerImpl$periodic$2(milliseconds, callback) {
      if (self.setTimeout != null)
        this._handle = self.setInterval(A.convertDartClosureToJS(new A._TimerImpl$periodic_closure(this, milliseconds, Date.now(), callback), 0), milliseconds);
      else
        throw A.wrapException(A.UnsupportedError$("Periodic timer."));
    },
    get$isActive() {
      return this._handle != null;
    },
    cancel$0() {
      if (self.setTimeout != null) {
        var t1 = this._handle;
        if (t1 == null)
          return;
        if (this._once)
          self.clearTimeout(t1);
        else
          self.clearInterval(t1);
        this._handle = null;
      } else
        throw A.wrapException(A.UnsupportedError$("Canceling a timer."));
    },
    $isTimer: 1
  };
  A._TimerImpl_internalCallback.prototype = {
    call$0() {
      var t1 = this.$this;
      t1._handle = null;
      t1._tick = 1;
      this.callback.call$0();
    },
    $signature: 0
  };
  A._TimerImpl$periodic_closure.prototype = {
    call$0() {
      var duration, _this = this,
        t1 = _this.$this,
        tick = t1._tick + 1,
        t2 = _this.milliseconds;
      if (t2 > 0) {
        duration = Date.now() - _this.start;
        if (duration > (tick + 1) * t2)
          tick = B.JSInt_methods.$tdiv(duration, t2);
      }
      t1._tick = tick;
      _this.callback.call$1(t1);
    },
    $signature: 1
  };
  A._AsyncAwaitCompleter.prototype = {
    complete$1(value) {
      var t2, _this = this,
        t1 = _this.$ti;
      t1._eval$1("1/?")._as(value);
      if (value == null)
        value = 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(value);
      }
    },
    completeError$2(e, st) {
      var t1 = this._future;
      if (this.isSync)
        t1._completeErrorObject$1(new A.AsyncError(e, st));
      else
        t1._asyncCompleteErrorObject$1(new A.AsyncError(e, st));
    },
    $isCompleter: 1
  };
  A._awaitOnObject_closure.prototype = {
    call$1(result) {
      return this.bodyFunction.call$2(0, result);
    },
    $signature: 7
  };
  A._awaitOnObject_closure0.prototype = {
    call$2(error, stackTrace) {
      this.bodyFunction.call$2(1, new A.ExceptionAndStackTrace(error, type$.StackTrace._as(stackTrace)));
    },
    $signature: 53
  };
  A._wrapJsFunctionForAsync_closure.prototype = {
    call$2(errorCode, result) {
      this.$protected(A._asInt(errorCode), result);
    },
    $signature: 37
  };
  A.AsyncError.prototype = {
    toString$0(_) {
      return A.S(this.error);
    },
    $isError: 1,
    get$stackTrace() {
      return this.stackTrace;
    }
  };
  A.Future_Future$microtask_closure.prototype = {
    call$0() {
      var e, s, exception, t1, t2, t3, computationResult = null;
      try {
        computationResult = this.computation.call$0();
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        t1 = e;
        t2 = s;
        t3 = A._interceptError(t1, t2);
        if (t3 == null)
          t1 = new A.AsyncError(t1, t2);
        else
          t1 = t3;
        this.result._completeErrorObject$1(t1);
        return;
      }
      this.result._complete$1(computationResult);
    },
    $signature: 0
  };
  A.TimeoutException.prototype = {};
  A._Completer.prototype = {
    completeError$2(error, stackTrace) {
      type$.Object._as(error);
      type$.nullable_StackTrace._as(stackTrace);
      if ((this.future._state & 30) !== 0)
        throw A.wrapException(A.StateError$("Future already completed"));
      this._completeErrorObject$1(A._interceptUserError(error, stackTrace));
    },
    completeError$1(error) {
      return this.completeError$2(error, null);
    },
    $isCompleter: 1
  };
  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));
    },
    complete$0() {
      return this.complete$1(null);
    },
    _completeErrorObject$1(error) {
      this.future._asyncCompleteErrorObject$1(error);
    }
  };
  A._SyncCompleter.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._complete$1(t1._eval$1("1/")._as(value));
    },
    _completeErrorObject$1(error) {
      this.future._completeErrorObject$1(error);
    }
  };
  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 {
        f = currentZone.registerUnaryCallback$2$1(f, $R._eval$1("0/"), t1._precomputed1);
        if (onError != null)
          onError = A._registerErrorHandler(onError, currentZone);
      }
      result = new A._Future($.Zone__current, $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, 19, f, onError, t1._eval$1("@<1>")._bind$1($E)._eval$1("_FutureListener<1,2>")));
      return result;
    },
    catchError$1(onError) {
      var t1 = this.$ti,
        t2 = $.Zone__current,
        result = new A._Future(t2, t1);
      if (t2 !== B.C__RootZone)
        onError = A._registerErrorHandler(onError, t2);
      this._addListener$1(new A._FutureListener(result, 2, null, onError, t1._eval$1("_FutureListener<1,1>")));
      return result;
    },
    whenComplete$1(action) {
      var t1, t2, result;
      type$.dynamic_Function._as(action);
      t1 = this.$ti;
      t2 = $.Zone__current;
      result = new A._Future(t2, t1);
      if (t2 !== B.C__RootZone)
        action = t2.registerCallback$1$1(action, type$.dynamic);
      this._addListener$1(new A._FutureListener(result, 8, action, null, t1._eval$1("_FutureListener<1,1>")));
      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);
        }
        _this._zone.scheduleMicrotask$1(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);
        _this._zone.scheduleMicrotask$1(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;
    },
    _complete$1(value) {
      var listeners, _this = this,
        t1 = _this.$ti;
      t1._eval$1("1/")._as(value);
      if (t1._eval$1("Future<1>")._is(value))
        A._Future__chainCoreFuture(value, _this, true);
      else {
        listeners = _this._removeListeners$0();
        t1._precomputed1._as(value);
        _this._state = 8;
        _this._resultOrListeners = value;
        A._Future__propagateToListeners(_this, listeners);
      }
    },
    _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);
    },
    _completeWithResultOf$1(source) {
      var t1, t2, listeners, _this = this;
      if ((source._state & 16) !== 0) {
        t1 = _this._zone;
        t2 = source._zone;
        t1 = !(t1 === t2 || t1.get$errorZone() === t2.get$errorZone());
      } else
        t1 = false;
      if (t1)
        return;
      listeners = _this._removeListeners$0();
      _this._cloneResult$1(source);
      A._Future__propagateToListeners(_this, listeners);
    },
    _completeErrorObject$1(error) {
      var listeners = this._removeListeners$0();
      this._setErrorObject$1(error);
      A._Future__propagateToListeners(this, listeners);
    },
    _completeError$2(error, stackTrace) {
      type$.Object._as(error);
      type$.StackTrace._as(stackTrace);
      this._completeErrorObject$1(new A.AsyncError(error, stackTrace));
    },
    _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(value);
    },
    _asyncCompleteWithValue$1(value) {
      var _this = this;
      _this.$ti._precomputed1._as(value);
      _this._state ^= 2;
      _this._zone.scheduleMicrotask$1(new A._Future__asyncCompleteWithValue_closure(_this, value));
    },
    _chainFuture$1(value) {
      A._Future__chainCoreFuture(this.$ti._eval$1("Future<1>")._as(value), this, false);
      return;
    },
    _asyncCompleteErrorObject$1(error) {
      this._state ^= 2;
      this._zone.scheduleMicrotask$1(new A._Future__asyncCompleteErrorObject_closure(this, error));
    },
    timeout$2$onTimeout(timeLimit, onTimeout) {
      var t3, _future, _this = this, t1 = {},
        t2 = _this.$ti;
      t2._eval$1("1/()?")._as(onTimeout);
      if ((_this._state & 24) !== 0) {
        t1 = new A._Future($.Zone__current, t2);
        t1._asyncComplete$1(_this);
        return t1;
      }
      t3 = $.Zone__current;
      _future = new A._Future(t3, t2);
      t1.timer = null;
      t1.timer = A.Timer_Timer(timeLimit, new A._Future_timeout_closure(_this, _future, t3, t3.registerCallback$1$1(onTimeout, t2._eval$1("1/"))));
      _this.then$1$2$onError(new A._Future_timeout_closure0(t1, _this, _future), new A._Future_timeout_closure1(t1, _future), type$.Null);
      return _future;
    },
    $isFuture: 1
  };
  A._Future__addListener_closure.prototype = {
    call$0() {
      A._Future__propagateToListeners(this.$this, this.listener);
    },
    $signature: 0
  };
  A._Future__prependListeners_closure.prototype = {
    call$0() {
      A._Future__propagateToListeners(this.$this, this._box_0.listeners);
    },
    $signature: 0
  };
  A._Future__chainCoreFuture_closure.prototype = {
    call$0() {
      A._Future__chainCoreFuture(this._box_0.source, this.target, true);
    },
    $signature: 0
  };
  A._Future__asyncCompleteWithValue_closure.prototype = {
    call$0() {
      this.$this._completeWithValue$1(this.value);
    },
    $signature: 0
  };
  A._Future__asyncCompleteErrorObject_closure.prototype = {
    call$0() {
      this.$this._completeErrorObject$1(this.error);
    },
    $signature: 0
  };
  A._Future__propagateToListeners_handleWhenCompleteCallback.prototype = {
    call$0() {
      var e, s, t1, exception, t2, t3, originalSource, joinedResult, _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);
        if (_this.hasError && type$.AsyncError._as(_this._box_1.source._resultOrListeners).error === e) {
          t1 = _this._box_0;
          t1.listenerValueOrError = type$.AsyncError._as(_this._box_1.source._resultOrListeners);
        } else {
          t1 = e;
          t2 = s;
          if (t2 == null)
            t2 = A.AsyncError_defaultStackTrace(t1);
          t3 = _this._box_0;
          t3.listenerValueOrError = new A.AsyncError(t1, t2);
          t1 = t3;
        }
        t1.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 (completeResult instanceof A._Future) {
        originalSource = _this._box_1.source;
        joinedResult = new A._Future(originalSource._zone, originalSource.$ti);
        completeResult.then$1$2$onError(new A._Future__propagateToListeners_handleWhenCompleteCallback_closure(joinedResult, originalSource), new A._Future__propagateToListeners_handleWhenCompleteCallback_closure0(joinedResult), type$.void);
        t1 = _this._box_0;
        t1.listenerValueOrError = joinedResult;
        t1.listenerHasError = false;
      }
    },
    $signature: 0
  };
  A._Future__propagateToListeners_handleWhenCompleteCallback_closure.prototype = {
    call$1(__wc0_formal) {
      this.joinedResult._completeWithResultOf$1(this.originalSource);
    },
    $signature: 6
  };
  A._Future__propagateToListeners_handleWhenCompleteCallback_closure0.prototype = {
    call$2(e, s) {
      type$.Object._as(e);
      type$.StackTrace._as(s);
      this.joinedResult._completeErrorObject$1(new A.AsyncError(e, s));
    },
    $signature: 5
  };
  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 = e;
        t2 = s;
        if (t2 == null)
          t2 = A.AsyncError_defaultStackTrace(t1);
        t3 = this._box_0;
        t3.listenerValueOrError = new A.AsyncError(t1, t2);
        t3.listenerHasError = true;
      }
    },
    $signature: 0
  };
  A._Future__propagateToListeners_handleError.prototype = {
    call$0() {
      var asyncError, e, s, t1, exception, t2, t3, _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);
        if (t1.error === e) {
          t2 = _this._box_0;
          t2.listenerValueOrError = t1;
          t1 = t2;
        } else {
          t1 = e;
          t2 = s;
          if (t2 == null)
            t2 = A.AsyncError_defaultStackTrace(t1);
          t3 = _this._box_0;
          t3.listenerValueOrError = new A.AsyncError(t1, t2);
          t1 = t3;
        }
        t1.listenerHasError = true;
      }
    },
    $signature: 0
  };
  A._Future_timeout_closure.prototype = {
    call$0() {
      var e, s, exception, t1, t2, _this = this;
      try {
        _this._future._complete$1(_this.zone.run$1$1(_this.onTimeoutHandler, _this.$this.$ti._eval$1("1/")));
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        t1 = e;
        t2 = s;
        if (t2 == null)
          t2 = A.AsyncError_defaultStackTrace(t1);
        _this._future._completeErrorObject$1(new A.AsyncError(t1, t2));
      }
    },
    $signature: 0
  };
  A._Future_timeout_closure0.prototype = {
    call$1(v) {
      var t1;
      this.$this.$ti._precomputed1._as(v);
      t1 = this._box_0;
      if (t1.timer.get$isActive()) {
        t1.timer.cancel$0();
        this._future._completeWithValue$1(v);
      }
    },
    $signature() {
      return this.$this.$ti._eval$1("Null(1)");
    }
  };
  A._Future_timeout_closure1.prototype = {
    call$2(e, s) {
      var t1;
      type$.Object._as(e);
      type$.StackTrace._as(s);
      t1 = this._box_0;
      if (t1.timer.get$isActive()) {
        t1.timer.cancel$0();
        this._future._completeErrorObject$1(new A.AsyncError(e, s));
      }
    },
    $signature: 5
  };
  A._AsyncCallbackEntry.prototype = {};
  A.Stream.prototype = {
    map$1$1(_, convert, $S) {
      var t1 = A._instanceType(this);
      return new A._MapStream(t1._bind$1($S)._eval$1("1(Stream.T)")._as(convert), this, t1._eval$1("@<Stream.T>")._bind$1($S)._eval$1("_MapStream<1,2>"));
    },
    map$1(_, convert) {
      return this.map$1$1(0, convert, type$.dynamic);
    },
    get$length(_) {
      var t1 = {},
        future = new A._Future($.Zone__current, type$._Future_int);
      t1.count = 0;
      this.listen$4$cancelOnError$onDone$onError(new A.Stream_length_closure(t1, this), true, new A.Stream_length_closure0(t1, future), future.get$_completeError());
      return future;
    },
    get$first(_) {
      var future = new A._Future($.Zone__current, A._instanceType(this)._eval$1("_Future<Stream.T>")),
        subscription = this.listen$4$cancelOnError$onDone$onError(null, true, new A.Stream_first_closure(future), future.get$_completeError());
      subscription.onData$1(new A.Stream_first_closure0(this, subscription, future));
      return future;
    }
  };
  A.Stream_length_closure.prototype = {
    call$1(__wc0_formal) {
      A._instanceType(this.$this)._eval$1("Stream.T")._as(__wc0_formal);
      ++this._box_0.count;
    },
    $signature() {
      return A._instanceType(this.$this)._eval$1("~(Stream.T)");
    }
  };
  A.Stream_length_closure0.prototype = {
    call$0() {
      this.future._complete$1(this._box_0.count);
    },
    $signature: 0
  };
  A.Stream_first_closure.prototype = {
    call$0() {
      var t1,
        error = new A.StateError("No element");
      A.Primitives_trySetStackTrace(error, B._StringStackTrace_OdL);
      t1 = A._interceptError(error, B._StringStackTrace_OdL);
      if (t1 == null)
        t1 = new A.AsyncError(error, B._StringStackTrace_OdL);
      this.future._completeErrorObject$1(t1);
    },
    $signature: 0
  };
  A.Stream_first_closure0.prototype = {
    call$1(value) {
      A._cancelAndValue(this.subscription, this.future, A._instanceType(this.$this)._eval$1("Stream.T")._as(value));
    },
    $signature() {
      return A._instanceType(this.$this)._eval$1("~(Stream.T)");
    }
  };
  A.StreamView.prototype = {
    listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) {
      return this._stream.listen$4$cancelOnError$onDone$onError(A._instanceType(this)._eval$1("~(StreamView.T)?")._as(onData), cancelOnError, type$.nullable_void_Function._as(onDone), onError);
    },
    listen$3$onDone$onError(onData, onDone, onError) {
      return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError);
    }
  };
  A._StreamController.prototype = {
    get$_pendingEvents() {
      var t1, _this = this;
      if ((_this._state & 8) === 0)
        return A._instanceType(_this)._eval$1("_PendingEvents<1>?")._as(_this._varData);
      t1 = A._instanceType(_this);
      return t1._eval$1("_PendingEvents<1>?")._as(t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData).get$_varData());
    },
    _ensurePendingEvents$0() {
      var events, t1, _this = this;
      if ((_this._state & 8) === 0) {
        events = _this._varData;
        if (events == null)
          events = _this._varData = new A._PendingEvents(A._instanceType(_this)._eval$1("_PendingEvents<1>"));
        return A._instanceType(_this)._eval$1("_PendingEvents<1>")._as(events);
      }
      t1 = A._instanceType(_this);
      events = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData).get$_varData();
      return t1._eval$1("_PendingEvents<1>")._as(events);
    },
    get$_subscription() {
      var varData = this._varData;
      if ((this._state & 8) !== 0)
        varData = type$._StreamControllerAddStreamState_nullable_Object._as(varData).get$_varData();
      return A._instanceType(this)._eval$1("_ControllerSubscription<1>")._as(varData);
    },
    _badEventState$0() {
      if ((this._state & 4) !== 0)
        return new A.StateError("Cannot add event after closing");
      return new A.StateError("Cannot add event while adding a stream");
    },
    _ensureDoneFuture$0() {
      var t1 = this._doneFuture;
      if (t1 == null)
        t1 = this._doneFuture = (this._state & 2) !== 0 ? $.$get$Future__nullFuture() : new A._Future($.Zone__current, type$._Future_void);
      return t1;
    },
    add$1(_, value) {
      var _this = this;
      A._instanceType(_this)._precomputed1._as(value);
      if (_this._state >= 4)
        throw A.wrapException(_this._badEventState$0());
      _this._add$1(value);
    },
    addError$2(error, stackTrace) {
      var _0_0, t1, _this = this;
      type$.Object._as(error);
      type$.nullable_StackTrace._as(stackTrace);
      if (_this._state >= 4)
        throw A.wrapException(_this._badEventState$0());
      _0_0 = A._interceptUserError(error, stackTrace);
      error = _0_0.error;
      stackTrace = _0_0.stackTrace;
      t1 = _this._state;
      if ((t1 & 1) !== 0)
        _this._sendError$2(error, stackTrace);
      else if ((t1 & 3) === 0)
        _this._ensurePendingEvents$0().add$1(0, new A._DelayedError(error, stackTrace));
    },
    addError$1(error) {
      return this.addError$2(error, null);
    },
    close$0() {
      var _this = this,
        t1 = _this._state;
      if ((t1 & 4) !== 0)
        return _this._ensureDoneFuture$0();
      if (t1 >= 4)
        throw A.wrapException(_this._badEventState$0());
      _this._closeUnchecked$0();
      return _this._ensureDoneFuture$0();
    },
    _closeUnchecked$0() {
      var t1 = this._state |= 4;
      if ((t1 & 1) !== 0)
        this._sendDone$0();
      else if ((t1 & 3) === 0)
        this._ensurePendingEvents$0().add$1(0, B.C__DelayedDone);
    },
    _add$1(value) {
      var t2, _this = this,
        t1 = A._instanceType(_this);
      t1._precomputed1._as(value);
      t2 = _this._state;
      if ((t2 & 1) !== 0)
        _this._sendData$1(value);
      else if ((t2 & 3) === 0)
        _this._ensurePendingEvents$0().add$1(0, new A._DelayedData(value, t1._eval$1("_DelayedData<1>")));
    },
    _subscribe$4(onData, onError, onDone, cancelOnError) {
      var t2, t3, t4, t5, t6, t7, subscription, pendingEvents, addState, _this = this,
        t1 = A._instanceType(_this);
      t1._eval$1("~(1)?")._as(onData);
      type$.nullable_void_Function._as(onDone);
      if ((_this._state & 3) !== 0)
        throw A.wrapException(A.StateError$("Stream has already been listened to."));
      t2 = $.Zone__current;
      t3 = cancelOnError ? 1 : 0;
      t4 = onError != null ? 32 : 0;
      t5 = A._BufferingStreamSubscription__registerDataHandler(t2, onData, t1._precomputed1);
      t6 = A._BufferingStreamSubscription__registerErrorHandler(t2, onError);
      t7 = onDone == null ? A.async___nullDoneHandler$closure() : onDone;
      subscription = new A._ControllerSubscription(_this, t5, t6, t2.registerCallback$1$1(t7, type$.void), t2, t3 | t4, t1._eval$1("_ControllerSubscription<1>"));
      pendingEvents = _this.get$_pendingEvents();
      if (((_this._state |= 1) & 8) !== 0) {
        addState = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData);
        addState.set$_varData(subscription);
        addState.resume$0();
      } else
        _this._varData = subscription;
      subscription._setPendingEvents$1(pendingEvents);
      subscription._guardCallback$1(new A._StreamController__subscribe_closure(_this));
      return subscription;
    },
    _recordCancel$1(subscription) {
      var result, onCancel, cancelResult, e, s, exception, result0, t2, _this = this,
        t1 = A._instanceType(_this);
      t1._eval$1("StreamSubscription<1>")._as(subscription);
      result = null;
      if ((_this._state & 8) !== 0)
        result = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData).cancel$0();
      _this._varData = null;
      _this._state = _this._state & 4294967286 | 2;
      onCancel = _this.onCancel;
      if (onCancel != null)
        if (result == null)
          try {
            cancelResult = onCancel.call$0();
            if (cancelResult instanceof A._Future)
              result = cancelResult;
          } catch (exception) {
            e = A.unwrapException(exception);
            s = A.getTraceFromException(exception);
            result0 = new A._Future($.Zone__current, type$._Future_void);
            t1 = type$.Object._as(e);
            t2 = type$.StackTrace._as(s);
            result0._asyncCompleteErrorObject$1(new A.AsyncError(t1, t2));
            result = result0;
          }
        else
          result = result.whenComplete$1(onCancel);
      t1 = new A._StreamController__recordCancel_complete(_this);
      if (result != null)
        result = result.whenComplete$1(t1);
      else
        t1.call$0();
      return result;
    },
    $isStreamSink: 1,
    $isStreamController: 1,
    $is_StreamControllerLifecycle: 1,
    $is_EventSink: 1,
    $is_EventDispatch: 1
  };
  A._StreamController__subscribe_closure.prototype = {
    call$0() {
      A._runGuarded(this.$this.onListen);
    },
    $signature: 0
  };
  A._StreamController__recordCancel_complete.prototype = {
    call$0() {
      var doneFuture = this.$this._doneFuture;
      if (doneFuture != null && (doneFuture._state & 30) === 0)
        doneFuture._asyncComplete$1(null);
    },
    $signature: 0
  };
  A._SyncStreamControllerDispatch.prototype = {
    _sendData$1(data) {
      this.$ti._precomputed1._as(data);
      this.get$_subscription()._add$1(data);
    },
    _sendError$2(error, stackTrace) {
      this.get$_subscription()._addError$2(error, stackTrace);
    },
    _sendDone$0() {
      this.get$_subscription()._close$0();
    }
  };
  A._AsyncStreamControllerDispatch.prototype = {
    _sendData$1(data) {
      var t1 = this.$ti;
      t1._precomputed1._as(data);
      this.get$_subscription()._addPending$1(new A._DelayedData(data, t1._eval$1("_DelayedData<1>")));
    },
    _sendError$2(error, stackTrace) {
      this.get$_subscription()._addPending$1(new A._DelayedError(error, stackTrace));
    },
    _sendDone$0() {
      this.get$_subscription()._addPending$1(B.C__DelayedDone);
    }
  };
  A._AsyncStreamController.prototype = {};
  A._SyncStreamController.prototype = {};
  A._ControllerStream.prototype = {
    get$hashCode(_) {
      return (A.Primitives_objectHashCode(this._controller) ^ 892482866) >>> 0;
    },
    $eq(_, other) {
      if (other == null)
        return false;
      if (this === other)
        return true;
      return other instanceof A._ControllerStream && other._controller === this._controller;
    }
  };
  A._ControllerSubscription.prototype = {
    _onCancel$0() {
      return this._controller._recordCancel$1(this);
    },
    _onPause$0() {
      var t1 = this._controller,
        t2 = A._instanceType(t1);
      t2._eval$1("StreamSubscription<1>")._as(this);
      if ((t1._state & 8) !== 0)
        t2._eval$1("_StreamControllerAddStreamState<1>")._as(t1._varData).pause$0();
      A._runGuarded(t1.onPause);
    },
    _onResume$0() {
      var t1 = this._controller,
        t2 = A._instanceType(t1);
      t2._eval$1("StreamSubscription<1>")._as(this);
      if ((t1._state & 8) !== 0)
        t2._eval$1("_StreamControllerAddStreamState<1>")._as(t1._varData).resume$0();
      A._runGuarded(t1.onResume);
    }
  };
  A._StreamSinkWrapper.prototype = {
    add$1(_, data) {
      this._async$_target.add$1(0, this.$ti._precomputed1._as(data));
    },
    $isStreamSink: 1
  };
  A._BufferingStreamSubscription.prototype = {
    _setPendingEvents$1(pendingEvents) {
      var _this = this;
      A._instanceType(_this)._eval$1("_PendingEvents<_BufferingStreamSubscription.T>?")._as(pendingEvents);
      if (pendingEvents == null)
        return;
      _this._pending = pendingEvents;
      if (pendingEvents.lastPendingEvent != null) {
        _this._state = (_this._state | 128) >>> 0;
        pendingEvents.schedule$1(_this);
      }
    },
    onData$1(handleData) {
      var t1 = A._instanceType(this);
      this._async$_onData = A._BufferingStreamSubscription__registerDataHandler(this._zone, t1._eval$1("~(_BufferingStreamSubscription.T)?")._as(handleData), t1._eval$1("_BufferingStreamSubscription.T"));
    },
    pause$0() {
      var t2, t3, _this = this,
        t1 = _this._state;
      if ((t1 & 8) !== 0)
        return;
      t2 = (t1 + 256 | 4) >>> 0;
      _this._state = t2;
      if (t1 < 256) {
        t3 = _this._pending;
        if (t3 != null)
          if (t3._state === 1)
            t3._state = 3;
      }
      if ((t1 & 4) === 0 && (t2 & 64) === 0)
        _this._guardCallback$1(_this.get$_onPause());
    },
    resume$0() {
      var _this = this,
        t1 = _this._state;
      if ((t1 & 8) !== 0)
        return;
      if (t1 >= 256) {
        t1 = _this._state = t1 - 256;
        if (t1 < 256)
          if ((t1 & 128) !== 0 && _this._pending.lastPendingEvent != null)
            _this._pending.schedule$1(_this);
          else {
            t1 = (t1 & 4294967291) >>> 0;
            _this._state = t1;
            if ((t1 & 64) === 0)
              _this._guardCallback$1(_this.get$_onResume());
          }
      }
    },
    cancel$0() {
      var _this = this,
        t1 = (_this._state & 4294967279) >>> 0;
      _this._state = t1;
      if ((t1 & 8) === 0)
        _this._cancel$0();
      t1 = _this._cancelFuture;
      return t1 == null ? $.$get$Future__nullFuture() : t1;
    },
    asFuture$1$1(futureValue, $E) {
      var result, _this = this, t1 = {};
      t1.resultValue = null;
      if (!$E._is(null))
        throw A.wrapException(A.ArgumentError$notNull("futureValue"));
      $E._as(futureValue);
      t1.resultValue = futureValue;
      result = new A._Future($.Zone__current, $E._eval$1("_Future<0>"));
      _this._onDone = new A._BufferingStreamSubscription_asFuture_closure(t1, result);
      _this._state = (_this._state | 32) >>> 0;
      _this._onError = new A._BufferingStreamSubscription_asFuture_closure0(_this, result);
      return result;
    },
    _cancel$0() {
      var t2, _this = this,
        t1 = _this._state = (_this._state | 8) >>> 0;
      if ((t1 & 128) !== 0) {
        t2 = _this._pending;
        if (t2._state === 1)
          t2._state = 3;
      }
      if ((t1 & 64) === 0)
        _this._pending = null;
      _this._cancelFuture = _this._onCancel$0();
    },
    _add$1(data) {
      var t2, _this = this,
        t1 = A._instanceType(_this);
      t1._eval$1("_BufferingStreamSubscription.T")._as(data);
      t2 = _this._state;
      if ((t2 & 8) !== 0)
        return;
      if (t2 < 64)
        _this._sendData$1(data);
      else
        _this._addPending$1(new A._DelayedData(data, t1._eval$1("_DelayedData<_BufferingStreamSubscription.T>")));
    },
    _addError$2(error, stackTrace) {
      var t1;
      if (type$.Error._is(error))
        A.Primitives_trySetStackTrace(error, stackTrace);
      t1 = this._state;
      if ((t1 & 8) !== 0)
        return;
      if (t1 < 64)
        this._sendError$2(error, stackTrace);
      else
        this._addPending$1(new A._DelayedError(error, stackTrace));
    },
    _close$0() {
      var _this = this,
        t1 = _this._state;
      if ((t1 & 8) !== 0)
        return;
      t1 = (t1 | 2) >>> 0;
      _this._state = t1;
      if (t1 < 64)
        _this._sendDone$0();
      else
        _this._addPending$1(B.C__DelayedDone);
    },
    _onPause$0() {
    },
    _onResume$0() {
    },
    _onCancel$0() {
      return null;
    },
    _addPending$1($event) {
      var t1, _this = this,
        pending = _this._pending;
      if (pending == null)
        pending = _this._pending = new A._PendingEvents(A._instanceType(_this)._eval$1("_PendingEvents<_BufferingStreamSubscription.T>"));
      pending.add$1(0, $event);
      t1 = _this._state;
      if ((t1 & 128) === 0) {
        t1 = (t1 | 128) >>> 0;
        _this._state = t1;
        if (t1 < 256)
          pending.schedule$1(_this);
      }
    },
    _sendData$1(data) {
      var t2, _this = this,
        t1 = A._instanceType(_this)._eval$1("_BufferingStreamSubscription.T");
      t1._as(data);
      t2 = _this._state;
      _this._state = (t2 | 64) >>> 0;
      _this._zone.runUnaryGuarded$1$2(_this._async$_onData, data, t1);
      _this._state = (_this._state & 4294967231) >>> 0;
      _this._checkState$1((t2 & 4) !== 0);
    },
    _sendError$2(error, stackTrace) {
      var cancelFuture, _this = this,
        t1 = _this._state,
        t2 = new A._BufferingStreamSubscription__sendError_sendError(_this, error, stackTrace);
      if ((t1 & 1) !== 0) {
        _this._state = (t1 | 16) >>> 0;
        _this._cancel$0();
        cancelFuture = _this._cancelFuture;
        if (cancelFuture != null && cancelFuture !== $.$get$Future__nullFuture())
          cancelFuture.whenComplete$1(t2);
        else
          t2.call$0();
      } else {
        t2.call$0();
        _this._checkState$1((t1 & 4) !== 0);
      }
    },
    _sendDone$0() {
      var cancelFuture, _this = this,
        t1 = new A._BufferingStreamSubscription__sendDone_sendDone(_this);
      _this._cancel$0();
      _this._state = (_this._state | 16) >>> 0;
      cancelFuture = _this._cancelFuture;
      if (cancelFuture != null && cancelFuture !== $.$get$Future__nullFuture())
        cancelFuture.whenComplete$1(t1);
      else
        t1.call$0();
    },
    _guardCallback$1(callback) {
      var t1, _this = this;
      type$.void_Function._as(callback);
      t1 = _this._state;
      _this._state = (t1 | 64) >>> 0;
      callback.call$0();
      _this._state = (_this._state & 4294967231) >>> 0;
      _this._checkState$1((t1 & 4) !== 0);
    },
    _checkState$1(wasInputPaused) {
      var t2, isInputPaused, _this = this,
        t1 = _this._state;
      if ((t1 & 128) !== 0 && _this._pending.lastPendingEvent == null) {
        t1 = _this._state = (t1 & 4294967167) >>> 0;
        t2 = false;
        if ((t1 & 4) !== 0)
          if (t1 < 256) {
            t2 = _this._pending;
            t2 = t2 == null ? null : t2.lastPendingEvent == null;
            t2 = t2 !== false;
          }
        if (t2) {
          t1 = (t1 & 4294967291) >>> 0;
          _this._state = t1;
        }
      }
      for (; true; wasInputPaused = isInputPaused) {
        if ((t1 & 8) !== 0) {
          _this._pending = null;
          return;
        }
        isInputPaused = (t1 & 4) !== 0;
        if (wasInputPaused === isInputPaused)
          break;
        _this._state = (t1 ^ 64) >>> 0;
        if (isInputPaused)
          _this._onPause$0();
        else
          _this._onResume$0();
        t1 = (_this._state & 4294967231) >>> 0;
        _this._state = t1;
      }
      if ((t1 & 128) !== 0 && t1 < 256)
        _this._pending.schedule$1(_this);
    },
    $isStreamSubscription: 1,
    $is_EventSink: 1,
    $is_EventDispatch: 1
  };
  A._BufferingStreamSubscription_asFuture_closure.prototype = {
    call$0() {
      this.result._complete$1(this._box_0.resultValue);
    },
    $signature: 0
  };
  A._BufferingStreamSubscription_asFuture_closure0.prototype = {
    call$2(error, stackTrace) {
      var cancelFuture, t1;
      type$.Object._as(error);
      type$.StackTrace._as(stackTrace);
      cancelFuture = this.$this.cancel$0();
      t1 = this.result;
      if (cancelFuture !== $.$get$Future__nullFuture())
        cancelFuture.whenComplete$1(new A._BufferingStreamSubscription_asFuture__closure(t1, error, stackTrace));
      else
        t1._completeErrorObject$1(new A.AsyncError(error, stackTrace));
    },
    $signature: 5
  };
  A._BufferingStreamSubscription_asFuture__closure.prototype = {
    call$0() {
      this.result._completeErrorObject$1(new A.AsyncError(this.error, this.stackTrace));
    },
    $signature: 1
  };
  A._BufferingStreamSubscription__sendError_sendError.prototype = {
    call$0() {
      var onError, t3, t4,
        t1 = this.$this,
        t2 = t1._state;
      if ((t2 & 8) !== 0 && (t2 & 16) === 0)
        return;
      t1._state = (t2 | 64) >>> 0;
      onError = t1._onError;
      t2 = this.error;
      t3 = type$.Object;
      t4 = t1._zone;
      if (type$.void_Function_Object_StackTrace._is(onError))
        t4.runBinaryGuarded$2$3(onError, t2, this.stackTrace, t3, type$.StackTrace);
      else
        t4.runUnaryGuarded$1$2(type$.void_Function_Object._as(onError), t2, t3);
      t1._state = (t1._state & 4294967231) >>> 0;
    },
    $signature: 0
  };
  A._BufferingStreamSubscription__sendDone_sendDone.prototype = {
    call$0() {
      var t1 = this.$this,
        t2 = t1._state;
      if ((t2 & 16) === 0)
        return;
      t1._state = (t2 | 74) >>> 0;
      t1._zone.runGuarded$1(t1._onDone);
      t1._state = (t1._state & 4294967231) >>> 0;
    },
    $signature: 0
  };
  A._StreamImpl.prototype = {
    listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) {
      var t1 = this.$ti;
      t1._eval$1("~(1)?")._as(onData);
      type$.nullable_void_Function._as(onDone);
      return this._controller._subscribe$4(t1._eval$1("~(1)?")._as(onData), onError, onDone, cancelOnError === true);
    },
    listen$1(onData) {
      return this.listen$4$cancelOnError$onDone$onError(onData, null, null, null);
    },
    listen$2$onError(onData, onError) {
      return this.listen$4$cancelOnError$onDone$onError(onData, null, null, onError);
    },
    listen$3$onDone$onError(onData, onDone, onError) {
      return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError);
    },
    listen$2$cancelOnError(onData, cancelOnError) {
      return this.listen$4$cancelOnError$onDone$onError(onData, cancelOnError, null, null);
    },
    listen$2$onDone(onData, onDone) {
      return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, null);
    }
  };
  A._DelayedEvent.prototype = {
    set$next(next) {
      this.next = type$.nullable__DelayedEvent_dynamic._as(next);
    },
    get$next() {
      return this.next;
    }
  };
  A._DelayedData.prototype = {
    perform$1(dispatch) {
      this.$ti._eval$1("_EventDispatch<1>")._as(dispatch)._sendData$1(this.value);
    }
  };
  A._DelayedError.prototype = {
    perform$1(dispatch) {
      dispatch._sendError$2(this.error, this.stackTrace);
    }
  };
  A._DelayedDone.prototype = {
    perform$1(dispatch) {
      dispatch._sendDone$0();
    },
    get$next() {
      return null;
    },
    set$next(__wc0_formal) {
      throw A.wrapException(A.StateError$("No events after a done."));
    },
    $is_DelayedEvent: 1
  };
  A._PendingEvents.prototype = {
    schedule$1(dispatch) {
      var t1, _this = this;
      _this.$ti._eval$1("_EventDispatch<1>")._as(dispatch);
      t1 = _this._state;
      if (t1 === 1)
        return;
      if (t1 >= 1) {
        _this._state = 1;
        return;
      }
      A.scheduleMicrotask(new A._PendingEvents_schedule_closure(_this, dispatch));
      _this._state = 1;
    },
    add$1(_, $event) {
      var _this = this,
        lastEvent = _this.lastPendingEvent;
      if (lastEvent == null)
        _this.firstPendingEvent = _this.lastPendingEvent = $event;
      else {
        lastEvent.set$next($event);
        _this.lastPendingEvent = $event;
      }
    }
  };
  A._PendingEvents_schedule_closure.prototype = {
    call$0() {
      var t2, $event, nextEvent,
        t1 = this.$this,
        oldState = t1._state;
      t1._state = 0;
      if (oldState === 3)
        return;
      t2 = t1.$ti._eval$1("_EventDispatch<1>")._as(this.dispatch);
      $event = t1.firstPendingEvent;
      nextEvent = $event.get$next();
      t1.firstPendingEvent = nextEvent;
      if (nextEvent == null)
        t1.lastPendingEvent = null;
      $event.perform$1(t2);
    },
    $signature: 0
  };
  A._DoneStreamSubscription.prototype = {
    onData$1(handleData) {
      this.$ti._eval$1("~(1)?")._as(handleData);
    },
    pause$0() {
      var t1 = this._state;
      if (t1 >= 0)
        this._state = t1 + 2;
    },
    resume$0() {
      var _this = this,
        resumeState = _this._state - 2;
      if (resumeState < 0)
        return;
      if (resumeState === 0) {
        _this._state = 1;
        A.scheduleMicrotask(_this.get$_onMicrotask());
      } else
        _this._state = resumeState;
    },
    cancel$0() {
      this._state = -1;
      this._onDone = null;
      return $.$get$Future__nullFuture();
    },
    _onMicrotask$0() {
      var _0_0, _this = this,
        unscheduledState = _this._state - 1;
      if (unscheduledState === 0) {
        _this._state = -1;
        _0_0 = _this._onDone;
        if (_0_0 != null) {
          _this._onDone = null;
          _this._zone.runGuarded$1(_0_0);
        }
      } else
        _this._state = unscheduledState;
    },
    $isStreamSubscription: 1
  };
  A._StreamIterator.prototype = {};
  A._EmptyStream.prototype = {
    listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) {
      var t2,
        t1 = this.$ti;
      t1._eval$1("~(1)?")._as(onData);
      type$.nullable_void_Function._as(onDone);
      t2 = $.Zone__current;
      t1 = new A._DoneStreamSubscription(t2, t1._eval$1("_DoneStreamSubscription<1>"));
      A.scheduleMicrotask(t1.get$_onMicrotask());
      if (onDone != null)
        t1._onDone = t2.registerCallback$1$1(onDone, type$.void);
      return t1;
    },
    listen$3$onDone$onError(onData, onDone, onError) {
      return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError);
    }
  };
  A._cancelAndValue_closure.prototype = {
    call$0() {
      return this.future._complete$1(this.value);
    },
    $signature: 0
  };
  A._ForwardingStream.prototype = {
    listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) {
      var t2, t3, t4, t5, t6, t7,
        t1 = this.$ti;
      t1._eval$1("~(2)?")._as(onData);
      type$.nullable_void_Function._as(onDone);
      t2 = $.Zone__current;
      t3 = cancelOnError === true ? 1 : 0;
      t4 = onError != null ? 32 : 0;
      t5 = A._BufferingStreamSubscription__registerDataHandler(t2, onData, t1._rest[1]);
      t6 = A._BufferingStreamSubscription__registerErrorHandler(t2, onError);
      t7 = onDone == null ? A.async___nullDoneHandler$closure() : onDone;
      t1 = new A._ForwardingStreamSubscription(this, t5, t6, t2.registerCallback$1$1(t7, type$.void), t2, t3 | t4, t1._eval$1("_ForwardingStreamSubscription<1,2>"));
      t1._subscription = this._source.listen$3$onDone$onError(t1.get$_handleData(), t1.get$_handleDone(), t1.get$_handleError());
      return t1;
    },
    listen$2$onError(onData, onError) {
      return this.listen$4$cancelOnError$onDone$onError(onData, null, null, onError);
    },
    listen$3$onDone$onError(onData, onDone, onError) {
      return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError);
    }
  };
  A._ForwardingStreamSubscription.prototype = {
    _add$1(data) {
      this.$ti._rest[1]._as(data);
      if ((this._state & 2) !== 0)
        return;
      this.super$_BufferingStreamSubscription$_add(data);
    },
    _addError$2(error, stackTrace) {
      if ((this._state & 2) !== 0)
        return;
      this.super$_BufferingStreamSubscription$_addError(error, stackTrace);
    },
    _onPause$0() {
      var t1 = this._subscription;
      if (t1 != null)
        t1.pause$0();
    },
    _onResume$0() {
      var t1 = this._subscription;
      if (t1 != null)
        t1.resume$0();
    },
    _onCancel$0() {
      var subscription = this._subscription;
      if (subscription != null) {
        this._subscription = null;
        return subscription.cancel$0();
      }
      return null;
    },
    _handleData$1(data) {
      this._stream._handleData$2(this.$ti._precomputed1._as(data), this);
    },
    _handleError$2(error, stackTrace) {
      var t1;
      type$.StackTrace._as(stackTrace);
      t1 = error == null ? type$.Object._as(error) : error;
      this._stream.$ti._eval$1("_EventSink<2>")._as(this)._addError$2(t1, stackTrace);
    },
    _handleDone$0() {
      this._stream.$ti._eval$1("_EventSink<2>")._as(this)._close$0();
    }
  };
  A._MapStream.prototype = {
    _handleData$2(inputEvent, sink) {
      var outputEvent, e, s, exception, error, stackTrace, replacement,
        t1 = this.$ti;
      t1._precomputed1._as(inputEvent);
      t1._eval$1("_EventSink<2>")._as(sink);
      outputEvent = null;
      try {
        outputEvent = this._transform.call$1(inputEvent);
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        error = e;
        stackTrace = s;
        replacement = A._interceptError(error, stackTrace);
        if (replacement != null) {
          error = replacement.error;
          stackTrace = replacement.stackTrace;
        }
        sink._addError$2(error, stackTrace);
        return;
      }
      sink._add$1(outputEvent);
    }
  };
  A._ZoneFunction.prototype = {};
  A._ZoneSpecification.prototype = {$isZoneSpecification: 1};
  A._ZoneDelegate.prototype = {$isZoneDelegate: 1};
  A._Zone.prototype = {
    _processUncaughtError$3(zone, error, stackTrace) {
      var implZone, handler, parentDelegate, parentZone, currentZone, e, s, implementation, t1, exception;
      type$.StackTrace._as(stackTrace);
      implementation = this.get$_handleUncaughtError();
      implZone = implementation.zone;
      if (implZone === B.C__RootZone) {
        A._rootHandleError(error, stackTrace);
        return;
      }
      handler = implementation.$function;
      parentDelegate = implZone.get$_parentDelegate();
      t1 = implZone.get$parent();
      t1.toString;
      parentZone = t1;
      currentZone = $.Zone__current;
      try {
        $.Zone__current = parentZone;
        handler.call$5(implZone, parentDelegate, zone, error, stackTrace);
        $.Zone__current = currentZone;
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        $.Zone__current = currentZone;
        t1 = error === e ? stackTrace : s;
        parentZone._processUncaughtError$3(implZone, e, t1);
      }
    },
    $isZone: 1
  };
  A._CustomZone.prototype = {
    get$_delegate() {
      var t1 = this._delegateCache;
      return t1 == null ? this._delegateCache = new A._ZoneDelegate(this) : t1;
    },
    get$_parentDelegate() {
      return this.parent.get$_delegate();
    },
    get$errorZone() {
      return this._handleUncaughtError.zone;
    },
    runGuarded$1(f) {
      var e, s, exception;
      type$.void_Function._as(f);
      try {
        this.run$1$1(f, type$.void);
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        this._processUncaughtError$3(this, type$.Object._as(e), type$.StackTrace._as(s));
      }
    },
    runUnaryGuarded$1$2(f, arg, $T) {
      var e, s, exception;
      $T._eval$1("~(0)")._as(f);
      $T._as(arg);
      try {
        this.runUnary$2$2(f, arg, type$.void, $T);
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        this._processUncaughtError$3(this, type$.Object._as(e), type$.StackTrace._as(s));
      }
    },
    runBinaryGuarded$2$3(f, arg1, arg2, T1, T2) {
      var e, s, exception;
      T1._eval$1("@<0>")._bind$1(T2)._eval$1("~(1,2)")._as(f);
      T1._as(arg1);
      T2._as(arg2);
      try {
        this.runBinary$3$3(f, arg1, arg2, type$.void, T1, T2);
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        this._processUncaughtError$3(this, type$.Object._as(e), type$.StackTrace._as(s));
      }
    },
    bindCallback$1$1(f, $R) {
      return new A._CustomZone_bindCallback_closure(this, this.registerCallback$1$1($R._eval$1("0()")._as(f), $R), $R);
    },
    bindUnaryCallback$2$1(f, $R, $T) {
      return new A._CustomZone_bindUnaryCallback_closure(this, this.registerUnaryCallback$2$1($R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f), $R, $T), $T, $R);
    },
    bindCallbackGuarded$1(f) {
      return new A._CustomZone_bindCallbackGuarded_closure(this, this.registerCallback$1$1(type$.void_Function._as(f), type$.void));
    },
    bindUnaryCallbackGuarded$1$1(f, $T) {
      return new A._CustomZone_bindUnaryCallbackGuarded_closure(this, this.registerUnaryCallback$2$1($T._eval$1("~(0)")._as(f), type$.void, $T), $T);
    },
    handleUncaughtError$2(error, stackTrace) {
      this._processUncaughtError$3(this, error, type$.StackTrace._as(stackTrace));
    },
    fork$2$specification$zoneValues(specification, zoneValues) {
      var implementation = this._fork,
        t1 = implementation.zone;
      return implementation.$function.call$5(t1, t1.get$_parentDelegate(), this, specification, zoneValues);
    },
    run$1$1(f, $R) {
      var implementation, t1;
      $R._eval$1("0()")._as(f);
      implementation = this._run;
      t1 = implementation.zone;
      return implementation.$function.call$1$4(t1, t1.get$_parentDelegate(), this, f, $R);
    },
    runUnary$2$2(f, arg, $R, $T) {
      var implementation, t1;
      $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f);
      $T._as(arg);
      implementation = this._runUnary;
      t1 = implementation.zone;
      return implementation.$function.call$2$5(t1, t1.get$_parentDelegate(), this, f, arg, $R, $T);
    },
    runBinary$3$3(f, arg1, arg2, $R, T1, T2) {
      var implementation, t1;
      $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f);
      T1._as(arg1);
      T2._as(arg2);
      implementation = this._runBinary;
      t1 = implementation.zone;
      return implementation.$function.call$3$6(t1, t1.get$_parentDelegate(), this, f, arg1, arg2, $R, T1, T2);
    },
    registerCallback$1$1(callback, $R) {
      var implementation, t1;
      $R._eval$1("0()")._as(callback);
      implementation = this._registerCallback;
      t1 = implementation.zone;
      return implementation.$function.call$1$4(t1, t1.get$_parentDelegate(), this, callback, $R);
    },
    registerUnaryCallback$2$1(callback, $R, $T) {
      var implementation, t1;
      $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(callback);
      implementation = this._registerUnaryCallback;
      t1 = implementation.zone;
      return implementation.$function.call$2$4(t1, t1.get$_parentDelegate(), this, callback, $R, $T);
    },
    registerBinaryCallback$3$1(callback, $R, T1, T2) {
      var implementation, t1;
      $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(callback);
      implementation = this._registerBinaryCallback;
      t1 = implementation.zone;
      return implementation.$function.call$3$4(t1, t1.get$_parentDelegate(), this, callback, $R, T1, T2);
    },
    errorCallback$2(error, stackTrace) {
      var implementation = this._errorCallback,
        implementationZone = implementation.zone;
      if (implementationZone === B.C__RootZone)
        return null;
      return implementation.$function.call$5(implementationZone, implementationZone.get$_parentDelegate(), this, error, stackTrace);
    },
    scheduleMicrotask$1(f) {
      var implementation, t1;
      type$.void_Function._as(f);
      implementation = this._scheduleMicrotask;
      t1 = implementation.zone;
      return implementation.$function.call$4(t1, t1.get$_parentDelegate(), this, f);
    },
    createTimer$2(duration, f) {
      var implementation, t1;
      type$.void_Function._as(f);
      implementation = this._createTimer;
      t1 = implementation.zone;
      return implementation.$function.call$5(t1, t1.get$_parentDelegate(), this, duration, f);
    },
    print$1(line) {
      var implementation = this._print,
        t1 = implementation.zone;
      return implementation.$function.call$4(t1, t1.get$_parentDelegate(), this, line);
    },
    get$_run() {
      return this._run;
    },
    get$_runUnary() {
      return this._runUnary;
    },
    get$_runBinary() {
      return this._runBinary;
    },
    get$_registerCallback() {
      return this._registerCallback;
    },
    get$_registerUnaryCallback() {
      return this._registerUnaryCallback;
    },
    get$_registerBinaryCallback() {
      return this._registerBinaryCallback;
    },
    get$_errorCallback() {
      return this._errorCallback;
    },
    get$_scheduleMicrotask() {
      return this._scheduleMicrotask;
    },
    get$_createTimer() {
      return this._createTimer;
    },
    get$_createPeriodicTimer() {
      return this._createPeriodicTimer;
    },
    get$_print() {
      return this._print;
    },
    get$_fork() {
      return this._fork;
    },
    get$_handleUncaughtError() {
      return this._handleUncaughtError;
    },
    get$parent() {
      return this.parent;
    },
    get$_map() {
      return this._map;
    }
  };
  A._CustomZone_bindCallback_closure.prototype = {
    call$0() {
      return this.$this.run$1$1(this.registered, this.R);
    },
    $signature() {
      return this.R._eval$1("0()");
    }
  };
  A._CustomZone_bindUnaryCallback_closure.prototype = {
    call$1(arg) {
      var _this = this,
        t1 = _this.T;
      return _this.$this.runUnary$2$2(_this.registered, t1._as(arg), _this.R, t1);
    },
    $signature() {
      return this.R._eval$1("@<0>")._bind$1(this.T)._eval$1("1(2)");
    }
  };
  A._CustomZone_bindCallbackGuarded_closure.prototype = {
    call$0() {
      return this.$this.runGuarded$1(this.registered);
    },
    $signature: 0
  };
  A._CustomZone_bindUnaryCallbackGuarded_closure.prototype = {
    call$1(arg) {
      var t1 = this.T;
      return this.$this.runUnaryGuarded$1$2(this.registered, t1._as(arg), t1);
    },
    $signature() {
      return this.T._eval$1("~(0)");
    }
  };
  A._rootHandleError_closure.prototype = {
    call$0() {
      A.Error_throwWithStackTrace(this.error, this.stackTrace);
    },
    $signature: 0
  };
  A._RootZone.prototype = {
    get$_run() {
      return B._ZoneFunction__RootZone__rootRun;
    },
    get$_runUnary() {
      return B._ZoneFunction__RootZone__rootRunUnary;
    },
    get$_runBinary() {
      return B._ZoneFunction__RootZone__rootRunBinary;
    },
    get$_registerCallback() {
      return B._ZoneFunction__RootZone__rootRegisterCallback;
    },
    get$_registerUnaryCallback() {
      return B._ZoneFunction_Xkh;
    },
    get$_registerBinaryCallback() {
      return B._ZoneFunction_e9o;
    },
    get$_errorCallback() {
      return B._ZoneFunction__RootZone__rootErrorCallback;
    },
    get$_scheduleMicrotask() {
      return B._ZoneFunction__RootZone__rootScheduleMicrotask;
    },
    get$_createTimer() {
      return B._ZoneFunction__RootZone__rootCreateTimer;
    },
    get$_createPeriodicTimer() {
      return B._ZoneFunction_PAY;
    },
    get$_print() {
      return B._ZoneFunction__RootZone__rootPrint;
    },
    get$_fork() {
      return B._ZoneFunction__RootZone__rootFork;
    },
    get$_handleUncaughtError() {
      return B._ZoneFunction_KjJ;
    },
    get$parent() {
      return null;
    },
    get$_map() {
      return $.$get$_RootZone__rootMap();
    },
    get$_delegate() {
      var t1 = $._RootZone__rootDelegate;
      return t1 == null ? $._RootZone__rootDelegate = new A._ZoneDelegate(this) : t1;
    },
    get$_parentDelegate() {
      var t1 = $._RootZone__rootDelegate;
      return t1 == null ? $._RootZone__rootDelegate = new A._ZoneDelegate(this) : t1;
    },
    get$errorZone() {
      return this;
    },
    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));
      }
    },
    runUnaryGuarded$1$2(f, arg, $T) {
      var e, s, exception;
      $T._eval$1("~(0)")._as(f);
      $T._as(arg);
      try {
        if (B.C__RootZone === $.Zone__current) {
          f.call$1(arg);
          return;
        }
        A._rootRunUnary(null, null, this, f, arg, type$.void, $T);
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        A._rootHandleError(type$.Object._as(e), type$.StackTrace._as(s));
      }
    },
    runBinaryGuarded$2$3(f, arg1, arg2, T1, T2) {
      var e, s, exception;
      T1._eval$1("@<0>")._bind$1(T2)._eval$1("~(1,2)")._as(f);
      T1._as(arg1);
      T2._as(arg2);
      try {
        if (B.C__RootZone === $.Zone__current) {
          f.call$2(arg1, arg2);
          return;
        }
        A._rootRunBinary(null, null, this, f, arg1, arg2, type$.void, T1, T2);
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        A._rootHandleError(type$.Object._as(e), type$.StackTrace._as(s));
      }
    },
    bindCallback$1$1(f, $R) {
      return new A._RootZone_bindCallback_closure(this, $R._eval$1("0()")._as(f), $R);
    },
    bindUnaryCallback$2$1(f, $R, $T) {
      return new A._RootZone_bindUnaryCallback_closure(this, $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f), $T, $R);
    },
    bindCallbackGuarded$1(f) {
      return new A._RootZone_bindCallbackGuarded_closure(this, type$.void_Function._as(f));
    },
    bindUnaryCallbackGuarded$1$1(f, $T) {
      return new A._RootZone_bindUnaryCallbackGuarded_closure(this, $T._eval$1("~(0)")._as(f), $T);
    },
    handleUncaughtError$2(error, stackTrace) {
      A._rootHandleError(error, type$.StackTrace._as(stackTrace));
    },
    fork$2$specification$zoneValues(specification, zoneValues) {
      return A._rootFork(null, null, this, specification, zoneValues);
    },
    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);
    },
    registerCallback$1$1(f, $R) {
      return $R._eval$1("0()")._as(f);
    },
    registerUnaryCallback$2$1(f, $R, $T) {
      return $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f);
    },
    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);
    },
    errorCallback$2(error, stackTrace) {
      return null;
    },
    scheduleMicrotask$1(f) {
      A._rootScheduleMicrotask(null, null, this, type$.void_Function._as(f));
    },
    createTimer$2(duration, f) {
      return A.Timer__createTimer(duration, type$.void_Function._as(f));
    },
    print$1(line) {
      A.printString(line);
    }
  };
  A._RootZone_bindCallback_closure.prototype = {
    call$0() {
      return this.$this.run$1$1(this.f, this.R);
    },
    $signature() {
      return this.R._eval$1("0()");
    }
  };
  A._RootZone_bindUnaryCallback_closure.prototype = {
    call$1(arg) {
      var _this = this,
        t1 = _this.T;
      return _this.$this.runUnary$2$2(_this.f, t1._as(arg), _this.R, t1);
    },
    $signature() {
      return this.R._eval$1("@<0>")._bind$1(this.T)._eval$1("1(2)");
    }
  };
  A._RootZone_bindCallbackGuarded_closure.prototype = {
    call$0() {
      return this.$this.runGuarded$1(this.f);
    },
    $signature: 0
  };
  A._RootZone_bindUnaryCallbackGuarded_closure.prototype = {
    call$1(arg) {
      var t1 = this.T;
      return this.$this.runUnaryGuarded$1$2(this.f, t1._as(arg), t1);
    },
    $signature() {
      return this.T._eval$1("~(0)");
    }
  };
  A.runZonedGuarded_closure.prototype = {
    call$5($self, $parent, zone, error, stackTrace) {
      var e, s, exception, t2,
        t1 = type$.StackTrace;
      t1._as(stackTrace);
      try {
        this.parentZone.runBinary$3$3(this.onError, error, stackTrace, type$.void, type$.Object, t1);
      } catch (exception) {
        e = A.unwrapException(exception);
        s = A.getTraceFromException(exception);
        t2 = $parent._delegationTarget;
        if (e === error)
          t2._processUncaughtError$3(zone, error, stackTrace);
        else
          t2._processUncaughtError$3(zone, type$.Object._as(e), t1._as(s));
      }
    },
    $signature: 66
  };
  A._HashMap.prototype = {
    get$length(_) {
      return this._collection$_length;
    },
    get$isEmpty(_) {
      return this._collection$_length === 0;
    },
    get$keys() {
      return new A._HashMapKeyIterable(this, A._instanceType(this)._eval$1("_HashMapKeyIterable<1>"));
    },
    containsKey$1(key) {
      var strings, nums;
      if (typeof key == "string" && key !== "__proto__") {
        strings = this._strings;
        return strings == null ? false : strings[key] != null;
      } else if (typeof key == "number" && (key & 1073741823) === key) {
        nums = this._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._strings;
        t1 = strings == null ? null : A._HashMap__getTableEntry(strings, key);
        return t1;
      } else if (typeof key == "number" && (key & 1073741823) === key) {
        nums = this._nums;
        t1 = nums == null ? null : A._HashMap__getTableEntry(nums, key);
        return t1;
      } else
        return this._get$1(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, _this = this,
        t1 = A._instanceType(_this);
      t1._precomputed1._as(key);
      t1._rest[1]._as(value);
      if (typeof key == "string" && key !== "__proto__") {
        strings = _this._strings;
        _this._collection$_addHashTableEntry$3(strings == null ? _this._strings = A._HashMap__newHashTable() : strings, key, value);
      } else if (typeof key == "number" && (key & 1073741823) === key) {
        nums = _this._nums;
        _this._collection$_addHashTableEntry$3(nums == null ? _this._nums = A._HashMap__newHashTable() : nums, key, value);
      } else
        _this._set$2(key, value);
    },
    _set$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._collection$_rest;
      if (rest == null)
        rest = _this._collection$_rest = A._HashMap__newHashTable();
      hash = _this._computeHashCode$1(key);
      bucket = rest[hash];
      if (bucket == null) {
        A._HashMap__setTableEntry(rest, hash, [key, value]);
        ++_this._collection$_length;
        _this._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._keys = null;
        }
      }
    },
    forEach$1(_, action) {
      var keys, $length, t2, i, key, t3, _this = this,
        t1 = A._instanceType(_this);
      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._keys)
          throw A.wrapException(A.ConcurrentModificationError$(_this));
      }
    },
    _computeKeys$0() {
      var strings, index, names, entries, i, nums, rest, bucket, $length, i0, _this = this,
        result = _this._keys;
      if (result != null)
        return result;
      result = A.List_List$filled(_this._collection$_length, null, false, type$.dynamic);
      strings = _this._strings;
      index = 0;
      if (strings != null) {
        names = Object.getOwnPropertyNames(strings);
        entries = names.length;
        for (i = 0; i < entries; ++i) {
          result[index] = names[i];
          ++index;
        }
      }
      nums = _this._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._keys = result;
    },
    _collection$_addHashTableEntry$3(table, key, value) {
      var t1 = A._instanceType(this);
      t1._precomputed1._as(key);
      t1._rest[1]._as(value);
      if (table[key] == null) {
        ++this._collection$_length;
        this._keys = null;
      }
      A._HashMap__setTableEntry(table, key, value);
    },
    _computeHashCode$1(key) {
      return J.get$hashCode$(key) & 1073741823;
    },
    _getBucket$2(table, key) {
      return table[this._computeHashCode$1(key)];
    },
    _findBucketIndex$2(bucket, key) {
      var $length, i;
      if (bucket == null)
        return -1;
      $length = bucket.length;
      for (i = 0; i < $length; i += 2)
        if (J.$eq$(bucket[i], key))
          return i;
      return -1;
    },
    $isHashMap: 1
  };
  A._IdentityHashMap.prototype = {
    _computeHashCode$1(key) {
      return A.objectHashCode(key) & 1073741823;
    },
    _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._CustomHashMap.prototype = {
    $index(_, key) {
      if (!this._validKey.call$1(key))
        return null;
      return this.super$_HashMap$_get(key);
    },
    $indexSet(_, key, value) {
      var t1 = this.$ti;
      this.super$_HashMap$_set(t1._precomputed1._as(key), t1._rest[1]._as(value));
    },
    containsKey$1(key) {
      if (!this._validKey.call$1(key))
        return false;
      return this.super$_HashMap$_containsKey(key);
    },
    _computeHashCode$1(key) {
      return this._hashCode.call$1(this.$ti._precomputed1._as(key)) & 1073741823;
    },
    _findBucketIndex$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 += 2)
        if (t2.call$2(bucket[i], t1._as(key)))
          return i;
      return -1;
    }
  };
  A._CustomHashMap_closure.prototype = {
    call$1(v) {
      return this.K._is(v);
    },
    $signature: 12
  };
  A._HashMapKeyIterable.prototype = {
    get$length(_) {
      return this._collection$_map._collection$_length;
    },
    get$isEmpty(_) {
      return this._collection$_map._collection$_length === 0;
    },
    get$isNotEmpty(_) {
      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>"));
    },
    contains$1(_, element) {
      return this._collection$_map.containsKey$1(element);
    }
  };
  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._keys,
        offset = _this._offset,
        t1 = _this._collection$_map;
      if (keys !== t1._keys)
        throw A.wrapException(A.ConcurrentModificationError$(t1));
      else if (offset >= keys.length) {
        _this._collection$_current = null;
        return false;
      } else {
        _this._collection$_current = keys[offset];
        _this._offset = offset + 1;
        return true;
      }
    },
    $isIterator: 1
  };
  A._LinkedCustomHashMap.prototype = {
    $index(_, key) {
      if (!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 (!this._validKey.call$1(key))
        return false;
      return this.super$JsLinkedHashMap$internalContainsKey(key);
    },
    remove$1(_, key) {
      if (!this._validKey.call$1(key))
        return null;
      return this.super$JsLinkedHashMap$internalRemove(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 (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: 12
  };
  A._HashSet.prototype = {
    get$iterator(_) {
      return new A._HashSetIterator(this, this._computeElements$0(), A._instanceType(this)._eval$1("_HashSetIterator<1>"));
    },
    get$length(_) {
      return this._collection$_length;
    },
    get$isEmpty(_) {
      return this._collection$_length === 0;
    },
    get$isNotEmpty(_) {
      return this._collection$_length !== 0;
    },
    contains$1(_, object) {
      var strings, nums;
      if (typeof object == "string" && object !== "__proto__") {
        strings = this._strings;
        return strings == null ? false : strings[object] != null;
      } else if (typeof object == "number" && (object & 1073741823) === object) {
        nums = this._nums;
        return nums == null ? false : nums[object] != null;
      } else
        return this._contains$1(object);
    },
    _contains$1(object) {
      var rest = this._collection$_rest;
      if (rest == null)
        return false;
      return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], object) >= 0;
    },
    add$1(_, element) {
      var strings, nums, _this = this;
      A._instanceType(_this)._precomputed1._as(element);
      if (typeof element == "string" && element !== "__proto__") {
        strings = _this._strings;
        return _this._collection$_addHashTableEntry$2(strings == null ? _this._strings = A._HashSet__newHashTable() : strings, element);
      } else if (typeof element == "number" && (element & 1073741823) === element) {
        nums = _this._nums;
        return _this._collection$_addHashTableEntry$2(nums == null ? _this._nums = A._HashSet__newHashTable() : nums, element);
      } else
        return _this._collection$_add$1(element);
    },
    _collection$_add$1(element) {
      var rest, hash, bucket, _this = this;
      A._instanceType(_this)._precomputed1._as(element);
      rest = _this._collection$_rest;
      if (rest == null)
        rest = _this._collection$_rest = A._HashSet__newHashTable();
      hash = _this._computeHashCode$1(element);
      bucket = rest[hash];
      if (bucket == null)
        rest[hash] = [element];
      else {
        if (_this._findBucketIndex$2(bucket, element) >= 0)
          return false;
        bucket.push(element);
      }
      ++_this._collection$_length;
      _this._collection$_elements = null;
      return true;
    },
    remove$1(_, object) {
      var _this = this;
      if (typeof object == "string" && object !== "__proto__")
        return _this._collection$_removeHashTableEntry$2(_this._strings, object);
      else if (typeof object == "number" && (object & 1073741823) === object)
        return _this._collection$_removeHashTableEntry$2(_this._nums, object);
      else
        return _this._remove$1(object);
    },
    _remove$1(object) {
      var hash, bucket, index, _this = this,
        rest = _this._collection$_rest;
      if (rest == null)
        return false;
      hash = _this._computeHashCode$1(object);
      bucket = rest[hash];
      index = _this._findBucketIndex$2(bucket, object);
      if (index < 0)
        return false;
      --_this._collection$_length;
      _this._collection$_elements = null;
      bucket.splice(index, 1);
      if (0 === bucket.length)
        delete rest[hash];
      return true;
    },
    _computeElements$0() {
      var strings, index, names, entries, i, nums, rest, bucket, $length, i0, _this = this,
        result = _this._collection$_elements;
      if (result != null)
        return result;
      result = A.List_List$filled(_this._collection$_length, null, false, type$.dynamic);
      strings = _this._strings;
      index = 0;
      if (strings != null) {
        names = Object.getOwnPropertyNames(strings);
        entries = names.length;
        for (i = 0; i < entries; ++i) {
          result[index] = names[i];
          ++index;
        }
      }
      nums = _this._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) {
            result[index] = bucket[i0];
            ++index;
          }
        }
      }
      return _this._collection$_elements = result;
    },
    _collection$_addHashTableEntry$2(table, element) {
      A._instanceType(this)._precomputed1._as(element);
      if (table[element] != null)
        return false;
      table[element] = 0;
      ++this._collection$_length;
      this._collection$_elements = null;
      return true;
    },
    _collection$_removeHashTableEntry$2(table, element) {
      if (table != null && table[element] != null) {
        delete table[element];
        --this._collection$_length;
        this._collection$_elements = null;
        return true;
      } else
        return false;
    },
    _computeHashCode$1(element) {
      return J.get$hashCode$(element) & 1073741823;
    },
    _findBucketIndex$2(bucket, element) {
      var $length, i;
      if (bucket == null)
        return -1;
      $length = bucket.length;
      for (i = 0; i < $length; ++i)
        if (J.$eq$(bucket[i], element))
          return i;
      return -1;
    }
  };
  A._HashSetIterator.prototype = {
    get$current() {
      var t1 = this._collection$_current;
      return t1 == null ? this.$ti._precomputed1._as(t1) : t1;
    },
    moveNext$0() {
      var _this = this,
        elements = _this._collection$_elements,
        offset = _this._offset,
        t1 = _this._set;
      if (elements !== t1._collection$_elements)
        throw A.wrapException(A.ConcurrentModificationError$(t1));
      else if (offset >= elements.length) {
        _this._collection$_current = null;
        return false;
      } else {
        _this._collection$_current = elements[offset];
        _this._offset = offset + 1;
        return true;
      }
    },
    $isIterator: 1
  };
  A._LinkedHashSet.prototype = {
    get$iterator(_) {
      var _this = this,
        t1 = new A._LinkedHashSetIterator(_this, _this._collection$_modifications, A._instanceType(_this)._eval$1("_LinkedHashSetIterator<1>"));
      t1._collection$_cell = _this._collection$_first;
      return t1;
    },
    get$length(_) {
      return this._collection$_length;
    },
    get$isEmpty(_) {
      return this._collection$_length === 0;
    },
    get$isNotEmpty(_) {
      return this._collection$_length !== 0;
    },
    contains$1(_, object) {
      var strings, nums;
      if (typeof object == "string" && object !== "__proto__") {
        strings = this._strings;
        if (strings == null)
          return false;
        return type$.nullable__LinkedHashSetCell._as(strings[object]) != null;
      } else if (typeof object == "number" && (object & 1073741823) === object) {
        nums = this._nums;
        if (nums == null)
          return false;
        return type$.nullable__LinkedHashSetCell._as(nums[object]) != null;
      } else
        return this._contains$1(object);
    },
    _contains$1(object) {
      var rest = this._collection$_rest;
      if (rest == null)
        return false;
      return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], object) >= 0;
    },
    get$first(_) {
      var first = this._collection$_first;
      if (first == null)
        throw A.wrapException(A.StateError$("No elements"));
      return A._instanceType(this)._precomputed1._as(first._element);
    },
    add$1(_, element) {
      var strings, nums, _this = this;
      A._instanceType(_this)._precomputed1._as(element);
      if (typeof element == "string" && element !== "__proto__") {
        strings = _this._strings;
        return _this._collection$_addHashTableEntry$2(strings == null ? _this._strings = A._LinkedHashSet__newHashTable() : strings, element);
      } else if (typeof element == "number" && (element & 1073741823) === element) {
        nums = _this._nums;
        return _this._collection$_addHashTableEntry$2(nums == null ? _this._nums = A._LinkedHashSet__newHashTable() : nums, element);
      } else
        return _this._collection$_add$1(element);
    },
    _collection$_add$1(element) {
      var rest, hash, bucket, _this = this;
      A._instanceType(_this)._precomputed1._as(element);
      rest = _this._collection$_rest;
      if (rest == null)
        rest = _this._collection$_rest = A._LinkedHashSet__newHashTable();
      hash = _this._computeHashCode$1(element);
      bucket = rest[hash];
      if (bucket == null)
        rest[hash] = [_this._collection$_newLinkedCell$1(element)];
      else {
        if (_this._findBucketIndex$2(bucket, element) >= 0)
          return false;
        bucket.push(_this._collection$_newLinkedCell$1(element));
      }
      return true;
    },
    remove$1(_, object) {
      var t1 = this._remove$1(object);
      return t1;
    },
    _remove$1(object) {
      var hash, bucket, index, cell, _this = this,
        rest = _this._collection$_rest;
      if (rest == null)
        return false;
      hash = _this._computeHashCode$1(object);
      bucket = rest[hash];
      index = _this._findBucketIndex$2(bucket, object);
      if (index < 0)
        return false;
      cell = bucket.splice(index, 1)[0];
      if (0 === bucket.length)
        delete rest[hash];
      _this._unlinkCell$1(cell);
      return true;
    },
    _collection$_addHashTableEntry$2(table, element) {
      A._instanceType(this)._precomputed1._as(element);
      if (type$.nullable__LinkedHashSetCell._as(table[element]) != null)
        return false;
      table[element] = this._collection$_newLinkedCell$1(element);
      return true;
    },
    _collection$_modified$0() {
      this._collection$_modifications = this._collection$_modifications + 1 & 1073741823;
    },
    _collection$_newLinkedCell$1(element) {
      var t1, _this = this,
        cell = new A._LinkedHashSetCell(A._instanceType(_this)._precomputed1._as(element));
      if (_this._collection$_first == null)
        _this._collection$_first = _this._collection$_last = cell;
      else {
        t1 = _this._collection$_last;
        t1.toString;
        cell._collection$_previous = t1;
        _this._collection$_last = t1._collection$_next = cell;
      }
      ++_this._collection$_length;
      _this._collection$_modified$0();
      return cell;
    },
    _unlinkCell$1(cell) {
      var _this = this,
        previous = cell._collection$_previous,
        next = cell._collection$_next;
      if (previous == null)
        _this._collection$_first = next;
      else
        previous._collection$_next = next;
      if (next == null)
        _this._collection$_last = previous;
      else
        next._collection$_previous = previous;
      --_this._collection$_length;
      _this._collection$_modified$0();
    },
    _computeHashCode$1(element) {
      return J.get$hashCode$(element) & 1073741823;
    },
    _findBucketIndex$2(bucket, element) {
      var $length, i;
      if (bucket == null)
        return -1;
      $length = bucket.length;
      for (i = 0; i < $length; ++i)
        if (J.$eq$(bucket[i]._element, element))
          return i;
      return -1;
    }
  };
  A._LinkedHashSetCell.prototype = {};
  A._LinkedHashSetIterator.prototype = {
    get$current() {
      var t1 = this._collection$_current;
      return t1 == null ? this.$ti._precomputed1._as(t1) : t1;
    },
    moveNext$0() {
      var _this = this,
        cell = _this._collection$_cell,
        t1 = _this._set;
      if (_this._collection$_modifications !== t1._collection$_modifications)
        throw A.wrapException(A.ConcurrentModificationError$(t1));
      else if (cell == null) {
        _this._collection$_current = null;
        return false;
      } else {
        _this._collection$_current = _this.$ti._eval$1("1?")._as(cell._element);
        _this._collection$_cell = cell._collection$_next;
        return true;
      }
    },
    $isIterator: 1
  };
  A.UnmodifiableListView.prototype = {
    cast$1$0(_, $R) {
      return new A.UnmodifiableListView(J.cast$1$0$ax(this._collection$_source, $R), $R._eval$1("UnmodifiableListView<0>"));
    },
    get$length(_) {
      return J.get$length$asx(this._collection$_source);
    },
    $index(_, index) {
      return J.elementAt$1$ax(this._collection$_source, index);
    }
  };
  A.LinkedHashMap_LinkedHashMap$from_closure.prototype = {
    call$2(k, v) {
      this.result.$indexSet(0, this.K._as(k), this.V._as(v));
    },
    $signature: 23
  };
  A.ListBase.prototype = {
    get$iterator(receiver) {
      return new A.ListIterator(receiver, this.get$length(receiver), A.instanceType(receiver)._eval$1("ListIterator<ListBase.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$isEmpty(receiver);
    },
    get$first(receiver) {
      if (this.get$length(receiver) === 0)
        throw A.wrapException(A.IterableElementError_noElement());
      return this.$index(receiver, 0);
    },
    contains$1(receiver, element) {
      var i,
        $length = this.get$length(receiver);
      for (i = 0; i < $length; ++i) {
        if (J.$eq$(this.$index(receiver, i), element))
          return true;
        if ($length !== this.get$length(receiver))
          throw A.wrapException(A.ConcurrentModificationError$(receiver));
      }
      return false;
    },
    map$1$1(receiver, f, $T) {
      var t1 = A.instanceType(receiver);
      return new A.MappedListIterable(receiver, t1._bind$1($T)._eval$1("1(ListBase.E)")._as(f), t1._eval$1("@<ListBase.E>")._bind$1($T)._eval$1("MappedListIterable<1,2>"));
    },
    map$1(receiver, f) {
      return this.map$1$1(receiver, f, type$.dynamic);
    },
    skip$1(receiver, count) {
      return A.SubListIterable$(receiver, count, null, A.instanceType(receiver)._eval$1("ListBase.E"));
    },
    take$1(receiver, count) {
      return A.SubListIterable$(receiver, 0, A.checkNotNullable(count, "count", type$.int), A.instanceType(receiver)._eval$1("ListBase.E"));
    },
    toList$1$growable(receiver, growable) {
      var t1, first, result, i, _this = this;
      if (_this.get$isEmpty(receiver)) {
        t1 = J.JSArray_JSArray$growable(0, A.instanceType(receiver)._eval$1("ListBase.E"));
        return t1;
      }
      first = _this.$index(receiver, 0);
      result = A.List_List$filled(_this.get$length(receiver), first, true, A.instanceType(receiver)._eval$1("ListBase.E"));
      for (i = 1; i < _this.get$length(receiver); ++i)
        B.JSArray_methods.$indexSet(result, i, _this.$index(receiver, i));
      return result;
    },
    toList$0(receiver) {
      return this.toList$1$growable(receiver, true);
    },
    add$1(receiver, element) {
      var t1;
      A.instanceType(receiver)._eval$1("ListBase.E")._as(element);
      t1 = this.get$length(receiver);
      this.set$length(receiver, t1 + 1);
      this.$indexSet(receiver, t1, element);
    },
    cast$1$0(receiver, $R) {
      return new A.CastList(receiver, A.instanceType(receiver)._eval$1("@<ListBase.E>")._bind$1($R)._eval$1("CastList<1,2>"));
    },
    sort$1(receiver, compare) {
      var t2,
        t1 = A.instanceType(receiver);
      t1._eval$1("int(ListBase.E,ListBase.E)?")._as(compare);
      t2 = compare == null ? A.collection_ListBase__compareAny$closure() : compare;
      A.Sort__doSort(receiver, 0, this.get$length(receiver) - 1, t2, t1._eval$1("ListBase.E"));
    },
    sublist$2(receiver, start, end) {
      var t1,
        listLength = this.get$length(receiver);
      if (end == null)
        end = listLength;
      A.RangeError_checkValidRange(start, end, listLength);
      t1 = A.List_List$_of(this.getRange$2(receiver, start, end), A.instanceType(receiver)._eval$1("ListBase.E"));
      return t1;
    },
    sublist$1(receiver, start) {
      return this.sublist$2(receiver, start, null);
    },
    getRange$2(receiver, start, end) {
      A.RangeError_checkValidRange(start, end, this.get$length(receiver));
      return A.SubListIterable$(receiver, start, end, A.instanceType(receiver)._eval$1("ListBase.E"));
    },
    fillRange$3(receiver, start, end, fill) {
      var i;
      A.instanceType(receiver)._eval$1("ListBase.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, t1, i;
      A.instanceType(receiver)._eval$1("Iterable<ListBase.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 (type$.List_dynamic._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.Iterable_iterableToFullString(receiver, "[", "]");
    },
    $isEfficientLengthIterable: 1,
    $isIterable: 1,
    $isList: 1
  };
  A.MapBase.prototype = {
    cast$2$0(_, RK, RV) {
      var t1 = A._instanceType(this);
      return A.Map_castFrom(this, t1._eval$1("MapBase.K"), t1._eval$1("MapBase.V"), RK, RV);
    },
    forEach$1(_, action) {
      var t2, key, t3,
        t1 = A._instanceType(this);
      t1._eval$1("~(MapBase.K,MapBase.V)")._as(action);
      for (t2 = this.get$keys(), t2 = t2.get$iterator(t2), t1 = t1._eval$1("MapBase.V"); t2.moveNext$0();) {
        key = t2.get$current();
        t3 = this.$index(0, key);
        action.call$2(key, t3 == null ? t1._as(t3) : t3);
      }
    },
    map$2$1(_, transform, K2, V2) {
      var result, t2, key, t3, entry,
        t1 = A._instanceType(this);
      t1._bind$1(K2)._bind$1(V2)._eval$1("MapEntry<1,2>(MapBase.K,MapBase.V)")._as(transform);
      result = A.LinkedHashMap_LinkedHashMap$_empty(K2, V2);
      for (t2 = this.get$keys(), t2 = t2.get$iterator(t2), t1 = t1._eval$1("MapBase.V"); t2.moveNext$0();) {
        key = t2.get$current();
        t3 = this.$index(0, key);
        entry = transform.call$2(key, t3 == null ? t1._as(t3) : t3);
        result.$indexSet(0, entry.key, entry.value);
      }
      return result;
    },
    map$1(_, transform) {
      var t1 = type$.dynamic;
      return this.map$2$1(0, transform, t1, t1);
    },
    containsKey$1(key) {
      return this.get$keys().contains$1(0, key);
    },
    get$length(_) {
      var t1 = this.get$keys();
      return t1.get$length(t1);
    },
    get$isEmpty(_) {
      var t1 = this.get$keys();
      return t1.get$isEmpty(t1);
    },
    toString$0(_) {
      return A.MapBase_mapToString(this);
    },
    $isMap: 1
  };
  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 = A.S(k);
      t1._contents = (t1._contents += t2) + ": ";
      t2 = A.S(v);
      t1._contents += t2;
    },
    $signature: 24
  };
  A._UnmodifiableMapMixin.prototype = {
    $indexSet(_, key, value) {
      var t1 = A._instanceType(this);
      t1._precomputed1._as(key);
      t1._rest[1]._as(value);
      throw A.wrapException(A.UnsupportedError$("Cannot modify unmodifiable map"));
    }
  };
  A.MapView.prototype = {
    cast$2$0(_, RK, RV) {
      return this._collection$_map.cast$2$0(0, RK, RV);
    },
    $index(_, key) {
      return this._collection$_map.$index(0, key);
    },
    $indexSet(_, key, value) {
      var t1 = A._instanceType(this);
      this._collection$_map.$indexSet(0, t1._precomputed1._as(key), t1._rest[1]._as(value));
    },
    containsKey$1(key) {
      return this._collection$_map.containsKey$1(key);
    },
    forEach$1(_, action) {
      this._collection$_map.forEach$1(0, A._instanceType(this)._eval$1("~(1,2)")._as(action));
    },
    get$isEmpty(_) {
      var t1 = this._collection$_map;
      return t1.get$isEmpty(t1);
    },
    get$length(_) {
      var t1 = this._collection$_map;
      return t1.get$length(t1);
    },
    get$keys() {
      return this._collection$_map.get$keys();
    },
    toString$0(_) {
      return this._collection$_map.toString$0(0);
    },
    map$2$1(_, transform, K2, V2) {
      return this._collection$_map.map$2$1(0, A._instanceType(this)._bind$1(K2)._bind$1(V2)._eval$1("MapEntry<1,2>(3,4)")._as(transform), K2, V2);
    },
    map$1(_, transform) {
      var t1 = type$.dynamic;
      return this.map$2$1(0, transform, t1, t1);
    },
    $isMap: 1
  };
  A.UnmodifiableMapView.prototype = {
    cast$2$0(_, RK, RV) {
      return new A.UnmodifiableMapView(this._collection$_map.cast$2$0(0, RK, RV), RK._eval$1("@<0>")._bind$1(RV)._eval$1("UnmodifiableMapView<1,2>"));
    }
  };
  A.ListQueue.prototype = {
    get$iterator(_) {
      var _this = this;
      return new A._ListQueueIterator(_this, _this._tail, _this._modificationCount, _this._head, _this.$ti._eval$1("_ListQueueIterator<1>"));
    },
    get$isEmpty(_) {
      return this._head === this._tail;
    },
    get$length(_) {
      return (this._tail - this._head & this._table.length - 1) >>> 0;
    },
    get$first(_) {
      var t2, _this = this,
        t1 = _this._head;
      if (t1 === _this._tail)
        throw A.wrapException(A.IterableElementError_noElement());
      t2 = _this._table;
      if (!(t1 < t2.length))
        return A.ioore(t2, t1);
      t1 = t2[t1];
      return t1 == null ? _this.$ti._precomputed1._as(t1) : t1;
    },
    elementAt$1(_, index) {
      var t2, t3, _this = this,
        t1 = _this.get$length(0);
      if (0 > index || index >= t1)
        A.throwExpression(A.IndexError$withLength(index, t1, _this, null, "index"));
      t1 = _this._table;
      t2 = t1.length;
      t3 = (_this._head + index & t2 - 1) >>> 0;
      if (!(t3 >= 0 && t3 < t2))
        return A.ioore(t1, t3);
      t3 = t1[t3];
      return t3 == null ? _this.$ti._precomputed1._as(t3) : t3;
    },
    toString$0(_) {
      return A.Iterable_iterableToFullString(this, "{", "}");
    },
    removeFirst$0() {
      var t2, result, _this = this,
        t1 = _this._head;
      if (t1 === _this._tail)
        throw A.wrapException(A.IterableElementError_noElement());
      ++_this._modificationCount;
      t2 = _this._table;
      if (!(t1 < t2.length))
        return A.ioore(t2, t1);
      result = t2[t1];
      if (result == null)
        result = _this.$ti._precomputed1._as(result);
      B.JSArray_methods.$indexSet(t2, t1, null);
      _this._head = (_this._head + 1 & _this._table.length - 1) >>> 0;
      return result;
    },
    removeLast$0(_) {
      var t3, result, _this = this,
        t1 = _this._head,
        t2 = _this._tail;
      if (t1 === t2)
        throw A.wrapException(A.IterableElementError_noElement());
      ++_this._modificationCount;
      t1 = _this._table;
      t3 = t1.length;
      t2 = (t2 - 1 & t3 - 1) >>> 0;
      _this._tail = t2;
      if (!(t2 >= 0 && t2 < t3))
        return A.ioore(t1, t2);
      result = t1[t2];
      if (result == null)
        result = _this.$ti._precomputed1._as(result);
      B.JSArray_methods.$indexSet(t1, t2, null);
      return result;
    },
    _collection$_add$1(element) {
      var t2, t3, newTable, split, _this = this,
        t1 = _this.$ti;
      t1._precomputed1._as(element);
      B.JSArray_methods.$indexSet(_this._table, _this._tail, element);
      t2 = _this._tail;
      t3 = _this._table.length;
      t2 = (t2 + 1 & t3 - 1) >>> 0;
      _this._tail = t2;
      if (_this._head === t2) {
        newTable = A.List_List$filled(t3 * 2, null, false, t1._eval$1("1?"));
        t1 = _this._table;
        t2 = _this._head;
        split = t1.length - t2;
        B.JSArray_methods.setRange$4(newTable, 0, split, t1, t2);
        B.JSArray_methods.setRange$4(newTable, split, split + _this._head, _this._table, 0);
        _this._head = 0;
        _this._tail = _this._table.length;
        _this._table = newTable;
      }
      ++_this._modificationCount;
    },
    $isQueue: 1
  };
  A._ListQueueIterator.prototype = {
    get$current() {
      var t1 = this._collection$_current;
      return t1 == null ? this.$ti._precomputed1._as(t1) : t1;
    },
    moveNext$0() {
      var t2, t3, _this = this,
        t1 = _this._queue;
      if (_this._modificationCount !== t1._modificationCount)
        A.throwExpression(A.ConcurrentModificationError$(t1));
      t2 = _this._position;
      if (t2 === _this._end) {
        _this._collection$_current = null;
        return false;
      }
      t1 = t1._table;
      t3 = t1.length;
      if (!(t2 < t3))
        return A.ioore(t1, t2);
      _this._collection$_current = t1[t2];
      _this._position = (t2 + 1 & t3 - 1) >>> 0;
      return true;
    },
    $isIterator: 1
  };
  A.SetBase.prototype = {
    get$isEmpty(_) {
      return this.get$length(this) === 0;
    },
    get$isNotEmpty(_) {
      return this.get$length(this) !== 0;
    },
    addAll$1(_, elements) {
      var t1;
      A._instanceType(this)._eval$1("Iterable<1>")._as(elements);
      for (t1 = elements.get$iterator(elements); t1.moveNext$0();)
        this.add$1(0, t1.get$current());
    },
    containsAll$1(other) {
      var t1, t2, o;
      for (t1 = other._set$_set, t1 = A._LinkedHashSetIterator$(t1, t1._collection$_modifications, A._instanceType(t1)._precomputed1), t2 = t1.$ti._precomputed1; t1.moveNext$0();) {
        o = t1._collection$_current;
        if (!this.contains$1(0, o == null ? t2._as(o) : o))
          return false;
      }
      return true;
    },
    map$1$1(_, f, $T) {
      var t1 = A._instanceType(this);
      return new A.EfficientLengthMappedIterable(this, t1._bind$1($T)._eval$1("1(2)")._as(f), t1._eval$1("@<1>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>"));
    },
    map$1(_, f) {
      return this.map$1$1(0, f, type$.dynamic);
    },
    toString$0(_) {
      return A.Iterable_iterableToFullString(this, "{", "}");
    },
    take$1(_, n) {
      return A.TakeIterable_TakeIterable(this, n, A._instanceType(this)._precomputed1);
    },
    skip$1(_, n) {
      return A.SkipIterable_SkipIterable(this, n, A._instanceType(this)._precomputed1);
    },
    get$first(_) {
      var it = this.get$iterator(this);
      if (!it.moveNext$0())
        throw A.wrapException(A.IterableElementError_noElement());
      return it.get$current();
    },
    elementAt$1(_, index) {
      var iterator, skipCount;
      A.RangeError_checkNotNegative(index, "index");
      iterator = this.get$iterator(this);
      for (skipCount = index; iterator.moveNext$0();) {
        if (skipCount === 0)
          return iterator.get$current();
        --skipCount;
      }
      throw A.wrapException(A.IndexError$withLength(index, index - skipCount, this, null, "index"));
    },
    $isEfficientLengthIterable: 1,
    $isIterable: 1,
    $isSet: 1
  };
  A._SetBase.prototype = {};
  A._SplayTreeNode.prototype = {
    set$_left(_left) {
      this._left = this.$ti._eval$1("_SplayTreeNode.1?")._as(_left);
    },
    set$_right(_right) {
      this._right = this.$ti._eval$1("_SplayTreeNode.1?")._as(_right);
    }
  };
  A._SplayTreeSetNode.prototype = {};
  A._SplayTree.prototype = {
    _splay$1(key) {
      var root, compare, comparison, current, newTreeLeft, left, newTreeRight, right, currentLeft, currentLeft0, currentRight, currentRight0, _this = this, _null = null;
      _this.$ti._eval$1("_SplayTree.K")._as(key);
      root = _this._root;
      if (root == null) {
        _this._compare.call$2(key, key);
        return -1;
      }
      compare = _this._compare;
      for (comparison = _null, current = root, newTreeLeft = comparison, left = newTreeLeft, newTreeRight = left, right = newTreeRight; true;) {
        comparison = compare.call$2(current.key, key);
        if (comparison > 0) {
          currentLeft = current._left;
          if (currentLeft == null)
            break;
          comparison = compare.call$2(currentLeft.key, key);
          if (comparison > 0) {
            current.set$_left(currentLeft._right);
            currentLeft.set$_right(current);
            currentLeft0 = currentLeft._left;
            if (currentLeft0 == null) {
              current = currentLeft;
              break;
            }
            current = currentLeft;
            currentLeft = currentLeft0;
          }
          if (right == null)
            newTreeRight = current;
          else
            right.set$_left(current);
          right = current;
          current = currentLeft;
        } else {
          if (comparison < 0) {
            currentRight = current._right;
            if (currentRight == null)
              break;
            comparison = compare.call$2(currentRight.key, key);
            if (comparison < 0) {
              current.set$_right(currentRight._left);
              currentRight.set$_left(current);
              currentRight0 = currentRight._right;
              if (currentRight0 == null) {
                current = currentRight;
                break;
              }
              current = currentRight;
              currentRight = currentRight0;
            }
            if (left == null)
              newTreeLeft = current;
            else
              left.set$_right(current);
          } else
            break;
          left = current;
          current = currentRight;
        }
      }
      if (left != null) {
        left.set$_right(current._left);
        current.set$_left(newTreeLeft);
      }
      if (right != null) {
        right.set$_left(current._right);
        current.set$_right(newTreeRight);
      }
      if (_this._root !== current) {
        _this._root = current;
        ++_this._splayCount;
      }
      return comparison;
    },
    _splayMin$1(node) {
      var current, modified, left;
      this.$ti._eval$1("_SplayTree.1")._as(node);
      for (current = node, modified = 0; true; current = left, modified = 1) {
        left = current._left;
        if (left != null) {
          current.set$_left(left._right);
          left.set$_right(current);
        } else
          break;
      }
      this._splayCount += modified;
      return current;
    },
    _splayMax$1(node) {
      var current, modified, right;
      this.$ti._eval$1("_SplayTree.1")._as(node);
      for (current = node, modified = 0; true; current = right, modified = 1) {
        right = current._right;
        if (right != null) {
          current.set$_right(right._left);
          right.set$_left(current);
        } else
          break;
      }
      this._splayCount += modified;
      return current;
    },
    _untypedLookup$1(key) {
      if (!this.$ti._eval$1("_SplayTree.K")._is(key))
        return null;
      if (this._splay$1(key) === 0)
        return this._root;
      return null;
    }
  };
  A._SplayTreeIterator.prototype = {
    get$current() {
      var t1 = this._path;
      if (t1.length === 0) {
        this.$ti._eval$1("_SplayTreeIterator.T")._as(null);
        return null;
      }
      return this.$ti._rest[1]._as(B.JSArray_methods.get$last(t1)).key;
    },
    _rebuildPath$1(key) {
      var t1, t2, t3, _this = this;
      _this.$ti._eval$1("_SplayTreeIterator.K")._as(key);
      t1 = _this._path;
      B.JSArray_methods.clear$0(t1);
      t2 = _this._tree;
      if (t2._splay$1(key) === 0) {
        t3 = t2._root;
        t3.toString;
        B.JSArray_methods.add$1(t1, t3);
        _this._splayCount = t2._splayCount;
        return;
      }
      throw A.wrapException(A.ConcurrentModificationError$(_this));
    },
    moveNext$0() {
      var node, next, _this = this,
        t1 = _this._modificationCount,
        t2 = _this._tree,
        t3 = t2._modificationCount;
      if (t1 !== t3) {
        if (t1 == null) {
          _this._modificationCount = t3;
          node = t2._root;
          for (t1 = _this._path; node != null;) {
            B.JSArray_methods.add$1(t1, node);
            node = node._left;
          }
          return t1.length !== 0;
        }
        throw A.wrapException(A.ConcurrentModificationError$(t2));
      }
      t1 = _this._path;
      if (t1.length === 0)
        return false;
      if (_this._splayCount !== t2._splayCount)
        _this._rebuildPath$1(B.JSArray_methods.get$last(t1).key);
      node = B.JSArray_methods.get$last(t1);
      next = node._right;
      if (next != null) {
        for (; next != null;) {
          B.JSArray_methods.add$1(t1, next);
          next = next._left;
        }
        return true;
      }
      if (0 >= t1.length)
        return A.ioore(t1, -1);
      t1.pop();
      while (true) {
        if (!(t1.length !== 0 && B.JSArray_methods.get$last(t1)._right === node))
          break;
        if (0 >= t1.length)
          return A.ioore(t1, -1);
        node = t1.pop();
      }
      return t1.length !== 0;
    },
    $isIterator: 1
  };
  A._SplayTreeKeyIterator.prototype = {};
  A.SplayTreeSet.prototype = {
    get$iterator(_) {
      var t1 = this.$ti;
      return new A._SplayTreeKeyIterator(this, A._setArrayType([], t1._eval$1("JSArray<_SplayTreeSetNode<1>>")), this._splayCount, t1._eval$1("_SplayTreeKeyIterator<1,_SplayTreeSetNode<1>>"));
    },
    get$length(_) {
      return this._count;
    },
    get$isEmpty(_) {
      return this._root == null;
    },
    get$isNotEmpty(_) {
      return this._root != null;
    },
    get$first(_) {
      var t1,
        root = this._root;
      if (root == null)
        throw A.wrapException(A.IterableElementError_noElement());
      t1 = this._splayMin$1(root);
      this._root = t1;
      return t1.key;
    },
    contains$1(_, element) {
      return this._untypedLookup$1(element) != null;
    },
    add$1(_, element) {
      return this._collection$_add$1(this.$ti._precomputed1._as(element));
    },
    _collection$_add$1(element) {
      var compare, root, _this = this,
        t1 = _this.$ti;
      t1._precomputed1._as(element);
      compare = _this._splay$1(element);
      if (compare === 0)
        return false;
      t1 = t1._eval$1("_SplayTree.1")._as(new A._SplayTreeSetNode(element, t1._eval$1("_SplayTreeSetNode<1>")));
      root = _this._root;
      if (root != null)
        if (compare < 0) {
          t1.set$_left(root);
          t1.set$_right(root._right);
          root.set$_right(null);
        } else {
          t1.set$_right(root);
          t1.set$_left(root._left);
          root.set$_left(null);
        }
      ++_this._modificationCount;
      ++_this._count;
      _this._root = t1;
      return true;
    },
    remove$1(_, object) {
      var root, left, right, t1, _this = this;
      if (_this._untypedLookup$1(object) == null)
        return false;
      root = _this._root;
      left = root._left;
      right = root._right;
      if (left == null)
        _this._root = right;
      else if (right == null)
        _this._root = left;
      else {
        t1 = _this._splayMax$1(left);
        t1.set$_right(right);
        _this._root = t1;
      }
      --_this._count;
      ++_this._modificationCount;
      return true;
    },
    addAll$1(_, elements) {
      var t1;
      for (t1 = J.get$iterator$ax(this.$ti._eval$1("Iterable<1>")._as(elements)); t1.moveNext$0();)
        this._collection$_add$1(t1.get$current());
    },
    toString$0(_) {
      return A.Iterable_iterableToFullString(this, "{", "}");
    },
    $isEfficientLengthIterable: 1,
    $isSet: 1
  };
  A._SplayTreeSet__SplayTree_Iterable.prototype = {};
  A._SplayTreeSet__SplayTree_Iterable_SetMixin.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.__js_helper$_length : this._convert$_computeKeys$0().length;
    },
    get$isEmpty(_) {
      return this.get$length(0) === 0;
    },
    get$keys() {
      if (this._processed == null) {
        var t1 = this._data;
        return new A.LinkedHashMapKeysIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<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(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(key);
      if (typeof key != "string")
        return false;
      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.clear$0(keys);
      _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(_) {
      return this._parent.get$length(0);
    },
    elementAt$1(_, index) {
      var t1 = this._parent;
      if (t1._processed == null)
        t1 = t1.get$keys().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.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;
    },
    contains$1(_, key) {
      return this._parent.containsKey$1(key);
    }
  };
  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: 25
  };
  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: 25
  };
  A.AsciiCodec.prototype = {
    encode$1(source) {
      return B.AsciiEncoder_127.convert$1(source);
    },
    decode$1(bytes) {
      var t1;
      type$.List_int._as(bytes);
      t1 = B.AsciiDecoder_false_127.convert$1(bytes);
      return t1;
    }
  };
  A._UnicodeSubsetEncoder.prototype = {
    convert$1(string) {
      var stringLength, end, result, t1, i, codeUnit;
      A._asString(string);
      stringLength = string.length;
      end = A.RangeError_checkValidRange(0, null, stringLength);
      result = new Uint8Array(end);
      for (t1 = ~this._subsetMask, i = 0; i < end; ++i) {
        if (!(i < stringLength))
          return A.ioore(string, i);
        codeUnit = string.charCodeAt(i);
        if ((codeUnit & t1) !== 0)
          throw A.wrapException(A.ArgumentError$value(string, "string", "Contains invalid characters."));
        if (!(i < end))
          return A.ioore(result, i);
        result[i] = codeUnit;
      }
      return result;
    }
  };
  A.AsciiEncoder.prototype = {};
  A._UnicodeSubsetDecoder.prototype = {
    convert$1(bytes) {
      var t1, end, t2, i, byte;
      type$.List_int._as(bytes);
      t1 = J.getInterceptor$asx(bytes);
      end = A.RangeError_checkValidRange(0, null, t1.get$length(bytes));
      for (t2 = ~this._subsetMask, i = 0; i < end; ++i) {
        byte = t1.$index(bytes, i);
        if ((byte & t2) >>> 0 !== 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, t2, i, t3, value;
      type$.List_int._as(bytes);
      for (t1 = ~this._subsetMask, t2 = J.getInterceptor$asx(bytes), i = start, t3 = ""; i < end; ++i) {
        value = t2.$index(bytes, i);
        t3 += A.Primitives_stringFromCharCode((value & t1) >>> 0 !== 0 ? 65533 : value);
      }
      return t3.charCodeAt(0) == 0 ? t3 : t3;
    }
  };
  A.AsciiDecoder.prototype = {};
  A.Base64Codec.prototype = {
    get$encoder() {
      return B.C_Base64Encoder;
    },
    normalize$3(source, start, end) {
      var inverseAlphabet, t2, i, sliceStart, buffer, firstPadding, firstPaddingSourceIndex, paddingCount, i0, char, i1, digit1, t3, digit2, char0, value, t4, endLength, $length,
        _s64_ = string$.ABCDEF,
        _s31_ = "Invalid base64 encoding length ",
        t1 = source.length;
      end = A.RangeError_checkValidRange(start, end, t1);
      inverseAlphabet = $.$get$_Base64Decoder__inverseAlphabet();
      for (t2 = inverseAlphabet.length, i = start, sliceStart = i, buffer = null, firstPadding = -1, firstPaddingSourceIndex = -1, paddingCount = 0; i < end; i = i0) {
        i0 = i + 1;
        if (!(i < t1))
          return A.ioore(source, i);
        char = source.charCodeAt(i);
        if (char === 37) {
          i1 = i0 + 2;
          if (i1 <= end) {
            if (!(i0 < t1))
              return A.ioore(source, i0);
            digit1 = A.hexDigitValue(source.charCodeAt(i0));
            t3 = i0 + 1;
            if (!(t3 < t1))
              return A.ioore(source, t3);
            digit2 = A.hexDigitValue(source.charCodeAt(t3));
            char0 = digit1 * 16 + digit2 - (digit2 & 256);
            if (char0 === 37)
              char0 = -1;
            i0 = i1;
          } else
            char0 = -1;
        } else
          char0 = char;
        if (0 <= char0 && char0 <= 127) {
          if (!(char0 >= 0 && char0 < t2))
            return A.ioore(inverseAlphabet, char0);
          value = inverseAlphabet[char0];
          if (value >= 0) {
            if (!(value < 64))
              return A.ioore(_s64_, value);
            char0 = _s64_.charCodeAt(value);
            if (char0 === char)
              continue;
            char = char0;
          } else {
            if (value === -1) {
              if (firstPadding < 0) {
                t3 = buffer == null ? null : buffer._contents.length;
                if (t3 == null)
                  t3 = 0;
                firstPadding = t3 + (i - sliceStart);
                firstPaddingSourceIndex = i;
              }
              ++paddingCount;
              if (char === 61)
                continue;
            }
            char = char0;
          }
          if (value !== -2) {
            if (buffer == null) {
              buffer = new A.StringBuffer("");
              t3 = buffer;
            } else
              t3 = buffer;
            t3._contents += B.JSString_methods.substring$2(source, sliceStart, i);
            t4 = A.Primitives_stringFromCharCode(char);
            t3._contents += t4;
            sliceStart = i0;
            continue;
          }
        }
        throw A.wrapException(A.FormatException$("Invalid base64 data", source, i));
      }
      if (buffer != null) {
        t1 = B.JSString_methods.substring$2(source, sliceStart, end);
        t1 = buffer._contents += t1;
        t2 = t1.length;
        if (firstPadding >= 0)
          A.Base64Codec__checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, t2);
        else {
          endLength = B.JSInt_methods.$mod(t2 - 1, 4) + 1;
          if (endLength === 1)
            throw A.wrapException(A.FormatException$(_s31_, source, end));
          for (; endLength < 4;) {
            t1 += "=";
            buffer._contents = t1;
            ++endLength;
          }
        }
        t1 = buffer._contents;
        return B.JSString_methods.replaceRange$3(source, start, end, t1.charCodeAt(0) == 0 ? t1 : t1);
      }
      $length = end - start;
      if (firstPadding >= 0)
        A.Base64Codec__checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, $length);
      else {
        endLength = B.JSInt_methods.$mod($length, 4);
        if (endLength === 1)
          throw A.wrapException(A.FormatException$(_s31_, source, end));
        if (endLength > 1)
          source = B.JSString_methods.replaceRange$3(source, end, end, endLength === 2 ? "==" : "=");
      }
      return source;
    }
  };
  A.Base64Encoder.prototype = {
    convert$1(input) {
      var t1;
      type$.List_int._as(input);
      t1 = J.getInterceptor$asx(input);
      if (t1.get$isEmpty(input))
        return "";
      t1 = new A._Base64Encoder(string$.ABCDEF).encode$4(input, 0, t1.get$length(input), true);
      t1.toString;
      return A.String_String$fromCharCodes(t1, 0, null);
    }
  };
  A._Base64Encoder.prototype = {
    createBuffer$1(bufferLength) {
      return new Uint8Array(bufferLength);
    },
    encode$4(bytes, start, end, isLast) {
      var byteCount, fullChunks, bufferLength, output, _this = this;
      type$.List_int._as(bytes);
      byteCount = (_this._convert$_state & 3) + (end - start);
      fullChunks = B.JSInt_methods._tdivFast$1(byteCount, 3);
      bufferLength = fullChunks * 4;
      if (isLast && byteCount - fullChunks * 3 > 0)
        bufferLength += 4;
      output = _this.createBuffer$1(bufferLength);
      _this._convert$_state = A._Base64Encoder_encodeChunk(_this._alphabet, bytes, start, end, isLast, output, 0, _this._convert$_state);
      if (bufferLength > 0)
        return output;
      return null;
    }
  };
  A.Base64Decoder.prototype = {
    convert$1(input) {
      var end, decoder, t1;
      A._asString(input);
      end = A.RangeError_checkValidRange(0, null, input.length);
      if (0 === end)
        return new Uint8Array(0);
      decoder = new A._Base64Decoder();
      t1 = decoder.decode$3(input, 0, end);
      t1.toString;
      decoder.close$2(input, end);
      return t1;
    }
  };
  A._Base64Decoder.prototype = {
    decode$3(input, start, end) {
      var buffer, _this = this,
        t1 = _this._convert$_state;
      if (t1 < 0) {
        _this._convert$_state = A._Base64Decoder__checkPadding(input, start, end, t1);
        return null;
      }
      if (start === end)
        return new Uint8Array(0);
      buffer = A._Base64Decoder__allocateBuffer(input, start, end, t1);
      _this._convert$_state = A._Base64Decoder_decodeChunk(input, start, end, buffer, 0, _this._convert$_state);
      return buffer;
    },
    close$2(input, end) {
      var t1 = this._convert$_state;
      if (t1 < -1)
        throw A.wrapException(A.FormatException$("Missing padding character", input, end));
      if (t1 > 0)
        throw A.wrapException(A.FormatException$("Invalid length, must be multiple of four", input, end));
      this._convert$_state = -1;
    }
  };
  A.ByteConversionSink.prototype = {};
  A._ByteCallbackSink.prototype = {
    add$1(_, chunk) {
      var t1, t2, t3, v, grown, _this = this;
      type$.Iterable_int._as(chunk);
      t1 = _this._convert$_buffer;
      t2 = _this._bufferIndex;
      t3 = J.getInterceptor$asx(chunk);
      if (t3.get$length(chunk) > t1.length - t2) {
        t1 = _this._convert$_buffer;
        v = t3.get$length(chunk) + t1.length - 1;
        v |= B.JSInt_methods._shrOtherPositive$1(v, 1);
        v |= v >>> 2;
        v |= v >>> 4;
        v |= v >>> 8;
        grown = new Uint8Array((((v | v >>> 16) >>> 0) + 1) * 2);
        t1 = _this._convert$_buffer;
        B.NativeUint8List_methods.setRange$3(grown, 0, t1.length, t1);
        _this._convert$_buffer = grown;
      }
      t1 = _this._convert$_buffer;
      t2 = _this._bufferIndex;
      B.NativeUint8List_methods.setRange$3(t1, t2, t2 + t3.get$length(chunk), chunk);
      _this._bufferIndex = _this._bufferIndex + t3.get$length(chunk);
    },
    close$0() {
      this._callback.call$1(B.NativeUint8List_methods.sublist$2(this._convert$_buffer, 0, this._bufferIndex));
    }
  };
  A.Codec.prototype = {};
  A.Converter.prototype = {$isStreamTransformer: 1};
  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$2$reviver(source, reviver) {
      var t1 = A._parseJson(source, this.get$decoder()._reviver);
      return t1;
    },
    decode$1(source) {
      return this.decode$2$reviver(source, null);
    },
    encode$2$toEncodable(value, toEncodable) {
      var t1 = A._JsonStringStringifier_stringify(value, this.get$encoder()._toEncodable, null);
      return t1;
    },
    get$encoder() {
      return B.JsonEncoder_null;
    },
    get$decoder() {
      return B.JsonDecoder_null;
    }
  };
  A.JsonEncoder.prototype = {};
  A.JsonDecoder.prototype = {};
  A._JsonStringifier.prototype = {
    writeStringContent$1(s) {
      var offset, i, charCode, t1, t2, _this = this,
        $length = s.length;
      for (offset = 0, i = 0; i < $length; ++i) {
        charCode = s.charCodeAt(i);
        if (charCode > 92) {
          if (charCode >= 55296) {
            t1 = charCode & 64512;
            if (t1 === 55296) {
              t2 = i + 1;
              t2 = !(t2 < $length && (s.charCodeAt(t2) & 64512) === 56320);
            } else
              t2 = false;
            if (!t2)
              if (t1 === 56320) {
                t1 = i - 1;
                t1 = !(t1 >= 0 && (s.charCodeAt(t1) & 64512) === 55296);
              } else
                t1 = false;
            else
              t1 = true;
            if (t1) {
              if (i > offset)
                _this.writeStringSlice$3(s, offset, i);
              offset = i + 1;
              _this.writeCharCode$1(92);
              _this.writeCharCode$1(117);
              _this.writeCharCode$1(100);
              t1 = charCode >>> 8 & 15;
              _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1);
              t1 = charCode >>> 4 & 15;
              _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1);
              t1 = charCode & 15;
              _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1);
            }
          }
          continue;
        }
        if (charCode < 32) {
          if (i > offset)
            _this.writeStringSlice$3(s, offset, i);
          offset = i + 1;
          _this.writeCharCode$1(92);
          switch (charCode) {
            case 8:
              _this.writeCharCode$1(98);
              break;
            case 9:
              _this.writeCharCode$1(116);
              break;
            case 10:
              _this.writeCharCode$1(110);
              break;
            case 12:
              _this.writeCharCode$1(102);
              break;
            case 13:
              _this.writeCharCode$1(114);
              break;
            default:
              _this.writeCharCode$1(117);
              _this.writeCharCode$1(48);
              _this.writeCharCode$1(48);
              t1 = charCode >>> 4 & 15;
              _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1);
              t1 = charCode & 15;
              _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1);
              break;
          }
        } else if (charCode === 34 || charCode === 92) {
          if (i > offset)
            _this.writeStringSlice$3(s, offset, i);
          offset = i + 1;
          _this.writeCharCode$1(92);
          _this.writeCharCode$1(charCode);
        }
      }
      if (offset === 0)
        _this.writeString$1(s);
      else if (offset < $length)
        _this.writeStringSlice$3(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.writeNumber$1(object);
        return true;
      } else if (object === true) {
        _this.writeString$1("true");
        return true;
      } else if (object === false) {
        _this.writeString$1("false");
        return true;
      } else if (object == null) {
        _this.writeString$1("null");
        return true;
      } else if (typeof object == "string") {
        _this.writeString$1('"');
        _this.writeStringContent$1(object);
        _this.writeString$1('"');
        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 t1, i, _this = this;
      _this.writeString$1("[");
      t1 = J.getInterceptor$asx(list);
      if (t1.get$isNotEmpty(list)) {
        _this.writeObject$1(t1.$index(list, 0));
        for (i = 1; i < t1.get$length(list); ++i) {
          _this.writeString$1(",");
          _this.writeObject$1(t1.$index(list, i));
        }
      }
      _this.writeString$1("]");
    },
    writeMap$1(map) {
      var t1, keyValueList, i, separator, t2, _this = this, _box_0 = {};
      if (map.get$isEmpty(map)) {
        _this.writeString$1("{}");
        return true;
      }
      t1 = map.get$length(map) * 2;
      keyValueList = A.List_List$filled(t1, null, false, type$.nullable_Object);
      i = _box_0.i = 0;
      _box_0.allStringKeys = true;
      map.forEach$1(0, new A._JsonStringifier_writeMap_closure(_box_0, keyValueList));
      if (!_box_0.allStringKeys)
        return false;
      _this.writeString$1("{");
      for (separator = '"'; i < t1; i += 2, separator = ',"') {
        _this.writeString$1(separator);
        _this.writeStringContent$1(A._asString(keyValueList[i]));
        _this.writeString$1('":');
        t2 = i + 1;
        if (!(t2 < t1))
          return A.ioore(keyValueList, t2);
        _this.writeObject$1(keyValueList[t2]);
      }
      _this.writeString$1("}");
      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: 24
  };
  A._JsonStringStringifier.prototype = {
    get$_partialResult() {
      var t1 = this._convert$_sink;
      return t1 instanceof A.StringBuffer ? t1.toString$0(0) : null;
    },
    writeNumber$1(number) {
      this._convert$_sink.write$1(B.JSNumber_methods.toString$0(number));
    },
    writeString$1(string) {
      this._convert$_sink.write$1(string);
    },
    writeStringSlice$3(string, start, end) {
      this._convert$_sink.write$1(B.JSString_methods.substring$2(string, start, end));
    },
    writeCharCode$1(charCode) {
      this._convert$_sink.writeCharCode$1(charCode);
    }
  };
  A.Latin1Codec.prototype = {
    encode$1(source) {
      return B.Latin1Encoder_255.convert$1(source);
    },
    decode$1(bytes) {
      var t1;
      type$.List_int._as(bytes);
      t1 = B.Latin1Decoder_false_255.convert$1(bytes);
      return t1;
    }
  };
  A.Latin1Encoder.prototype = {};
  A.Latin1Decoder.prototype = {};
  A.Utf8Codec.prototype = {
    decode$1(codeUnits) {
      type$.List_int._as(codeUnits);
      return B.Utf8Decoder_false.convert$1(codeUnits);
    },
    encode$1(string) {
      return B.C_Utf8Encoder.convert$1(string);
    }
  };
  A.Utf8Encoder.prototype = {
    convert$1(string) {
      var stringLength, end, t1, encoder, t2;
      A._asString(string);
      stringLength = string.length;
      end = A.RangeError_checkValidRange(0, null, stringLength);
      if (end === 0)
        return new Uint8Array(0);
      t1 = new Uint8Array(end * 3);
      encoder = new A._Utf8Encoder(t1);
      if (encoder._fillBuffer$3(string, 0, end) !== end) {
        t2 = end - 1;
        if (!(t2 >= 0 && t2 < stringLength))
          return A.ioore(string, t2);
        encoder._writeReplacementCharacter$0();
      }
      return B.NativeUint8List_methods.sublist$2(t1, 0, encoder._bufferIndex);
    }
  };
  A._Utf8Encoder.prototype = {
    _writeReplacementCharacter$0() {
      var t4, _this = this,
        t1 = _this._convert$_buffer,
        t2 = _this._bufferIndex,
        t3 = _this._bufferIndex = t2 + 1;
      t1.$flags & 2 && A.throwUnsupportedOperation(t1);
      t4 = t1.length;
      if (!(t2 < t4))
        return A.ioore(t1, t2);
      t1[t2] = 239;
      t2 = _this._bufferIndex = t3 + 1;
      if (!(t3 < t4))
        return A.ioore(t1, t3);
      t1[t3] = 191;
      _this._bufferIndex = t2 + 1;
      if (!(t2 < t4))
        return A.ioore(t1, t2);
      t1[t2] = 189;
    },
    _writeSurrogate$2(leadingSurrogate, nextCodeUnit) {
      var rune, t1, t2, t3, t4, _this = this;
      if ((nextCodeUnit & 64512) === 56320) {
        rune = 65536 + ((leadingSurrogate & 1023) << 10) | nextCodeUnit & 1023;
        t1 = _this._convert$_buffer;
        t2 = _this._bufferIndex;
        t3 = _this._bufferIndex = t2 + 1;
        t1.$flags & 2 && A.throwUnsupportedOperation(t1);
        t4 = t1.length;
        if (!(t2 < t4))
          return A.ioore(t1, t2);
        t1[t2] = rune >>> 18 | 240;
        t2 = _this._bufferIndex = t3 + 1;
        if (!(t3 < t4))
          return A.ioore(t1, t3);
        t1[t3] = rune >>> 12 & 63 | 128;
        t3 = _this._bufferIndex = t2 + 1;
        if (!(t2 < t4))
          return A.ioore(t1, t2);
        t1[t2] = rune >>> 6 & 63 | 128;
        _this._bufferIndex = t3 + 1;
        if (!(t3 < t4))
          return A.ioore(t1, t3);
        t1[t3] = rune & 63 | 128;
        return true;
      } else {
        _this._writeReplacementCharacter$0();
        return false;
      }
    },
    _fillBuffer$3(str, start, end) {
      var t1, t2, t3, t4, stringIndex, codeUnit, t5, t6, _this = this;
      if (start !== end) {
        t1 = end - 1;
        if (!(t1 >= 0 && t1 < str.length))
          return A.ioore(str, t1);
        t1 = (str.charCodeAt(t1) & 64512) === 55296;
      } else
        t1 = false;
      if (t1)
        --end;
      for (t1 = _this._convert$_buffer, t2 = t1.$flags | 0, t3 = t1.length, t4 = str.length, stringIndex = start; stringIndex < end; ++stringIndex) {
        if (!(stringIndex < t4))
          return A.ioore(str, stringIndex);
        codeUnit = str.charCodeAt(stringIndex);
        if (codeUnit <= 127) {
          t5 = _this._bufferIndex;
          if (t5 >= t3)
            break;
          _this._bufferIndex = t5 + 1;
          t2 & 2 && A.throwUnsupportedOperation(t1);
          t1[t5] = codeUnit;
        } else {
          t5 = codeUnit & 64512;
          if (t5 === 55296) {
            if (_this._bufferIndex + 4 > t3)
              break;
            t5 = stringIndex + 1;
            if (!(t5 < t4))
              return A.ioore(str, t5);
            if (_this._writeSurrogate$2(codeUnit, str.charCodeAt(t5)))
              stringIndex = t5;
          } else if (t5 === 56320) {
            if (_this._bufferIndex + 3 > t3)
              break;
            _this._writeReplacementCharacter$0();
          } else if (codeUnit <= 2047) {
            t5 = _this._bufferIndex;
            t6 = t5 + 1;
            if (t6 >= t3)
              break;
            _this._bufferIndex = t6;
            t2 & 2 && A.throwUnsupportedOperation(t1);
            if (!(t5 < t3))
              return A.ioore(t1, t5);
            t1[t5] = codeUnit >>> 6 | 192;
            _this._bufferIndex = t6 + 1;
            t1[t6] = codeUnit & 63 | 128;
          } else {
            t5 = _this._bufferIndex;
            if (t5 + 2 >= t3)
              break;
            t6 = _this._bufferIndex = t5 + 1;
            t2 & 2 && A.throwUnsupportedOperation(t1);
            if (!(t5 < t3))
              return A.ioore(t1, t5);
            t1[t5] = codeUnit >>> 12 | 224;
            t5 = _this._bufferIndex = t6 + 1;
            if (!(t6 < t3))
              return A.ioore(t1, t6);
            t1[t6] = codeUnit >>> 6 & 63 | 128;
            _this._bufferIndex = t5 + 1;
            if (!(t5 < t3))
              return A.ioore(t1, t5);
            t1[t5] = codeUnit & 63 | 128;
          }
        }
      }
      return stringIndex;
    }
  };
  A.Utf8Decoder.prototype = {
    convert$1(codeUnits) {
      return new A._Utf8Decoder(this._allowMalformed)._convertGeneral$4(type$.List_int._as(codeUnits), 0, null, true);
    }
  };
  A._Utf8Decoder.prototype = {
    _convertGeneral$4(codeUnits, start, maybeEnd, single) {
      var end, casted, bytes, errorOffset, t1, result, message, _this = this;
      type$.List_int._as(codeUnits);
      end = A.RangeError_checkValidRange(start, maybeEnd, J.get$length$asx(codeUnits));
      if (start === end)
        return "";
      if (codeUnits instanceof Uint8Array) {
        casted = codeUnits;
        bytes = casted;
        errorOffset = 0;
      } else {
        bytes = A._Utf8Decoder__makeNativeUint8List(codeUnits, start, end);
        end -= start;
        errorOffset = start;
        start = 0;
      }
      if (single && end - start >= 15) {
        t1 = _this.allowMalformed;
        result = A._Utf8Decoder__convertInterceptedUint8List(t1, bytes, start, end);
        if (result != null) {
          if (!t1)
            return result;
          if (result.indexOf("\ufffd") < 0)
            return result;
        }
      }
      result = _this._decodeRecursive$4(bytes, start, end, single);
      t1 = _this._convert$_state;
      if ((t1 & 1) !== 0) {
        message = A._Utf8Decoder_errorDescription(t1);
        _this._convert$_state = 0;
        throw A.wrapException(A.FormatException$(message, codeUnits, errorOffset + _this._charOrIndex));
      }
      return result;
    },
    _decodeRecursive$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._decodeRecursive$4(bytes, start, mid, false);
        if ((_this._convert$_state & 1) !== 0)
          return s1;
        return s1 + _this._decodeRecursive$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,
        _s256_ = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE",
        _s144_ = " \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA",
        _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) {
            if (!(byte >= 0 && byte < 256))
              return A.ioore(_s256_, byte);
            type = _s256_.charCodeAt(byte) & 31;
            char = state <= 32 ? byte & 61694 >>> type : (byte & 63 | char << 6) >>> 0;
            t3 = state + type;
            if (!(t3 >= 0 && t3 < 144))
              return A.ioore(_s144_, t3);
            state = _s144_.charCodeAt(t3);
            if (state === 0) {
              t3 = A.Primitives_stringFromCharCode(char);
              buffer._contents += t3;
              if (i === end)
                break $label0$0;
              break;
            } else if ((state & 1) !== 0) {
              if (t2)
                switch (state) {
                  case 69:
                  case 67:
                    t3 = A.Primitives_stringFromCharCode(_65533);
                    buffer._contents += t3;
                    break;
                  case 65:
                    t3 = A.Primitives_stringFromCharCode(_65533);
                    buffer._contents += t3;
                    --i;
                    break;
                  default:
                    t3 = A.Primitives_stringFromCharCode(_65533);
                    buffer._contents = (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);
                t3 = A.Primitives_stringFromCharCode(bytes[m]);
                buffer._contents += t3;
              }
            else {
              t3 = A.String_String$fromCharCodes(bytes, i, markEnd);
              buffer._contents += t3;
            }
            if (markEnd === end)
              break $label0$0;
            i = i0;
          } else
            i = i0;
        }
      if (single && state > 32)
        if (t2) {
          t1 = A.Primitives_stringFromCharCode(_65533);
          buffer._contents += t1;
        } 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._BigIntImpl.prototype = {
    $negate(_) {
      var t2, t3, _this = this,
        t1 = _this._used;
      if (t1 === 0)
        return _this;
      t2 = !_this._isNegative;
      t3 = _this._digits;
      t1 = A._BigIntImpl__normalize(t1, t3);
      return new A._BigIntImpl(t1 === 0 ? false : t2, t3, t1);
    },
    _drShift$1(n) {
      var resultUsed, digits, resultDigits, t1, i, t2, t3, result, _this = this,
        used = _this._used;
      if (used === 0)
        return $.$get$_BigIntImpl_zero();
      resultUsed = used - n;
      if (resultUsed <= 0)
        return _this._isNegative ? $.$get$_BigIntImpl__minusOne() : $.$get$_BigIntImpl_zero();
      digits = _this._digits;
      resultDigits = new Uint16Array(resultUsed);
      for (t1 = digits.length, i = n; i < used; ++i) {
        t2 = i - n;
        if (!(i >= 0 && i < t1))
          return A.ioore(digits, i);
        t3 = digits[i];
        if (!(t2 < resultUsed))
          return A.ioore(resultDigits, t2);
        resultDigits[t2] = t3;
      }
      t2 = _this._isNegative;
      t3 = A._BigIntImpl__normalize(resultUsed, resultDigits);
      result = new A._BigIntImpl(t3 === 0 ? false : t2, resultDigits, t3);
      if (t2)
        for (i = 0; i < n; ++i) {
          if (!(i < t1))
            return A.ioore(digits, i);
          if (digits[i] !== 0)
            return result.$sub(0, $.$get$_BigIntImpl_one());
        }
      return result;
    },
    $shr(_, shiftAmount) {
      var t1, digitShift, bitShift, resultUsed, digits, resultDigits, t2, result, i, _this = this;
      if (shiftAmount < 0)
        throw A.wrapException(A.ArgumentError$("shift-amount must be posititve " + shiftAmount, null));
      t1 = _this._used;
      if (t1 === 0)
        return _this;
      digitShift = B.JSInt_methods._tdivFast$1(shiftAmount, 16);
      bitShift = B.JSInt_methods.$mod(shiftAmount, 16);
      if (bitShift === 0)
        return _this._drShift$1(digitShift);
      resultUsed = t1 - digitShift;
      if (resultUsed <= 0)
        return _this._isNegative ? $.$get$_BigIntImpl__minusOne() : $.$get$_BigIntImpl_zero();
      digits = _this._digits;
      resultDigits = new Uint16Array(resultUsed);
      A._BigIntImpl__rsh(digits, t1, shiftAmount, resultDigits);
      t1 = _this._isNegative;
      t2 = A._BigIntImpl__normalize(resultUsed, resultDigits);
      result = new A._BigIntImpl(t2 === 0 ? false : t1, resultDigits, t2);
      if (t1) {
        t1 = digits.length;
        if (!(digitShift >= 0 && digitShift < t1))
          return A.ioore(digits, digitShift);
        if ((digits[digitShift] & B.JSInt_methods.$shl(1, bitShift) - 1) >>> 0 !== 0)
          return result.$sub(0, $.$get$_BigIntImpl_one());
        for (i = 0; i < digitShift; ++i) {
          if (!(i < t1))
            return A.ioore(digits, i);
          if (digits[i] !== 0)
            return result.$sub(0, $.$get$_BigIntImpl_one());
        }
      }
      return result;
    },
    compareTo$1(_, other) {
      var t1, result;
      type$._BigIntImpl._as(other);
      t1 = this._isNegative;
      if (t1 === other._isNegative) {
        result = A._BigIntImpl__compareDigits(this._digits, this._used, other._digits, other._used);
        return t1 ? 0 - result : result;
      }
      return t1 ? -1 : 1;
    },
    _absAddSetSign$2(other, isNegative) {
      var resultUsed, resultDigits, t1, _this = this,
        used = _this._used,
        otherUsed = other._used;
      if (used < otherUsed)
        return other._absAddSetSign$2(_this, isNegative);
      if (used === 0)
        return $.$get$_BigIntImpl_zero();
      if (otherUsed === 0)
        return _this._isNegative === isNegative ? _this : _this.$negate(0);
      resultUsed = used + 1;
      resultDigits = new Uint16Array(resultUsed);
      A._BigIntImpl__absAdd(_this._digits, used, other._digits, otherUsed, resultDigits);
      t1 = A._BigIntImpl__normalize(resultUsed, resultDigits);
      return new A._BigIntImpl(t1 === 0 ? false : isNegative, resultDigits, t1);
    },
    _absSubSetSign$2(other, isNegative) {
      var otherUsed, resultDigits, t1, _this = this,
        used = _this._used;
      if (used === 0)
        return $.$get$_BigIntImpl_zero();
      otherUsed = other._used;
      if (otherUsed === 0)
        return _this._isNegative === isNegative ? _this : _this.$negate(0);
      resultDigits = new Uint16Array(used);
      A._BigIntImpl__absSub(_this._digits, used, other._digits, otherUsed, resultDigits);
      t1 = A._BigIntImpl__normalize(used, resultDigits);
      return new A._BigIntImpl(t1 === 0 ? false : isNegative, resultDigits, t1);
    },
    $add(_, other) {
      var t2, isNegative, _this = this,
        t1 = _this._used;
      if (t1 === 0)
        return other;
      t2 = other._used;
      if (t2 === 0)
        return _this;
      isNegative = _this._isNegative;
      if (isNegative === other._isNegative)
        return _this._absAddSetSign$2(other, isNegative);
      if (A._BigIntImpl__compareDigits(_this._digits, t1, other._digits, t2) >= 0)
        return _this._absSubSetSign$2(other, isNegative);
      return other._absSubSetSign$2(_this, !isNegative);
    },
    $sub(_, other) {
      var t2, isNegative, _this = this,
        t1 = _this._used;
      if (t1 === 0)
        return other.$negate(0);
      t2 = other._used;
      if (t2 === 0)
        return _this;
      isNegative = _this._isNegative;
      if (isNegative !== other._isNegative)
        return _this._absAddSetSign$2(other, isNegative);
      if (A._BigIntImpl__compareDigits(_this._digits, t1, other._digits, t2) >= 0)
        return _this._absSubSetSign$2(other, isNegative);
      return other._absSubSetSign$2(_this, !isNegative);
    },
    $mul(_, other) {
      var resultUsed, digits, otherDigits, resultDigits, t1, i, t2,
        used = this._used,
        otherUsed = other._used;
      if (used === 0 || otherUsed === 0)
        return $.$get$_BigIntImpl_zero();
      resultUsed = used + otherUsed;
      digits = this._digits;
      otherDigits = other._digits;
      resultDigits = new Uint16Array(resultUsed);
      for (t1 = otherDigits.length, i = 0; i < otherUsed;) {
        if (!(i < t1))
          return A.ioore(otherDigits, i);
        A._BigIntImpl__mulAdd(otherDigits[i], digits, 0, resultDigits, i, used);
        ++i;
      }
      t1 = this._isNegative !== other._isNegative;
      t2 = A._BigIntImpl__normalize(resultUsed, resultDigits);
      return new A._BigIntImpl(t2 === 0 ? false : t1, resultDigits, t2);
    },
    _div$1(other) {
      var lastQuo_used, quo_digits, t1, quo;
      if (this._used < other._used)
        return $.$get$_BigIntImpl_zero();
      this._divRem$1(other);
      lastQuo_used = $._BigIntImpl____lastQuoRemUsed._readField$0() - $._BigIntImpl____lastRemUsed._readField$0();
      quo_digits = A._BigIntImpl__cloneDigits($._BigIntImpl____lastQuoRemDigits._readField$0(), $._BigIntImpl____lastRemUsed._readField$0(), $._BigIntImpl____lastQuoRemUsed._readField$0(), lastQuo_used);
      t1 = A._BigIntImpl__normalize(lastQuo_used, quo_digits);
      quo = new A._BigIntImpl(false, quo_digits, t1);
      return this._isNegative !== other._isNegative && t1 > 0 ? quo.$negate(0) : quo;
    },
    _rem$1(other) {
      var remDigits, t1, rem, _this = this;
      if (_this._used < other._used)
        return _this;
      _this._divRem$1(other);
      remDigits = A._BigIntImpl__cloneDigits($._BigIntImpl____lastQuoRemDigits._readField$0(), 0, $._BigIntImpl____lastRemUsed._readField$0(), $._BigIntImpl____lastRemUsed._readField$0());
      t1 = A._BigIntImpl__normalize($._BigIntImpl____lastRemUsed._readField$0(), remDigits);
      rem = new A._BigIntImpl(false, remDigits, t1);
      if ($._BigIntImpl____lastRem_nsh._readField$0() > 0)
        rem = rem.$shr(0, $._BigIntImpl____lastRem_nsh._readField$0());
      return _this._isNegative && rem._used > 0 ? rem.$negate(0) : rem;
    },
    _divRem$1(other) {
      var yDigits, yUsed, t1, nsh, yDigits0, yUsed0, resultDigits, resultUsed0, topDigitDivisor, j, tmpDigits, tmpUsed, resultUsed1, nyDigits, i, estimatedQuotientDigit, _this = this,
        resultUsed = _this._used;
      if (resultUsed === $._BigIntImpl__lastDividendUsed && other._used === $._BigIntImpl__lastDivisorUsed && _this._digits === $._BigIntImpl__lastDividendDigits && other._digits === $._BigIntImpl__lastDivisorDigits)
        return;
      yDigits = other._digits;
      yUsed = other._used;
      t1 = yUsed - 1;
      if (!(t1 >= 0 && t1 < yDigits.length))
        return A.ioore(yDigits, t1);
      nsh = 16 - B.JSInt_methods.get$bitLength(yDigits[t1]);
      if (nsh > 0) {
        yDigits0 = new Uint16Array(yUsed + 5);
        yUsed0 = A._BigIntImpl__lShiftDigits(yDigits, yUsed, nsh, yDigits0);
        resultDigits = new Uint16Array(resultUsed + 5);
        resultUsed0 = A._BigIntImpl__lShiftDigits(_this._digits, resultUsed, nsh, resultDigits);
      } else {
        resultDigits = A._BigIntImpl__cloneDigits(_this._digits, 0, resultUsed, resultUsed + 2);
        yUsed0 = yUsed;
        yDigits0 = yDigits;
        resultUsed0 = resultUsed;
      }
      t1 = yUsed0 - 1;
      if (!(t1 >= 0 && t1 < yDigits0.length))
        return A.ioore(yDigits0, t1);
      topDigitDivisor = yDigits0[t1];
      j = resultUsed0 - yUsed0;
      tmpDigits = new Uint16Array(resultUsed0);
      tmpUsed = A._BigIntImpl__dlShiftDigits(yDigits0, yUsed0, j, tmpDigits);
      resultUsed1 = resultUsed0 + 1;
      t1 = resultDigits.$flags | 0;
      if (A._BigIntImpl__compareDigits(resultDigits, resultUsed0, tmpDigits, tmpUsed) >= 0) {
        t1 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(resultUsed0 >= 0 && resultUsed0 < resultDigits.length))
          return A.ioore(resultDigits, resultUsed0);
        resultDigits[resultUsed0] = 1;
        A._BigIntImpl__absSub(resultDigits, resultUsed1, tmpDigits, tmpUsed, resultDigits);
      } else {
        t1 & 2 && A.throwUnsupportedOperation(resultDigits);
        if (!(resultUsed0 >= 0 && resultUsed0 < resultDigits.length))
          return A.ioore(resultDigits, resultUsed0);
        resultDigits[resultUsed0] = 0;
      }
      t1 = yUsed0 + 2;
      nyDigits = new Uint16Array(t1);
      if (!(yUsed0 >= 0 && yUsed0 < t1))
        return A.ioore(nyDigits, yUsed0);
      nyDigits[yUsed0] = 1;
      A._BigIntImpl__absSub(nyDigits, yUsed0 + 1, yDigits0, yUsed0, nyDigits);
      i = resultUsed0 - 1;
      for (t1 = resultDigits.length; j > 0;) {
        estimatedQuotientDigit = A._BigIntImpl__estimateQuotientDigit(topDigitDivisor, resultDigits, i);
        --j;
        A._BigIntImpl__mulAdd(estimatedQuotientDigit, nyDigits, 0, resultDigits, j, yUsed0);
        if (!(i >= 0 && i < t1))
          return A.ioore(resultDigits, i);
        if (resultDigits[i] < estimatedQuotientDigit) {
          tmpUsed = A._BigIntImpl__dlShiftDigits(nyDigits, yUsed0, j, tmpDigits);
          A._BigIntImpl__absSub(resultDigits, resultUsed1, tmpDigits, tmpUsed, resultDigits);
          for (; --estimatedQuotientDigit, resultDigits[i] < estimatedQuotientDigit;)
            A._BigIntImpl__absSub(resultDigits, resultUsed1, tmpDigits, tmpUsed, resultDigits);
        }
        --i;
      }
      $._BigIntImpl__lastDividendDigits = _this._digits;
      $._BigIntImpl__lastDividendUsed = resultUsed;
      $._BigIntImpl__lastDivisorDigits = yDigits;
      $._BigIntImpl__lastDivisorUsed = yUsed;
      $._BigIntImpl____lastQuoRemDigits.__late_helper$_value = resultDigits;
      $._BigIntImpl____lastQuoRemUsed.__late_helper$_value = resultUsed1;
      $._BigIntImpl____lastRemUsed.__late_helper$_value = yUsed0;
      $._BigIntImpl____lastRem_nsh.__late_helper$_value = nsh;
    },
    get$hashCode(_) {
      var hash, t2, t3, i,
        combine = new A._BigIntImpl_hashCode_combine(),
        t1 = this._used;
      if (t1 === 0)
        return 6707;
      hash = this._isNegative ? 83585 : 429689;
      for (t2 = this._digits, t3 = t2.length, i = 0; i < t1; ++i) {
        if (!(i < t3))
          return A.ioore(t2, i);
        hash = combine.call$2(hash, t2[i]);
      }
      return new A._BigIntImpl_hashCode_finish().call$1(hash);
    },
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A._BigIntImpl && this.compareTo$1(0, other) === 0;
    },
    toString$0(_) {
      var decimalDigitChunks, rest, t2, digits4, t3, _this = this,
        t1 = _this._used;
      if (t1 === 0)
        return "0";
      if (t1 === 1) {
        if (_this._isNegative) {
          t1 = _this._digits;
          if (0 >= t1.length)
            return A.ioore(t1, 0);
          return B.JSInt_methods.toString$0(-t1[0]);
        }
        t1 = _this._digits;
        if (0 >= t1.length)
          return A.ioore(t1, 0);
        return B.JSInt_methods.toString$0(t1[0]);
      }
      decimalDigitChunks = A._setArrayType([], type$.JSArray_String);
      t1 = _this._isNegative;
      rest = t1 ? _this.$negate(0) : _this;
      for (; rest._used > 1;) {
        t2 = $.$get$_BigIntImpl__bigInt10000();
        if (t2._used === 0)
          A.throwExpression(B.C_IntegerDivisionByZeroException);
        digits4 = rest._rem$1(t2).toString$0(0);
        B.JSArray_methods.add$1(decimalDigitChunks, digits4);
        t3 = digits4.length;
        if (t3 === 1)
          B.JSArray_methods.add$1(decimalDigitChunks, "000");
        if (t3 === 2)
          B.JSArray_methods.add$1(decimalDigitChunks, "00");
        if (t3 === 3)
          B.JSArray_methods.add$1(decimalDigitChunks, "0");
        rest = rest._div$1(t2);
      }
      t2 = rest._digits;
      if (0 >= t2.length)
        return A.ioore(t2, 0);
      B.JSArray_methods.add$1(decimalDigitChunks, B.JSInt_methods.toString$0(t2[0]));
      if (t1)
        B.JSArray_methods.add$1(decimalDigitChunks, "-");
      return new A.ReversedListIterable(decimalDigitChunks, type$.ReversedListIterable_String).join$0(0);
    },
    $isBigInt: 1,
    $isComparable: 1
  };
  A._BigIntImpl_hashCode_combine.prototype = {
    call$2(hash, value) {
      hash = hash + value & 536870911;
      hash = hash + ((hash & 524287) << 10) & 536870911;
      return hash ^ hash >>> 6;
    },
    $signature: 26
  };
  A._BigIntImpl_hashCode_finish.prototype = {
    call$1(hash) {
      hash = hash + ((hash & 67108863) << 3) & 536870911;
      hash ^= hash >>> 11;
      return hash + ((hash & 16383) << 15) & 536870911;
    },
    $signature: 27
  };
  A.DateTime.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A.DateTime && this._value === other._value && this._microsecond === other._microsecond && this.isUtc === other.isUtc;
    },
    get$hashCode(_) {
      return A.Object_hash(this._value, this._microsecond, B.C_SentinelValue, B.C_SentinelValue);
    },
    compareTo$1(_, other) {
      var r;
      type$.DateTime._as(other);
      r = B.JSInt_methods.compareTo$1(this._value, other._value);
      if (r !== 0)
        return r;
      return B.JSInt_methods.compareTo$1(this._microsecond, other._microsecond);
    },
    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 = _this._microsecond,
        us = t1 === 0 ? "" : A.DateTime__threeDigits(t1);
      t1 = y + "-" + m;
      if (_this.isUtc)
        return t1 + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms + us + "Z";
      else
        return t1 + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms + us;
    },
    $isComparable: 1
  };
  A.Duration.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A.Duration && this._duration === other._duration;
    },
    get$hashCode(_) {
      return B.JSInt_methods.get$hashCode(this._duration);
    },
    compareTo$1(_, other) {
      return B.JSInt_methods.compareTo$1(this._duration, type$.Duration._as(other)._duration);
    },
    toString$0(_) {
      var sign, minutes, minutesPadding, seconds, secondsPadding,
        microseconds = this._duration,
        hours = B.JSInt_methods._tdivFast$1(microseconds, 3600000000),
        microseconds0 = microseconds % 3600000000;
      if (microseconds < 0) {
        hours = 0 - hours;
        microseconds = 0 - microseconds0;
        sign = "-";
      } else {
        microseconds = microseconds0;
        sign = "";
      }
      minutes = B.JSInt_methods._tdivFast$1(microseconds, 60000000);
      microseconds %= 60000000;
      minutesPadding = minutes < 10 ? "0" : "";
      seconds = B.JSInt_methods._tdivFast$1(microseconds, 1000000);
      secondsPadding = seconds < 10 ? "0" : "";
      return sign + hours + ":" + minutesPadding + minutes + ":" + secondsPadding + seconds + "." + B.JSString_methods.padLeft$2(B.JSInt_methods.toString$0(microseconds % 1000000), 6, "0");
    },
    $isComparable: 1
  };
  A.Error.prototype = {
    get$stackTrace() {
      return A.Primitives_extractStackTrace(this);
    }
  };
  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.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.get$invalidValue());
    },
    get$invalidValue() {
      return this.invalidValue;
    }
  };
  A.RangeError.prototype = {
    get$invalidValue() {
      return A._asNumQ(this.invalidValue);
    },
    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$invalidValue() {
      return A._asInt(this.invalidValue);
    },
    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.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._Exception.prototype = {
    toString$0(_) {
      return "Exception: " + this.message;
    },
    $isException: 1
  };
  A.FormatException.prototype = {
    toString$0(_) {
      var t1, lineEnd, lineNum, lineStart, previousCharWasCR, i, char, prefix, postfix, end, start,
        message = this.message,
        report = "" !== message ? "FormatException: " + message : "FormatException",
        offset = this.offset,
        source = this.source;
      if (typeof source == "string") {
        if (offset != null)
          t1 = offset < 0 || offset > source.length;
        else
          t1 = false;
        if (t1)
          offset = null;
        if (offset == null) {
          if (source.length > 78)
            source = B.JSString_methods.substring$2(source, 0, 75) + "...";
          return report + "\n" + source;
        }
        for (lineEnd = source.length, lineNum = 1, lineStart = 0, previousCharWasCR = false, i = 0; i < offset; ++i) {
          if (!(i < lineEnd))
            return A.ioore(source, i);
          char = source.charCodeAt(i);
          if (char === 10) {
            if (lineStart !== i || !previousCharWasCR)
              ++lineNum;
            lineStart = i + 1;
            previousCharWasCR = false;
          } else if (char === 13) {
            ++lineNum;
            lineStart = i + 1;
            previousCharWasCR = true;
          }
        }
        report = lineNum > 1 ? report + (" (at line " + lineNum + ", character " + (offset - lineStart + 1) + ")\n") : report + (" (at character " + (offset + 1) + ")\n");
        for (i = offset; i < lineEnd; ++i) {
          if (!(i >= 0))
            return A.ioore(source, i);
          char = source.charCodeAt(i);
          if (char === 10 || char === 13) {
            lineEnd = i;
            break;
          }
        }
        prefix = "";
        if (lineEnd - lineStart > 78) {
          postfix = "...";
          if (offset - lineStart < 75) {
            end = lineStart + 75;
            start = lineStart;
          } else {
            if (lineEnd - offset < 75) {
              start = lineEnd - 75;
              end = lineEnd;
              postfix = "";
            } else {
              start = offset - 36;
              end = offset + 36;
            }
            prefix = "...";
          }
        } else {
          end = lineEnd;
          start = lineStart;
          postfix = "";
        }
        return report + prefix + B.JSString_methods.substring$2(source, start, end) + postfix + "\n" + B.JSString_methods.$mul(" ", offset - start + prefix.length) + "^\n";
      } else
        return offset != null ? report + (" (at offset " + A.S(offset) + ")") : report;
    },
    $isException: 1,
    get$message() {
      return this.message;
    },
    get$source() {
      return this.source;
    },
    get$offset() {
      return this.offset;
    }
  };
  A.IntegerDivisionByZeroException.prototype = {
    get$stackTrace() {
      return null;
    },
    toString$0(_) {
      return "IntegerDivisionByZeroException";
    },
    $isError: 1,
    $isException: 1
  };
  A.Iterable.prototype = {
    cast$1$0(_, $R) {
      return A.CastIterable_CastIterable(this, A.instanceType(this)._eval$1("Iterable.E"), $R);
    },
    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);
    },
    map$1(_, toElement) {
      return this.map$1$1(0, toElement, type$.dynamic);
    },
    contains$1(_, element) {
      var t1;
      for (t1 = this.get$iterator(this); t1.moveNext$0();)
        if (J.$eq$(t1.get$current(), element))
          return true;
      return false;
    },
    toList$1$growable(_, growable) {
      var t1 = A.instanceType(this)._eval$1("Iterable.E");
      if (growable)
        t1 = A.List_List$_of(this, t1);
      else {
        t1 = A.List_List$_of(this, t1);
        t1.$flags = 1;
        t1 = t1;
      }
      return t1;
    },
    toList$0(_) {
      return this.toList$1$growable(0, 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$isNotEmpty(_) {
      return !this.get$isEmpty(this);
    },
    take$1(_, count) {
      return A.TakeIterable_TakeIterable(this, count, A.instanceType(this)._eval$1("Iterable.E"));
    },
    skip$1(_, count) {
      return A.SkipIterable_SkipIterable(this, count, A.instanceType(this)._eval$1("Iterable.E"));
    },
    get$first(_) {
      var it = this.get$iterator(this);
      if (!it.moveNext$0())
        throw A.wrapException(A.IterableElementError_noElement());
      return it.get$current();
    },
    elementAt$1(_, index) {
      var iterator, skipCount;
      A.RangeError_checkNotNegative(index, "index");
      iterator = this.get$iterator(this);
      for (skipCount = index; iterator.moveNext$0();) {
        if (skipCount === 0)
          return iterator.get$current();
        --skipCount;
      }
      throw A.wrapException(A.IndexError$withLength(index, index - skipCount, this, null, "index"));
    },
    toString$0(_) {
      return A.Iterable_iterableToShortString(this, "(", ")");
    }
  };
  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, 0);
    },
    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) + "'";
    },
    get$runtimeType(_) {
      return A.getRuntimeTypeOfDartObject(this);
    },
    toString() {
      return this.toString$0(this);
    }
  };
  A._StringStackTrace.prototype = {
    toString$0(_) {
      return this._stackTrace;
    },
    $isStackTrace: 1
  };
  A.StringBuffer.prototype = {
    get$length(_) {
      return this._contents.length;
    },
    write$1(obj) {
      var t1 = A.S(obj);
      this._contents += t1;
    },
    writeCharCode$1(charCode) {
      var t1 = A.Primitives_stringFromCharCode(charCode);
      this._contents += t1;
    },
    toString$0(_) {
      var t1 = this._contents;
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    },
    $isStringSink: 1
  };
  A.Uri__parseIPv4Address_error.prototype = {
    call$2(msg, position) {
      throw A.wrapException(A.FormatException$("Illegal IPv4 address, " + msg, this.host, position));
    },
    $signature: 61
  };
  A.Uri_parseIPv6Address_error.prototype = {
    call$2(msg, position) {
      throw A.wrapException(A.FormatException$("Illegal IPv6 address, " + msg, this.host, position));
    },
    $signature: 56
  };
  A.Uri_parseIPv6Address_parseHex.prototype = {
    call$2(start, end) {
      var value;
      if (end - start > 4)
        this.error.call$2("an IPv6 part can only contain a maximum of 4 hex digits", start);
      value = A.int_parse(B.JSString_methods.substring$2(this.host, start, end), 16);
      if (value < 0 || value > 65535)
        this.error.call$2("each part must be in the range of `0x0..0xFFFF`", start);
      return value;
    },
    $signature: 26
  };
  A._Uri.prototype = {
    get$_text() {
      var t1, t2, t3, t4, _this = this,
        value = _this.___Uri__text_FI;
      if (value === $) {
        t1 = _this.scheme;
        t2 = t1.length !== 0 ? t1 + ":" : "";
        t3 = _this._host;
        t4 = t3 == null;
        if (!t4 || t1 === "file") {
          t1 = t2 + "//";
          t2 = _this._userInfo;
          if (t2.length !== 0)
            t1 = t1 + t2 + "@";
          if (!t4)
            t1 += t3;
          t2 = _this._port;
          if (t2 != null)
            t1 = t1 + ":" + A.S(t2);
        } else
          t1 = t2;
        t1 += _this.path;
        t2 = _this._query;
        if (t2 != null)
          t1 = t1 + "?" + t2;
        t2 = _this._fragment;
        if (t2 != null)
          t1 = t1 + "#" + t2;
        value !== $ && A.throwLateFieldADI("_text");
        value = _this.___Uri__text_FI = t1.charCodeAt(0) == 0 ? t1 : t1;
      }
      return value;
    },
    get$pathSegments() {
      var pathToSplit, t1, result, _this = this,
        value = _this.___Uri_pathSegments_FI;
      if (value === $) {
        pathToSplit = _this.path;
        t1 = pathToSplit.length;
        if (t1 !== 0) {
          if (0 >= t1)
            return A.ioore(pathToSplit, 0);
          t1 = pathToSplit.charCodeAt(0) === 47;
        } else
          t1 = false;
        if (t1)
          pathToSplit = B.JSString_methods.substring$1(pathToSplit, 1);
        result = pathToSplit.length === 0 ? B.List_empty : A.List_List$unmodifiable(new A.MappedListIterable(A._setArrayType(pathToSplit.split("/"), type$.JSArray_String), type$.dynamic_Function_String._as(A.core_Uri_decodeComponent$closure()), type$.MappedListIterable_String_dynamic), type$.String);
        _this.___Uri_pathSegments_FI !== $ && A.throwLateFieldADI("pathSegments");
        value = _this.___Uri_pathSegments_FI = result;
      }
      return value;
    },
    get$hashCode(_) {
      var result, _this = this,
        value = _this.___Uri_hashCode_FI;
      if (value === $) {
        result = B.JSString_methods.get$hashCode(_this.get$_text());
        _this.___Uri_hashCode_FI !== $ && A.throwLateFieldADI("hashCode");
        _this.___Uri_hashCode_FI = result;
        value = result;
      }
      return value;
    },
    get$userInfo() {
      return this._userInfo;
    },
    get$host() {
      var host = this._host;
      if (host == null)
        return "";
      if (B.JSString_methods.startsWith$1(host, "[") && !B.JSString_methods.startsWith$2(host, "v", 1))
        return B.JSString_methods.substring$2(host, 1, host.length - 1);
      return host;
    },
    get$port() {
      var t1 = this._port;
      return t1 == null ? A._Uri__defaultPort(this.scheme) : t1;
    },
    get$query() {
      var t1 = this._query;
      return t1 == null ? "" : t1;
    },
    get$fragment() {
      var t1 = this._fragment;
      return t1 == null ? "" : t1;
    },
    isScheme$1(scheme) {
      var thisScheme = this.scheme;
      if (scheme.length !== thisScheme.length)
        return false;
      return A._caseInsensitiveCompareStart(scheme, thisScheme, 0) >= 0;
    },
    replace$2$path$scheme(path, scheme) {
      var schemeChanged, isFile, userInfo, port, host, hasAuthority, t1, currentPath, _this = this,
        scheme0 = _this.scheme;
      if (scheme != null) {
        scheme = A._Uri__makeScheme(scheme, 0, scheme.length);
        schemeChanged = scheme !== scheme0;
      } else {
        scheme = scheme0;
        schemeChanged = false;
      }
      isFile = scheme === "file";
      userInfo = _this._userInfo;
      port = _this._port;
      if (schemeChanged)
        port = A._Uri__makePort(port, scheme);
      host = _this._host;
      if (!(host != null))
        host = userInfo.length !== 0 || port != null || isFile ? "" : null;
      hasAuthority = host != null;
      if (path != null) {
        t1 = path.length;
        path = A._Uri__makePath(path, 0, t1, null, scheme, hasAuthority);
      } else {
        currentPath = _this.path;
        if (!isFile)
          t1 = hasAuthority && currentPath.length !== 0;
        else
          t1 = true;
        if (t1 && !B.JSString_methods.startsWith$1(currentPath, "/"))
          currentPath = "/" + currentPath;
        path = currentPath;
      }
      return A._Uri$_internal(scheme, userInfo, host, port, path, _this._query, _this._fragment);
    },
    replace$1$scheme(scheme) {
      return this.replace$2$path$scheme(null, scheme);
    },
    replace$1$path(path) {
      return this.replace$2$path$scheme(path, null);
    },
    _mergePaths$2(base, reference) {
      var backCount, refStart, baseEnd, t1, newEnd, delta, t2, t3, t4;
      for (backCount = 0, refStart = 0; B.JSString_methods.startsWith$2(reference, "../", refStart);) {
        refStart += 3;
        ++backCount;
      }
      baseEnd = B.JSString_methods.lastIndexOf$1(base, "/");
      t1 = base.length;
      while (true) {
        if (!(baseEnd > 0 && backCount > 0))
          break;
        newEnd = B.JSString_methods.lastIndexOf$2(base, "/", baseEnd - 1);
        if (newEnd < 0)
          break;
        delta = baseEnd - newEnd;
        t2 = delta !== 2;
        t3 = false;
        if (!t2 || delta === 3) {
          t4 = newEnd + 1;
          if (!(t4 < t1))
            return A.ioore(base, t4);
          if (base.charCodeAt(t4) === 46)
            if (t2) {
              t2 = newEnd + 2;
              if (!(t2 < t1))
                return A.ioore(base, t2);
              t2 = base.charCodeAt(t2) === 46;
            } else
              t2 = true;
          else
            t2 = t3;
        } else
          t2 = t3;
        if (t2)
          break;
        --backCount;
        baseEnd = newEnd;
      }
      return B.JSString_methods.replaceRange$3(base, baseEnd + 1, null, B.JSString_methods.substring$1(reference, refStart - 3 * backCount));
    },
    resolve$1(reference) {
      return this.resolveUri$1(A.Uri_parse(reference));
    },
    resolveUri$1(reference) {
      var targetScheme, t1, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, packageNameEnd, packageName, mergedPath, fragment, _this = this;
      if (reference.get$scheme().length !== 0)
        return reference;
      else {
        targetScheme = _this.scheme;
        if (reference.get$hasAuthority()) {
          t1 = reference.replace$1$scheme(targetScheme);
          return t1;
        } else {
          targetUserInfo = _this._userInfo;
          targetHost = _this._host;
          targetPort = _this._port;
          targetPath = _this.path;
          if (reference.get$hasEmptyPath())
            targetQuery = reference.get$hasQuery() ? reference.get$query() : _this._query;
          else {
            packageNameEnd = A._Uri__packageNameEnd(_this, targetPath);
            if (packageNameEnd > 0) {
              packageName = B.JSString_methods.substring$2(targetPath, 0, packageNameEnd);
              targetPath = reference.get$hasAbsolutePath() ? packageName + A._Uri__removeDotSegments(reference.get$path()) : packageName + A._Uri__removeDotSegments(_this._mergePaths$2(B.JSString_methods.substring$1(targetPath, packageName.length), reference.get$path()));
            } else if (reference.get$hasAbsolutePath())
              targetPath = A._Uri__removeDotSegments(reference.get$path());
            else if (targetPath.length === 0)
              if (targetHost == null)
                targetPath = targetScheme.length === 0 ? reference.get$path() : A._Uri__removeDotSegments(reference.get$path());
              else
                targetPath = A._Uri__removeDotSegments("/" + reference.get$path());
            else {
              mergedPath = _this._mergePaths$2(targetPath, reference.get$path());
              t1 = targetScheme.length === 0;
              if (!t1 || targetHost != null || B.JSString_methods.startsWith$1(targetPath, "/"))
                targetPath = A._Uri__removeDotSegments(mergedPath);
              else
                targetPath = A._Uri__normalizeRelativePath(mergedPath, !t1 || targetHost != null);
            }
            targetQuery = reference.get$hasQuery() ? reference.get$query() : null;
          }
        }
      }
      fragment = reference.get$hasFragment() ? reference.get$fragment() : null;
      return A._Uri$_internal(targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, fragment);
    },
    get$hasAuthority() {
      return this._host != null;
    },
    get$hasQuery() {
      return this._query != null;
    },
    get$hasFragment() {
      return this._fragment != null;
    },
    get$hasEmptyPath() {
      return this.path.length === 0;
    },
    get$hasAbsolutePath() {
      return B.JSString_methods.startsWith$1(this.path, "/");
    },
    toFilePath$0() {
      var pathSegments, _this = this,
        t1 = _this.scheme;
      if (t1 !== "" && t1 !== "file")
        throw A.wrapException(A.UnsupportedError$("Cannot extract a file path from a " + t1 + " URI"));
      t1 = _this._query;
      if ((t1 == null ? "" : t1) !== "")
        throw A.wrapException(A.UnsupportedError$(string$.Cannotfq));
      t1 = _this._fragment;
      if ((t1 == null ? "" : t1) !== "")
        throw A.wrapException(A.UnsupportedError$(string$.Cannotff));
      if (_this._host != null && _this.get$host() !== "")
        A.throwExpression(A.UnsupportedError$(string$.Cannotn));
      pathSegments = _this.get$pathSegments();
      A._Uri__checkNonWindowsPathReservedCharacters(pathSegments, false);
      t1 = A.StringBuffer__writeAll(B.JSString_methods.startsWith$1(_this.path, "/") ? "/" : "", pathSegments, "/");
      t1 = t1.charCodeAt(0) == 0 ? t1 : t1;
      return t1;
    },
    toString$0(_) {
      return this.get$_text();
    },
    $eq(_, other) {
      var t1, t2, t3, _this = this;
      if (other == null)
        return false;
      if (_this === other)
        return true;
      t1 = false;
      if (type$.Uri._is(other))
        if (_this.scheme === other.get$scheme())
          if (_this._host != null === other.get$hasAuthority())
            if (_this._userInfo === other.get$userInfo())
              if (_this.get$host() === other.get$host())
                if (_this.get$port() === other.get$port())
                  if (_this.path === other.get$path()) {
                    t2 = _this._query;
                    t3 = t2 == null;
                    if (!t3 === other.get$hasQuery()) {
                      if (t3)
                        t2 = "";
                      if (t2 === other.get$query()) {
                        t2 = _this._fragment;
                        t3 = t2 == null;
                        if (!t3 === other.get$hasFragment()) {
                          t1 = t3 ? "" : t2;
                          t1 = t1 === other.get$fragment();
                        }
                      }
                    }
                  }
      return t1;
    },
    $isUri: 1,
    get$scheme() {
      return this.scheme;
    },
    get$path() {
      return this.path;
    }
  };
  A._Uri__makePath_closure.prototype = {
    call$1(s) {
      return A._Uri__uriEncode(64, A._asString(s), B.C_Utf8Codec, false);
    },
    $signature: 13
  };
  A.UriData.prototype = {
    get$uri() {
      var t2, queryIndex, end, query, _this = this, _null = null,
        t1 = _this._uriCache;
      if (t1 == null) {
        t1 = _this._separatorIndices;
        if (0 >= t1.length)
          return A.ioore(t1, 0);
        t2 = _this._text;
        t1 = t1[0] + 1;
        queryIndex = B.JSString_methods.indexOf$2(t2, "?", t1);
        end = t2.length;
        if (queryIndex >= 0) {
          query = A._Uri__normalizeOrSubstring(t2, queryIndex + 1, end, 256, false, false);
          end = queryIndex;
        } else
          query = _null;
        t1 = _this._uriCache = new A._DataUri("data", "", _null, _null, A._Uri__normalizeOrSubstring(t2, t1, end, 128, false, false), query, _null);
      }
      return t1;
    },
    toString$0(_) {
      var t2,
        t1 = this._separatorIndices;
      if (0 >= t1.length)
        return A.ioore(t1, 0);
      t2 = this._text;
      return t1[0] === -1 ? "data:" + t2 : t2;
    }
  };
  A._SimpleUri.prototype = {
    get$hasAuthority() {
      return this._hostStart > 0;
    },
    get$hasPort() {
      return this._hostStart > 0 && this._portStart + 1 < this._pathStart;
    },
    get$hasQuery() {
      return this._queryStart < this._fragmentStart;
    },
    get$hasFragment() {
      return this._fragmentStart < this._uri.length;
    },
    get$hasAbsolutePath() {
      return B.JSString_methods.startsWith$2(this._uri, "/", this._pathStart);
    },
    get$hasEmptyPath() {
      return this._pathStart === this._queryStart;
    },
    isScheme$1(scheme) {
      var t1 = scheme.length;
      if (t1 === 0)
        return this._schemeEnd < 0;
      if (t1 !== this._schemeEnd)
        return false;
      return A._caseInsensitiveCompareStart(scheme, this._uri, 0) >= 0;
    },
    get$scheme() {
      var t1 = this._schemeCache;
      return t1 == null ? this._schemeCache = this._computeScheme$0() : t1;
    },
    _computeScheme$0() {
      var t2, _this = this,
        t1 = _this._schemeEnd;
      if (t1 <= 0)
        return "";
      t2 = t1 === 4;
      if (t2 && B.JSString_methods.startsWith$1(_this._uri, "http"))
        return "http";
      if (t1 === 5 && B.JSString_methods.startsWith$1(_this._uri, "https"))
        return "https";
      if (t2 && B.JSString_methods.startsWith$1(_this._uri, "file"))
        return "file";
      if (t1 === 7 && B.JSString_methods.startsWith$1(_this._uri, "package"))
        return "package";
      return B.JSString_methods.substring$2(_this._uri, 0, t1);
    },
    get$userInfo() {
      var t1 = this._hostStart,
        t2 = this._schemeEnd + 3;
      return t1 > t2 ? B.JSString_methods.substring$2(this._uri, t2, t1 - 1) : "";
    },
    get$host() {
      var t1 = this._hostStart;
      return t1 > 0 ? B.JSString_methods.substring$2(this._uri, t1, this._portStart) : "";
    },
    get$port() {
      var t1, _this = this;
      if (_this.get$hasPort())
        return A.int_parse(B.JSString_methods.substring$2(_this._uri, _this._portStart + 1, _this._pathStart), null);
      t1 = _this._schemeEnd;
      if (t1 === 4 && B.JSString_methods.startsWith$1(_this._uri, "http"))
        return 80;
      if (t1 === 5 && B.JSString_methods.startsWith$1(_this._uri, "https"))
        return 443;
      return 0;
    },
    get$path() {
      return B.JSString_methods.substring$2(this._uri, this._pathStart, this._queryStart);
    },
    get$query() {
      var t1 = this._queryStart,
        t2 = this._fragmentStart;
      return t1 < t2 ? B.JSString_methods.substring$2(this._uri, t1 + 1, t2) : "";
    },
    get$fragment() {
      var t1 = this._fragmentStart,
        t2 = this._uri;
      return t1 < t2.length ? B.JSString_methods.substring$1(t2, t1 + 1) : "";
    },
    _isPort$1(port) {
      var portDigitStart = this._portStart + 1;
      return portDigitStart + port.length === this._pathStart && B.JSString_methods.startsWith$2(this._uri, port, portDigitStart);
    },
    removeFragment$0() {
      var _this = this,
        t1 = _this._fragmentStart,
        t2 = _this._uri;
      if (t1 >= t2.length)
        return _this;
      return new A._SimpleUri(B.JSString_methods.substring$2(t2, 0, t1), _this._schemeEnd, _this._hostStart, _this._portStart, _this._pathStart, _this._queryStart, t1, _this._schemeCache);
    },
    replace$2$path$scheme(path, scheme) {
      var schemeChanged, isFile, t1, userInfo, port, host, hasAuthority, t2, query, fragment, _this = this, _null = null;
      if (scheme != null) {
        scheme = A._Uri__makeScheme(scheme, 0, scheme.length);
        schemeChanged = !(_this._schemeEnd === scheme.length && B.JSString_methods.startsWith$1(_this._uri, scheme));
      } else {
        scheme = _this.get$scheme();
        schemeChanged = false;
      }
      isFile = scheme === "file";
      t1 = _this._hostStart;
      userInfo = t1 > 0 ? B.JSString_methods.substring$2(_this._uri, _this._schemeEnd + 3, t1) : "";
      port = _this.get$hasPort() ? _this.get$port() : _null;
      if (schemeChanged)
        port = A._Uri__makePort(port, scheme);
      t1 = _this._hostStart;
      if (t1 > 0)
        host = B.JSString_methods.substring$2(_this._uri, t1, _this._portStart);
      else
        host = userInfo.length !== 0 || port != null || isFile ? "" : _null;
      hasAuthority = host != null;
      if (path != null) {
        t1 = path.length;
        path = A._Uri__makePath(path, 0, t1, _null, scheme, hasAuthority);
      } else {
        path = B.JSString_methods.substring$2(_this._uri, _this._pathStart, _this._queryStart);
        if (!isFile)
          t1 = hasAuthority && path.length !== 0;
        else
          t1 = true;
        if (t1 && !B.JSString_methods.startsWith$1(path, "/"))
          path = "/" + path;
      }
      t1 = _this._queryStart;
      t2 = _this._fragmentStart;
      query = t1 < t2 ? B.JSString_methods.substring$2(_this._uri, t1 + 1, t2) : _null;
      t1 = _this._fragmentStart;
      t2 = _this._uri;
      fragment = t1 < t2.length ? B.JSString_methods.substring$1(t2, t1 + 1) : _null;
      return A._Uri$_internal(scheme, userInfo, host, port, path, query, fragment);
    },
    replace$1$scheme(scheme) {
      return this.replace$2$path$scheme(null, scheme);
    },
    replace$1$path(path) {
      return this.replace$2$path$scheme(path, null);
    },
    resolve$1(reference) {
      return this.resolveUri$1(A.Uri_parse(reference));
    },
    resolveUri$1(reference) {
      if (reference instanceof A._SimpleUri)
        return this._simpleMerge$2(this, reference);
      return this._toNonSimple$0().resolveUri$1(reference);
    },
    _simpleMerge$2(base, ref) {
      var t2, t3, t4, isSimple, delta, refStart, basePathStart, packageNameEnd, basePathStart0, baseStart, baseEnd, baseUri, baseStart0, backCount, refStart0, insert,
        t1 = ref._schemeEnd;
      if (t1 > 0)
        return ref;
      t2 = ref._hostStart;
      if (t2 > 0) {
        t3 = base._schemeEnd;
        if (t3 <= 0)
          return ref;
        t4 = t3 === 4;
        if (t4 && B.JSString_methods.startsWith$1(base._uri, "file"))
          isSimple = ref._pathStart !== ref._queryStart;
        else if (t4 && B.JSString_methods.startsWith$1(base._uri, "http"))
          isSimple = !ref._isPort$1("80");
        else
          isSimple = !(t3 === 5 && B.JSString_methods.startsWith$1(base._uri, "https")) || !ref._isPort$1("443");
        if (isSimple) {
          delta = t3 + 1;
          return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, delta) + B.JSString_methods.substring$1(ref._uri, t1 + 1), t3, t2 + delta, ref._portStart + delta, ref._pathStart + delta, ref._queryStart + delta, ref._fragmentStart + delta, base._schemeCache);
        } else
          return this._toNonSimple$0().resolveUri$1(ref);
      }
      refStart = ref._pathStart;
      t1 = ref._queryStart;
      if (refStart === t1) {
        t2 = ref._fragmentStart;
        if (t1 < t2) {
          t3 = base._queryStart;
          delta = t3 - t1;
          return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, t3) + B.JSString_methods.substring$1(ref._uri, t1), base._schemeEnd, base._hostStart, base._portStart, base._pathStart, t1 + delta, t2 + delta, base._schemeCache);
        }
        t1 = ref._uri;
        if (t2 < t1.length) {
          t3 = base._fragmentStart;
          return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, t3) + B.JSString_methods.substring$1(t1, t2), base._schemeEnd, base._hostStart, base._portStart, base._pathStart, base._queryStart, t2 + (t3 - t2), base._schemeCache);
        }
        return base.removeFragment$0();
      }
      t2 = ref._uri;
      if (B.JSString_methods.startsWith$2(t2, "/", refStart)) {
        basePathStart = base._pathStart;
        packageNameEnd = A._SimpleUri__packageNameEnd(this);
        basePathStart0 = packageNameEnd > 0 ? packageNameEnd : basePathStart;
        delta = basePathStart0 - refStart;
        return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, basePathStart0) + B.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, basePathStart, t1 + delta, ref._fragmentStart + delta, base._schemeCache);
      }
      baseStart = base._pathStart;
      baseEnd = base._queryStart;
      if (baseStart === baseEnd && base._hostStart > 0) {
        for (; B.JSString_methods.startsWith$2(t2, "../", refStart);)
          refStart += 3;
        delta = baseStart - refStart + 1;
        return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, baseStart) + "/" + B.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, baseStart, t1 + delta, ref._fragmentStart + delta, base._schemeCache);
      }
      baseUri = base._uri;
      packageNameEnd = A._SimpleUri__packageNameEnd(this);
      if (packageNameEnd >= 0)
        baseStart0 = packageNameEnd;
      else
        for (baseStart0 = baseStart; B.JSString_methods.startsWith$2(baseUri, "../", baseStart0);)
          baseStart0 += 3;
      backCount = 0;
      while (true) {
        refStart0 = refStart + 3;
        if (!(refStart0 <= t1 && B.JSString_methods.startsWith$2(t2, "../", refStart)))
          break;
        ++backCount;
        refStart = refStart0;
      }
      for (t3 = baseUri.length, insert = ""; baseEnd > baseStart0;) {
        --baseEnd;
        if (!(baseEnd >= 0 && baseEnd < t3))
          return A.ioore(baseUri, baseEnd);
        if (baseUri.charCodeAt(baseEnd) === 47) {
          if (backCount === 0) {
            insert = "/";
            break;
          }
          --backCount;
          insert = "/";
        }
      }
      if (baseEnd === baseStart0 && base._schemeEnd <= 0 && !B.JSString_methods.startsWith$2(baseUri, "/", baseStart)) {
        refStart -= backCount * 3;
        insert = "";
      }
      delta = baseEnd - refStart + insert.length;
      return new A._SimpleUri(B.JSString_methods.substring$2(baseUri, 0, baseEnd) + insert + B.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, baseStart, t1 + delta, ref._fragmentStart + delta, base._schemeCache);
    },
    toFilePath$0() {
      var t2, _this = this,
        t1 = _this._schemeEnd;
      if (t1 >= 0) {
        t2 = !(t1 === 4 && B.JSString_methods.startsWith$1(_this._uri, "file"));
        t1 = t2;
      } else
        t1 = false;
      if (t1)
        throw A.wrapException(A.UnsupportedError$("Cannot extract a file path from a " + _this.get$scheme() + " URI"));
      t1 = _this._queryStart;
      t2 = _this._uri;
      if (t1 < t2.length) {
        if (t1 < _this._fragmentStart)
          throw A.wrapException(A.UnsupportedError$(string$.Cannotfq));
        throw A.wrapException(A.UnsupportedError$(string$.Cannotff));
      }
      if (_this._hostStart < _this._portStart)
        A.throwExpression(A.UnsupportedError$(string$.Cannotn));
      t1 = B.JSString_methods.substring$2(t2, _this._pathStart, t1);
      return t1;
    },
    get$hashCode(_) {
      var t1 = this._hashCodeCache;
      return t1 == null ? this._hashCodeCache = B.JSString_methods.get$hashCode(this._uri) : t1;
    },
    $eq(_, other) {
      if (other == null)
        return false;
      if (this === other)
        return true;
      return type$.Uri._is(other) && this._uri === other.toString$0(0);
    },
    _toNonSimple$0() {
      var _this = this, _null = null,
        t1 = _this.get$scheme(),
        t2 = _this.get$userInfo(),
        t3 = _this._hostStart > 0 ? _this.get$host() : _null,
        t4 = _this.get$hasPort() ? _this.get$port() : _null,
        t5 = _this._uri,
        t6 = _this._queryStart,
        t7 = B.JSString_methods.substring$2(t5, _this._pathStart, t6),
        t8 = _this._fragmentStart;
      t6 = t6 < t8 ? _this.get$query() : _null;
      return A._Uri$_internal(t1, t2, t3, t4, t7, t6, t8 < t5.length ? _this.get$fragment() : _null);
    },
    toString$0(_) {
      return this._uri;
    },
    $isUri: 1
  };
  A._DataUri.prototype = {};
  A.FutureOfJSAnyToJSPromise_get_toJS_closure.prototype = {
    call$2(resolve, reject) {
      var t1 = type$.JavaScriptFunction;
      this._this.then$1$2$onError(new A.FutureOfJSAnyToJSPromise_get_toJS__closure(t1._as(resolve)), new A.FutureOfJSAnyToJSPromise_get_toJS__closure0(t1._as(reject)), type$.nullable_Object);
    },
    $signature: 29
  };
  A.FutureOfJSAnyToJSPromise_get_toJS__closure.prototype = {
    call$1(value) {
      var t1 = this.resolve;
      t1.call(t1, value);
      return value;
    },
    $signature: 11
  };
  A.FutureOfJSAnyToJSPromise_get_toJS__closure0.prototype = {
    call$2(error, stackTrace) {
      var wrapper, box, t1;
      type$.Object._as(error);
      type$.StackTrace._as(stackTrace);
      wrapper = A.JSFunctionUnsafeUtilExtension_callAsConstructor(type$.JavaScriptFunction._as(init.G.Error), string$.Dart_e, type$.JSObject);
      if (type$.JavaScriptObject._is(error))
        A.throwExpression("Attempting to box non-Dart object.");
      box = {};
      box[$.$get$_jsBoxedDartObjectProperty()] = error;
      wrapper.error = box;
      wrapper.stack = stackTrace.toString$0(0);
      t1 = this.reject;
      t1.call(t1, wrapper);
      return wrapper;
    },
    $signature: 52
  };
  A.FutureOfVoidToJSPromise_get_toJS_closure.prototype = {
    call$2(resolve, reject) {
      var t1 = type$.JavaScriptFunction;
      this._this.then$1$2$onError(new A.FutureOfVoidToJSPromise_get_toJS__closure(t1._as(resolve)), new A.FutureOfVoidToJSPromise_get_toJS__closure0(t1._as(reject)), type$.nullable_Object);
    },
    $signature: 29
  };
  A.FutureOfVoidToJSPromise_get_toJS__closure.prototype = {
    call$1(__wc0_formal) {
      var t1 = this.resolve;
      return t1.call(t1);
    },
    $signature: 50
  };
  A.FutureOfVoidToJSPromise_get_toJS__closure0.prototype = {
    call$2(error, stackTrace) {
      var wrapper, box, t1;
      type$.Object._as(error);
      type$.StackTrace._as(stackTrace);
      wrapper = A.JSFunctionUnsafeUtilExtension_callAsConstructor(type$.JavaScriptFunction._as(init.G.Error), string$.Dart_e, type$.JSObject);
      if (type$.JavaScriptObject._is(error))
        A.throwExpression("Attempting to box non-Dart object.");
      box = {};
      box[$.$get$_jsBoxedDartObjectProperty()] = error;
      wrapper.error = box;
      wrapper.stack = stackTrace.toString$0(0);
      t1 = this.reject;
      t1.call(t1, wrapper);
    },
    $signature: 5
  };
  A.jsify__convert.prototype = {
    call$1(o) {
      var t1, convertedMap, key, convertedList;
      if (A._noJsifyRequired(o))
        return o;
      t1 = this._convertedObjects;
      if (t1.containsKey$1(o))
        return t1.$index(0, o);
      if (type$.Map_dynamic_dynamic._is(o)) {
        convertedMap = {};
        t1.$indexSet(0, o, convertedMap);
        for (t1 = o.get$keys(), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
          key = t1.get$current();
          convertedMap[key] = this.call$1(o.$index(0, 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: 11
  };
  A.promiseToFuture_closure.prototype = {
    call$1(r) {
      return this.completer.complete$1(this.T._eval$1("0/?")._as(r));
    },
    $signature: 7
  };
  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: 7
  };
  A.dartify_convert.prototype = {
    call$1(o) {
      var t1, millisSinceEpoch, proto, t2, dartObject, originalKeys, dartKeys, i, jsKey, dartKey, l, $length;
      if (A._noDartifyRequired(o))
        return o;
      t1 = this._convertedObjects;
      o.toString;
      if (t1.containsKey$1(o))
        return t1.$index(0, o);
      if (o instanceof Date) {
        millisSinceEpoch = o.getTime();
        if (millisSinceEpoch < -864e13 || millisSinceEpoch > 864e13)
          A.throwExpression(A.RangeError$range(millisSinceEpoch, -864e13, 864e13, "millisecondsSinceEpoch", null));
        A.checkNotNullable(true, "isUtc", type$.bool);
        return new A.DateTime(millisSinceEpoch, 0, true);
      }
      if (o instanceof RegExp)
        throw A.wrapException(A.ArgumentError$("structured clone of RegExp", null));
      if (typeof Promise != "undefined" && o instanceof Promise)
        return A.promiseToFuture(o, type$.nullable_Object);
      proto = Object.getPrototypeOf(o);
      if (proto === Object.prototype || proto === null) {
        t2 = type$.nullable_Object;
        dartObject = A.LinkedHashMap_LinkedHashMap$_empty(t2, t2);
        t1.$indexSet(0, o, dartObject);
        originalKeys = Object.keys(o);
        dartKeys = [];
        for (t1 = J.getInterceptor$ax(originalKeys), t2 = t1.get$iterator(originalKeys); t2.moveNext$0();)
          dartKeys.push(A.dartify(t2.get$current()));
        for (i = 0; i < t1.get$length(originalKeys); ++i) {
          jsKey = t1.$index(originalKeys, i);
          if (!(i < dartKeys.length))
            return A.ioore(dartKeys, i);
          dartKey = dartKeys[i];
          if (jsKey != null)
            dartObject.$indexSet(0, dartKey, this.call$1(o[jsKey]));
        }
        return dartObject;
      }
      if (o instanceof Array) {
        l = o;
        dartObject = [];
        t1.$indexSet(0, o, dartObject);
        $length = A._asInt(o.length);
        for (t1 = J.getInterceptor$asx(l), i = 0; i < $length; ++i)
          dartObject.push(this.call$1(t1.$index(l, i)));
        return dartObject;
      }
      return o;
    },
    $signature: 11
  };
  A.NullRejectionException.prototype = {
    toString$0(_) {
      return "Promise was rejected with a value of `" + (this.isUndefined ? "undefined" : "null") + "`.";
    },
    $isException: 1
  };
  A._JSRandom.prototype = {
    nextInt$1(max) {
      if (max <= 0 || max > 4294967296)
        throw A.wrapException(A.RangeError$("max must be in range 0 < max \u2264 2^32, was " + max));
      return Math.random() * max >>> 0;
    },
    $isRandom: 1
  };
  A.AsyncMemoizer.prototype = {};
  A.DelegatingStreamSink.prototype = {
    add$1(_, data) {
      this._sink.add$1(0, A._instanceType(this)._eval$1("DelegatingStreamSink.T")._as(data));
    },
    $isStreamSink: 1
  };
  A.ErrorResult.prototype = {
    complete$1(completer) {
      completer.completeError$2(this.error, this.stackTrace);
    },
    get$hashCode(_) {
      return (J.get$hashCode$(this.error) ^ A.Primitives_objectHashCode(this.stackTrace) ^ 492929599) >>> 0;
    },
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A.ErrorResult && J.$eq$(this.error, other.error) && this.stackTrace === other.stackTrace;
    },
    $isResult: 1
  };
  A.ValueResult.prototype = {
    complete$1(completer) {
      this.$ti._eval$1("Completer<1>")._as(completer).complete$1(this.value);
    },
    get$hashCode(_) {
      return (J.get$hashCode$(this.value) ^ 842997089) >>> 0;
    },
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A.ValueResult && J.$eq$(this.value, other.value);
    },
    $isResult: 1
  };
  A.StreamQueue.prototype = {
    get$hasNext() {
      var t1 = new A._Future($.Zone__current, type$._Future_bool);
      this._addRequest$1(new A._HasNextRequest(new A._AsyncCompleter(t1, type$._AsyncCompleter_bool), this.$ti._eval$1("_HasNextRequest<1>")));
      return t1;
    },
    _updateRequests$0() {
      var t1, t2, t3, t4, t5, _this = this;
      for (t1 = _this._requestQueue, t2 = _this._eventQueue, t3 = t1.$ti._precomputed1; !t1.get$isEmpty(0);) {
        t4 = t1._head;
        if (t4 === t1._tail)
          A.throwExpression(A.IterableElementError_noElement());
        t5 = t1._table;
        if (!(t4 < t5.length))
          return A.ioore(t5, t4);
        t4 = t5[t4];
        if (t4 == null)
          t4 = t3._as(t4);
        if (t4.update$2(t2, _this._isDone))
          t1.removeFirst$0();
        else
          return;
      }
      if (!_this._isDone)
        _this._stream_queue$_subscription.pause$0();
    },
    _ensureListening$0() {
      var t1, _this = this;
      if (_this._isDone)
        return;
      t1 = _this._stream_queue$_subscription;
      if (t1 == null)
        _this._stream_queue$_subscription = _this._stream_queue$_source.listen$3$onDone$onError(new A.StreamQueue__ensureListening_closure(_this), new A.StreamQueue__ensureListening_closure0(_this), new A.StreamQueue__ensureListening_closure1(_this));
      else
        t1.resume$0();
    },
    _addResult$1(result) {
      var t1, _this = this;
      _this.$ti._eval$1("Result<1>")._as(result);
      ++_this._eventsReceived;
      t1 = _this._eventQueue;
      t1._queue_list$_add$1(t1.$ti._eval$1("QueueList.E")._as(result));
      _this._updateRequests$0();
    },
    _addRequest$1(request) {
      var t1, _this = this;
      _this.$ti._eval$1("_EventRequest<1>")._as(request);
      t1 = _this._requestQueue;
      if (t1._head === t1._tail) {
        if (request.update$2(_this._eventQueue, _this._isDone))
          return;
        _this._ensureListening$0();
      }
      t1._collection$_add$1(t1.$ti._precomputed1._as(request));
    }
  };
  A.StreamQueue__ensureListening_closure.prototype = {
    call$1(data) {
      var t1 = this.$this,
        t2 = t1.$ti;
      t1._addResult$1(new A.ValueResult(t2._precomputed1._as(data), t2._eval$1("ValueResult<1>")));
    },
    $signature() {
      return this.$this.$ti._eval$1("~(1)");
    }
  };
  A.StreamQueue__ensureListening_closure1.prototype = {
    call$2(error, stackTrace) {
      type$.Object._as(error);
      type$.StackTrace._as(stackTrace);
      this.$this._addResult$1(new A.ErrorResult(error, stackTrace));
    },
    $signature: 5
  };
  A.StreamQueue__ensureListening_closure0.prototype = {
    call$0() {
      var t1 = this.$this;
      t1._stream_queue$_subscription = null;
      t1._isDone = true;
      t1._updateRequests$0();
    },
    $signature: 0
  };
  A._NextRequest.prototype = {
    update$2(events, isDone) {
      var t1, result;
      this.$ti._eval$1("QueueList<Result<1>>")._as(events);
      if (!events.get$isEmpty(events)) {
        t1 = events._queue_list$_head;
        if (t1 === events._queue_list$_tail)
          A.throwExpression(A.StateError$("No element"));
        result = J.$index$asx(events._queue_list$_table, t1);
        if (result == null)
          result = events.$ti._eval$1("QueueList.E")._as(result);
        J.$indexSet$ax(events._queue_list$_table, events._queue_list$_head, null);
        events._queue_list$_head = (events._queue_list$_head + 1 & J.get$length$asx(events._queue_list$_table) - 1) >>> 0;
        result.complete$1(this._stream_queue$_completer);
        return true;
      }
      if (isDone) {
        this._stream_queue$_completer.completeError$2(new A.StateError("No elements"), A.StackTrace_current());
        return true;
      }
      return false;
    },
    $is_EventRequest: 1
  };
  A._HasNextRequest.prototype = {
    update$2(events, isDone) {
      this.$ti._eval$1("QueueList<Result<1>>")._as(events);
      if (!events.get$isEmpty(events)) {
        this._stream_queue$_completer.complete$1(true);
        return true;
      }
      if (isDone) {
        this._stream_queue$_completer.complete$1(false);
        return true;
      }
      return false;
    },
    $is_EventRequest: 1
  };
  A.hashObjects_closure.prototype = {
    call$2(h, i) {
      return A._combine(A._asInt(h), J.get$hashCode$(i));
    },
    $signature: 46
  };
  A.BuiltList.prototype = {
    toBuilder$0() {
      return A.ListBuilder_ListBuilder(this, this.$ti._precomputed1);
    },
    get$hashCode(_) {
      var t1 = this._list$_hashCode;
      return t1 == null ? this._list$_hashCode = A.hashObjects(this._list) : t1;
    },
    $eq(_, other) {
      var t1, t2, i, t3, t4;
      if (other == null)
        return false;
      if (other === this)
        return true;
      if (!(other instanceof A._BuiltList))
        return false;
      t1 = other._list;
      t2 = this._list;
      if (t1.length !== t2.length)
        return false;
      if (other.get$hashCode(0) !== this.get$hashCode(0))
        return false;
      for (i = 0; t3 = t2.length, i !== t3; ++i) {
        if (!(i < t1.length))
          return A.ioore(t1, i);
        t4 = t1[i];
        if (!(i < t3))
          return A.ioore(t2, i);
        if (!J.$eq$(t4, t2[i]))
          return false;
      }
      return true;
    },
    toString$0(_) {
      return A.Iterable_iterableToFullString(this._list, "[", "]");
    },
    get$length(_) {
      return this._list.length;
    },
    get$iterator(_) {
      var t1 = this._list;
      return new J.ArrayIterator(t1, t1.length, A._arrayInstanceType(t1)._eval$1("ArrayIterator<1>"));
    },
    map$1$1(_, f, $T) {
      var t1 = this._list,
        t2 = A._arrayInstanceType(t1);
      return new A.MappedListIterable(t1, t2._bind$1($T)._eval$1("1(2)")._as(this.$ti._bind$1($T)._eval$1("1(2)")._as(f)), t2._eval$1("@<1>")._bind$1($T)._eval$1("MappedListIterable<1,2>"));
    },
    map$1(_, f) {
      return this.map$1$1(0, f, type$.dynamic);
    },
    contains$1(_, element) {
      return B.JSArray_methods.contains$1(this._list, element);
    },
    get$isEmpty(_) {
      return this._list.length === 0;
    },
    get$isNotEmpty(_) {
      return this._list.length !== 0;
    },
    take$1(_, n) {
      var t1 = this._list;
      return A.SubListIterable$(t1, 0, A.checkNotNullable(n, "count", type$.int), A._arrayInstanceType(t1)._precomputed1);
    },
    skip$1(_, n) {
      var t1 = this._list;
      return A.SubListIterable$(t1, n, null, A._arrayInstanceType(t1)._precomputed1);
    },
    get$first(_) {
      return B.JSArray_methods.get$first(this._list);
    },
    elementAt$1(_, index) {
      var t1 = this._list;
      if (!(index >= 0 && index < t1.length))
        return A.ioore(t1, index);
      return t1[index];
    },
    $isIterable: 1
  };
  A._BuiltList.prototype = {
    _list$_maybeCheckForNull$0() {
      var t1, t2, _i;
      if (!(!$.$get$isSoundMode() && !this.$ti._precomputed1._is(null)))
        return;
      for (t1 = this._list, t2 = t1.length, _i = 0; _i < t2; ++_i)
        if (t1[_i] == null)
          throw A.wrapException(A.ArgumentError$("iterable contained invalid element: null", null));
    }
  };
  A.ListBuilder.prototype = {
    build$0() {
      var t2, t3, _this = this,
        t1 = _this._listOwner;
      if (t1 == null) {
        t1 = _this.__ListBuilder__list_A;
        t1 === $ && A.throwLateFieldNI("_list");
        t2 = _this.$ti;
        t3 = t2._eval$1("_BuiltList<1>");
        t3 = t3._as(new A._BuiltList(t1, t3));
        _this.__ListBuilder__list_A = t2._eval$1("List<1>")._as(t1);
        _this._listOwner = t3;
        t1 = t3;
      }
      return t1;
    },
    replace$1(iterable) {
      var _this = this,
        t1 = _this.$ti,
        t2 = t1._eval$1("_BuiltList<1>"),
        t3 = t1._eval$1("List<1>");
      if (t2._is(iterable)) {
        t2._as(iterable);
        _this.__ListBuilder__list_A = t3._as(iterable._list);
        _this._listOwner = iterable;
      } else {
        _this.__ListBuilder__list_A = t3._as(A.List_List$from(iterable, true, t1._precomputed1));
        _this._listOwner = null;
      }
    },
    get$length(_) {
      var t1 = this.__ListBuilder__list_A;
      t1 === $ && A.throwLateFieldNI("_list");
      return t1.length;
    },
    map$1(_, f) {
      var t2, t3, t4, t5, result, _this = this,
        t1 = _this.$ti;
      t1._eval$1("1(1)")._as(f);
      t2 = _this.__ListBuilder__list_A;
      t2 === $ && A.throwLateFieldNI("_list");
      t3 = t1._precomputed1;
      t4 = A._arrayInstanceType(t2);
      t5 = t4._eval$1("@<1>")._bind$1(t3)._eval$1("MappedListIterable<1,2>");
      result = A.List_List$_of(new A.MappedListIterable(t2, t4._bind$1(t3)._eval$1("1(2)")._as(f), t5), t5._eval$1("ListIterable.E"));
      _this._list$_maybeCheckElements$1(result);
      _this.__ListBuilder__list_A = t1._eval$1("List<1>")._as(result);
      _this._listOwner = null;
    },
    _list$_maybeCheckElements$1(elements) {
      var t2, _i,
        t1 = this.$ti;
      t1._eval$1("Iterable<1>")._as(elements);
      if (!(!$.$get$isSoundMode() && !t1._precomputed1._is(null)))
        return;
      for (t2 = elements.length, t1 = t1._precomputed1, _i = 0; _i < t2; ++_i)
        if (t1._as(elements[_i]) == null)
          A.throwExpression(A.ArgumentError$("null element", null));
    }
  };
  A.BuiltListMultimap.prototype = {
    get$hashCode(_) {
      var t2, _this = this,
        t1 = _this._list_multimap$_hashCode;
      if (t1 == null) {
        t1 = _this._list_multimap$_map;
        t2 = A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<1>");
        t2 = A.MappedIterable_MappedIterable(new A.LinkedHashMapKeysIterable(t1, t2), t2._eval$1("int(Iterable.E)")._as(new A.BuiltListMultimap_hashCode_closure(_this)), t2._eval$1("Iterable.E"), type$.int);
        t1 = A.List_List$_of(t2, A._instanceType(t2)._eval$1("Iterable.E"));
        t1.$flags = 1;
        t1 = t1;
        B.JSArray_methods.sort$0(t1);
        t1 = _this._list_multimap$_hashCode = A.hashObjects(t1);
      }
      return t1;
    },
    $eq(_, other) {
      var t1, t2, t3, t4, t5, key, result, t6, _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      if (!(other instanceof A._BuiltListMultimap))
        return false;
      t1 = other._list_multimap$_map;
      t2 = _this._list_multimap$_map;
      if (t1.__js_helper$_length !== t2.__js_helper$_length)
        return false;
      if (other.get$hashCode(0) !== _this.get$hashCode(0))
        return false;
      for (t3 = _this.get$keys(), t4 = t3.__js_helper$_map, t3 = new A.LinkedHashMapKeyIterator(t4, t4._modifications, t4._first, t3.$ti._eval$1("LinkedHashMapKeyIterator<1>")), t4 = other._emptyList, t5 = _this._emptyList; t3.moveNext$0();) {
        key = t3.__js_helper$_current;
        result = t1.$index(0, key);
        t6 = result == null ? t4 : result;
        result = t2.$index(0, key);
        if (!t6.$eq(0, result == null ? t5 : result))
          return false;
      }
      return true;
    },
    toString$0(_) {
      return A.MapBase_mapToString(this._list_multimap$_map);
    },
    get$keys() {
      var t1 = this._list_multimap$_keys;
      if (t1 == null) {
        t1 = this._list_multimap$_map;
        t1 = this._list_multimap$_keys = new A.LinkedHashMapKeysIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<1>"));
      }
      return t1;
    },
    get$length(_) {
      return this._list_multimap$_map.__js_helper$_length;
    }
  };
  A.BuiltListMultimap_BuiltListMultimap_closure.prototype = {
    call$1(k) {
      return this.multimap.$index(0, k);
    },
    $signature: 4
  };
  A.BuiltListMultimap_hashCode_closure.prototype = {
    call$1(key) {
      var t2,
        t1 = this.$this;
      t1.$ti._precomputed1._as(key);
      t2 = J.get$hashCode$(key);
      t1 = J.get$hashCode$(t1._list_multimap$_map.$index(0, key));
      return A._finish(A._combine(A._combine(0, B.JSInt_methods.get$hashCode(t2)), B.JSInt_methods.get$hashCode(t1)));
    },
    $signature() {
      return this.$this.$ti._eval$1("int(1)");
    }
  };
  A._BuiltListMultimap.prototype = {
    _BuiltListMultimap$copy$2(keys, lookup, $K, $V) {
      var t1, t2, t3, key;
      for (t1 = keys.get$iterator(keys), t2 = this._list_multimap$_map, t3 = type$.Iterable_dynamic; t1.moveNext$0();) {
        key = t1.get$current();
        if ($K._is(key))
          t2.$indexSet(0, key, A.BuiltList_BuiltList$from(t3._as(lookup.call$1(key)), $V));
        else
          throw A.wrapException(A.ArgumentError$("map contained invalid key: " + A.S(key), null));
      }
    }
  };
  A.ListMultimapBuilder.prototype = {
    build$0() {
      var key, t2, builtList, t3, t4, t5, _this = this,
        _s9_ = "_builtMap",
        t1 = _this._list_multimap$_builtMapOwner;
      if (t1 == null) {
        t1 = _this.__ListMultimapBuilder__builderMap_A;
        t1 === $ && A.throwLateFieldNI("_builderMap");
        t1 = new A.LinkedHashMapKeyIterator(t1, t1._modifications, t1._first, A._instanceType(t1)._eval$1("LinkedHashMapKeyIterator<1>"));
        for (; t1.moveNext$0();) {
          key = t1.__js_helper$_current;
          t2 = _this.__ListMultimapBuilder__builderMap_A.$index(0, key);
          builtList = t2._listOwner;
          if (builtList == null) {
            t3 = t2.__ListBuilder__list_A;
            t3 === $ && A.throwLateFieldNI("_list");
            t4 = A._instanceType(t2);
            t5 = t4._eval$1("_BuiltList<1>");
            builtList = t5._as(new A._BuiltList(t3, t5));
            t2.__ListBuilder__list_A = t4._eval$1("List<1>")._as(t3);
            t2._listOwner = builtList;
          }
          t2 = builtList._list.length;
          t3 = _this.__ListMultimapBuilder__builtMap_A;
          if (t2 === 0) {
            t3 === $ && A.throwLateFieldNI(_s9_);
            t3.remove$1(0, key);
          } else {
            t3 === $ && A.throwLateFieldNI(_s9_);
            t3.$indexSet(0, key, builtList);
          }
        }
        t1 = _this.__ListMultimapBuilder__builtMap_A;
        t1 === $ && A.throwLateFieldNI(_s9_);
        t2 = _this.$ti;
        t2 = _this._list_multimap$_builtMapOwner = new A._BuiltListMultimap(t1, A.BuiltList_BuiltList$from(B.List_empty0, t2._rest[1]), t2._eval$1("_BuiltListMultimap<1,2>"));
        t1 = t2;
      }
      return t1;
    },
    replace$1(multimap) {
      this._list_multimap$_setWithCopyAndCheck$2(multimap.get$keys(), new A.ListMultimapBuilder_replace_closure(multimap));
    },
    _list_multimap$_getValuesBuilder$1(key) {
      var t2, result, builtValues, _this = this,
        t1 = _this.$ti;
      t1._precomputed1._as(key);
      t2 = _this.__ListMultimapBuilder__builderMap_A;
      t2 === $ && A.throwLateFieldNI("_builderMap");
      result = t2.$index(0, key);
      if (result == null) {
        t2 = _this.__ListMultimapBuilder__builtMap_A;
        t2 === $ && A.throwLateFieldNI("_builtMap");
        builtValues = t2.$index(0, key);
        result = builtValues == null ? A.ListBuilder_ListBuilder(B.List_empty0, t1._rest[1]) : A.ListBuilder_ListBuilder(builtValues, builtValues.$ti._precomputed1);
        _this.__ListMultimapBuilder__builderMap_A.$indexSet(0, key, result);
      }
      return result;
    },
    _list_multimap$_setWithCopyAndCheck$2(keys, lookup) {
      var t1, t2, t3, t4, t5, t6, key, t7, value, t8, t9, t10, t11, _this = this;
      _this._list_multimap$_builtMapOwner = null;
      t1 = _this.$ti;
      t2 = t1._precomputed1;
      t3 = t1._eval$1("BuiltList<2>");
      t4 = t1._eval$1("Map<1,BuiltList<2>>");
      _this.__ListMultimapBuilder__builtMap_A = t4._as(A.LinkedHashMap_LinkedHashMap$_empty(t2, t3));
      _this.__ListMultimapBuilder__builderMap_A = t1._eval$1("Map<1,ListBuilder<2>>")._as(A.LinkedHashMap_LinkedHashMap$_empty(t2, t1._eval$1("ListBuilder<2>")));
      for (t5 = keys.get$iterator(keys), t6 = type$.Iterable_dynamic, t1 = t1._rest[1]; t5.moveNext$0();) {
        key = t5.get$current();
        if (t2._is(key))
          for (t7 = J.get$iterator$ax(t6._as(lookup.call$1(key))); t7.moveNext$0();) {
            value = t7.get$current();
            if (t1._is(value)) {
              t2._as(key);
              t1._as(value);
              if (_this._list_multimap$_builtMapOwner != null) {
                _this.__ListMultimapBuilder__builtMap_A = t4._as(A.LinkedHashMap_LinkedHashMap$from(_this.__ListMultimapBuilder__builtMap_A, t2, t3));
                _this._list_multimap$_builtMapOwner = null;
              }
              _this._list_multimap$_checkKey$1(key);
              _this._list_multimap$_checkValue$1(value);
              t8 = _this._list_multimap$_getValuesBuilder$1(key);
              t9 = t8.$ti;
              t10 = t9._precomputed1;
              t10._as(value);
              if (!$.$get$isSoundMode() && !t10._is(null))
                if (value == null)
                  A.throwExpression(A.ArgumentError$("null element", null));
              if (t8._listOwner != null) {
                t11 = t8.__ListBuilder__list_A;
                t11 === $ && A.throwLateFieldNI("_list");
                t8.__ListBuilder__list_A = t9._eval$1("List<1>")._as(A.List_List$from(t11, true, t10));
                t8._listOwner = null;
              }
              t8 = t8.__ListBuilder__list_A;
              t8 === $ && A.throwLateFieldNI("_list");
              B.JSArray_methods.add$1(t8, value);
            } else
              throw A.wrapException(A.ArgumentError$("map contained invalid value: " + A.S(value) + ", for key " + A.S(key), null));
          }
        else
          throw A.wrapException(A.ArgumentError$("map contained invalid key: " + A.S(key), null));
      }
    },
    _list_multimap$_checkKey$1(key) {
      var t1 = this.$ti._precomputed1;
      t1._as(key);
      if ($.$get$isSoundMode())
        return;
      if (t1._is(null))
        return;
      if (key == null)
        throw A.wrapException(A.ArgumentError$("null key", null));
    },
    _list_multimap$_checkValue$1(value) {
      var t1 = this.$ti._rest[1];
      t1._as(value);
      if ($.$get$isSoundMode())
        return;
      if (t1._is(null))
        return;
      if (value == null)
        throw A.wrapException(A.ArgumentError$("null value", null));
    }
  };
  A.ListMultimapBuilder_replace_closure.prototype = {
    call$1(k) {
      return this.multimap.$index(0, k);
    },
    $signature: 4
  };
  A.BuiltMap.prototype = {
    toBuilder$0() {
      var t1 = this.$ti;
      t1._eval$1("_BuiltMap<1,2>")._as(this);
      return new A.MapBuilder(this._mapFactory, this._map$_map, this, t1._eval$1("MapBuilder<1,2>"));
    },
    get$hashCode(_) {
      var t2, _this = this,
        t1 = _this._map$_hashCode;
      if (t1 == null) {
        t1 = _this._map$_map;
        t2 = A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<1>");
        t2 = A.MappedIterable_MappedIterable(new A.LinkedHashMapKeysIterable(t1, t2), t2._eval$1("int(Iterable.E)")._as(new A.BuiltMap_hashCode_closure(_this)), t2._eval$1("Iterable.E"), type$.int);
        t1 = A.List_List$_of(t2, A._instanceType(t2)._eval$1("Iterable.E"));
        t1.$flags = 1;
        t1 = t1;
        B.JSArray_methods.sort$0(t1);
        t1 = _this._map$_hashCode = A.hashObjects(t1);
      }
      return t1;
    },
    $eq(_, other) {
      var t1, t2, t3, t4, key, _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      if (!(other instanceof A._BuiltMap))
        return false;
      t1 = other._map$_map;
      t2 = _this._map$_map;
      if (t1.__js_helper$_length !== t2.__js_helper$_length)
        return false;
      if (other.get$hashCode(0) !== _this.get$hashCode(0))
        return false;
      for (t3 = _this.get$keys(), t4 = t3.__js_helper$_map, t3 = new A.LinkedHashMapKeyIterator(t4, t4._modifications, t4._first, t3.$ti._eval$1("LinkedHashMapKeyIterator<1>")); t3.moveNext$0();) {
        key = t3.__js_helper$_current;
        if (!J.$eq$(t1.$index(0, key), t2.$index(0, key)))
          return false;
      }
      return true;
    },
    toString$0(_) {
      return A.MapBase_mapToString(this._map$_map);
    },
    get$keys() {
      var t1 = this._map$_keys;
      if (t1 == null) {
        t1 = this._map$_map;
        t1 = this._map$_keys = new A.LinkedHashMapKeysIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<1>"));
      }
      return t1;
    },
    get$length(_) {
      return this._map$_map.__js_helper$_length;
    },
    map$1(_, f) {
      var t1 = type$.dynamic;
      return new A._BuiltMap(null, this._map$_map.map$2$1(0, this.$ti._eval$1("MapEntry<@,@>(1,2)")._as(f), t1, t1), type$._BuiltMap_dynamic_dynamic);
    }
  };
  A.BuiltMap_BuiltMap_closure.prototype = {
    call$1(k) {
      return this.map.$index(0, k);
    },
    $signature: 4
  };
  A.BuiltMap_hashCode_closure.prototype = {
    call$1(key) {
      var t2,
        t1 = this.$this;
      t1.$ti._precomputed1._as(key);
      t2 = J.get$hashCode$(key);
      t1 = J.get$hashCode$(t1._map$_map.$index(0, key));
      return A._finish(A._combine(A._combine(0, B.JSInt_methods.get$hashCode(t2)), B.JSInt_methods.get$hashCode(t1)));
    },
    $signature() {
      return this.$this.$ti._eval$1("int(1)");
    }
  };
  A._BuiltMap.prototype = {
    _BuiltMap$copyAndCheckTypes$2(keys, lookup, $K, $V) {
      var t1, t2, key, value;
      for (t1 = keys.get$iterator(keys), t2 = this._map$_map; t1.moveNext$0();) {
        key = t1.get$current();
        if ($K._is(key)) {
          value = lookup.call$1(key);
          if ($V._is(value))
            t2.$indexSet(0, key, value);
          else
            throw A.wrapException(A.ArgumentError$("map contained invalid value: " + A.S(value), null));
        } else
          throw A.wrapException(A.ArgumentError$("map contained invalid key: " + A.S(key), null));
      }
    }
  };
  A.MapBuilder.prototype = {
    build$0() {
      var _this = this,
        t1 = _this._mapOwner;
      if (t1 == null) {
        t1 = _this.__MapBuilder__map_A;
        t1 === $ && A.throwLateFieldNI("_map");
        t1 = _this._mapOwner = new A._BuiltMap(_this._mapFactory, t1, _this.$ti._eval$1("_BuiltMap<1,2>"));
      }
      return t1;
    },
    replace$1(map) {
      var _this = this,
        replacement = _this._createMap$0();
      map.forEach$1(0, new A.MapBuilder_replace_closure(_this, replacement));
      _this.$ti._eval$1("Map<1,2>")._as(replacement);
      _this._mapOwner = null;
      _this.__MapBuilder__map_A = replacement;
    },
    $indexSet(_, key, value) {
      var t2, t3, _this = this,
        t1 = _this.$ti;
      t1._precomputed1._as(key);
      t1._rest[1]._as(value);
      _this._checkKey$1(key);
      _this._checkValue$1(value);
      if (_this._mapOwner != null) {
        t2 = _this._createMap$0();
        t3 = _this.__MapBuilder__map_A;
        t3 === $ && A.throwLateFieldNI("_map");
        t2.addAll$1(0, t3);
        _this.__MapBuilder__map_A = t1._eval$1("Map<1,2>")._as(t2);
        _this._mapOwner = null;
      }
      t1 = _this.__MapBuilder__map_A;
      t1 === $ && A.throwLateFieldNI("_map");
      t1.$indexSet(0, key, value);
    },
    get$length(_) {
      var t1 = this.__MapBuilder__map_A;
      t1 === $ && A.throwLateFieldNI("_map");
      return t1.__js_helper$_length;
    },
    get$_safeMap() {
      var t1, t2, _this = this;
      if (_this._mapOwner != null) {
        t1 = _this._createMap$0();
        t2 = _this.__MapBuilder__map_A;
        t2 === $ && A.throwLateFieldNI("_map");
        t1.addAll$1(0, t2);
        _this.__MapBuilder__map_A = _this.$ti._eval$1("Map<1,2>")._as(t1);
        _this._mapOwner = null;
      }
      t1 = _this.__MapBuilder__map_A;
      t1 === $ && A.throwLateFieldNI("_map");
      return t1;
    },
    _createMap$0() {
      var t1 = this.$ti;
      return A.LinkedHashMap_LinkedHashMap$_empty(t1._precomputed1, t1._rest[1]);
    },
    _checkKey$1(key) {
      var t1 = this.$ti._precomputed1;
      t1._as(key);
      if ($.$get$isSoundMode())
        return;
      if (t1._is(null))
        return;
      if (key == null)
        throw A.wrapException(A.ArgumentError$("null key", null));
    },
    _checkValue$1(value) {
      var t1 = this.$ti._rest[1];
      t1._as(value);
      if ($.$get$isSoundMode())
        return;
      if (t1._is(null))
        return;
      if (value == null)
        throw A.wrapException(A.ArgumentError$("null value", null));
    }
  };
  A.MapBuilder_replace_closure.prototype = {
    call$2(key, value) {
      var t1 = this.$this.$ti;
      this.replacement.$indexSet(0, t1._precomputed1._as(key), t1._rest[1]._as(value));
    },
    $signature: 23
  };
  A.BuiltSet.prototype = {
    get$hashCode(_) {
      var t2, t3, _this = this,
        t1 = _this._set$_hashCode;
      if (t1 == null) {
        t1 = _this._set$_set;
        t2 = A._instanceType(t1);
        t3 = t2._eval$1("EfficientLengthMappedIterable<1,int>");
        t1 = A.List_List$_of(new A.EfficientLengthMappedIterable(t1, t2._eval$1("int(1)")._as(new A.BuiltSet_hashCode_closure(_this)), t3), t3._eval$1("Iterable.E"));
        t1.$flags = 1;
        t1 = t1;
        B.JSArray_methods.sort$0(t1);
        t1 = _this._set$_hashCode = A.hashObjects(t1);
      }
      return t1;
    },
    $eq(_, other) {
      var t1;
      if (other == null)
        return false;
      if (other === this)
        return true;
      if (!(other instanceof A._BuiltSet))
        return false;
      t1 = this._set$_set;
      if (other._set$_set._collection$_length !== t1._collection$_length)
        return false;
      if (other.get$hashCode(0) !== this.get$hashCode(0))
        return false;
      return t1.containsAll$1(other);
    },
    toString$0(_) {
      return A.Iterable_iterableToFullString(this._set$_set, "{", "}");
    },
    get$length(_) {
      return this._set$_set._collection$_length;
    },
    get$iterator(_) {
      var t1 = this._set$_set;
      return A._LinkedHashSetIterator$(t1, t1._collection$_modifications, A._instanceType(t1)._precomputed1);
    },
    map$1$1(_, f, $T) {
      var t1 = this._set$_set,
        t2 = A._instanceType(t1);
      return new A.EfficientLengthMappedIterable(t1, t2._bind$1($T)._eval$1("1(2)")._as(this.$ti._bind$1($T)._eval$1("1(2)")._as(f)), t2._eval$1("@<1>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>"));
    },
    map$1(_, f) {
      return this.map$1$1(0, f, type$.dynamic);
    },
    contains$1(_, element) {
      return this._set$_set.contains$1(0, element);
    },
    get$isEmpty(_) {
      return this._set$_set._collection$_length === 0;
    },
    get$isNotEmpty(_) {
      return this._set$_set._collection$_length !== 0;
    },
    take$1(_, n) {
      var t1 = this._set$_set;
      return A.TakeIterable_TakeIterable(t1, n, A._instanceType(t1)._precomputed1);
    },
    skip$1(_, n) {
      var t1 = this._set$_set;
      return A.SkipIterable_SkipIterable(t1, n, A._instanceType(t1)._precomputed1);
    },
    get$first(_) {
      return this._set$_set.get$first(0);
    },
    elementAt$1(_, index) {
      return this._set$_set.elementAt$1(0, index);
    },
    $isIterable: 1
  };
  A.BuiltSet_hashCode_closure.prototype = {
    call$1(e) {
      return J.get$hashCode$(this.$this.$ti._precomputed1._as(e));
    },
    $signature() {
      return this.$this.$ti._eval$1("int(1)");
    }
  };
  A._BuiltSet.prototype = {
    _maybeCheckForNull$0() {
      var t1, t2, element;
      if (!(!$.$get$isSoundMode() && !this.$ti._precomputed1._is(null)))
        return;
      for (t1 = this._set$_set, t1 = A._LinkedHashSetIterator$(t1, t1._collection$_modifications, A._instanceType(t1)._precomputed1), t2 = t1.$ti._precomputed1; t1.moveNext$0();) {
        element = t1._collection$_current;
        if ((element == null ? t2._as(element) : element) == null)
          throw A.wrapException(A.ArgumentError$("iterable contained invalid element: null", null));
      }
    }
  };
  A.SetBuilder.prototype = {
    build$0() {
      var _this = this,
        t1 = _this._setOwner;
      if (t1 == null) {
        t1 = _this.__SetBuilder__set_A;
        t1 === $ && A.throwLateFieldNI("_set");
        t1 = _this._setOwner = new A._BuiltSet(_this._setFactory, t1, _this.$ti._eval$1("_BuiltSet<1>"));
      }
      return t1;
    },
    replace$1(iterable) {
      var t1, t2, t3, element, _this = this,
        set = _this._createSet$0();
      for (t1 = J.get$iterator$ax(iterable), t2 = _this.$ti, t3 = t2._precomputed1; t1.moveNext$0();) {
        element = t1.get$current();
        if (t3._is(element))
          set.add$1(0, element);
        else
          throw A.wrapException(A.ArgumentError$("iterable contained invalid element: " + A.S(element), null));
      }
      t2._eval$1("Set<1>")._as(set);
      _this._setOwner = null;
      _this.__SetBuilder__set_A = set;
    },
    get$length(_) {
      var t1 = this.__SetBuilder__set_A;
      t1 === $ && A.throwLateFieldNI("_set");
      return t1._collection$_length;
    },
    map$1(_, f) {
      var result, t2, t3, t4, _this = this,
        t1 = _this.$ti;
      t1._eval$1("1(1)")._as(f);
      result = _this._createSet$0();
      t2 = _this.__SetBuilder__set_A;
      t2 === $ && A.throwLateFieldNI("_set");
      t3 = t1._precomputed1;
      t4 = A._instanceType(t2);
      result.addAll$1(0, new A.EfficientLengthMappedIterable(t2, t4._bind$1(t3)._eval$1("1(2)")._as(f), t4._eval$1("@<1>")._bind$1(t3)._eval$1("EfficientLengthMappedIterable<1,2>")));
      _this._maybeCheckElements$1(result);
      t1._eval$1("Set<1>")._as(result);
      _this._setOwner = null;
      _this.__SetBuilder__set_A = result;
    },
    get$_safeSet() {
      var t1, t2, _this = this;
      if (_this._setOwner != null) {
        t1 = _this._createSet$0();
        t2 = _this.__SetBuilder__set_A;
        t2 === $ && A.throwLateFieldNI("_set");
        t1.addAll$1(0, t2);
        _this.__SetBuilder__set_A = _this.$ti._eval$1("Set<1>")._as(t1);
        _this._setOwner = null;
      }
      t1 = _this.__SetBuilder__set_A;
      t1 === $ && A.throwLateFieldNI("_set");
      return t1;
    },
    _createSet$0() {
      return A.LinkedHashSet_LinkedHashSet$_empty(this.$ti._precomputed1);
    },
    _maybeCheckElements$1(elements) {
      var t2, t3, element,
        t1 = this.$ti;
      t1._eval$1("Iterable<1>")._as(elements);
      if (!(!$.$get$isSoundMode() && !t1._precomputed1._is(null)))
        return;
      for (t2 = A._LinkedHashSetIterator$(elements, elements._collection$_modifications, A._instanceType(elements)._precomputed1), t1 = t1._precomputed1, t3 = t2.$ti._precomputed1; t2.moveNext$0();) {
        element = t2._collection$_current;
        if (t1._as(element == null ? t3._as(element) : element) == null)
          A.throwExpression(A.ArgumentError$("null element", null));
      }
    }
  };
  A.BuiltSetMultimap.prototype = {
    get$hashCode(_) {
      var t2, _this = this,
        t1 = _this._set_multimap$_hashCode;
      if (t1 == null) {
        t1 = _this._set_multimap$_map;
        t2 = A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<1>");
        t2 = A.MappedIterable_MappedIterable(new A.LinkedHashMapKeysIterable(t1, t2), t2._eval$1("int(Iterable.E)")._as(new A.BuiltSetMultimap_hashCode_closure(_this)), t2._eval$1("Iterable.E"), type$.int);
        t1 = A.List_List$_of(t2, A._instanceType(t2)._eval$1("Iterable.E"));
        t1.$flags = 1;
        t1 = t1;
        B.JSArray_methods.sort$0(t1);
        t1 = _this._set_multimap$_hashCode = A.hashObjects(t1);
      }
      return t1;
    },
    $eq(_, other) {
      var t1, t2, t3, t4, t5, key, result, t6, _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      if (!(other instanceof A._BuiltSetMultimap))
        return false;
      t1 = other._set_multimap$_map;
      t2 = _this._set_multimap$_map;
      if (t1.__js_helper$_length !== t2.__js_helper$_length)
        return false;
      if (other.get$hashCode(0) !== _this.get$hashCode(0))
        return false;
      for (t3 = _this.get$keys(), t4 = t3.__js_helper$_map, t3 = new A.LinkedHashMapKeyIterator(t4, t4._modifications, t4._first, t3.$ti._eval$1("LinkedHashMapKeyIterator<1>")), t4 = other._emptySet, t5 = _this._emptySet; t3.moveNext$0();) {
        key = t3.__js_helper$_current;
        result = t1.$index(0, key);
        t6 = result == null ? t4 : result;
        result = t2.$index(0, key);
        if (!t6.$eq(0, result == null ? t5 : result))
          return false;
      }
      return true;
    },
    toString$0(_) {
      return A.MapBase_mapToString(this._set_multimap$_map);
    },
    get$keys() {
      var t1 = this._set_multimap$_keys;
      if (t1 == null) {
        t1 = this._set_multimap$_map;
        t1 = this._set_multimap$_keys = new A.LinkedHashMapKeysIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<1>"));
      }
      return t1;
    },
    get$length(_) {
      return this._set_multimap$_map.__js_helper$_length;
    }
  };
  A.BuiltSetMultimap_hashCode_closure.prototype = {
    call$1(key) {
      var t2,
        t1 = this.$this;
      t1.$ti._precomputed1._as(key);
      t2 = J.get$hashCode$(key);
      t1 = J.get$hashCode$(t1._set_multimap$_map.$index(0, key));
      return A._finish(A._combine(A._combine(0, B.JSInt_methods.get$hashCode(t2)), B.JSInt_methods.get$hashCode(t1)));
    },
    $signature() {
      return this.$this.$ti._eval$1("int(1)");
    }
  };
  A._BuiltSetMultimap.prototype = {};
  A.SetMultimapBuilder.prototype = {
    build$0() {
      var key, t2, builtSet, t3, t4, _this = this,
        _s9_ = "_builtMap",
        t1 = _this._builtMapOwner;
      if (t1 == null) {
        t1 = _this.__SetMultimapBuilder__builderMap_A;
        t1 === $ && A.throwLateFieldNI("_builderMap");
        t1 = new A.LinkedHashMapKeyIterator(t1, t1._modifications, t1._first, A._instanceType(t1)._eval$1("LinkedHashMapKeyIterator<1>"));
        for (; t1.moveNext$0();) {
          key = t1.__js_helper$_current;
          t2 = _this.__SetMultimapBuilder__builderMap_A.$index(0, key);
          builtSet = t2._setOwner;
          if (builtSet == null) {
            t3 = t2._setFactory;
            t4 = t2.__SetBuilder__set_A;
            t4 === $ && A.throwLateFieldNI("_set");
            builtSet = t2._setOwner = new A._BuiltSet(t3, t4, A._instanceType(t2)._eval$1("_BuiltSet<1>"));
          }
          t2 = builtSet._set$_set._collection$_length;
          t3 = _this.__SetMultimapBuilder__builtMap_A;
          if (t2 === 0) {
            t3 === $ && A.throwLateFieldNI(_s9_);
            t3.remove$1(0, key);
          } else {
            t3 === $ && A.throwLateFieldNI(_s9_);
            t3.$indexSet(0, key, builtSet);
          }
        }
        t1 = _this.__SetMultimapBuilder__builtMap_A;
        t1 === $ && A.throwLateFieldNI(_s9_);
        t2 = _this.$ti;
        t2 = _this._builtMapOwner = new A._BuiltSetMultimap(t1, A.BuiltSet_BuiltSet$from(B.List_empty0, t2._rest[1]), t2._eval$1("_BuiltSetMultimap<1,2>"));
        t1 = t2;
      }
      return t1;
    },
    replace$1(multimap) {
      this._setWithCopyAndCheck$2(multimap.get$keys(), new A.SetMultimapBuilder_replace_closure(multimap));
    },
    _getValuesBuilder$1(key) {
      var t2, result, builtValues, _this = this,
        t1 = _this.$ti;
      t1._precomputed1._as(key);
      t2 = _this.__SetMultimapBuilder__builderMap_A;
      t2 === $ && A.throwLateFieldNI("_builderMap");
      result = t2.$index(0, key);
      if (result == null) {
        t2 = _this.__SetMultimapBuilder__builtMap_A;
        t2 === $ && A.throwLateFieldNI("_builtMap");
        builtValues = t2.$index(0, key);
        if (builtValues == null)
          result = A.SetBuilder_SetBuilder(t1._rest[1]);
        else {
          t1 = builtValues.$ti;
          t1._eval$1("_BuiltSet<1>")._as(builtValues);
          result = new A.SetBuilder(builtValues._setFactory, builtValues._set$_set, builtValues, t1._eval$1("SetBuilder<1>"));
        }
        _this.__SetMultimapBuilder__builderMap_A.$indexSet(0, key, result);
      }
      return result;
    },
    _setWithCopyAndCheck$2(keys, lookup) {
      var t1, t2, t3, t4, t5, t6, key, t7, value, t8, t9, _this = this;
      _this._builtMapOwner = null;
      t1 = _this.$ti;
      t2 = t1._precomputed1;
      t3 = t1._eval$1("BuiltSet<2>");
      t4 = t1._eval$1("Map<1,BuiltSet<2>>");
      _this.__SetMultimapBuilder__builtMap_A = t4._as(A.LinkedHashMap_LinkedHashMap$_empty(t2, t3));
      _this.__SetMultimapBuilder__builderMap_A = t1._eval$1("Map<1,SetBuilder<2>>")._as(A.LinkedHashMap_LinkedHashMap$_empty(t2, t1._eval$1("SetBuilder<2>")));
      for (t5 = keys.get$iterator(keys), t6 = type$.Iterable_dynamic, t1 = t1._rest[1]; t5.moveNext$0();) {
        key = t5.get$current();
        if (t2._is(key))
          for (t7 = J.get$iterator$ax(t6._as(lookup.call$1(key))); t7.moveNext$0();) {
            value = t7.get$current();
            if (t1._is(value)) {
              t2._as(key);
              t1._as(value);
              if (_this._builtMapOwner != null) {
                _this.__SetMultimapBuilder__builtMap_A = t4._as(A.LinkedHashMap_LinkedHashMap$from(_this.__SetMultimapBuilder__builtMap_A, t2, t3));
                _this._builtMapOwner = null;
              }
              _this._set_multimap$_checkKey$1(key);
              _this._set_multimap$_checkValue$1(value);
              t8 = _this._getValuesBuilder$1(key);
              t9 = t8.$ti._precomputed1;
              t9._as(value);
              if (!$.$get$isSoundMode() && !t9._is(null))
                if (value == null)
                  A.throwExpression(A.ArgumentError$("null element", null));
              t8.get$_safeSet().add$1(0, value);
            } else
              throw A.wrapException(A.ArgumentError$("map contained invalid value: " + A.S(value) + ", for key " + A.S(key), null));
          }
        else
          throw A.wrapException(A.ArgumentError$("map contained invalid key: " + A.S(key), null));
      }
    },
    _set_multimap$_checkKey$1(key) {
      var t1 = this.$ti._precomputed1;
      t1._as(key);
      if ($.$get$isSoundMode())
        return;
      if (t1._is(null))
        return;
      if (key == null)
        throw A.wrapException(A.ArgumentError$("invalid key: " + A.S(key), null));
    },
    _set_multimap$_checkValue$1(value) {
      var t1 = this.$ti._rest[1];
      t1._as(value);
      if ($.$get$isSoundMode())
        return;
      if (t1._is(null))
        return;
      if (value == null)
        throw A.wrapException(A.ArgumentError$("invalid value: " + A.S(value), null));
    }
  };
  A.SetMultimapBuilder_replace_closure.prototype = {
    call$1(k) {
      return this.multimap.$index(0, k);
    },
    $signature: 4
  };
  A.EnumClass.prototype = {
    toString$0(_) {
      return this.name;
    }
  };
  A.newBuiltValueToStringHelper_closure.prototype = {
    call$1(className) {
      var t1 = new A.StringBuffer("");
      t1._contents = className;
      t1._contents = className + " {\n";
      $._indentingBuiltValueToStringHelperIndent = $._indentingBuiltValueToStringHelperIndent + 2;
      return new A.IndentingBuiltValueToStringHelper(t1);
    },
    $signature: 42
  };
  A.IndentingBuiltValueToStringHelper.prototype = {
    add$2(_, field, value) {
      var t1, t2;
      if (value != null) {
        t1 = this._result;
        t1.toString;
        t2 = B.JSString_methods.$mul(" ", $._indentingBuiltValueToStringHelperIndent);
        t2 = (t1._contents += t2) + field;
        t1._contents = t2;
        t1._contents = t2 + "=";
        t2 = A.S(value);
        t1._contents = (t1._contents += t2) + ",\n";
      }
    },
    toString$0(_) {
      var t2, stringResult,
        t1 = $._indentingBuiltValueToStringHelperIndent - 2;
      $._indentingBuiltValueToStringHelperIndent = t1;
      t2 = this._result;
      t2.toString;
      t1 = B.JSString_methods.$mul(" ", t1);
      t2._contents = (t2._contents += t1) + "}";
      stringResult = J.toString$0$(this._result);
      this._result = null;
      return stringResult;
    }
  };
  A.BuiltValueNullFieldError.prototype = {
    toString$0(_) {
      return 'Tried to construct class "' + this.type + '" with null for non-nullable field "' + this.field + '".';
    }
  };
  A.BuiltValueNestedFieldError.prototype = {
    toString$0(_) {
      return 'Tried to build class "' + this.type + '" but nested builder for field "' + this.field + '" threw: ' + this.error;
    }
  };
  A.JsonObject.prototype = {
    toString$0(_) {
      return J.toString$0$(this.get$value());
    }
  };
  A.BoolJsonObject.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      if (!(other instanceof A.BoolJsonObject))
        return false;
      return this.value === other.value;
    },
    get$hashCode(_) {
      return B.JSBool_methods.get$hashCode(this.value);
    },
    get$value() {
      return this.value;
    }
  };
  A.ListJsonObject.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      if (!(other instanceof A.ListJsonObject))
        return false;
      return B.C_DeepCollectionEquality.equals$2(this.value, other.value);
    },
    get$hashCode(_) {
      return B.C_DeepCollectionEquality.hash$1(this.value);
    },
    get$value() {
      return this.value;
    }
  };
  A.MapJsonObject.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      if (!(other instanceof A.MapJsonObject))
        return false;
      return B.C_DeepCollectionEquality.equals$2(this.value, other.value);
    },
    get$hashCode(_) {
      return B.C_DeepCollectionEquality.hash$1(this.value);
    },
    get$value() {
      return this.value;
    }
  };
  A.NumJsonObject.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      if (!(other instanceof A.NumJsonObject))
        return false;
      return this.value === other.value;
    },
    get$hashCode(_) {
      return B.JSNumber_methods.get$hashCode(this.value);
    },
    get$value() {
      return this.value;
    }
  };
  A.StringJsonObject.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      if (!(other instanceof A.StringJsonObject))
        return false;
      return this.value === other.value;
    },
    get$hashCode(_) {
      return B.JSString_methods.get$hashCode(this.value);
    },
    get$value() {
      return this.value;
    }
  };
  A.Serializers_Serializers_closure.prototype = {
    call$0() {
      return A.ListBuilder_ListBuilder(B.List_empty0, type$.Object);
    },
    $signature: 39
  };
  A.Serializers_Serializers_closure0.prototype = {
    call$0() {
      var t1 = type$.Object;
      return A.ListMultimapBuilder_ListMultimapBuilder(t1, t1);
    },
    $signature: 38
  };
  A.Serializers_Serializers_closure1.prototype = {
    call$0() {
      var t1 = type$.Object;
      return A.MapBuilder_MapBuilder(t1, t1);
    },
    $signature: 36
  };
  A.Serializers_Serializers_closure2.prototype = {
    call$0() {
      return A.SetBuilder_SetBuilder(type$.Object);
    },
    $signature: 35
  };
  A.Serializers_Serializers_closure3.prototype = {
    call$0() {
      var t1 = type$.Object;
      return A.SetMultimapBuilder_SetMultimapBuilder(t1, t1);
    },
    $signature: 89
  };
  A.FullType.prototype = {
    $eq(_, other) {
      var t1, t2, t3, t4, i, t5, _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      if (!(other instanceof A.FullType))
        return false;
      if (_this.root != other.root)
        return false;
      if (_this.nullable !== other.nullable)
        return false;
      t1 = _this.parameters;
      t2 = t1.length;
      t3 = other.parameters;
      t4 = t3.length;
      if (t2 !== t4)
        return false;
      for (i = 0; i !== t2; ++i) {
        if (!(i < t2))
          return A.ioore(t1, i);
        t5 = t1[i];
        if (!(i < t4))
          return A.ioore(t3, i);
        if (!t5.$eq(0, t3[i]))
          return false;
      }
      return true;
    },
    get$hashCode(_) {
      var t1 = A.hashObjects(this.parameters);
      t1 = A._finish(A._combine(A._combine(0, J.get$hashCode$(this.root)), B.JSInt_methods.get$hashCode(t1)));
      return t1 ^ (this.nullable ? 1768878041 : 0);
    },
    toString$0(_) {
      var t2,
        t1 = this.root;
      if (t1 == null)
        t1 = "unspecified";
      else {
        t2 = this.parameters;
        t1 = t2.length === 0 ? A.FullType__getRawName(t1) : A.FullType__getRawName(t1) + "<" + B.JSArray_methods.join$1(t2, ", ") + ">";
        t1 += this.nullable ? "?" : "";
      }
      return t1;
    }
  };
  A.DeserializationError.prototype = {
    toString$0(_) {
      return "Deserializing to '" + this.type.toString$0(0) + "' failed due to: " + this.error.toString$0(0);
    }
  };
  A.BigIntSerializer.prototype = {
    serialize$3$specifiedType(serializers, bigInt, specifiedType) {
      return type$.BigInt._as(bigInt).toString$0(0);
    },
    serialize$2(serializers, bigInt) {
      return this.serialize$3$specifiedType(serializers, bigInt, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var result;
      A._asString(serialized);
      result = A._BigIntImpl__tryParse(serialized, null);
      if (result == null)
        A.throwExpression(A.FormatException$("Could not parse BigInt", serialized, null));
      return result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "BigInt";
    }
  };
  A.BoolSerializer.prototype = {
    serialize$3$specifiedType(serializers, boolean, specifiedType) {
      return A._asBool(boolean);
    },
    serialize$2(serializers, boolean) {
      return this.serialize$3$specifiedType(serializers, boolean, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      return A._asBool(serialized);
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "bool";
    }
  };
  A.BuiltJsonSerializers.prototype = {
    serialize$2$specifiedType(object, specifiedType) {
      var t1, t2, t3, t4, transformedObject, t5, result;
      for (t1 = this.serializerPlugins._list, t2 = A._arrayInstanceType(t1), t3 = t2._eval$1("ArrayIterator<1>"), t4 = new J.ArrayIterator(t1, t1.length, t3), t2 = t2._precomputed1, transformedObject = object; t4.moveNext$0();) {
        t5 = t4._current;
        transformedObject = (t5 == null ? t2._as(t5) : t5).beforeSerialize$2(transformedObject, specifiedType);
      }
      result = this._serialize$2(transformedObject, specifiedType);
      for (t1 = new J.ArrayIterator(t1, t1.length, t3); t1.moveNext$0();) {
        t3 = t1._current;
        result = (t3 == null ? t2._as(t3) : t3).afterSerialize$2(result, specifiedType);
      }
      return result;
    },
    serialize$1(object) {
      return this.serialize$2$specifiedType(object, B.FullType_null_List_empty_false);
    },
    _serialize$2(object, specifiedType) {
      var serializer, result, _this = this,
        _s62_ = string$.serial,
        t1 = specifiedType.root;
      if (t1 == null) {
        t1 = J.getInterceptor$(object);
        serializer = _this.serializerForType$1(t1.get$runtimeType(object));
        if (serializer == null)
          throw A.wrapException(A.StateError$(A._noSerializerMessageFor(t1.get$runtimeType(object).toString$0(0))));
        if (type$.StructuredSerializer_dynamic._is(serializer)) {
          result = [serializer.get$wireName()];
          B.JSArray_methods.addAll$1(result, serializer.serialize$2(_this, object));
          return result;
        } else if (type$.PrimitiveSerializer_dynamic._is(serializer))
          return object == null ? [serializer.get$wireName(), null] : A._setArrayType([serializer.get$wireName(), serializer.serialize$2(_this, object)], type$.JSArray_Object);
        else
          throw A.wrapException(A.StateError$(_s62_));
      } else {
        serializer = _this.serializerForType$1(t1);
        if (serializer == null)
          return _this.serialize$1(object);
        if (type$.StructuredSerializer_dynamic._is(serializer))
          return object == null ? null : J.toList$0$ax(serializer.serialize$3$specifiedType(_this, object, specifiedType));
        else if (type$.PrimitiveSerializer_dynamic._is(serializer))
          return object == null ? null : serializer.serialize$3$specifiedType(_this, object, specifiedType);
        else
          throw A.wrapException(A.StateError$(_s62_));
      }
    },
    deserialize$2$specifiedType(object, specifiedType) {
      var t1, t2, t3, t4, transformedObject, t5, result;
      for (t1 = this.serializerPlugins._list, t2 = A._arrayInstanceType(t1), t3 = t2._eval$1("ArrayIterator<1>"), t4 = new J.ArrayIterator(t1, t1.length, t3), t2 = t2._precomputed1, transformedObject = object; t4.moveNext$0();) {
        t5 = t4._current;
        transformedObject = (t5 == null ? t2._as(t5) : t5).beforeDeserialize$2(transformedObject, specifiedType);
      }
      result = this._deserialize$3(object, transformedObject, specifiedType);
      for (t1 = new J.ArrayIterator(t1, t1.length, t3); t1.moveNext$0();) {
        t3 = t1._current;
        result = (t3 == null ? t2._as(t3) : t3).afterDeserialize$2(result, specifiedType);
      }
      return result;
    },
    deserialize$1(object) {
      return this.deserialize$2$specifiedType(object, B.FullType_null_List_empty_false);
    },
    _deserialize$3(objectBeforePlugins, object, specifiedType) {
      var serializer, error, primitive, error0, serializer0, error1, error2, wireName, exception, _this = this,
        _s62_ = string$.serial,
        t1 = specifiedType.root;
      if (t1 == null) {
        type$.List_nullable_Object._as(object);
        t1 = J.getInterceptor$ax(object);
        wireName = A._asString(t1.get$first(object));
        serializer = _this._wireNameToSerializer._map$_map.$index(0, wireName);
        if (serializer == null)
          throw A.wrapException(A.StateError$(A._noSerializerMessageFor(wireName)));
        if (type$.StructuredSerializer_dynamic._is(serializer))
          try {
            t1 = serializer.deserialize$2(_this, t1.sublist$1(object, 1));
            return t1;
          } catch (exception) {
            t1 = A.unwrapException(exception);
            if (type$.Error._is(t1)) {
              error = t1;
              throw A.wrapException(A.DeserializationError_DeserializationError(object, specifiedType, error));
            } else
              throw exception;
          }
        else if (type$.PrimitiveSerializer_dynamic._is(serializer))
          try {
            primitive = t1.$index(object, 1);
            t1 = primitive == null ? null : serializer.deserialize$2(_this, primitive);
            return t1;
          } catch (exception) {
            t1 = A.unwrapException(exception);
            if (type$.Error._is(t1)) {
              error0 = t1;
              throw A.wrapException(A.DeserializationError_DeserializationError(object, specifiedType, error0));
            } else
              throw exception;
          }
        else
          throw A.wrapException(A.StateError$(_s62_));
      } else {
        serializer0 = _this.serializerForType$1(t1);
        if (serializer0 == null)
          if (type$.List_dynamic._is(object) && typeof J.get$first$ax(object) == "string")
            return _this.deserialize$1(objectBeforePlugins);
          else
            throw A.wrapException(A.StateError$(A._noSerializerMessageFor(t1.toString$0(0))));
        if (type$.StructuredSerializer_dynamic._is(serializer0))
          try {
            t1 = object == null ? null : serializer0.deserialize$3$specifiedType(_this, type$.Iterable_nullable_Object._as(object), specifiedType);
            return t1;
          } catch (exception) {
            t1 = A.unwrapException(exception);
            if (type$.Error._is(t1)) {
              error1 = t1;
              throw A.wrapException(A.DeserializationError_DeserializationError(object, specifiedType, error1));
            } else
              throw exception;
          }
        else if (type$.PrimitiveSerializer_dynamic._is(serializer0))
          try {
            t1 = object == null ? null : serializer0.deserialize$3$specifiedType(_this, object, specifiedType);
            return t1;
          } catch (exception) {
            t1 = A.unwrapException(exception);
            if (type$.Error._is(t1)) {
              error2 = t1;
              throw A.wrapException(A.DeserializationError_DeserializationError(object, specifiedType, error2));
            } else
              throw exception;
          }
        else
          throw A.wrapException(A.StateError$(_s62_));
      }
    },
    serializerForType$1(type) {
      var t1 = this._typeToSerializer._map$_map.$index(0, type);
      return t1 == null ? this._typeNameToSerializer._map$_map.$index(0, A._getRawName(type)) : t1;
    },
    newBuilder$1(fullType) {
      var t1,
        builderFactory = this.builderFactories._map$_map.$index(0, fullType);
      if (builderFactory == null)
        this._throwMissingBuilderFactory$1(fullType);
      t1 = builderFactory.call$0();
      return t1 == null ? type$.Object._as(t1) : t1;
    },
    _throwMissingBuilderFactory$1(fullType) {
      throw A.wrapException(A.StateError$("No builder factory for " + fullType.toString$0(0) + ". Fix by adding one, see SerializersBuilder.addBuilderFactory."));
    },
    $isSerializers: 1
  };
  A.BuiltJsonSerializersBuilder.prototype = {
    add$1(_, serializer) {
      var t1, t2, t3, t4, t5, t6, $name, genericsStart, t7;
      if (!type$.StructuredSerializer_dynamic._is(serializer) && !type$.PrimitiveSerializer_dynamic._is(serializer))
        throw A.wrapException(A.ArgumentError$(string$.serial, null));
      this._wireNameToSerializer.$indexSet(0, serializer.get$wireName(), serializer);
      for (t1 = J.get$iterator$ax(serializer.get$types()), t2 = this._typeToSerializer, t3 = t2.$ti, t4 = t3._precomputed1, t3 = t3._rest[1], t5 = this._typeNameToSerializer; t1.moveNext$0();) {
        t6 = t1.get$current();
        t4._as(t6);
        t3._as(serializer);
        t2._checkKey$1(t6);
        t2._checkValue$1(serializer);
        t2.get$_safeMap().$indexSet(0, t6, serializer);
        $name = t6.toString$0(0);
        genericsStart = B.JSString_methods.indexOf$1($name, "<");
        t6 = genericsStart === -1 ? $name : B.JSString_methods.substring$2($name, 0, genericsStart);
        t7 = t5.$ti;
        t7._precomputed1._as(t6);
        t7._rest[1]._as(serializer);
        t5._checkKey$1(t6);
        t5._checkValue$1(serializer);
        t5.get$_safeMap().$indexSet(0, t6, serializer);
      }
    },
    addBuilderFactory$2(types, $function) {
      var t2, t3,
        t1 = this._builderFactories;
      t1.$indexSet(0, types, $function);
      t2 = types.root;
      t3 = types.parameters;
      t1.$indexSet(0, !types.nullable ? new A.FullType(t2, t3, true) : new A.FullType(t2, t3, false), $function);
    },
    build$0() {
      var _this = this;
      return new A.BuiltJsonSerializers(_this._typeToSerializer.build$0(), _this._wireNameToSerializer.build$0(), _this._typeNameToSerializer.build$0(), _this._builderFactories.build$0(), _this._plugins.build$0());
    }
  };
  A.BuiltListMultimapSerializer.prototype = {
    serialize$3$specifiedType(serializers, builtListMultimap, specifiedType) {
      var t1, t2, t3, keyType, valueType, result, key, result0, t4, t5, t6, t7;
      type$.BuiltListMultimap_dynamic_dynamic._as(builtListMultimap);
      if (!(specifiedType.root == null || specifiedType.parameters.length === 0))
        if (!serializers.builderFactories._map$_map.containsKey$1(specifiedType))
          serializers._throwMissingBuilderFactory$1(specifiedType);
      t1 = specifiedType.parameters;
      t2 = t1.length;
      t3 = t2 === 0;
      if (t3)
        keyType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        keyType = t1[0];
      }
      if (t3)
        valueType = B.FullType_null_List_empty_false;
      else {
        if (1 >= t2)
          return A.ioore(t1, 1);
        valueType = t1[1];
      }
      result = [];
      for (t1 = builtListMultimap.get$keys(), t2 = t1.__js_helper$_map, t1 = new A.LinkedHashMapKeyIterator(t2, t2._modifications, t2._first, t1.$ti._eval$1("LinkedHashMapKeyIterator<1>")), t2 = builtListMultimap._list_multimap$_map, t3 = builtListMultimap._emptyList; t1.moveNext$0();) {
        key = t1.__js_helper$_current;
        result.push(serializers.serialize$2$specifiedType(key, keyType));
        result0 = t2.$index(0, key);
        t4 = result0 == null ? t3 : result0;
        t5 = t4._list;
        t6 = A._arrayInstanceType(t5);
        t7 = t6._eval$1("MappedListIterable<1,Object?>");
        t4 = A.List_List$_of(new A.MappedListIterable(t5, t6._eval$1("Object?(1)")._as(t4.$ti._eval$1("Object?(1)")._as(new A.BuiltListMultimapSerializer_serialize_closure(serializers, valueType))), t7), t7._eval$1("ListIterable.E"));
        result.push(t4);
      }
      return result;
    },
    serialize$2(serializers, builtListMultimap) {
      return this.serialize$3$specifiedType(serializers, builtListMultimap, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var isUnderspecified, t2, t3, t4, keyType, valueType, result, t5, t6, t7, i, key, values, t8, value, t9, t10, t11, t12,
        t1 = type$.Iterable_nullable_Object;
      t1._as(serialized);
      isUnderspecified = specifiedType.root == null || specifiedType.parameters.length === 0;
      t2 = specifiedType.parameters;
      t3 = t2.length;
      t4 = t3 === 0;
      if (t4)
        keyType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t3)
          return A.ioore(t2, 0);
        keyType = t2[0];
      }
      if (t4)
        valueType = B.FullType_null_List_empty_false;
      else {
        if (1 >= t3)
          return A.ioore(t2, 1);
        valueType = t2[1];
      }
      if (isUnderspecified) {
        t2 = type$.Object;
        result = A.ListMultimapBuilder_ListMultimapBuilder(t2, t2);
      } else
        result = type$.ListMultimapBuilder_dynamic_dynamic._as(serializers.newBuilder$1(specifiedType));
      t2 = J.getInterceptor$asx(serialized);
      if (B.JSInt_methods.$mod(t2.get$length(serialized), 2) === 1)
        throw A.wrapException(A.ArgumentError$("odd length", null));
      for (t3 = result.$ti, t4 = t3._precomputed1, t5 = t3._rest[1], t6 = t3._eval$1("BuiltList<2>"), t3 = t3._eval$1("Map<1,BuiltList<2>>"), t7 = type$.nullable_Object, i = 0; i !== t2.get$length(serialized); i += 2) {
        key = serializers.deserialize$2$specifiedType(t2.elementAt$1(serialized, i), keyType);
        values = J.map$1$1$ax(t1._as(t2.elementAt$1(serialized, i + 1)), new A.BuiltListMultimapSerializer_deserialize_closure(serializers, valueType), t7);
        for (t8 = values.get$iterator(values); t8.moveNext$0();) {
          value = t8.get$current();
          t4._as(key);
          t5._as(value);
          if (result._list_multimap$_builtMapOwner != null) {
            t9 = result.__ListMultimapBuilder__builtMap_A;
            t9 === $ && A.throwLateFieldNI("_builtMap");
            result.__ListMultimapBuilder__builtMap_A = t3._as(A.LinkedHashMap_LinkedHashMap$from(t9, t4, t6));
            result._list_multimap$_builtMapOwner = null;
          }
          result._list_multimap$_checkKey$1(key);
          result._list_multimap$_checkValue$1(value);
          t9 = result._list_multimap$_getValuesBuilder$1(key);
          t10 = t9.$ti;
          t11 = t10._precomputed1;
          t11._as(value);
          if (!$.$get$isSoundMode() && !t11._is(null))
            if (value == null)
              A.throwExpression(A.ArgumentError$("null element", null));
          if (t9._listOwner != null) {
            t12 = t9.__ListBuilder__list_A;
            t12 === $ && A.throwLateFieldNI("_list");
            t9.__ListBuilder__list_A = t10._eval$1("List<1>")._as(A.List_List$from(t12, true, t11));
            t9._listOwner = null;
          }
          t9 = t9.__ListBuilder__list_A;
          t9 === $ && A.throwLateFieldNI("_list");
          B.JSArray_methods.add$1(t9, value);
        }
      }
      return result.build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "listMultimap";
    }
  };
  A.BuiltListMultimapSerializer_serialize_closure.prototype = {
    call$1(value) {
      return this.serializers.serialize$2$specifiedType(value, this.valueType);
    },
    $signature: 3
  };
  A.BuiltListMultimapSerializer_deserialize_closure.prototype = {
    call$1(value) {
      return this.serializers.deserialize$2$specifiedType(value, this.valueType);
    },
    $signature: 11
  };
  A.BuiltListSerializer.prototype = {
    serialize$3$specifiedType(serializers, builtList, specifiedType) {
      var t1, t2, elementType;
      type$.BuiltList_dynamic._as(builtList);
      if (!(specifiedType.root == null || specifiedType.parameters.length === 0))
        if (!serializers.builderFactories._map$_map.containsKey$1(specifiedType))
          serializers._throwMissingBuilderFactory$1(specifiedType);
      t1 = specifiedType.parameters;
      t2 = t1.length;
      if (t2 === 0)
        elementType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        elementType = t1[0];
      }
      t1 = builtList._list;
      t2 = A._arrayInstanceType(t1);
      return new A.MappedListIterable(t1, t2._eval$1("Object?(1)")._as(builtList.$ti._eval$1("Object?(1)")._as(new A.BuiltListSerializer_serialize_closure(serializers, elementType))), t2._eval$1("MappedListIterable<1,Object?>"));
    },
    serialize$2(serializers, builtList) {
      return this.serialize$3$specifiedType(serializers, builtList, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var isUnderspecified, t1, t2, elementType, result;
      type$.Iterable_dynamic._as(serialized);
      isUnderspecified = specifiedType.root == null || specifiedType.parameters.length === 0;
      t1 = specifiedType.parameters;
      t2 = t1.length;
      if (t2 === 0)
        elementType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        elementType = t1[0];
      }
      result = isUnderspecified ? A.ListBuilder_ListBuilder(B.List_empty0, type$.Object) : type$.ListBuilder_dynamic._as(serializers.newBuilder$1(specifiedType));
      result.replace$1(J.map$1$1$ax(serialized, new A.BuiltListSerializer_deserialize_closure(serializers, elementType), type$.dynamic));
      return result.build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "list";
    }
  };
  A.BuiltListSerializer_serialize_closure.prototype = {
    call$1(item) {
      return this.serializers.serialize$2$specifiedType(item, this.elementType);
    },
    $signature: 3
  };
  A.BuiltListSerializer_deserialize_closure.prototype = {
    call$1(item) {
      return this.serializers.deserialize$2$specifiedType(item, this.elementType);
    },
    $signature: 3
  };
  A.BuiltMapSerializer.prototype = {
    serialize$3$specifiedType(serializers, builtMap, specifiedType) {
      var t1, t2, t3, keyType, valueType, result, key;
      type$.BuiltMap_dynamic_dynamic._as(builtMap);
      if (!(specifiedType.root == null || specifiedType.parameters.length === 0))
        if (!serializers.builderFactories._map$_map.containsKey$1(specifiedType))
          serializers._throwMissingBuilderFactory$1(specifiedType);
      t1 = specifiedType.parameters;
      t2 = t1.length;
      t3 = t2 === 0;
      if (t3)
        keyType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        keyType = t1[0];
      }
      if (t3)
        valueType = B.FullType_null_List_empty_false;
      else {
        if (1 >= t2)
          return A.ioore(t1, 1);
        valueType = t1[1];
      }
      result = [];
      for (t1 = builtMap.get$keys(), t2 = t1.__js_helper$_map, t1 = new A.LinkedHashMapKeyIterator(t2, t2._modifications, t2._first, t1.$ti._eval$1("LinkedHashMapKeyIterator<1>")), t2 = builtMap._map$_map; t1.moveNext$0();) {
        key = t1.__js_helper$_current;
        result.push(serializers.serialize$2$specifiedType(key, keyType));
        result.push(serializers.serialize$2$specifiedType(t2.$index(0, key), valueType));
      }
      return result;
    },
    serialize$2(serializers, builtMap) {
      return this.serialize$3$specifiedType(serializers, builtMap, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var isUnderspecified, t1, t2, t3, keyType, valueType, result, i, key, value;
      type$.Iterable_dynamic._as(serialized);
      isUnderspecified = specifiedType.root == null || specifiedType.parameters.length === 0;
      t1 = specifiedType.parameters;
      t2 = t1.length;
      t3 = t2 === 0;
      if (t3)
        keyType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        keyType = t1[0];
      }
      if (t3)
        valueType = B.FullType_null_List_empty_false;
      else {
        if (1 >= t2)
          return A.ioore(t1, 1);
        valueType = t1[1];
      }
      if (isUnderspecified) {
        t1 = type$.Object;
        result = A.MapBuilder_MapBuilder(t1, t1);
      } else
        result = type$.MapBuilder_dynamic_dynamic._as(serializers.newBuilder$1(specifiedType));
      t1 = J.getInterceptor$asx(serialized);
      if (B.JSInt_methods.$mod(t1.get$length(serialized), 2) === 1)
        throw A.wrapException(A.ArgumentError$("odd length", null));
      for (t2 = result.$ti, t3 = t2._precomputed1, t2 = t2._rest[1], i = 0; i !== t1.get$length(serialized); i += 2) {
        key = serializers.deserialize$2$specifiedType(t1.elementAt$1(serialized, i), keyType);
        value = serializers.deserialize$2$specifiedType(t1.elementAt$1(serialized, i + 1), valueType);
        t3._as(key);
        t2._as(value);
        result._checkKey$1(key);
        result._checkValue$1(value);
        result.get$_safeMap().$indexSet(0, key, value);
      }
      return result.build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "map";
    }
  };
  A.BuiltSetMultimapSerializer.prototype = {
    serialize$3$specifiedType(serializers, builtSetMultimap, specifiedType) {
      var t1, t2, t3, keyType, valueType, result, key, result0, t4, t5, t6, t7;
      type$.BuiltSetMultimap_dynamic_dynamic._as(builtSetMultimap);
      if (!(specifiedType.root == null || specifiedType.parameters.length === 0))
        if (!serializers.builderFactories._map$_map.containsKey$1(specifiedType))
          serializers._throwMissingBuilderFactory$1(specifiedType);
      t1 = specifiedType.parameters;
      t2 = t1.length;
      t3 = t2 === 0;
      if (t3)
        keyType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        keyType = t1[0];
      }
      if (t3)
        valueType = B.FullType_null_List_empty_false;
      else {
        if (1 >= t2)
          return A.ioore(t1, 1);
        valueType = t1[1];
      }
      result = [];
      for (t1 = builtSetMultimap.get$keys(), t2 = t1.__js_helper$_map, t1 = new A.LinkedHashMapKeyIterator(t2, t2._modifications, t2._first, t1.$ti._eval$1("LinkedHashMapKeyIterator<1>")), t2 = builtSetMultimap._set_multimap$_map, t3 = builtSetMultimap._emptySet; t1.moveNext$0();) {
        key = t1.__js_helper$_current;
        result.push(serializers.serialize$2$specifiedType(key, keyType));
        result0 = t2.$index(0, key);
        t4 = result0 == null ? t3 : result0;
        t5 = t4._set$_set;
        t6 = A._instanceType(t5);
        t7 = t6._eval$1("EfficientLengthMappedIterable<1,Object?>");
        t4 = A.List_List$_of(new A.EfficientLengthMappedIterable(t5, t6._eval$1("Object?(1)")._as(t4.$ti._eval$1("Object?(1)")._as(new A.BuiltSetMultimapSerializer_serialize_closure(serializers, valueType))), t7), t7._eval$1("Iterable.E"));
        result.push(t4);
      }
      return result;
    },
    serialize$2(serializers, builtSetMultimap) {
      return this.serialize$3$specifiedType(serializers, builtSetMultimap, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var isUnderspecified, t2, t3, t4, keyType, valueType, result, t5, t6, i, key, t7, value, t8, t9,
        t1 = type$.Iterable_dynamic;
      t1._as(serialized);
      isUnderspecified = specifiedType.root == null || specifiedType.parameters.length === 0;
      t2 = specifiedType.parameters;
      t3 = t2.length;
      t4 = t3 === 0;
      if (t4)
        keyType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t3)
          return A.ioore(t2, 0);
        keyType = t2[0];
      }
      if (t4)
        valueType = B.FullType_null_List_empty_false;
      else {
        if (1 >= t3)
          return A.ioore(t2, 1);
        valueType = t2[1];
      }
      if (isUnderspecified) {
        t2 = type$.Object;
        result = A.SetMultimapBuilder_SetMultimapBuilder(t2, t2);
      } else
        result = type$.SetMultimapBuilder_dynamic_dynamic._as(serializers.newBuilder$1(specifiedType));
      t2 = J.getInterceptor$asx(serialized);
      if (B.JSInt_methods.$mod(t2.get$length(serialized), 2) === 1)
        throw A.wrapException(A.ArgumentError$("odd length", null));
      for (t3 = result.$ti, t4 = t3._precomputed1, t5 = t3._rest[1], t6 = t3._eval$1("BuiltSet<2>"), t3 = t3._eval$1("Map<1,BuiltSet<2>>"), i = 0; i !== t2.get$length(serialized); i += 2) {
        key = serializers.deserialize$2$specifiedType(t2.elementAt$1(serialized, i), keyType);
        for (t7 = t1._as(J.map$1$ax(t2.elementAt$1(serialized, i + 1), new A.BuiltSetMultimapSerializer_deserialize_closure(serializers, valueType))), t7 = t7.get$iterator(t7); t7.moveNext$0();) {
          value = t7.get$current();
          t4._as(key);
          t5._as(value);
          if (result._builtMapOwner != null) {
            t8 = result.__SetMultimapBuilder__builtMap_A;
            t8 === $ && A.throwLateFieldNI("_builtMap");
            result.__SetMultimapBuilder__builtMap_A = t3._as(A.LinkedHashMap_LinkedHashMap$from(t8, t4, t6));
            result._builtMapOwner = null;
          }
          result._set_multimap$_checkKey$1(key);
          result._set_multimap$_checkValue$1(value);
          t8 = result._getValuesBuilder$1(key);
          t9 = t8.$ti._precomputed1;
          t9._as(value);
          if (!$.$get$isSoundMode() && !t9._is(null))
            if (value == null)
              A.throwExpression(A.ArgumentError$("null element", null));
          t8.get$_safeSet().add$1(0, value);
        }
      }
      return result.build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "setMultimap";
    }
  };
  A.BuiltSetMultimapSerializer_serialize_closure.prototype = {
    call$1(value) {
      return this.serializers.serialize$2$specifiedType(value, this.valueType);
    },
    $signature: 3
  };
  A.BuiltSetMultimapSerializer_deserialize_closure.prototype = {
    call$1(value) {
      return this.serializers.deserialize$2$specifiedType(value, this.valueType);
    },
    $signature: 3
  };
  A.BuiltSetSerializer.prototype = {
    serialize$3$specifiedType(serializers, builtSet, specifiedType) {
      var t1, t2, elementType;
      type$.BuiltSet_dynamic._as(builtSet);
      if (!(specifiedType.root == null || specifiedType.parameters.length === 0))
        if (!serializers.builderFactories._map$_map.containsKey$1(specifiedType))
          serializers._throwMissingBuilderFactory$1(specifiedType);
      t1 = specifiedType.parameters;
      t2 = t1.length;
      if (t2 === 0)
        elementType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        elementType = t1[0];
      }
      t1 = builtSet._set$_set;
      t2 = A._instanceType(t1);
      return new A.EfficientLengthMappedIterable(t1, t2._eval$1("Object?(1)")._as(builtSet.$ti._eval$1("Object?(1)")._as(new A.BuiltSetSerializer_serialize_closure(serializers, elementType))), t2._eval$1("EfficientLengthMappedIterable<1,Object?>"));
    },
    serialize$2(serializers, builtSet) {
      return this.serialize$3$specifiedType(serializers, builtSet, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var isUnderspecified, t1, t2, elementType, result;
      type$.Iterable_dynamic._as(serialized);
      isUnderspecified = specifiedType.root == null || specifiedType.parameters.length === 0;
      t1 = specifiedType.parameters;
      t2 = t1.length;
      if (t2 === 0)
        elementType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        elementType = t1[0];
      }
      result = isUnderspecified ? A.SetBuilder_SetBuilder(type$.Object) : type$.SetBuilder_dynamic._as(serializers.newBuilder$1(specifiedType));
      result.replace$1(J.map$1$1$ax(serialized, new A.BuiltSetSerializer_deserialize_closure(serializers, elementType), type$.dynamic));
      return result.build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "set";
    }
  };
  A.BuiltSetSerializer_serialize_closure.prototype = {
    call$1(item) {
      return this.serializers.serialize$2$specifiedType(item, this.elementType);
    },
    $signature: 3
  };
  A.BuiltSetSerializer_deserialize_closure.prototype = {
    call$1(item) {
      return this.serializers.deserialize$2$specifiedType(item, this.elementType);
    },
    $signature: 3
  };
  A.DateTimeSerializer.prototype = {
    serialize$3$specifiedType(serializers, dateTime, specifiedType) {
      type$.DateTime._as(dateTime);
      if (!dateTime.isUtc)
        throw A.wrapException(A.ArgumentError$value(dateTime, "dateTime", "Must be in utc for serialization."));
      return 1000 * dateTime._value + dateTime._microsecond;
    },
    serialize$2(serializers, dateTime) {
      return this.serialize$3$specifiedType(serializers, dateTime, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, t2;
      A._asInt(serialized);
      t1 = B.JSInt_methods.$mod(serialized, 1000);
      t2 = B.JSInt_methods._tdivFast$1(serialized - t1, 1000);
      if (t2 < -864e13 || t2 > 864e13)
        A.throwExpression(A.RangeError$range(t2, -864e13, 864e13, "millisecondsSinceEpoch", null));
      if (t2 === 864e13 && t1 !== 0)
        A.throwExpression(A.ArgumentError$value(t1, "microsecond", "Time including microseconds is outside valid range"));
      A.checkNotNullable(true, "isUtc", type$.bool);
      return new A.DateTime(t2, t1, true);
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "DateTime";
    }
  };
  A.DoubleSerializer.prototype = {
    serialize$3$specifiedType(serializers, aDouble, specifiedType) {
      A._asDouble(aDouble);
      if (isNaN(aDouble))
        return "NaN";
      else if (aDouble == 1 / 0 || aDouble == -1 / 0)
        return B.JSNumber_methods.get$isNegative(aDouble) ? "-INF" : "INF";
      else
        return aDouble;
    },
    serialize$2(serializers, aDouble) {
      return this.serialize$3$specifiedType(serializers, aDouble, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1 = J.getInterceptor$(serialized);
      if (t1.$eq(serialized, "NaN"))
        return 0 / 0;
      else if (t1.$eq(serialized, "-INF"))
        return -1 / 0;
      else if (t1.$eq(serialized, "INF"))
        return 1 / 0;
      else
        return A._asNum(serialized);
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "double";
    }
  };
  A.DurationSerializer.prototype = {
    serialize$3$specifiedType(serializers, duration, specifiedType) {
      return type$.Duration._as(duration)._duration;
    },
    serialize$2(serializers, duration) {
      return this.serialize$3$specifiedType(serializers, duration, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      return A.Duration$(A._asInt(serialized), 0);
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "Duration";
    }
  };
  A.Int32Serializer.prototype = {
    serialize$3$specifiedType(serializers, int32, specifiedType) {
      return type$.Int32._as(int32)._i;
    },
    serialize$2(serializers, int32) {
      return this.serialize$3$specifiedType(serializers, int32, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      A._asInt(serialized);
      return new A.Int32((serialized & 2147483647) - ((serialized & 2147483648) >>> 0));
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "Int32";
    }
  };
  A.Int64Serializer.prototype = {
    serialize$3$specifiedType(serializers, int64, specifiedType) {
      return type$.Int64._as(int64)._toRadixString$1(10);
    },
    serialize$2(serializers, int64) {
      return this.serialize$3$specifiedType(serializers, int64, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1 = A.Int64__parseRadix(A._asString(serialized), 10, true);
      t1.toString;
      return t1;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "Int64";
    }
  };
  A.IntSerializer.prototype = {
    serialize$3$specifiedType(serializers, integer, specifiedType) {
      return A._asInt(integer);
    },
    serialize$2(serializers, integer) {
      return this.serialize$3$specifiedType(serializers, integer, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      return A._asInt(serialized);
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "int";
    }
  };
  A.JsonObjectSerializer.prototype = {
    serialize$3$specifiedType(serializers, jsonObject, specifiedType) {
      return type$.JsonObject._as(jsonObject).get$value();
    },
    serialize$2(serializers, jsonObject) {
      return this.serialize$3$specifiedType(serializers, jsonObject, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      return A.JsonObject_JsonObject(serialized);
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "JsonObject";
    }
  };
  A.ListSerializer.prototype = {
    serialize$3$specifiedType(serializers, list, specifiedType) {
      var t1, t2, elementType;
      type$.List_dynamic._as(list);
      if (!(specifiedType.root == null || specifiedType.parameters.length === 0))
        if (!serializers.builderFactories._map$_map.containsKey$1(specifiedType))
          serializers._throwMissingBuilderFactory$1(specifiedType);
      t1 = specifiedType.parameters;
      t2 = t1.length;
      if (t2 === 0)
        elementType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        elementType = t1[0];
      }
      return J.map$1$1$ax(list, new A.ListSerializer_serialize_closure(serializers, elementType), type$.nullable_Object);
    },
    serialize$2(serializers, list) {
      return this.serialize$3$specifiedType(serializers, list, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var isUnderspecified, t1, t2, elementType, result;
      type$.Iterable_dynamic._as(serialized);
      isUnderspecified = specifiedType.root == null || specifiedType.parameters.length === 0;
      t1 = specifiedType.parameters;
      t2 = t1.length;
      if (t2 === 0)
        elementType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        elementType = t1[0];
      }
      result = isUnderspecified ? A._setArrayType([], type$.JSArray_Object) : type$.List_dynamic._as(serializers.newBuilder$1(specifiedType));
      for (t1 = J.get$iterator$ax(serialized), t2 = J.getInterceptor$ax(result); t1.moveNext$0();)
        t2.add$1(result, serializers.deserialize$2$specifiedType(t1.get$current(), elementType));
      return result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "List";
    }
  };
  A.ListSerializer_serialize_closure.prototype = {
    call$1(item) {
      return this.serializers.serialize$2$specifiedType(item, this.elementType);
    },
    $signature: 3
  };
  A.MapSerializer.prototype = {
    serialize$3$specifiedType(serializers, $Map, specifiedType) {
      var t1, t2, t3, keyType, valueType, result, key;
      type$.Map_dynamic_dynamic._as($Map);
      if (!(specifiedType.root == null || specifiedType.parameters.length === 0))
        if (!serializers.builderFactories._map$_map.containsKey$1(specifiedType))
          serializers._throwMissingBuilderFactory$1(specifiedType);
      t1 = specifiedType.parameters;
      t2 = t1.length;
      t3 = t2 === 0;
      if (t3)
        keyType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        keyType = t1[0];
      }
      if (t3)
        valueType = B.FullType_null_List_empty_false;
      else {
        if (1 >= t2)
          return A.ioore(t1, 1);
        valueType = t1[1];
      }
      result = [];
      for (t1 = $Map.get$keys(), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
        key = t1.get$current();
        result.push(serializers.serialize$2$specifiedType(key, keyType));
        result.push(serializers.serialize$2$specifiedType($Map.$index(0, key), valueType));
      }
      return result;
    },
    serialize$2(serializers, $Map) {
      return this.serialize$3$specifiedType(serializers, $Map, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var isUnderspecified, t1, t2, t3, keyType, valueType, result, i;
      type$.Iterable_dynamic._as(serialized);
      isUnderspecified = specifiedType.root == null || specifiedType.parameters.length === 0;
      t1 = specifiedType.parameters;
      t2 = t1.length;
      t3 = t2 === 0;
      if (t3)
        keyType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        keyType = t1[0];
      }
      if (t3)
        valueType = B.FullType_null_List_empty_false;
      else {
        if (1 >= t2)
          return A.ioore(t1, 1);
        valueType = t1[1];
      }
      if (isUnderspecified) {
        t1 = type$.Object;
        result = A.LinkedHashMap_LinkedHashMap$_empty(t1, t1);
      } else
        result = type$.Map_dynamic_dynamic._as(serializers.newBuilder$1(specifiedType));
      t1 = J.getInterceptor$asx(serialized);
      if (B.JSInt_methods.$mod(t1.get$length(serialized), 2) === 1)
        throw A.wrapException(A.ArgumentError$("odd length", null));
      for (i = 0; i !== t1.get$length(serialized); i += 2)
        result.$indexSet(0, serializers.deserialize$2$specifiedType(t1.elementAt$1(serialized, i), keyType), serializers.deserialize$2$specifiedType(t1.elementAt$1(serialized, i + 1), valueType));
      return result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "Map";
    }
  };
  A.NullSerializer.prototype = {
    serialize$3$specifiedType(serializers, value, specifiedType) {
      type$.Null._as(value);
      throw A.wrapException(A.UnimplementedError$(null));
    },
    serialize$2(serializers, value) {
      return this.serialize$3$specifiedType(serializers, value, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      throw A.wrapException(A.UnimplementedError$(null));
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "Null";
    }
  };
  A.NumSerializer.prototype = {
    serialize$3$specifiedType(serializers, number, specifiedType) {
      A._asNum(number);
      if (isNaN(number))
        return "NaN";
      else if (number == 1 / 0 || number == -1 / 0)
        return B.JSNumber_methods.get$isNegative(number) ? "-INF" : "INF";
      else
        return number;
    },
    serialize$2(serializers, number) {
      return this.serialize$3$specifiedType(serializers, number, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1 = J.getInterceptor$(serialized);
      if (t1.$eq(serialized, "NaN"))
        return 0 / 0;
      else if (t1.$eq(serialized, "-INF"))
        return -1 / 0;
      else if (t1.$eq(serialized, "INF"))
        return 1 / 0;
      else
        return A._asNum(serialized);
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "num";
    }
  };
  A.RegExpSerializer.prototype = {
    serialize$3$specifiedType(serializers, value, specifiedType) {
      return type$.RegExp._as(value).pattern;
    },
    serialize$2(serializers, value) {
      return this.serialize$3$specifiedType(serializers, value, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      return A.RegExp_RegExp(A._asString(serialized), true, false);
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "RegExp";
    }
  };
  A.SetSerializer.prototype = {
    serialize$3$specifiedType(serializers, set, specifiedType) {
      var t1, t2, elementType;
      type$.Set_dynamic._as(set);
      if (!(specifiedType.root == null || specifiedType.parameters.length === 0))
        if (!serializers.builderFactories._map$_map.containsKey$1(specifiedType))
          serializers._throwMissingBuilderFactory$1(specifiedType);
      t1 = specifiedType.parameters;
      t2 = t1.length;
      if (t2 === 0)
        elementType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        elementType = t1[0];
      }
      return set.map$1$1(0, new A.SetSerializer_serialize_closure(serializers, elementType), type$.nullable_Object);
    },
    serialize$2(serializers, set) {
      return this.serialize$3$specifiedType(serializers, set, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var isUnderspecified, t1, t2, elementType, result;
      type$.Iterable_dynamic._as(serialized);
      isUnderspecified = specifiedType.root == null || specifiedType.parameters.length === 0;
      t1 = specifiedType.parameters;
      t2 = t1.length;
      if (t2 === 0)
        elementType = B.FullType_null_List_empty_false;
      else {
        if (0 >= t2)
          return A.ioore(t1, 0);
        elementType = t1[0];
      }
      result = isUnderspecified ? A.LinkedHashSet_LinkedHashSet$_empty(type$.Object) : type$.Set_dynamic._as(serializers.newBuilder$1(specifiedType));
      for (t1 = J.get$iterator$ax(serialized); t1.moveNext$0();)
        result.add$1(0, serializers.deserialize$2$specifiedType(t1.get$current(), elementType));
      return result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "Set";
    }
  };
  A.SetSerializer_serialize_closure.prototype = {
    call$1(item) {
      return this.serializers.serialize$2$specifiedType(item, this.elementType);
    },
    $signature: 3
  };
  A.StringSerializer.prototype = {
    serialize$3$specifiedType(serializers, string, specifiedType) {
      return A._asString(string);
    },
    serialize$2(serializers, string) {
      return this.serialize$3$specifiedType(serializers, string, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      return A._asString(serialized);
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "String";
    }
  };
  A.Uint8ListSerializer.prototype = {
    serialize$3$specifiedType(serializers, uint8list, specifiedType) {
      uint8list = type$.Base64Codec._eval$1("Codec.S")._as(type$.Uint8List._as(uint8list));
      return B.C_Base64Codec.get$encoder().convert$1(uint8list);
    },
    serialize$2(serializers, uint8list) {
      return this.serialize$3$specifiedType(serializers, uint8list, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      return B.C_Base64Decoder.convert$1(A._asString(serialized));
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    get$types() {
      return A.BuiltList_BuiltList$from([B.Type_Uint8List_8Eb], type$.Type);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$wireName() {
      return "UInt8List";
    }
  };
  A.UriSerializer.prototype = {
    serialize$3$specifiedType(serializers, uri, specifiedType) {
      return type$.Uri._as(uri).toString$0(0);
    },
    serialize$2(serializers, uri) {
      return this.serialize$3$specifiedType(serializers, uri, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      return A.Uri_parse(A._asString(serialized));
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return this.types;
    },
    get$wireName() {
      return "Uri";
    }
  };
  A.CanonicalizedMap.prototype = {
    $index(_, key) {
      var pair, _this = this;
      if (!_this._isValidKey$1(key))
        return null;
      pair = _this._base.$index(0, _this._canonicalize.call$1(_this.$ti._eval$1("CanonicalizedMap.K")._as(key)));
      return pair == null ? null : pair.value;
    },
    $indexSet(_, key, value) {
      var _this = this,
        t1 = _this.$ti;
      t1._eval$1("CanonicalizedMap.K")._as(key);
      t1._eval$1("CanonicalizedMap.V")._as(value);
      if (!_this._isValidKey$1(key))
        return;
      _this._base.$indexSet(0, _this._canonicalize.call$1(key), new A.MapEntry(key, value, t1._eval$1("MapEntry<CanonicalizedMap.K,CanonicalizedMap.V>")));
    },
    addAll$1(_, other) {
      this.$ti._eval$1("Map<CanonicalizedMap.K,CanonicalizedMap.V>")._as(other).forEach$1(0, new A.CanonicalizedMap_addAll_closure(this));
    },
    cast$2$0(_, K2, V2) {
      return this._base.cast$2$0(0, K2, V2);
    },
    containsKey$1(key) {
      var _this = this;
      if (!_this._isValidKey$1(key))
        return false;
      return _this._base.containsKey$1(_this._canonicalize.call$1(_this.$ti._eval$1("CanonicalizedMap.K")._as(key)));
    },
    forEach$1(_, f) {
      this._base.forEach$1(0, new A.CanonicalizedMap_forEach_closure(this, this.$ti._eval$1("~(CanonicalizedMap.K,CanonicalizedMap.V)")._as(f)));
    },
    get$isEmpty(_) {
      return this._base.__js_helper$_length === 0;
    },
    get$keys() {
      var t1 = this._base,
        t2 = A._instanceType(t1)._eval$1("LinkedHashMapValuesIterable<2>"),
        t3 = this.$ti._eval$1("CanonicalizedMap.K");
      return A.MappedIterable_MappedIterable(new A.LinkedHashMapValuesIterable(t1, t2), t2._bind$1(t3)._eval$1("1(Iterable.E)")._as(new A.CanonicalizedMap_keys_closure(this)), t2._eval$1("Iterable.E"), t3);
    },
    get$length(_) {
      return this._base.__js_helper$_length;
    },
    map$2$1(_, transform, K2, V2) {
      return this._base.map$2$1(0, new A.CanonicalizedMap_map_closure(this, this.$ti._bind$1(K2)._bind$1(V2)._eval$1("MapEntry<1,2>(CanonicalizedMap.K,CanonicalizedMap.V)")._as(transform), K2, V2), K2, V2);
    },
    map$1(_, transform) {
      var t1 = type$.dynamic;
      return this.map$2$1(0, transform, t1, t1);
    },
    toString$0(_) {
      return A.MapBase_mapToString(this);
    },
    _isValidKey$1(key) {
      return this.$ti._eval$1("CanonicalizedMap.K")._is(key);
    },
    $isMap: 1
  };
  A.CanonicalizedMap_addAll_closure.prototype = {
    call$2(key, value) {
      var t1 = this.$this,
        t2 = t1.$ti;
      t2._eval$1("CanonicalizedMap.K")._as(key);
      t2._eval$1("CanonicalizedMap.V")._as(value);
      t1.$indexSet(0, key, value);
      return value;
    },
    $signature() {
      return this.$this.$ti._eval$1("~(CanonicalizedMap.K,CanonicalizedMap.V)");
    }
  };
  A.CanonicalizedMap_forEach_closure.prototype = {
    call$2(key, pair) {
      var t1 = this.$this.$ti;
      t1._eval$1("CanonicalizedMap.C")._as(key);
      t1._eval$1("MapEntry<CanonicalizedMap.K,CanonicalizedMap.V>")._as(pair);
      return this.f.call$2(pair.key, pair.value);
    },
    $signature() {
      return this.$this.$ti._eval$1("~(CanonicalizedMap.C,MapEntry<CanonicalizedMap.K,CanonicalizedMap.V>)");
    }
  };
  A.CanonicalizedMap_keys_closure.prototype = {
    call$1(pair) {
      return this.$this.$ti._eval$1("MapEntry<CanonicalizedMap.K,CanonicalizedMap.V>")._as(pair).key;
    },
    $signature() {
      return this.$this.$ti._eval$1("CanonicalizedMap.K(MapEntry<CanonicalizedMap.K,CanonicalizedMap.V>)");
    }
  };
  A.CanonicalizedMap_map_closure.prototype = {
    call$2(_, pair) {
      var t1 = this.$this.$ti;
      t1._eval$1("CanonicalizedMap.C")._as(_);
      t1._eval$1("MapEntry<CanonicalizedMap.K,CanonicalizedMap.V>")._as(pair);
      return this.transform.call$2(pair.key, pair.value);
    },
    $signature() {
      return this.$this.$ti._bind$1(this.K2)._bind$1(this.V2)._eval$1("MapEntry<1,2>(CanonicalizedMap.C,MapEntry<CanonicalizedMap.K,CanonicalizedMap.V>)");
    }
  };
  A.DefaultEquality.prototype = {$isEquality: 1};
  A.IterableEquality.prototype = {
    equals$2(elements1, elements2) {
      var it1, it2, hasNext,
        t1 = this.$ti._eval$1("Iterable<1>?");
      t1._as(elements1);
      t1._as(elements2);
      if (elements1 === elements2)
        return true;
      it1 = J.get$iterator$ax(elements1);
      it2 = J.get$iterator$ax(elements2);
      for (t1 = this._elementEquality; true;) {
        hasNext = it1.moveNext$0();
        if (hasNext !== it2.moveNext$0())
          return false;
        if (!hasNext)
          return true;
        if (!t1.equals$2(it1.get$current(), it2.get$current()))
          return false;
      }
    },
    hash$1(elements) {
      var t1, t2, hash;
      this.$ti._eval$1("Iterable<1>?")._as(elements);
      for (t1 = J.get$iterator$ax(elements), t2 = this._elementEquality, hash = 0; t1.moveNext$0();) {
        hash = hash + t2.hash$1(t1.get$current()) & 2147483647;
        hash = hash + (hash << 10 >>> 0) & 2147483647;
        hash ^= hash >>> 6;
      }
      hash = hash + (hash << 3 >>> 0) & 2147483647;
      hash ^= hash >>> 11;
      return hash + (hash << 15 >>> 0) & 2147483647;
    },
    $isEquality: 1
  };
  A.ListEquality.prototype = {
    equals$2(list1, list2) {
      var $length, t2, t3, i,
        t1 = this.$ti._eval$1("List<1>?");
      t1._as(list1);
      t1._as(list2);
      if (list1 === list2)
        return true;
      t1 = J.getInterceptor$asx(list1);
      $length = t1.get$length(list1);
      t2 = J.getInterceptor$asx(list2);
      if ($length !== t2.get$length(list2))
        return false;
      for (t3 = this._elementEquality, i = 0; i < $length; ++i)
        if (!t3.equals$2(t1.$index(list1, i), t2.$index(list2, i)))
          return false;
      return true;
    },
    hash$1(list) {
      var t1, t2, hash, i;
      this.$ti._eval$1("List<1>?")._as(list);
      for (t1 = J.getInterceptor$asx(list), t2 = this._elementEquality, hash = 0, i = 0; i < t1.get$length(list); ++i) {
        hash = hash + t2.hash$1(t1.$index(list, i)) & 2147483647;
        hash = hash + (hash << 10 >>> 0) & 2147483647;
        hash ^= hash >>> 6;
      }
      hash = hash + (hash << 3 >>> 0) & 2147483647;
      hash ^= hash >>> 11;
      return hash + (hash << 15 >>> 0) & 2147483647;
    },
    $isEquality: 1
  };
  A._UnorderedEquality.prototype = {
    equals$2(elements1, elements2) {
      var counts, $length, e, count,
        t1 = A._instanceType(this),
        t2 = t1._eval$1("_UnorderedEquality.T?");
      t2._as(elements1);
      t2._as(elements2);
      if (elements1 === elements2)
        return true;
      t2 = this._elementEquality;
      counts = A.HashMap_HashMap(t1._eval$1("bool(_UnorderedEquality.E,_UnorderedEquality.E)")._as(t2.get$equals()), t1._eval$1("int(_UnorderedEquality.E)")._as(t2.get$hash()), t2.get$isValidKey(), t1._eval$1("_UnorderedEquality.E"), type$.int);
      for (t1 = J.get$iterator$ax(elements1), $length = 0; t1.moveNext$0();) {
        e = t1.get$current();
        count = counts.$index(0, e);
        counts.$indexSet(0, e, (count == null ? 0 : count) + 1);
        ++$length;
      }
      for (t1 = J.get$iterator$ax(elements2); t1.moveNext$0();) {
        e = t1.get$current();
        count = counts.$index(0, e);
        if (count == null || count === 0)
          return false;
        counts.$indexSet(0, e, count - 1);
        --$length;
      }
      return $length === 0;
    },
    hash$1(elements) {
      var t1, t2, hash;
      A._instanceType(this)._eval$1("_UnorderedEquality.T?")._as(elements);
      for (t1 = J.get$iterator$ax(elements), t2 = this._elementEquality, hash = 0; t1.moveNext$0();)
        hash = hash + t2.hash$1(t1.get$current()) & 2147483647;
      hash = hash + (hash << 3 >>> 0) & 2147483647;
      hash ^= hash >>> 11;
      return hash + (hash << 15 >>> 0) & 2147483647;
    },
    $isEquality: 1
  };
  A.SetEquality.prototype = {};
  A._MapEntry.prototype = {
    get$hashCode(_) {
      var t1 = this.equality;
      return 3 * t1._keyEquality.hash$1(this.key) + 7 * t1._valueEquality.hash$1(this.value) & 2147483647;
    },
    $eq(_, other) {
      var t1;
      if (other == null)
        return false;
      if (other instanceof A._MapEntry) {
        t1 = this.equality;
        t1 = t1._keyEquality.equals$2(this.key, other.key) && t1._valueEquality.equals$2(this.value, other.value);
      } else
        t1 = false;
      return t1;
    }
  };
  A.MapEquality.prototype = {
    equals$2(map1, map2) {
      var equalElementCounts, key, entry, count,
        t1 = this.$ti._eval$1("Map<1,2>?");
      t1._as(map1);
      t1._as(map2);
      if (map1 === map2)
        return true;
      if (map1.get$length(map1) !== map2.get$length(map2))
        return false;
      equalElementCounts = A.HashMap_HashMap(null, null, null, type$._MapEntry, type$.int);
      for (t1 = map1.get$keys(), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
        key = t1.get$current();
        entry = new A._MapEntry(this, key, map1.$index(0, key));
        count = equalElementCounts.$index(0, entry);
        equalElementCounts.$indexSet(0, entry, (count == null ? 0 : count) + 1);
      }
      for (t1 = map2.get$keys(), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
        key = t1.get$current();
        entry = new A._MapEntry(this, key, map2.$index(0, key));
        count = equalElementCounts.$index(0, entry);
        if (count == null || count === 0)
          return false;
        equalElementCounts.$indexSet(0, entry, count - 1);
      }
      return true;
    },
    hash$1(map) {
      var t2, t3, t4, hash, key, keyHash, t5,
        t1 = this.$ti;
      t1._eval$1("Map<1,2>?")._as(map);
      for (t2 = map.get$keys(), t2 = t2.get$iterator(t2), t3 = this._keyEquality, t4 = this._valueEquality, t1 = t1._rest[1], hash = 0; t2.moveNext$0();) {
        key = t2.get$current();
        keyHash = t3.hash$1(key);
        t5 = map.$index(0, key);
        hash = hash + 3 * keyHash + 7 * t4.hash$1(t5 == null ? t1._as(t5) : t5) & 2147483647;
      }
      hash = hash + (hash << 3 >>> 0) & 2147483647;
      hash ^= hash >>> 11;
      return hash + (hash << 15 >>> 0) & 2147483647;
    },
    $isEquality: 1
  };
  A.DeepCollectionEquality.prototype = {
    equals$2(e1, e2) {
      var _this = this,
        t1 = type$.Set_dynamic;
      if (t1._is(e1))
        return t1._is(e2) && new A.SetEquality(_this, type$.SetEquality_dynamic).equals$2(e1, e2);
      t1 = type$.Map_dynamic_dynamic;
      if (t1._is(e1))
        return t1._is(e2) && new A.MapEquality(_this, _this, type$.MapEquality_dynamic_dynamic).equals$2(e1, e2);
      t1 = type$.List_dynamic;
      if (t1._is(e1))
        return t1._is(e2) && new A.ListEquality(_this, type$.ListEquality_dynamic).equals$2(e1, e2);
      t1 = type$.Iterable_dynamic;
      if (t1._is(e1))
        return t1._is(e2) && new A.IterableEquality(_this, type$.IterableEquality_dynamic).equals$2(e1, e2);
      return J.$eq$(e1, e2);
    },
    hash$1(o) {
      var _this = this;
      if (type$.Set_dynamic._is(o))
        return new A.SetEquality(_this, type$.SetEquality_dynamic).hash$1(o);
      if (type$.Map_dynamic_dynamic._is(o))
        return new A.MapEquality(_this, _this, type$.MapEquality_dynamic_dynamic).hash$1(o);
      if (type$.List_dynamic._is(o))
        return new A.ListEquality(_this, type$.ListEquality_dynamic).hash$1(o);
      if (type$.Iterable_dynamic._is(o))
        return new A.IterableEquality(_this, type$.IterableEquality_dynamic).hash$1(o);
      return J.get$hashCode$(o);
    },
    isValidKey$1(o) {
      return true;
    },
    $isEquality: 1
  };
  A.QueueList.prototype = {
    add$1(_, element) {
      this._queue_list$_add$1(A._instanceType(this)._eval$1("QueueList.E")._as(element));
    },
    cast$1$0(_, $T) {
      return new A._CastQueueList(this, J.cast$1$0$ax(this._queue_list$_table, $T), -1, -1, A._instanceType(this)._eval$1("@<QueueList.E>")._bind$1($T)._eval$1("_CastQueueList<1,2>"));
    },
    toString$0(_) {
      return A.Iterable_iterableToFullString(this, "{", "}");
    },
    get$length(_) {
      return (this.get$_queue_list$_tail() - this.get$_queue_list$_head() & J.get$length$asx(this._queue_list$_table) - 1) >>> 0;
    },
    set$length(_, value) {
      var delta, newTail, t1, t2, _this = this;
      if (value < 0)
        throw A.wrapException(A.RangeError$("Length " + value + " may not be negative."));
      if (value > _this.get$length(0) && !A._instanceType(_this)._eval$1("QueueList.E")._is(null))
        throw A.wrapException(A.UnsupportedError$("The length can only be increased when the element type is nullable, but the current element type is `" + A.createRuntimeType(A._instanceType(_this)._eval$1("QueueList.E")).toString$0(0) + "`."));
      delta = value - _this.get$length(0);
      if (delta >= 0) {
        if (J.get$length$asx(_this._queue_list$_table) <= value)
          _this._preGrow$1(value);
        _this.set$_queue_list$_tail((_this.get$_queue_list$_tail() + delta & J.get$length$asx(_this._queue_list$_table) - 1) >>> 0);
        return;
      }
      newTail = _this.get$_queue_list$_tail() + delta;
      t1 = _this._queue_list$_table;
      if (newTail >= 0)
        J.fillRange$3$ax(t1, newTail, _this.get$_queue_list$_tail(), null);
      else {
        newTail += J.get$length$asx(t1);
        J.fillRange$3$ax(_this._queue_list$_table, 0, _this.get$_queue_list$_tail(), null);
        t1 = _this._queue_list$_table;
        t2 = J.getInterceptor$asx(t1);
        t2.fillRange$3(t1, newTail, t2.get$length(t1), null);
      }
      _this.set$_queue_list$_tail(newTail);
    },
    $index(_, index) {
      var t1, _this = this;
      if (index < 0 || index >= _this.get$length(0))
        throw A.wrapException(A.RangeError$("Index " + index + " must be in the range [0.." + _this.get$length(0) + ")."));
      t1 = J.$index$asx(_this._queue_list$_table, (_this.get$_queue_list$_head() + index & J.get$length$asx(_this._queue_list$_table) - 1) >>> 0);
      return t1 == null ? A._instanceType(_this)._eval$1("QueueList.E")._as(t1) : t1;
    },
    $indexSet(_, index, value) {
      var _this = this;
      A._instanceType(_this)._eval$1("QueueList.E")._as(value);
      if (index < 0 || index >= _this.get$length(0))
        throw A.wrapException(A.RangeError$("Index " + index + " must be in the range [0.." + _this.get$length(0) + ")."));
      J.$indexSet$ax(_this._queue_list$_table, (_this.get$_queue_list$_head() + index & J.get$length$asx(_this._queue_list$_table) - 1) >>> 0, value);
    },
    _queue_list$_add$1(element) {
      var newTable, split, _this = this,
        t1 = A._instanceType(_this);
      t1._eval$1("QueueList.E")._as(element);
      J.$indexSet$ax(_this._queue_list$_table, _this.get$_queue_list$_tail(), element);
      _this.set$_queue_list$_tail((_this.get$_queue_list$_tail() + 1 & J.get$length$asx(_this._queue_list$_table) - 1) >>> 0);
      if (_this.get$_queue_list$_head() === _this.get$_queue_list$_tail()) {
        newTable = A.List_List$filled(J.get$length$asx(_this._queue_list$_table) * 2, null, false, t1._eval$1("QueueList.E?"));
        split = J.get$length$asx(_this._queue_list$_table) - _this.get$_queue_list$_head();
        B.JSArray_methods.setRange$4(newTable, 0, split, _this._queue_list$_table, _this.get$_queue_list$_head());
        B.JSArray_methods.setRange$4(newTable, split, split + _this.get$_queue_list$_head(), _this._queue_list$_table, 0);
        _this.set$_queue_list$_head(0);
        _this.set$_queue_list$_tail(J.get$length$asx(_this._queue_list$_table));
        _this._queue_list$_table = newTable;
      }
    },
    _writeToList$1(target) {
      var $length, firstPartSize, _this = this;
      A._instanceType(_this)._eval$1("List<QueueList.E?>")._as(target);
      if (_this.get$_queue_list$_head() <= _this.get$_queue_list$_tail()) {
        $length = _this.get$_queue_list$_tail() - _this.get$_queue_list$_head();
        B.JSArray_methods.setRange$4(target, 0, $length, _this._queue_list$_table, _this.get$_queue_list$_head());
        return $length;
      } else {
        firstPartSize = J.get$length$asx(_this._queue_list$_table) - _this.get$_queue_list$_head();
        B.JSArray_methods.setRange$4(target, 0, firstPartSize, _this._queue_list$_table, _this.get$_queue_list$_head());
        B.JSArray_methods.setRange$4(target, firstPartSize, firstPartSize + _this.get$_queue_list$_tail(), _this._queue_list$_table, 0);
        return _this.get$_queue_list$_tail() + firstPartSize;
      }
    },
    _preGrow$1(newElementCount) {
      var _this = this,
        newTable = A.List_List$filled(A.QueueList__nextPowerOf2(newElementCount + B.JSInt_methods._shrOtherPositive$1(newElementCount, 1)), null, false, A._instanceType(_this)._eval$1("QueueList.E?"));
      _this.set$_queue_list$_tail(_this._writeToList$1(newTable));
      _this._queue_list$_table = newTable;
      _this.set$_queue_list$_head(0);
    },
    set$_queue_list$_head(_head) {
      this._queue_list$_head = A._asInt(_head);
    },
    set$_queue_list$_tail(_tail) {
      this._queue_list$_tail = A._asInt(_tail);
    },
    $isEfficientLengthIterable: 1,
    $isQueue: 1,
    $isIterable: 1,
    $isList: 1,
    get$_queue_list$_head() {
      return this._queue_list$_head;
    },
    get$_queue_list$_tail() {
      return this._queue_list$_tail;
    }
  };
  A._CastQueueList.prototype = {
    get$_queue_list$_head() {
      return this._queue_list$_delegate.get$_queue_list$_head();
    },
    set$_queue_list$_head(value) {
      this._queue_list$_delegate.set$_queue_list$_head(value);
    },
    get$_queue_list$_tail() {
      return this._queue_list$_delegate.get$_queue_list$_tail();
    },
    set$_queue_list$_tail(value) {
      this._queue_list$_delegate.set$_queue_list$_tail(value);
    }
  };
  A._QueueList_Object_ListMixin.prototype = {};
  A.BuildStatus.prototype = {};
  A.BuildResult.prototype = {};
  A._$BuildStatusSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      return type$.BuildStatus._as(object).name;
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      return A._$valueOf(A._asString(serialized));
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isPrimitiveSerializer: 1,
    get$types() {
      return B.List_Type_BuildStatus_8KJ;
    },
    get$wireName() {
      return "BuildStatus";
    }
  };
  A._$BuildResultSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      return ["status", serializers.serialize$2$specifiedType(type$.BuildResult._as(object).status, B.FullType_k5M)];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, t2, value, $$v, _$result,
        _s11_ = "BuildResult",
        result = new A.BuildResultBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (t1 = type$.BuildStatus; iterator.moveNext$0();) {
        t2 = iterator.get$current();
        t2.toString;
        A._asString(t2);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t2) {
          case "status":
            t2 = serializers.deserialize$2$specifiedType(value, B.FullType_k5M);
            t2.toString;
            t1._as(t2);
            $$v = result._build_result$_$v;
            if ($$v != null) {
              result._status = $$v.status;
              result._build_result$_$v = null;
            }
            result._status = t2;
            break;
        }
      }
      _$result = result._build_result$_$v;
      if (_$result == null) {
        t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_build_result$_$this()._status, _s11_, "status", t1);
        _$result = new A._$BuildResult(t2);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s11_, "status", t1);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.BuildResult);
      return result._build_result$_$v = _$result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_pLn;
    },
    get$wireName() {
      return "BuildResult";
    }
  };
  A._$BuildResult.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$BuildResult && this.status === other.status;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(0, A.Primitives_objectHashCode(this.status)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("BuildResult"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "status", this.status);
      return t2.toString$0(t1);
    }
  };
  A.BuildResultBuilder.prototype = {
    get$_build_result$_$this() {
      var _this = this,
        $$v = _this._build_result$_$v;
      if ($$v != null) {
        _this._status = $$v.status;
        _this._build_result$_$v = null;
      }
      return _this;
    }
  };
  A.ConnectRequest.prototype = {};
  A._$ConnectRequestSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      type$.ConnectRequest._as(object);
      return ["appId", serializers.serialize$2$specifiedType(object.appId, B.FullType_PT1), "instanceId", serializers.serialize$2$specifiedType(object.instanceId, B.FullType_PT1), "entrypointPath", serializers.serialize$2$specifiedType(object.entrypointPath, B.FullType_PT1)];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value,
        result = new A.ConnectRequestBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "appId":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_connect_request$_$this()._connect_request$_appId = t1;
            break;
          case "instanceId":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_connect_request$_$this()._instanceId = t1;
            break;
          case "entrypointPath":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_connect_request$_$this()._entrypointPath = t1;
            break;
        }
      }
      return result._connect_request$_build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_xmd;
    },
    get$wireName() {
      return "ConnectRequest";
    }
  };
  A._$ConnectRequest.prototype = {
    $eq(_, other) {
      var _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      return other instanceof A._$ConnectRequest && _this.appId === other.appId && _this.instanceId === other.instanceId && _this.entrypointPath === other.entrypointPath;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(this.appId)), B.JSString_methods.get$hashCode(this.instanceId)), B.JSString_methods.get$hashCode(this.entrypointPath)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("ConnectRequest"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "appId", this.appId);
      t2.add$2(t1, "instanceId", this.instanceId);
      t2.add$2(t1, "entrypointPath", this.entrypointPath);
      return t2.toString$0(t1);
    }
  };
  A.ConnectRequestBuilder.prototype = {
    get$_connect_request$_$this() {
      var _this = this,
        $$v = _this._connect_request$_$v;
      if ($$v != null) {
        _this._connect_request$_appId = $$v.appId;
        _this._instanceId = $$v.instanceId;
        _this._entrypointPath = $$v.entrypointPath;
        _this._connect_request$_$v = null;
      }
      return _this;
    },
    _connect_request$_build$0() {
      var t1, t2, t3, t4, _this = this,
        _s14_ = "ConnectRequest",
        _s10_ = "instanceId",
        _s14_0 = "entrypointPath",
        _$result = _this._connect_request$_$v;
      if (_$result == null) {
        t1 = type$.String;
        t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._connect_request$_appId, _s14_, "appId", t1);
        t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._instanceId, _s14_, _s10_, t1);
        t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._entrypointPath, _s14_, _s14_0, t1);
        _$result = new A._$ConnectRequest(t2, t3, t4);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s14_, "appId", t1);
        A.BuiltValueNullFieldError_checkNotNull(t3, _s14_, _s10_, t1);
        A.BuiltValueNullFieldError_checkNotNull(t4, _s14_, _s14_0, t1);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.ConnectRequest);
      return _this._connect_request$_$v = _$result;
    }
  };
  A.DebugEvent.prototype = {};
  A.BatchedDebugEvents.prototype = {};
  A._$DebugEventSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      type$.DebugEvent._as(object);
      return ["kind", serializers.serialize$2$specifiedType(object.kind, B.FullType_PT1), "eventData", serializers.serialize$2$specifiedType(object.eventData, B.FullType_PT1), "timestamp", serializers.serialize$2$specifiedType(object.timestamp, B.FullType_rTD)];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value,
        result = new A.DebugEventBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "kind":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_debug_event$_$this()._debug_event$_kind = t1;
            break;
          case "eventData":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_debug_event$_$this()._eventData = t1;
            break;
          case "timestamp":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_rTD);
            t1.toString;
            A._asInt(t1);
            result.get$_debug_event$_$this()._timestamp = t1;
            break;
        }
      }
      return result._debug_event$_build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_fK8;
    },
    get$wireName() {
      return "DebugEvent";
    }
  };
  A._$BatchedDebugEventsSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      return ["events", serializers.serialize$2$specifiedType(type$.BatchedDebugEvents._as(object).events, B.FullType_3Xm)];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, t2, t3, t4, t5, value, $$v, t6, t7, t8, t9,
        result = new A.BatchedDebugEventsBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (t1 = type$.BuiltList_nullable_Object, t2 = type$.DebugEvent, t3 = type$.List_DebugEvent, t4 = type$.ListBuilder_DebugEvent; iterator.moveNext$0();) {
        t5 = iterator.get$current();
        t5.toString;
        A._asString(t5);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t5) {
          case "events":
            $$v = result._debug_event$_$v;
            if ($$v != null) {
              t5 = $$v.events;
              t6 = t5.$ti;
              t7 = new A.ListBuilder(t6._eval$1("ListBuilder<1>"));
              t8 = t6._eval$1("_BuiltList<1>");
              t9 = t6._eval$1("List<1>");
              if (t8._is(t5)) {
                t8._as(t5);
                t7.__ListBuilder__list_A = t9._as(t5._list);
                t7._listOwner = t5;
              } else
                t7.__ListBuilder__list_A = t9._as(A.List_List$from(t5, true, t6._precomputed1));
              result._events = t7;
              result._debug_event$_$v = null;
            }
            t5 = result._events;
            if (t5 == null) {
              t5 = new A.ListBuilder(t4);
              t5.__ListBuilder__list_A = t3._as(A.List_List$from(B.List_empty0, true, t2));
              result.set$_events(t5);
            }
            t6 = serializers.deserialize$2$specifiedType(value, B.FullType_3Xm);
            t6.toString;
            t1._as(t6);
            t7 = t5.$ti;
            t8 = t7._eval$1("_BuiltList<1>");
            t9 = t7._eval$1("List<1>");
            if (t8._is(t6)) {
              t8._as(t6);
              t5.__ListBuilder__list_A = t9._as(t6._list);
              t5._listOwner = t6;
            } else {
              t5.__ListBuilder__list_A = t9._as(A.List_List$from(t6, true, t7._precomputed1));
              t5._listOwner = null;
            }
            break;
        }
      }
      return result._debug_event$_build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_WAE;
    },
    get$wireName() {
      return "BatchedDebugEvents";
    }
  };
  A._$DebugEvent.prototype = {
    $eq(_, other) {
      var _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      return other instanceof A._$DebugEvent && _this.kind === other.kind && _this.eventData === other.eventData && _this.timestamp === other.timestamp;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(this.kind)), B.JSString_methods.get$hashCode(this.eventData)), B.JSInt_methods.get$hashCode(this.timestamp)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("DebugEvent"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "kind", this.kind);
      t2.add$2(t1, "eventData", this.eventData);
      t2.add$2(t1, "timestamp", this.timestamp);
      return t2.toString$0(t1);
    }
  };
  A.DebugEventBuilder.prototype = {
    get$_debug_event$_$this() {
      var _this = this,
        $$v = _this._debug_event$_$v;
      if ($$v != null) {
        _this._debug_event$_kind = $$v.kind;
        _this._eventData = $$v.eventData;
        _this._timestamp = $$v.timestamp;
        _this._debug_event$_$v = null;
      }
      return _this;
    },
    _debug_event$_build$0() {
      var t1, t2, t3, t4, t5, _this = this,
        _s10_ = "DebugEvent",
        _s9_ = "eventData",
        _s9_0 = "timestamp",
        _$result = _this._debug_event$_$v;
      if (_$result == null) {
        t1 = type$.String;
        t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_debug_event$_$this()._debug_event$_kind, _s10_, "kind", t1);
        t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_debug_event$_$this()._eventData, _s10_, _s9_, t1);
        t4 = type$.int;
        t5 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_debug_event$_$this()._timestamp, _s10_, _s9_0, t4);
        _$result = new A._$DebugEvent(t2, t3, t5);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s10_, "kind", t1);
        A.BuiltValueNullFieldError_checkNotNull(t3, _s10_, _s9_, t1);
        A.BuiltValueNullFieldError_checkNotNull(t5, _s10_, _s9_0, t4);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.DebugEvent);
      return _this._debug_event$_$v = _$result;
    }
  };
  A._$BatchedDebugEvents.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$BatchedDebugEvents && this.events.$eq(0, other.events);
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(0, this.events.get$hashCode(0)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("BatchedDebugEvents"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "events", this.events);
      return t2.toString$0(t1);
    }
  };
  A.BatchedDebugEventsBuilder.prototype = {
    get$events() {
      var t1 = this.get$_debug_event$_$this(),
        t2 = t1._events;
      if (t2 == null) {
        t2 = A.ListBuilder_ListBuilder(B.List_empty0, type$.DebugEvent);
        t1.set$_events(t2);
        t1 = t2;
      } else
        t1 = t2;
      return t1;
    },
    get$_debug_event$_$this() {
      var t1, _this = this,
        $$v = _this._debug_event$_$v;
      if ($$v != null) {
        t1 = $$v.events;
        _this._events = A.ListBuilder_ListBuilder(t1, t1.$ti._precomputed1);
        _this._debug_event$_$v = null;
      }
      return _this;
    },
    _debug_event$_build$0() {
      var _$failedField, e, _$result0, t1, exception, t2, _this = this,
        _s18_ = "BatchedDebugEvents",
        _$result = null;
      try {
        _$result0 = _this._debug_event$_$v;
        if (_$result0 == null) {
          t1 = _this.get$events().build$0();
          _$result0 = new A._$BatchedDebugEvents(t1);
          A.BuiltValueNullFieldError_checkNotNull(t1, _s18_, "events", type$.BuiltList_DebugEvent);
        }
        _$result = _$result0;
      } catch (exception) {
        _$failedField = A._Cell$named("_$failedField");
        try {
          _$failedField.__late_helper$_value = "events";
          _this.get$events().build$0();
        } catch (exception) {
          e = A.unwrapException(exception);
          t1 = A.BuiltValueNestedFieldError$(_s18_, _$failedField.readLocal$0(), J.toString$0$(e));
          throw A.wrapException(t1);
        }
        throw exception;
      }
      t1 = type$.BatchedDebugEvents;
      t2 = t1._as(_$result);
      A.ArgumentError_checkNotNull(t2, "other", t1);
      _this._debug_event$_$v = t2;
      return _$result;
    },
    set$_events(_events) {
      this._events = type$.nullable_ListBuilder_DebugEvent._as(_events);
    }
  };
  A.DebugInfo.prototype = {};
  A._$DebugInfoSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      var result, value;
      type$.DebugInfo._as(object);
      result = [];
      value = object.appEntrypointPath;
      if (value != null) {
        result.push("appEntrypointPath");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.appId;
      if (value != null) {
        result.push("appId");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.appInstanceId;
      if (value != null) {
        result.push("appInstanceId");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.appOrigin;
      if (value != null) {
        result.push("appOrigin");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.appUrl;
      if (value != null) {
        result.push("appUrl");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.authUrl;
      if (value != null) {
        result.push("authUrl");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.dwdsVersion;
      if (value != null) {
        result.push("dwdsVersion");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.extensionUrl;
      if (value != null) {
        result.push("extensionUrl");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.isInternalBuild;
      if (value != null) {
        result.push("isInternalBuild");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_R6B));
      }
      value = object.isFlutterApp;
      if (value != null) {
        result.push("isFlutterApp");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_R6B));
      }
      value = object.workspaceName;
      if (value != null) {
        result.push("workspaceName");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.tabUrl;
      if (value != null) {
        result.push("tabUrl");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.tabId;
      if (value != null) {
        result.push("tabId");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_rTD));
      }
      return result;
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value,
        result = new A.DebugInfoBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "appEntrypointPath":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._appEntrypointPath = t1;
            break;
          case "appId":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._appId = t1;
            break;
          case "appInstanceId":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._appInstanceId = t1;
            break;
          case "appOrigin":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._appOrigin = t1;
            break;
          case "appUrl":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._appUrl = t1;
            break;
          case "authUrl":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._authUrl = t1;
            break;
          case "dwdsVersion":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._dwdsVersion = t1;
            break;
          case "extensionUrl":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._extensionUrl = t1;
            break;
          case "isInternalBuild":
            t1 = A._asBoolQ(serializers.deserialize$2$specifiedType(value, B.FullType_R6B));
            result.get$_$this()._isInternalBuild = t1;
            break;
          case "isFlutterApp":
            t1 = A._asBoolQ(serializers.deserialize$2$specifiedType(value, B.FullType_R6B));
            result.get$_$this()._isFlutterApp = t1;
            break;
          case "workspaceName":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._workspaceName = t1;
            break;
          case "tabUrl":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_$this()._tabUrl = t1;
            break;
          case "tabId":
            t1 = A._asIntQ(serializers.deserialize$2$specifiedType(value, B.FullType_rTD));
            result.get$_$this()._tabId = t1;
            break;
        }
      }
      return result._build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_55I;
    },
    get$wireName() {
      return "DebugInfo";
    }
  };
  A._$DebugInfo.prototype = {
    $eq(_, other) {
      var _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      return other instanceof A._$DebugInfo && _this.appEntrypointPath == other.appEntrypointPath && _this.appId == other.appId && _this.appInstanceId == other.appInstanceId && _this.appOrigin == other.appOrigin && _this.appUrl == other.appUrl && _this.authUrl == other.authUrl && _this.dwdsVersion == other.dwdsVersion && _this.extensionUrl == other.extensionUrl && _this.isInternalBuild == other.isInternalBuild && _this.isFlutterApp == other.isFlutterApp && _this.workspaceName == other.workspaceName && _this.tabUrl == other.tabUrl && _this.tabId == other.tabId;
    },
    get$hashCode(_) {
      var _this = this;
      return A.$jf(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(0, J.get$hashCode$(_this.appEntrypointPath)), J.get$hashCode$(_this.appId)), J.get$hashCode$(_this.appInstanceId)), J.get$hashCode$(_this.appOrigin)), J.get$hashCode$(_this.appUrl)), J.get$hashCode$(_this.authUrl)), J.get$hashCode$(_this.dwdsVersion)), J.get$hashCode$(_this.extensionUrl)), J.get$hashCode$(_this.isInternalBuild)), J.get$hashCode$(_this.isFlutterApp)), J.get$hashCode$(_this.workspaceName)), J.get$hashCode$(_this.tabUrl)), J.get$hashCode$(_this.tabId)));
    },
    toString$0(_) {
      var _this = this,
        t1 = $.$get$newBuiltValueToStringHelper().call$1("DebugInfo"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "appEntrypointPath", _this.appEntrypointPath);
      t2.add$2(t1, "appId", _this.appId);
      t2.add$2(t1, "appInstanceId", _this.appInstanceId);
      t2.add$2(t1, "appOrigin", _this.appOrigin);
      t2.add$2(t1, "appUrl", _this.appUrl);
      t2.add$2(t1, "authUrl", _this.authUrl);
      t2.add$2(t1, "dwdsVersion", _this.dwdsVersion);
      t2.add$2(t1, "extensionUrl", _this.extensionUrl);
      t2.add$2(t1, "isInternalBuild", _this.isInternalBuild);
      t2.add$2(t1, "isFlutterApp", _this.isFlutterApp);
      t2.add$2(t1, "workspaceName", _this.workspaceName);
      t2.add$2(t1, "tabUrl", _this.tabUrl);
      t2.add$2(t1, "tabId", _this.tabId);
      return t2.toString$0(t1);
    }
  };
  A.DebugInfoBuilder.prototype = {
    get$_$this() {
      var _this = this,
        $$v = _this._$v;
      if ($$v != null) {
        _this._appEntrypointPath = $$v.appEntrypointPath;
        _this._appId = $$v.appId;
        _this._appInstanceId = $$v.appInstanceId;
        _this._appOrigin = $$v.appOrigin;
        _this._appUrl = $$v.appUrl;
        _this._authUrl = $$v.authUrl;
        _this._dwdsVersion = $$v.dwdsVersion;
        _this._extensionUrl = $$v.extensionUrl;
        _this._isInternalBuild = $$v.isInternalBuild;
        _this._isFlutterApp = $$v.isFlutterApp;
        _this._workspaceName = $$v.workspaceName;
        _this._tabUrl = $$v.tabUrl;
        _this._tabId = $$v.tabId;
        _this._$v = null;
      }
      return _this;
    },
    _build$0() {
      var _this = this,
        _$result = _this._$v;
      if (_$result == null)
        _$result = new A._$DebugInfo(_this.get$_$this()._appEntrypointPath, _this.get$_$this()._appId, _this.get$_$this()._appInstanceId, _this.get$_$this()._appOrigin, _this.get$_$this()._appUrl, _this.get$_$this()._authUrl, _this.get$_$this()._dwdsVersion, _this.get$_$this()._extensionUrl, _this.get$_$this()._isInternalBuild, _this.get$_$this()._isFlutterApp, _this.get$_$this()._workspaceName, _this.get$_$this()._tabUrl, _this.get$_$this()._tabId);
      A.ArgumentError_checkNotNull(_$result, "other", type$.DebugInfo);
      return _this._$v = _$result;
    }
  };
  A.DevToolsRequest.prototype = {};
  A.DevToolsResponse.prototype = {};
  A._$DevToolsRequestSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      var result, value;
      type$.DevToolsRequest._as(object);
      result = ["appId", serializers.serialize$2$specifiedType(object.appId, B.FullType_PT1), "instanceId", serializers.serialize$2$specifiedType(object.instanceId, B.FullType_PT1)];
      value = object.contextId;
      if (value != null) {
        result.push("contextId");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_rTD));
      }
      value = object.tabUrl;
      if (value != null) {
        result.push("tabUrl");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      value = object.uriOnly;
      if (value != null) {
        result.push("uriOnly");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_R6B));
      }
      value = object.client;
      if (value != null) {
        result.push("client");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      return result;
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value,
        result = new A.DevToolsRequestBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "appId":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_devtools_request$_$this()._devtools_request$_appId = t1;
            break;
          case "instanceId":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_devtools_request$_$this()._devtools_request$_instanceId = t1;
            break;
          case "contextId":
            t1 = A._asIntQ(serializers.deserialize$2$specifiedType(value, B.FullType_rTD));
            result.get$_devtools_request$_$this()._contextId = t1;
            break;
          case "tabUrl":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_devtools_request$_$this()._devtools_request$_tabUrl = t1;
            break;
          case "uriOnly":
            t1 = A._asBoolQ(serializers.deserialize$2$specifiedType(value, B.FullType_R6B));
            result.get$_devtools_request$_$this()._uriOnly = t1;
            break;
          case "client":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_devtools_request$_$this()._devtools_request$_client = t1;
            break;
        }
      }
      return result._devtools_request$_build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_G46;
    },
    get$wireName() {
      return "DevToolsRequest";
    }
  };
  A._$DevToolsResponseSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      var result, value;
      type$.DevToolsResponse._as(object);
      result = ["success", serializers.serialize$2$specifiedType(object.success, B.FullType_R6B), "promptExtension", serializers.serialize$2$specifiedType(object.promptExtension, B.FullType_R6B)];
      value = object.error;
      if (value != null) {
        result.push("error");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      return result;
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value, _$result, t2, t3,
        _s15_ = "promptExtension",
        _s16_ = "DevToolsResponse",
        result = new A.DevToolsResponseBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "success":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_R6B);
            t1.toString;
            A._asBool(t1);
            result.get$_devtools_request$_$this()._success = t1;
            break;
          case "promptExtension":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_R6B);
            t1.toString;
            A._asBool(t1);
            result.get$_devtools_request$_$this()._promptExtension = t1;
            break;
          case "error":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_devtools_request$_$this()._error = t1;
            break;
        }
      }
      _$result = result._devtools_request$_$v;
      if (_$result == null) {
        t1 = type$.bool;
        t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_devtools_request$_$this()._success, _s16_, "success", t1);
        t3 = A.BuiltValueNullFieldError_checkNotNull(result.get$_devtools_request$_$this()._promptExtension, _s16_, _s15_, t1);
        _$result = new A._$DevToolsResponse(t2, t3, result.get$_devtools_request$_$this()._error);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s16_, "success", t1);
        A.BuiltValueNullFieldError_checkNotNull(t3, _s16_, _s15_, t1);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.DevToolsResponse);
      return result._devtools_request$_$v = _$result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_TEH;
    },
    get$wireName() {
      return "DevToolsResponse";
    }
  };
  A._$DevToolsRequest.prototype = {
    $eq(_, other) {
      var _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      return other instanceof A._$DevToolsRequest && _this.appId === other.appId && _this.instanceId === other.instanceId && _this.contextId == other.contextId && _this.tabUrl == other.tabUrl && _this.uriOnly == other.uriOnly && _this.client == other.client;
    },
    get$hashCode(_) {
      var _this = this;
      return A.$jf(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(_this.appId)), B.JSString_methods.get$hashCode(_this.instanceId)), J.get$hashCode$(_this.contextId)), J.get$hashCode$(_this.tabUrl)), J.get$hashCode$(_this.uriOnly)), J.get$hashCode$(_this.client)));
    },
    toString$0(_) {
      var _this = this,
        t1 = $.$get$newBuiltValueToStringHelper().call$1("DevToolsRequest"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "appId", _this.appId);
      t2.add$2(t1, "instanceId", _this.instanceId);
      t2.add$2(t1, "contextId", _this.contextId);
      t2.add$2(t1, "tabUrl", _this.tabUrl);
      t2.add$2(t1, "uriOnly", _this.uriOnly);
      t2.add$2(t1, "client", _this.client);
      return t2.toString$0(t1);
    }
  };
  A.DevToolsRequestBuilder.prototype = {
    get$_devtools_request$_$this() {
      var _this = this,
        $$v = _this._devtools_request$_$v;
      if ($$v != null) {
        _this._devtools_request$_appId = $$v.appId;
        _this._devtools_request$_instanceId = $$v.instanceId;
        _this._contextId = $$v.contextId;
        _this._devtools_request$_tabUrl = $$v.tabUrl;
        _this._uriOnly = $$v.uriOnly;
        _this._devtools_request$_client = $$v.client;
        _this._devtools_request$_$v = null;
      }
      return _this;
    },
    _devtools_request$_build$0() {
      var t1, t2, t3, _this = this,
        _s15_ = "DevToolsRequest",
        _s10_ = "instanceId",
        _$result = _this._devtools_request$_$v;
      if (_$result == null) {
        t1 = type$.String;
        t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_devtools_request$_$this()._devtools_request$_appId, _s15_, "appId", t1);
        t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_devtools_request$_$this()._devtools_request$_instanceId, _s15_, _s10_, t1);
        _$result = new A._$DevToolsRequest(t2, t3, _this.get$_devtools_request$_$this()._contextId, _this.get$_devtools_request$_$this()._devtools_request$_tabUrl, _this.get$_devtools_request$_$this()._uriOnly, _this.get$_devtools_request$_$this()._devtools_request$_client);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s15_, "appId", t1);
        A.BuiltValueNullFieldError_checkNotNull(t3, _s15_, _s10_, t1);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.DevToolsRequest);
      return _this._devtools_request$_$v = _$result;
    }
  };
  A._$DevToolsResponse.prototype = {
    $eq(_, other) {
      var _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      return other instanceof A._$DevToolsResponse && _this.success === other.success && _this.promptExtension === other.promptExtension && _this.error == other.error;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(A.$jc(A.$jc(0, B.JSBool_methods.get$hashCode(this.success)), B.JSBool_methods.get$hashCode(this.promptExtension)), J.get$hashCode$(this.error)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("DevToolsResponse"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "success", this.success);
      t2.add$2(t1, "promptExtension", this.promptExtension);
      t2.add$2(t1, "error", this.error);
      return t2.toString$0(t1);
    }
  };
  A.DevToolsResponseBuilder.prototype = {
    set$success(success) {
      this.get$_devtools_request$_$this()._success = success;
    },
    get$_devtools_request$_$this() {
      var _this = this,
        $$v = _this._devtools_request$_$v;
      if ($$v != null) {
        _this._success = $$v.success;
        _this._promptExtension = $$v.promptExtension;
        _this._error = $$v.error;
        _this._devtools_request$_$v = null;
      }
      return _this;
    }
  };
  A.ErrorResponse.prototype = {};
  A._$ErrorResponseSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      type$.ErrorResponse._as(object);
      return ["error", serializers.serialize$2$specifiedType(object.error, B.FullType_PT1), "stackTrace", serializers.serialize$2$specifiedType(object.stackTrace, B.FullType_PT1)];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value, $$v, _$result, t2, t3,
        _s10_ = "stackTrace",
        _s13_ = "ErrorResponse",
        result = new A.ErrorResponseBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "error":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            $$v = result._error_response$_$v;
            if ($$v != null) {
              result._error_response$_error = $$v.error;
              result._error_response$_stackTrace = $$v.stackTrace;
              result._error_response$_$v = null;
            }
            result._error_response$_error = t1;
            break;
          case "stackTrace":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            $$v = result._error_response$_$v;
            if ($$v != null) {
              result._error_response$_error = $$v.error;
              result._error_response$_stackTrace = $$v.stackTrace;
              result._error_response$_$v = null;
            }
            result._error_response$_stackTrace = t1;
            break;
        }
      }
      _$result = result._error_response$_$v;
      if (_$result == null) {
        t1 = type$.String;
        t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_error_response$_$this()._error_response$_error, _s13_, "error", t1);
        t3 = A.BuiltValueNullFieldError_checkNotNull(result.get$_error_response$_$this()._error_response$_stackTrace, _s13_, _s10_, t1);
        _$result = new A._$ErrorResponse(t2, t3);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s13_, "error", t1);
        A.BuiltValueNullFieldError_checkNotNull(t3, _s13_, _s10_, t1);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.ErrorResponse);
      return result._error_response$_$v = _$result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_5LV;
    },
    get$wireName() {
      return "ErrorResponse";
    }
  };
  A._$ErrorResponse.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$ErrorResponse && this.error === other.error && this.stackTrace === other.stackTrace;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(this.error)), B.JSString_methods.get$hashCode(this.stackTrace)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("ErrorResponse"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "error", this.error);
      t2.add$2(t1, "stackTrace", this.stackTrace);
      return t2.toString$0(t1);
    }
  };
  A.ErrorResponseBuilder.prototype = {
    get$_error_response$_$this() {
      var _this = this,
        $$v = _this._error_response$_$v;
      if ($$v != null) {
        _this._error_response$_error = $$v.error;
        _this._error_response$_stackTrace = $$v.stackTrace;
        _this._error_response$_$v = null;
      }
      return _this;
    }
  };
  A.ExtensionRequest.prototype = {};
  A.ExtensionResponse.prototype = {};
  A.ExtensionEvent.prototype = {};
  A.BatchedEvents.prototype = {};
  A._$ExtensionRequestSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      var result, value;
      type$.ExtensionRequest._as(object);
      result = ["id", serializers.serialize$2$specifiedType(object.id, B.FullType_rTD), "command", serializers.serialize$2$specifiedType(object.command, B.FullType_PT1)];
      value = object.commandParams;
      if (value != null) {
        result.push("commandParams");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      return result;
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value, _$result, t2, t3, t4,
        _s16_ = "ExtensionRequest",
        result = new A.ExtensionRequestBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "id":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_rTD);
            t1.toString;
            A._asInt(t1);
            result.get$_extension_request$_$this()._id = t1;
            break;
          case "command":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_extension_request$_$this()._command = t1;
            break;
          case "commandParams":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_extension_request$_$this()._commandParams = t1;
            break;
        }
      }
      _$result = result._extension_request$_$v;
      if (_$result == null) {
        t1 = type$.int;
        t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._id, _s16_, "id", t1);
        t3 = type$.String;
        t4 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._command, _s16_, "command", t3);
        _$result = new A._$ExtensionRequest(t2, t4, result.get$_extension_request$_$this()._commandParams);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s16_, "id", t1);
        A.BuiltValueNullFieldError_checkNotNull(t4, _s16_, "command", t3);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.ExtensionRequest);
      return result._extension_request$_$v = _$result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_2dD;
    },
    get$wireName() {
      return "ExtensionRequest";
    }
  };
  A._$ExtensionResponseSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      var result, value;
      type$.ExtensionResponse._as(object);
      result = ["id", serializers.serialize$2$specifiedType(object.id, B.FullType_rTD), "success", serializers.serialize$2$specifiedType(object.success, B.FullType_R6B), "result", serializers.serialize$2$specifiedType(object.result, B.FullType_PT1)];
      value = object.error;
      if (value != null) {
        result.push("error");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      return result;
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value, _$result, t2, t3, t4, t5, t6,
        _s17_ = "ExtensionResponse",
        result = new A.ExtensionResponseBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "id":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_rTD);
            t1.toString;
            A._asInt(t1);
            result.get$_extension_request$_$this()._id = t1;
            break;
          case "success":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_R6B);
            t1.toString;
            A._asBool(t1);
            result.get$_extension_request$_$this()._extension_request$_success = t1;
            break;
          case "result":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_extension_request$_$this()._extension_request$_result = t1;
            break;
          case "error":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_extension_request$_$this()._extension_request$_error = t1;
            break;
        }
      }
      _$result = result._extension_request$_$v;
      if (_$result == null) {
        t1 = type$.int;
        t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._id, _s17_, "id", t1);
        t3 = type$.bool;
        t4 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._extension_request$_success, _s17_, "success", t3);
        t5 = type$.String;
        t6 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._extension_request$_result, _s17_, "result", t5);
        _$result = new A._$ExtensionResponse(t2, t4, t6, result.get$_extension_request$_$this()._extension_request$_error);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s17_, "id", t1);
        A.BuiltValueNullFieldError_checkNotNull(t4, _s17_, "success", t3);
        A.BuiltValueNullFieldError_checkNotNull(t6, _s17_, "result", t5);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.ExtensionResponse);
      return result._extension_request$_$v = _$result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_RWp;
    },
    get$wireName() {
      return "ExtensionResponse";
    }
  };
  A._$ExtensionEventSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      type$.ExtensionEvent._as(object);
      return ["params", serializers.serialize$2$specifiedType(object.params, B.FullType_PT1), "method", serializers.serialize$2$specifiedType(object.method, B.FullType_PT1)];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value, $$v, _$result, t2, t3,
        _s14_ = "ExtensionEvent",
        result = new A.ExtensionEventBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "params":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            $$v = result._extension_request$_$v;
            if ($$v != null) {
              result._params = $$v.params;
              result._extension_request$_method = $$v.method;
              result._extension_request$_$v = null;
            }
            result._params = t1;
            break;
          case "method":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            $$v = result._extension_request$_$v;
            if ($$v != null) {
              result._params = $$v.params;
              result._extension_request$_method = $$v.method;
              result._extension_request$_$v = null;
            }
            result._extension_request$_method = t1;
            break;
        }
      }
      _$result = result._extension_request$_$v;
      if (_$result == null) {
        t1 = type$.String;
        t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._params, _s14_, "params", t1);
        t3 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._extension_request$_method, _s14_, "method", t1);
        _$result = new A._$ExtensionEvent(t2, t3);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s14_, "params", t1);
        A.BuiltValueNullFieldError_checkNotNull(t3, _s14_, "method", t1);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.ExtensionEvent);
      return result._extension_request$_$v = _$result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_yvR;
    },
    get$wireName() {
      return "ExtensionEvent";
    }
  };
  A._$BatchedEventsSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      return ["events", serializers.serialize$2$specifiedType(type$.BatchedEvents._as(object).events, B.FullType_ahP)];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, t2, t3, t4, t5, value, $$v, t6, t7, t8, t9,
        result = new A.BatchedEventsBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (t1 = type$.BuiltList_nullable_Object, t2 = type$.ExtensionEvent, t3 = type$.List_ExtensionEvent, t4 = type$.ListBuilder_ExtensionEvent; iterator.moveNext$0();) {
        t5 = iterator.get$current();
        t5.toString;
        A._asString(t5);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t5) {
          case "events":
            $$v = result._extension_request$_$v;
            if ($$v != null) {
              t5 = $$v.events;
              t6 = t5.$ti;
              t7 = new A.ListBuilder(t6._eval$1("ListBuilder<1>"));
              t8 = t6._eval$1("_BuiltList<1>");
              t9 = t6._eval$1("List<1>");
              if (t8._is(t5)) {
                t8._as(t5);
                t7.__ListBuilder__list_A = t9._as(t5._list);
                t7._listOwner = t5;
              } else
                t7.__ListBuilder__list_A = t9._as(A.List_List$from(t5, true, t6._precomputed1));
              result._extension_request$_events = t7;
              result._extension_request$_$v = null;
            }
            t5 = result._extension_request$_events;
            if (t5 == null) {
              t5 = new A.ListBuilder(t4);
              t5.__ListBuilder__list_A = t3._as(A.List_List$from(B.List_empty0, true, t2));
              result.set$_extension_request$_events(t5);
            }
            t6 = serializers.deserialize$2$specifiedType(value, B.FullType_ahP);
            t6.toString;
            t1._as(t6);
            t7 = t5.$ti;
            t8 = t7._eval$1("_BuiltList<1>");
            t9 = t7._eval$1("List<1>");
            if (t8._is(t6)) {
              t8._as(t6);
              t5.__ListBuilder__list_A = t9._as(t6._list);
              t5._listOwner = t6;
            } else {
              t5.__ListBuilder__list_A = t9._as(A.List_List$from(t6, true, t7._precomputed1));
              t5._listOwner = null;
            }
            break;
        }
      }
      return result._extension_request$_build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_oDF;
    },
    get$wireName() {
      return "BatchedEvents";
    }
  };
  A._$ExtensionRequest.prototype = {
    $eq(_, other) {
      var _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      return other instanceof A._$ExtensionRequest && _this.id === other.id && _this.command === other.command && _this.commandParams == other.commandParams;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(A.$jc(A.$jc(0, B.JSInt_methods.get$hashCode(this.id)), B.JSString_methods.get$hashCode(this.command)), J.get$hashCode$(this.commandParams)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("ExtensionRequest"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "id", this.id);
      t2.add$2(t1, "command", this.command);
      t2.add$2(t1, "commandParams", this.commandParams);
      return t2.toString$0(t1);
    }
  };
  A.ExtensionRequestBuilder.prototype = {
    set$id(id) {
      A._asIntQ(id);
      this.get$_extension_request$_$this()._id = id;
    },
    get$_extension_request$_$this() {
      var _this = this,
        $$v = _this._extension_request$_$v;
      if ($$v != null) {
        _this._id = $$v.id;
        _this._command = $$v.command;
        _this._commandParams = $$v.commandParams;
        _this._extension_request$_$v = null;
      }
      return _this;
    }
  };
  A._$ExtensionResponse.prototype = {
    $eq(_, other) {
      var _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      return other instanceof A._$ExtensionResponse && _this.id === other.id && _this.success === other.success && _this.result === other.result && _this.error == other.error;
    },
    get$hashCode(_) {
      var _this = this;
      return A.$jf(A.$jc(A.$jc(A.$jc(A.$jc(0, B.JSInt_methods.get$hashCode(_this.id)), B.JSBool_methods.get$hashCode(_this.success)), B.JSString_methods.get$hashCode(_this.result)), J.get$hashCode$(_this.error)));
    },
    toString$0(_) {
      var _this = this,
        t1 = $.$get$newBuiltValueToStringHelper().call$1("ExtensionResponse"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "id", _this.id);
      t2.add$2(t1, "success", _this.success);
      t2.add$2(t1, "result", _this.result);
      t2.add$2(t1, "error", _this.error);
      return t2.toString$0(t1);
    }
  };
  A.ExtensionResponseBuilder.prototype = {
    set$id(id) {
      A._asIntQ(id);
      this.get$_extension_request$_$this()._id = id;
    },
    set$success(success) {
      this.get$_extension_request$_$this()._extension_request$_success = success;
    },
    get$_extension_request$_$this() {
      var _this = this,
        $$v = _this._extension_request$_$v;
      if ($$v != null) {
        _this._id = $$v.id;
        _this._extension_request$_success = $$v.success;
        _this._extension_request$_result = $$v.result;
        _this._extension_request$_error = $$v.error;
        _this._extension_request$_$v = null;
      }
      return _this;
    }
  };
  A._$ExtensionEvent.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$ExtensionEvent && this.params === other.params && this.method === other.method;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(this.params)), B.JSString_methods.get$hashCode(this.method)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("ExtensionEvent"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "params", this.params);
      t2.add$2(t1, "method", this.method);
      return t2.toString$0(t1);
    }
  };
  A.ExtensionEventBuilder.prototype = {
    get$_extension_request$_$this() {
      var _this = this,
        $$v = _this._extension_request$_$v;
      if ($$v != null) {
        _this._params = $$v.params;
        _this._extension_request$_method = $$v.method;
        _this._extension_request$_$v = null;
      }
      return _this;
    }
  };
  A._$BatchedEvents.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$BatchedEvents && this.events.$eq(0, other.events);
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(0, this.events.get$hashCode(0)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("BatchedEvents"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "events", this.events);
      return t2.toString$0(t1);
    }
  };
  A.BatchedEventsBuilder.prototype = {
    get$events() {
      var t1, _this = this,
        $$v = _this._extension_request$_$v;
      if ($$v != null) {
        t1 = $$v.events;
        _this._extension_request$_events = A.ListBuilder_ListBuilder(t1, t1.$ti._precomputed1);
        _this._extension_request$_$v = null;
      }
      t1 = _this._extension_request$_events;
      if (t1 == null) {
        t1 = A.ListBuilder_ListBuilder(B.List_empty0, type$.ExtensionEvent);
        _this.set$_extension_request$_events(t1);
      }
      return t1;
    },
    _extension_request$_build$0() {
      var _$failedField, e, _$result0, t1, exception, t2, _this = this,
        _s13_ = "BatchedEvents",
        _$result = null;
      try {
        _$result0 = _this._extension_request$_$v;
        if (_$result0 == null) {
          t1 = _this.get$events().build$0();
          _$result0 = new A._$BatchedEvents(t1);
          A.BuiltValueNullFieldError_checkNotNull(t1, _s13_, "events", type$.BuiltList_ExtensionEvent);
        }
        _$result = _$result0;
      } catch (exception) {
        _$failedField = A._Cell$named("_$failedField");
        try {
          _$failedField.__late_helper$_value = "events";
          _this.get$events().build$0();
        } catch (exception) {
          e = A.unwrapException(exception);
          t1 = A.BuiltValueNestedFieldError$(_s13_, _$failedField.readLocal$0(), J.toString$0$(e));
          throw A.wrapException(t1);
        }
        throw exception;
      }
      t1 = type$.BatchedEvents;
      t2 = t1._as(_$result);
      A.ArgumentError_checkNotNull(t2, "other", t1);
      _this._extension_request$_$v = t2;
      return _$result;
    },
    set$_extension_request$_events(_events) {
      this._extension_request$_events = type$.nullable_ListBuilder_ExtensionEvent._as(_events);
    }
  };
  A.HotReloadRequest.prototype = {};
  A._$HotReloadRequestSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      return ["id", serializers.serialize$2$specifiedType(type$.HotReloadRequest._as(object).id, B.FullType_PT1)];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value, $$v, _$result, t2,
        _s16_ = "HotReloadRequest",
        result = new A.HotReloadRequestBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "id":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            $$v = result._hot_reload_request$_$v;
            if ($$v != null) {
              result._hot_reload_request$_id = $$v.id;
              result._hot_reload_request$_$v = null;
            }
            result._hot_reload_request$_id = t1;
            break;
        }
      }
      _$result = result._hot_reload_request$_$v;
      if (_$result == null) {
        t1 = type$.String;
        t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_hot_reload_request$_$this()._hot_reload_request$_id, _s16_, "id", t1);
        _$result = new A._$HotReloadRequest(t2);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s16_, "id", t1);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.HotReloadRequest);
      return result._hot_reload_request$_$v = _$result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_dz9;
    },
    get$wireName() {
      return "HotReloadRequest";
    }
  };
  A._$HotReloadRequest.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$HotReloadRequest && this.id === other.id;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(0, B.JSString_methods.get$hashCode(this.id)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("HotReloadRequest"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "id", this.id);
      return t2.toString$0(t1);
    }
  };
  A.HotReloadRequestBuilder.prototype = {
    set$id(id) {
      this.get$_hot_reload_request$_$this()._hot_reload_request$_id = id;
    },
    get$_hot_reload_request$_$this() {
      var _this = this,
        $$v = _this._hot_reload_request$_$v;
      if ($$v != null) {
        _this._hot_reload_request$_id = $$v.id;
        _this._hot_reload_request$_$v = null;
      }
      return _this;
    }
  };
  A.HotReloadResponse.prototype = {};
  A._$HotReloadResponseSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      var result, value;
      type$.HotReloadResponse._as(object);
      result = ["id", serializers.serialize$2$specifiedType(object.id, B.FullType_PT1), "success", serializers.serialize$2$specifiedType(object.success, B.FullType_R6B)];
      value = object.errorMessage;
      if (value != null) {
        result.push("error");
        result.push(serializers.serialize$2$specifiedType(value, B.FullType_PT1));
      }
      return result;
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value,
        result = new A.HotReloadResponseBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "id":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            result.get$_hot_reload_response$_$this()._hot_reload_response$_id = t1;
            break;
          case "success":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_R6B);
            t1.toString;
            A._asBool(t1);
            result.get$_hot_reload_response$_$this()._hot_reload_response$_success = t1;
            break;
          case "error":
            t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_PT1));
            result.get$_hot_reload_response$_$this()._errorMessage = t1;
            break;
        }
      }
      return result._hot_reload_response$_build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_DqJ;
    },
    get$wireName() {
      return "HotReloadResponse";
    }
  };
  A._$HotReloadResponse.prototype = {
    $eq(_, other) {
      var _this = this;
      if (other == null)
        return false;
      if (other === _this)
        return true;
      return other instanceof A._$HotReloadResponse && _this.id === other.id && _this.success === other.success && _this.errorMessage == other.errorMessage;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(this.id)), B.JSBool_methods.get$hashCode(this.success)), J.get$hashCode$(this.errorMessage)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("HotReloadResponse"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "id", this.id);
      t2.add$2(t1, "success", this.success);
      t2.add$2(t1, "errorMessage", this.errorMessage);
      return t2.toString$0(t1);
    }
  };
  A.HotReloadResponseBuilder.prototype = {
    set$id(id) {
      this.get$_hot_reload_response$_$this()._hot_reload_response$_id = id;
    },
    set$success(success) {
      this.get$_hot_reload_response$_$this()._hot_reload_response$_success = success;
    },
    set$errorMessage(errorMessage) {
      this.get$_hot_reload_response$_$this()._errorMessage = errorMessage;
    },
    get$_hot_reload_response$_$this() {
      var _this = this,
        $$v = _this._hot_reload_response$_$v;
      if ($$v != null) {
        _this._hot_reload_response$_id = $$v.id;
        _this._hot_reload_response$_success = $$v.success;
        _this._errorMessage = $$v.errorMessage;
        _this._hot_reload_response$_$v = null;
      }
      return _this;
    },
    _hot_reload_response$_build$0() {
      var t1, t2, t3, t4, _this = this,
        _s17_ = "HotReloadResponse",
        _$result = _this._hot_reload_response$_$v;
      if (_$result == null) {
        t1 = type$.String;
        t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_hot_reload_response$_$this()._hot_reload_response$_id, _s17_, "id", t1);
        t3 = type$.bool;
        t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_hot_reload_response$_$this()._hot_reload_response$_success, _s17_, "success", t3);
        _$result = new A._$HotReloadResponse(t2, t4, _this.get$_hot_reload_response$_$this()._errorMessage);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s17_, "id", t1);
        A.BuiltValueNullFieldError_checkNotNull(t4, _s17_, "success", t3);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.HotReloadResponse);
      return _this._hot_reload_response$_$v = _$result;
    }
  };
  A.IsolateExit.prototype = {};
  A.IsolateStart.prototype = {};
  A._$IsolateExitSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      type$.IsolateExit._as(object);
      return [];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      type$.Iterable_nullable_Object._as(serialized);
      return new A.IsolateExitBuilder()._isolate_events$_build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_MJN;
    },
    get$wireName() {
      return "IsolateExit";
    }
  };
  A._$IsolateStartSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      type$.IsolateStart._as(object);
      return [];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      type$.Iterable_nullable_Object._as(serialized);
      return new A.IsolateStartBuilder()._isolate_events$_build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_KpG;
    },
    get$wireName() {
      return "IsolateStart";
    }
  };
  A._$IsolateExit.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$IsolateExit;
    },
    get$hashCode(_) {
      return 814065794;
    },
    toString$0(_) {
      return J.toString$0$($.$get$newBuiltValueToStringHelper().call$1("IsolateExit"));
    }
  };
  A.IsolateExitBuilder.prototype = {
    _isolate_events$_build$0() {
      var _$result = this._isolate_events$_$v;
      if (_$result == null)
        _$result = new A._$IsolateExit();
      A.ArgumentError_checkNotNull(_$result, "other", type$.IsolateExit);
      return this._isolate_events$_$v = _$result;
    }
  };
  A._$IsolateStart.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$IsolateStart;
    },
    get$hashCode(_) {
      return 97463111;
    },
    toString$0(_) {
      return J.toString$0$($.$get$newBuiltValueToStringHelper().call$1("IsolateStart"));
    }
  };
  A.IsolateStartBuilder.prototype = {
    _isolate_events$_build$0() {
      var _$result = this._isolate_events$_$v;
      if (_$result == null)
        _$result = new A._$IsolateStart();
      A.ArgumentError_checkNotNull(_$result, "other", type$.IsolateStart);
      return this._isolate_events$_$v = _$result;
    }
  };
  A.RegisterEvent.prototype = {};
  A._$RegisterEventSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      type$.RegisterEvent._as(object);
      return ["eventData", serializers.serialize$2$specifiedType(object.eventData, B.FullType_PT1), "timestamp", serializers.serialize$2$specifiedType(object.timestamp, B.FullType_rTD)];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var t1, value, $$v,
        result = new A.RegisterEventBuilder(),
        iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized));
      for (; iterator.moveNext$0();) {
        t1 = iterator.get$current();
        t1.toString;
        A._asString(t1);
        iterator.moveNext$0();
        value = iterator.get$current();
        switch (t1) {
          case "eventData":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_PT1);
            t1.toString;
            A._asString(t1);
            $$v = result._register_event$_$v;
            if ($$v != null) {
              result._register_event$_eventData = $$v.eventData;
              result._register_event$_timestamp = $$v.timestamp;
              result._register_event$_$v = null;
            }
            result._register_event$_eventData = t1;
            break;
          case "timestamp":
            t1 = serializers.deserialize$2$specifiedType(value, B.FullType_rTD);
            t1.toString;
            A._asInt(t1);
            $$v = result._register_event$_$v;
            if ($$v != null) {
              result._register_event$_eventData = $$v.eventData;
              result._register_event$_timestamp = $$v.timestamp;
              result._register_event$_$v = null;
            }
            result._register_event$_timestamp = t1;
            break;
        }
      }
      return result._register_event$_build$0();
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_EMv;
    },
    get$wireName() {
      return "RegisterEvent";
    }
  };
  A._$RegisterEvent.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$RegisterEvent && this.eventData === other.eventData && this.timestamp === other.timestamp;
    },
    get$hashCode(_) {
      return A.$jf(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(this.eventData)), B.JSInt_methods.get$hashCode(this.timestamp)));
    },
    toString$0(_) {
      var t1 = $.$get$newBuiltValueToStringHelper().call$1("RegisterEvent"),
        t2 = J.getInterceptor$ax(t1);
      t2.add$2(t1, "eventData", this.eventData);
      t2.add$2(t1, "timestamp", this.timestamp);
      return t2.toString$0(t1);
    }
  };
  A.RegisterEventBuilder.prototype = {
    get$_register_event$_$this() {
      var _this = this,
        $$v = _this._register_event$_$v;
      if ($$v != null) {
        _this._register_event$_eventData = $$v.eventData;
        _this._register_event$_timestamp = $$v.timestamp;
        _this._register_event$_$v = null;
      }
      return _this;
    },
    _register_event$_build$0() {
      var t1, t2, t3, t4, _this = this,
        _s13_ = "RegisterEvent",
        _s9_ = "eventData",
        _s9_0 = "timestamp",
        _$result = _this._register_event$_$v;
      if (_$result == null) {
        t1 = type$.String;
        t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_register_event$_$this()._register_event$_eventData, _s13_, _s9_, t1);
        t3 = type$.int;
        t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_register_event$_$this()._register_event$_timestamp, _s13_, _s9_0, t3);
        _$result = new A._$RegisterEvent(t2, t4);
        A.BuiltValueNullFieldError_checkNotNull(t2, _s13_, _s9_, t1);
        A.BuiltValueNullFieldError_checkNotNull(t4, _s13_, _s9_0, t3);
      }
      A.ArgumentError_checkNotNull(_$result, "other", type$.RegisterEvent);
      return _this._register_event$_$v = _$result;
    }
  };
  A.RunRequest.prototype = {};
  A._$RunRequestSerializer.prototype = {
    serialize$3$specifiedType(serializers, object, specifiedType) {
      type$.RunRequest._as(object);
      return [];
    },
    serialize$2(serializers, object) {
      return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false);
    },
    deserialize$3$specifiedType(serializers, serialized, specifiedType) {
      var _$result;
      type$.Iterable_nullable_Object._as(serialized);
      _$result = new A._$RunRequest();
      A.ArgumentError_checkNotNull(_$result, "other", type$.RunRequest);
      return _$result;
    },
    deserialize$2(serializers, serialized) {
      return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false);
    },
    $isSerializer: 1,
    $isStructuredSerializer: 1,
    get$types() {
      return B.List_RlA;
    },
    get$wireName() {
      return "RunRequest";
    }
  };
  A._$RunRequest.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      if (other === this)
        return true;
      return other instanceof A._$RunRequest;
    },
    get$hashCode(_) {
      return 248087772;
    },
    toString$0(_) {
      return J.toString$0$($.$get$newBuiltValueToStringHelper().call$1("RunRequest"));
    }
  };
  A._$serializers_closure.prototype = {
    call$0() {
      return A.ListBuilder_ListBuilder(B.List_empty0, type$.DebugEvent);
    },
    $signature: 40
  };
  A._$serializers_closure0.prototype = {
    call$0() {
      return A.ListBuilder_ListBuilder(B.List_empty0, type$.ExtensionEvent);
    },
    $signature: 41
  };
  A.BatchedStreamController.prototype = {
    _batchAndSendEvents$0() {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        $async$self = this, t2, t3, t4, t5, t6, t7, t8, lastSendTime0, lastEvent, duration, t1, buffer, lastSendTime, $async$temp1, $async$temp2;
      var $async$_batchAndSendEvents$0 = 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
              duration = A.Duration$(0, $async$self._checkDelayMilliseconds);
              t1 = $async$self.$ti;
              buffer = A._setArrayType([], t1._eval$1("JSArray<1>"));
              lastSendTime = Date.now();
              t2 = $async$self._batchDelayMilliseconds, t3 = $async$self._outputController, t4 = A._instanceType(t3), t1 = t1._precomputed1, t5 = t4._precomputed1, t4 = t4._eval$1("_DelayedData<1>");
            case 2:
              // for condition
              $async$goto = 4;
              return A._asyncAwait($async$self._hasEventOrTimeOut$1(duration), $async$_batchAndSendEvents$0);
            case 4:
              // returning from await.
              if (!$async$result) {
                // goto after for
                $async$goto = 3;
                break;
              }
              $async$goto = 7;
              return A._asyncAwait($async$self._hasEventDuring$1(duration), $async$_batchAndSendEvents$0);
            case 7:
              // returning from await.
              $async$goto = $async$result ? 5 : 6;
              break;
            case 5:
              // then
              t6 = $async$self.__BatchedStreamController__inputQueue_A;
              t6 === $ && A.throwLateFieldNI("_inputQueue");
              t7 = t6.$ti;
              t8 = new A._Future($.Zone__current, t7._eval$1("_Future<1>"));
              t6._addRequest$1(new A._NextRequest(new A._AsyncCompleter(t8, t7._eval$1("_AsyncCompleter<1>")), t7._eval$1("_NextRequest<1>")));
              $async$temp1 = B.JSArray_methods;
              $async$temp2 = buffer;
              $async$goto = 8;
              return A._asyncAwait(t8, $async$_batchAndSendEvents$0);
            case 8:
              // returning from await.
              $async$temp1.add$1($async$temp2, $async$result);
            case 6:
              // join
              lastSendTime0 = Date.now();
              if (lastSendTime0 > lastSendTime + t2) {
                if (buffer.length !== 0) {
                  t6 = A.List_List$_of(buffer, t1);
                  t5._as(t6);
                  t7 = t3._state;
                  if (t7 >= 4)
                    A.throwExpression(t3._badEventState$0());
                  if ((t7 & 1) !== 0)
                    t3._sendData$1(t6);
                  else if ((t7 & 3) === 0) {
                    t7 = t3._ensurePendingEvents$0();
                    t6 = new A._DelayedData(t6, t4);
                    lastEvent = t7.lastPendingEvent;
                    if (lastEvent == null)
                      t7.firstPendingEvent = t7.lastPendingEvent = t6;
                    else {
                      lastEvent.set$next(t6);
                      t7.lastPendingEvent = t6;
                    }
                  }
                  B.JSArray_methods.clear$0(buffer);
                }
                lastSendTime = lastSendTime0;
              }
              // goto for condition
              $async$goto = 2;
              break;
            case 3:
              // after for
              if (buffer.length !== 0) {
                t1 = A.List_List$_of(buffer, t1);
                t3.add$1(0, t5._as(t1));
              }
              $async$self._completer.complete$1(true);
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$_batchAndSendEvents$0, $async$completer);
    },
    _hasEventOrTimeOut$1(duration) {
      var t1 = this.__BatchedStreamController__inputQueue_A;
      t1 === $ && A.throwLateFieldNI("_inputQueue");
      return t1.get$hasNext().timeout$2$onTimeout(duration, new A.BatchedStreamController__hasEventOrTimeOut_closure());
    },
    _hasEventDuring$1(duration) {
      var t1 = this.__BatchedStreamController__inputQueue_A;
      t1 === $ && A.throwLateFieldNI("_inputQueue");
      return t1.get$hasNext().timeout$2$onTimeout(duration, new A.BatchedStreamController__hasEventDuring_closure());
    }
  };
  A.BatchedStreamController__hasEventOrTimeOut_closure.prototype = {
    call$0() {
      return true;
    },
    $signature: 34
  };
  A.BatchedStreamController__hasEventDuring_closure.prototype = {
    call$0() {
      return false;
    },
    $signature: 34
  };
  A.SocketClient.prototype = {};
  A.SseSocketClient.prototype = {
    get$sink() {
      var t1 = this._sockets$_client._outgoingController;
      return new A._StreamSinkWrapper(t1, A._instanceType(t1)._eval$1("_StreamSinkWrapper<1>"));
    },
    get$stream() {
      var t1 = this._sockets$_client._incomingController;
      return new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>"));
    }
  };
  A.WebSocketClient.prototype = {
    get$sink() {
      var t2,
        t1 = this._channel,
        value = t1.__AdapterWebSocketChannel_sink_FI;
      if (value === $) {
        t2 = t1._adapter_web_socket_channel$_controller.__StreamChannelController__foreign_F;
        t2 === $ && A.throwLateFieldNI("_foreign");
        t2 = t2.__GuaranteeChannel__sink_F;
        t2 === $ && A.throwLateFieldNI("_sink");
        value !== $ && A.throwLateFieldADI("sink");
        value = t1.__AdapterWebSocketChannel_sink_FI = new A._WebSocketSink(t1, t2);
      }
      return value;
    },
    get$stream() {
      var t2,
        t1 = this._channel._adapter_web_socket_channel$_controller.__StreamChannelController__foreign_F;
      t1 === $ && A.throwLateFieldNI("_foreign");
      t1 = t1.__GuaranteeChannel__streamController_F;
      t1 === $ && A.throwLateFieldNI("_streamController");
      t2 = A._instanceType(t1)._eval$1("_ControllerStream<1>");
      return new A._MapStream(t2._eval$1("String(Stream.T)")._as(new A.WebSocketClient_stream_closure()), new A._ControllerStream(t1, t2), t2._eval$1("_MapStream<Stream.T,String>"));
    }
  };
  A.WebSocketClient_stream_closure.prototype = {
    call$1(o) {
      return J.toString$0$(o);
    },
    $signature: 43
  };
  A.safeUnawaited_closure.prototype = {
    call$2(error, stackTrace) {
      type$.StackTrace._as(stackTrace);
      return $.$get$_logger().log$4(B.Level_WARNING_900, "Error in unawaited Future:", error, stackTrace);
    },
    $signature: 21
  };
  A.Int32.prototype = {
    _toInt$1(val) {
      if (val instanceof A.Int32)
        return val._i;
      else if (A._isInt(val))
        return val;
      throw A.wrapException(A.ArgumentError$value(val, "other", "Not an int, Int32 or Int64"));
    },
    $eq(_, other) {
      if (other == null)
        return false;
      if (other instanceof A.Int32)
        return this._i === other._i;
      else if (other instanceof A.Int64)
        return A.Int64_Int64(this._i).$eq(0, other);
      else if (A._isInt(other))
        return this._i === other;
      return false;
    },
    compareTo$1(_, other) {
      if (other instanceof A.Int64)
        return A.Int64_Int64(this._i)._compareTo$1(other);
      return B.JSInt_methods.compareTo$1(this._i, this._toInt$1(other));
    },
    get$hashCode(_) {
      return this._i;
    },
    toString$0(_) {
      return B.JSInt_methods.toString$0(this._i);
    },
    $isComparable: 1
  };
  A.Int64.prototype = {
    $eq(_, other) {
      var o, _this = this;
      if (other == null)
        return false;
      if (other instanceof A.Int64)
        o = other;
      else if (A._isInt(other)) {
        if (_this._h === 0 && _this._m === 0)
          return _this._l === other;
        if ((other & 4194303) === other)
          return false;
        o = A.Int64_Int64(other);
      } else
        o = other instanceof A.Int32 ? A.Int64_Int64(other._i) : null;
      if (o != null)
        return _this._l === o._l && _this._m === o._m && _this._h === o._h;
      return false;
    },
    compareTo$1(_, other) {
      return this._compareTo$1(other);
    },
    _compareTo$1(other) {
      var o = A.Int64__promote(other),
        t1 = this._h,
        signa = t1 >>> 19,
        t2 = o._h;
      if (signa !== t2 >>> 19)
        return signa === 0 ? 1 : -1;
      if (t1 > t2)
        return 1;
      else if (t1 < t2)
        return -1;
      t1 = this._m;
      t2 = o._m;
      if (t1 > t2)
        return 1;
      else if (t1 < t2)
        return -1;
      t1 = this._l;
      t2 = o._l;
      if (t1 > t2)
        return 1;
      else if (t1 < t2)
        return -1;
      return 0;
    },
    get$hashCode(_) {
      var t1 = this._m;
      return (((t1 & 1023) << 22 | this._l) ^ (this._h << 12 | t1 >>> 10 & 4095)) >>> 0;
    },
    toString$0(_) {
      var d00, d10, sign,
        d0 = this._l,
        d1 = this._m,
        d2 = this._h;
      if ((d2 & 524288) !== 0) {
        d0 = 0 - d0;
        d00 = d0 & 4194303;
        d1 = 0 - d1 - (B.JSInt_methods._shrOtherPositive$1(d0, 22) & 1);
        d10 = d1 & 4194303;
        d2 = 0 - d2 - (B.JSInt_methods._shrOtherPositive$1(d1, 22) & 1) & 1048575;
        d1 = d10;
        d0 = d00;
        sign = "-";
      } else
        sign = "";
      return A.Int64__toRadixStringUnsigned(10, d0, d1, d2, sign);
    },
    _toRadixString$1(radix) {
      var d00, d10, sign,
        d0 = this._l,
        d1 = this._m,
        d2 = this._h;
      if ((d2 & 524288) !== 0) {
        d0 = 0 - d0;
        d00 = d0 & 4194303;
        d1 = 0 - d1 - (B.JSInt_methods._shrOtherPositive$1(d0, 22) & 1);
        d10 = d1 & 4194303;
        d2 = 0 - d2 - (B.JSInt_methods._shrOtherPositive$1(d1, 22) & 1) & 1048575;
        d1 = d10;
        d0 = d00;
        sign = "-";
      } else
        sign = "";
      return A.Int64__toRadixStringUnsigned(radix, d0, d1, d2, sign);
    },
    $isComparable: 1
  };
  A._StackState.prototype = {};
  A.BaseClient.prototype = {
    _sendUnstreamed$3(method, url, headers) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.Response),
        $async$returnValue, $async$self = this, request, $async$temp1;
      var $async$_sendUnstreamed$3 = 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
              request = A.Request$(method, url);
              $async$temp1 = A;
              $async$goto = 3;
              return A._asyncAwait($async$self.send$1(request), $async$_sendUnstreamed$3);
            case 3:
              // returning from await.
              $async$returnValue = $async$temp1.Response_fromStream($async$result);
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$_sendUnstreamed$3, $async$completer);
    }
  };
  A.BaseRequest.prototype = {
    finalize$0() {
      if (this._finalized)
        throw A.wrapException(A.StateError$("Can't finalize a finalized Request."));
      this._finalized = true;
      return B.ByteStream__EmptyStream;
    },
    toString$0(_) {
      return this.method + " " + this.url.toString$0(0);
    }
  };
  A.BaseRequest_closure.prototype = {
    call$2(key1, key2) {
      return A._asString(key1).toLowerCase() === A._asString(key2).toLowerCase();
    },
    $signature: 44
  };
  A.BaseRequest_closure0.prototype = {
    call$1(key) {
      return B.JSString_methods.get$hashCode(A._asString(key).toLowerCase());
    },
    $signature: 45
  };
  A.BaseResponse.prototype = {
    BaseResponse$7$contentLength$headers$isRedirect$persistentConnection$reasonPhrase$request(statusCode, contentLength, headers, isRedirect, persistentConnection, reasonPhrase, request) {
      var t1 = this.statusCode;
      if (t1 < 100)
        throw A.wrapException(A.ArgumentError$("Invalid status code " + t1 + ".", null));
    }
  };
  A.BrowserClient.prototype = {
    send$1(request) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.StreamedResponse),
        $async$returnValue, $async$handler = 2, $async$errorStack = [], $async$next = [], $async$self = this, xhr, completer, bytes, t1, t2, header, t3;
      var $async$send$1 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
        if ($async$errorCode === 1) {
          $async$errorStack.push($async$result);
          $async$goto = $async$handler;
        }
        while (true)
          switch ($async$goto) {
            case 0:
              // Function start
              request.super$BaseRequest$finalize();
              $async$goto = 3;
              return A._asyncAwait(new A.ByteStream(A.Stream_Stream$value(request._bodyBytes, type$.List_int)).toBytes$0(), $async$send$1);
            case 3:
              // returning from await.
              bytes = $async$result;
              xhr = type$.JSObject._as(new init.G.XMLHttpRequest());
              t1 = $async$self._xhrs;
              t1.add$1(0, xhr);
              t2 = xhr;
              t2.open(request.method, request.url.toString$0(0), true);
              t2.responseType = "arraybuffer";
              t2.withCredentials = $async$self.withCredentials;
              for (t2 = request.headers, t2 = new A.LinkedHashMapEntriesIterable(t2, A._instanceType(t2)._eval$1("LinkedHashMapEntriesIterable<1,2>")).get$iterator(0); t2.moveNext$0();) {
                header = t2.__js_helper$_current;
                xhr.setRequestHeader(header.key, header.value);
              }
              completer = new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_StreamedResponse), type$._AsyncCompleter_StreamedResponse);
              t2 = type$._EventStream_JSObject;
              t3 = type$.void;
              new A._EventStream(xhr, "load", false, t2).get$first(0).then$1$1(new A.BrowserClient_send_closure(xhr, completer, request), t3);
              new A._EventStream(xhr, "error", false, t2).get$first(0).then$1$1(new A.BrowserClient_send_closure0(completer, request), t3);
              xhr.send(bytes);
              $async$handler = 4;
              $async$goto = 7;
              return A._asyncAwait(completer.future, $async$send$1);
            case 7:
              // returning from await.
              t2 = $async$result;
              $async$returnValue = t2;
              $async$next = [1];
              // goto finally
              $async$goto = 5;
              break;
              $async$next.push(6);
              // goto finally
              $async$goto = 5;
              break;
            case 4:
              // uncaught
              $async$next = [2];
            case 5:
              // finally
              $async$handler = 2;
              t1.remove$1(0, xhr);
              // goto the next finally handler
              $async$goto = $async$next.pop();
              break;
            case 6:
              // after finally
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
            case 2:
              // rethrow
              return A._asyncRethrow($async$errorStack.at(-1), $async$completer);
          }
      });
      return A._asyncStartSync($async$send$1, $async$completer);
    }
  };
  A.BrowserClient_send_closure.prototype = {
    call$1(_) {
      var t1, _0_0, t2, body, responseUrl, t3, t4, t5, t6, _this = this;
      type$.JSObject._as(_);
      t1 = _this.xhr;
      _0_0 = A._extension_0_get_responseHeaders(t1).$index(0, "content-length");
      t2 = false;
      if (_0_0 != null) {
        t2 = $.$get$_digitRegex();
        t2 = !t2._nativeRegExp.test(_0_0);
      }
      if (t2) {
        _this.completer.completeError$1(new A.ClientException("Invalid content-length header [" + _0_0 + "].", _this.request.url));
        return;
      }
      body = A.NativeUint8List_NativeUint8List$view(type$.NativeByteBuffer._as(t1.response), 0, null);
      responseUrl = A._asString(t1.responseURL);
      if (responseUrl.length !== 0)
        A.Uri_parse(responseUrl);
      t2 = A.Stream_Stream$value(body, type$.List_int);
      t3 = A._asInt(t1.status);
      t4 = body.length;
      t5 = _this.request;
      t6 = A._extension_0_get_responseHeaders(t1);
      t1 = A._asString(t1.statusText);
      t2 = new A.StreamedResponseV2(A.toByteStream(new A.ByteStream(t2)), t5, t3, t1, t4, t6, false, true);
      t2.BaseResponse$7$contentLength$headers$isRedirect$persistentConnection$reasonPhrase$request(t3, t4, t6, false, true, t1, t5);
      _this.completer.complete$1(t2);
    },
    $signature: 8
  };
  A.BrowserClient_send_closure0.prototype = {
    call$1(_) {
      type$.JSObject._as(_);
      this.completer.completeError$2(new A.ClientException("XMLHttpRequest error.", this.request.url), A.StackTrace_current());
    },
    $signature: 8
  };
  A.ByteStream.prototype = {
    toBytes$0() {
      var t1 = new A._Future($.Zone__current, type$._Future_Uint8List),
        completer = new A._AsyncCompleter(t1, type$._AsyncCompleter_Uint8List),
        sink = new A._ByteCallbackSink(new A.ByteStream_toBytes_closure(completer), new Uint8Array(1024));
      this.listen$4$cancelOnError$onDone$onError(type$.void_Function_List_int._as(sink.get$add(sink)), true, sink.get$close(), completer.get$completeError());
      return t1;
    }
  };
  A.ByteStream_toBytes_closure.prototype = {
    call$1(bytes) {
      return this.completer.complete$1(new Uint8Array(A._ensureNativeList(type$.List_int._as(bytes))));
    },
    $signature: 47
  };
  A.ClientException.prototype = {
    toString$0(_) {
      var t1 = this.uri.toString$0(0);
      return "ClientException: " + this.message + ", uri=" + t1;
    },
    $isException: 1
  };
  A.Request.prototype = {};
  A.Response.prototype = {};
  A.StreamedResponse.prototype = {};
  A.StreamedResponseV2.prototype = {};
  A.CaseInsensitiveMap.prototype = {};
  A.MediaType.prototype = {
    toString$0(_) {
      var buffer = new A.StringBuffer(""),
        t1 = this.type;
      buffer._contents = t1;
      t1 += "/";
      buffer._contents = t1;
      buffer._contents = t1 + this.subtype;
      t1 = this.parameters;
      t1._collection$_map.forEach$1(0, t1.$ti._eval$1("~(1,2)")._as(new A.MediaType_toString_closure(buffer)));
      t1 = buffer._contents;
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    }
  };
  A.MediaType_MediaType$parse_closure.prototype = {
    call$0() {
      var t3, t4, t5, t6, parameters, t7, success, t8, value,
        t1 = this.mediaType,
        scanner = new A.StringScanner(null, t1),
        t2 = $.$get$whitespace();
      scanner.scan$1(t2);
      t3 = $.$get$token();
      scanner.expect$1(t3);
      t4 = scanner.get$lastMatch().$index(0, 0);
      t4.toString;
      scanner.expect$1("/");
      scanner.expect$1(t3);
      t5 = scanner.get$lastMatch().$index(0, 0);
      t5.toString;
      scanner.scan$1(t2);
      t6 = type$.String;
      parameters = A.LinkedHashMap_LinkedHashMap$_empty(t6, t6);
      while (true) {
        t6 = scanner._lastMatch = B.JSString_methods.matchAsPrefix$2(";", t1, scanner._string_scanner$_position);
        t7 = scanner._lastMatchPosition = scanner._string_scanner$_position;
        success = t6 != null;
        t6 = success ? scanner._lastMatchPosition = scanner._string_scanner$_position = t6.get$end() : t7;
        if (!success)
          break;
        t6 = scanner._lastMatch = t2.matchAsPrefix$2(0, t1, t6);
        scanner._lastMatchPosition = scanner._string_scanner$_position;
        if (t6 != null)
          scanner._lastMatchPosition = scanner._string_scanner$_position = t6.get$end();
        scanner.expect$1(t3);
        if (scanner._string_scanner$_position !== scanner._lastMatchPosition)
          scanner._lastMatch = null;
        t6 = scanner._lastMatch.$index(0, 0);
        t6.toString;
        scanner.expect$1("=");
        t7 = scanner._lastMatch = t3.matchAsPrefix$2(0, t1, scanner._string_scanner$_position);
        t8 = scanner._lastMatchPosition = scanner._string_scanner$_position;
        success = t7 != null;
        if (success) {
          t7 = scanner._lastMatchPosition = scanner._string_scanner$_position = t7.get$end();
          t8 = t7;
        } else
          t7 = t8;
        if (success) {
          if (t7 !== t8)
            scanner._lastMatch = null;
          t7 = scanner._lastMatch.$index(0, 0);
          t7.toString;
          value = t7;
        } else
          value = A.expectQuotedString(scanner);
        t7 = scanner._lastMatch = t2.matchAsPrefix$2(0, t1, scanner._string_scanner$_position);
        scanner._lastMatchPosition = scanner._string_scanner$_position;
        if (t7 != null)
          scanner._lastMatchPosition = scanner._string_scanner$_position = t7.get$end();
        parameters.$indexSet(0, t6, value);
      }
      scanner.expectDone$0();
      return A.MediaType$(t4, t5, parameters);
    },
    $signature: 48
  };
  A.MediaType_toString_closure.prototype = {
    call$2(attribute, value) {
      var t1, t2, t3;
      A._asString(attribute);
      A._asString(value);
      t1 = this.buffer;
      t1._contents += "; " + attribute + "=";
      t2 = $.$get$nonToken();
      t2 = t2._nativeRegExp.test(value);
      t3 = t1._contents;
      if (t2) {
        t1._contents = t3 + '"';
        t2 = A.stringReplaceAllFuncUnchecked(value, $.$get$_escapedChar(), type$.nullable_String_Function_Match._as(type$.String_Function_Match._as(new A.MediaType_toString__closure())), null);
        t1._contents = (t1._contents += t2) + '"';
      } else
        t1._contents = t3 + value;
    },
    $signature: 49
  };
  A.MediaType_toString__closure.prototype = {
    call$1(match) {
      return "\\" + A.S(match.$index(0, 0));
    },
    $signature: 32
  };
  A.expectQuotedString_closure.prototype = {
    call$1(match) {
      var t1 = match.$index(0, 1);
      t1.toString;
      return t1;
    },
    $signature: 32
  };
  A.Level.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A.Level && this.value === other.value;
    },
    compareTo$1(_, other) {
      return this.value - type$.Level._as(other).value;
    },
    get$hashCode(_) {
      return this.value;
    },
    toString$0(_) {
      return this.name;
    },
    $isComparable: 1
  };
  A.LogRecord.prototype = {
    toString$0(_) {
      return "[" + this.level.name + "] " + this.loggerName + ": " + this.message;
    }
  };
  A.Logger.prototype = {
    get$fullName() {
      var t1 = this.parent,
        t2 = t1 == null ? null : t1.name.length !== 0,
        t3 = this.name;
      return t2 === true ? t1.get$fullName() + "." + t3 : t3;
    },
    get$level() {
      var t1, effectiveLevel;
      if (this.parent == null) {
        t1 = this._level;
        t1.toString;
        effectiveLevel = t1;
      } else {
        t1 = $.$get$Logger_root()._level;
        t1.toString;
        effectiveLevel = t1;
      }
      return effectiveLevel;
    },
    log$4(logLevel, message, error, stackTrace) {
      var record, _this = this,
        t1 = logLevel.value;
      if (t1 >= _this.get$level().value) {
        if (stackTrace == null && t1 >= 2000) {
          A.StackTrace_current();
          if (error == null)
            logLevel.toString$0(0);
        }
        t1 = _this.get$fullName();
        Date.now();
        $.LogRecord__nextNumber = $.LogRecord__nextNumber + 1;
        record = new A.LogRecord(logLevel, message, t1);
        if (_this.parent == null)
          _this._publish$1(record);
        else
          $.$get$Logger_root()._publish$1(record);
      }
    },
    _publish$1(record) {
      return null;
    }
  };
  A.Logger_Logger_closure.prototype = {
    call$0() {
      var dot, $parent, t1,
        thisName = this.name;
      if (B.JSString_methods.startsWith$1(thisName, "."))
        A.throwExpression(A.ArgumentError$("name shouldn't start with a '.'", null));
      if (B.JSString_methods.endsWith$1(thisName, "."))
        A.throwExpression(A.ArgumentError$("name shouldn't end with a '.'", null));
      dot = B.JSString_methods.lastIndexOf$1(thisName, ".");
      if (dot === -1)
        $parent = thisName !== "" ? A.Logger_Logger("") : null;
      else {
        $parent = A.Logger_Logger(B.JSString_methods.substring$2(thisName, 0, dot));
        thisName = B.JSString_methods.substring$1(thisName, dot + 1);
      }
      t1 = new A.Logger(thisName, $parent, A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.Logger));
      if ($parent == null)
        t1._level = B.Level_INFO_800;
      else
        $parent._children.$indexSet(0, thisName, t1);
      return t1;
    },
    $signature: 51
  };
  A.Context.prototype = {
    absolute$15(part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15) {
      var t1;
      A._validateArgList("absolute", A._setArrayType([part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15], type$.JSArray_nullable_String));
      t1 = this.style;
      t1 = t1.rootLength$1(part1) > 0 && !t1.isRootRelative$1(part1);
      if (t1)
        return part1;
      t1 = this._context$_current;
      return this.join$16(0, t1 == null ? A.current() : t1, part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15);
    },
    absolute$1(part1) {
      var _null = null;
      return this.absolute$15(part1, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
    },
    join$16(_, part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15, part16) {
      var parts = A._setArrayType([part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15, part16], type$.JSArray_nullable_String);
      A._validateArgList("join", parts);
      return this.joinAll$1(new A.WhereTypeIterable(parts, type$.WhereTypeIterable_String));
    },
    joinAll$1(parts) {
      var t1, t2, t3, needsSeparator, isAbsoluteAndNotRootRelative, t4, t5, parsed, path, t6;
      type$.Iterable_String._as(parts);
      for (t1 = parts.$ti, t2 = t1._eval$1("bool(Iterable.E)")._as(new A.Context_joinAll_closure()), t3 = parts.get$iterator(0), t1 = new A.WhereIterator(t3, t2, t1._eval$1("WhereIterator<Iterable.E>")), t2 = this.style, needsSeparator = false, isAbsoluteAndNotRootRelative = false, t4 = ""; t1.moveNext$0();) {
        t5 = t3.get$current();
        if (t2.isRootRelative$1(t5) && isAbsoluteAndNotRootRelative) {
          parsed = A.ParsedPath_ParsedPath$parse(t5, t2);
          path = t4.charCodeAt(0) == 0 ? t4 : t4;
          t4 = B.JSString_methods.substring$2(path, 0, t2.rootLength$2$withDrive(path, true));
          parsed.root = t4;
          if (t2.needsSeparator$1(t4))
            B.JSArray_methods.$indexSet(parsed.separators, 0, t2.get$separator());
          t4 = parsed.toString$0(0);
        } else if (t2.rootLength$1(t5) > 0) {
          isAbsoluteAndNotRootRelative = !t2.isRootRelative$1(t5);
          t4 = t5;
        } else {
          t6 = t5.length;
          if (t6 !== 0) {
            if (0 >= t6)
              return A.ioore(t5, 0);
            t6 = t2.containsSeparator$1(t5[0]);
          } else
            t6 = false;
          if (!t6)
            if (needsSeparator)
              t4 += t2.get$separator();
          t4 += t5;
        }
        needsSeparator = t2.needsSeparator$1(t5);
      }
      return t4.charCodeAt(0) == 0 ? t4 : t4;
    },
    split$1(_, path) {
      var parsed = A.ParsedPath_ParsedPath$parse(path, this.style),
        t1 = parsed.parts,
        t2 = A._arrayInstanceType(t1),
        t3 = t2._eval$1("WhereIterable<1>");
      t1 = A.List_List$_of(new A.WhereIterable(t1, t2._eval$1("bool(1)")._as(new A.Context_split_closure()), t3), t3._eval$1("Iterable.E"));
      parsed.set$parts(t1);
      t1 = parsed.root;
      if (t1 != null)
        B.JSArray_methods.insert$2(parsed.parts, 0, t1);
      return parsed.parts;
    },
    normalize$1(path) {
      var parsed;
      if (!this._needsNormalization$1(path))
        return path;
      parsed = A.ParsedPath_ParsedPath$parse(path, this.style);
      parsed.normalize$0();
      return parsed.toString$0(0);
    },
    _needsNormalization$1(path) {
      var t2, i, start, previous, t3, previousPrevious, codeUnit, t4,
        t1 = this.style,
        root = t1.rootLength$1(path);
      if (root !== 0) {
        if (t1 === $.$get$Style_windows())
          for (t2 = path.length, i = 0; i < root; ++i) {
            if (!(i < t2))
              return A.ioore(path, i);
            if (path.charCodeAt(i) === 47)
              return true;
          }
        start = root;
        previous = 47;
      } else {
        start = 0;
        previous = null;
      }
      for (t2 = new A.CodeUnits(path).__internal$_string, t3 = t2.length, i = start, previousPrevious = null; i < t3; ++i, previousPrevious = previous, previous = codeUnit) {
        if (!(i >= 0))
          return A.ioore(t2, i);
        codeUnit = t2.charCodeAt(i);
        if (t1.isSeparator$1(codeUnit)) {
          if (t1 === $.$get$Style_windows() && codeUnit === 47)
            return true;
          if (previous != null && t1.isSeparator$1(previous))
            return true;
          if (previous === 46)
            t4 = previousPrevious == null || previousPrevious === 46 || t1.isSeparator$1(previousPrevious);
          else
            t4 = false;
          if (t4)
            return true;
        }
      }
      if (previous == null)
        return true;
      if (t1.isSeparator$1(previous))
        return true;
      if (previous === 46)
        t1 = previousPrevious == null || t1.isSeparator$1(previousPrevious) || previousPrevious === 46;
      else
        t1 = false;
      if (t1)
        return true;
      return false;
    },
    relative$1(path) {
      var from, fromParsed, pathParsed, t3, t4, t5, t6, _this = this,
        _s26_ = 'Unable to find a path to "',
        t1 = _this.style,
        t2 = t1.rootLength$1(path);
      if (t2 <= 0)
        return _this.normalize$1(path);
      t2 = _this._context$_current;
      from = t2 == null ? A.current() : t2;
      if (t1.rootLength$1(from) <= 0 && t1.rootLength$1(path) > 0)
        return _this.normalize$1(path);
      if (t1.rootLength$1(path) <= 0 || t1.isRootRelative$1(path))
        path = _this.absolute$1(path);
      if (t1.rootLength$1(path) <= 0 && t1.rootLength$1(from) > 0)
        throw A.wrapException(A.PathException$(_s26_ + path + '" from "' + from + '".'));
      fromParsed = A.ParsedPath_ParsedPath$parse(from, t1);
      fromParsed.normalize$0();
      pathParsed = A.ParsedPath_ParsedPath$parse(path, t1);
      pathParsed.normalize$0();
      t2 = fromParsed.parts;
      t3 = t2.length;
      if (t3 !== 0) {
        if (0 >= t3)
          return A.ioore(t2, 0);
        t2 = t2[0] === ".";
      } else
        t2 = false;
      if (t2)
        return pathParsed.toString$0(0);
      t2 = fromParsed.root;
      t3 = pathParsed.root;
      if (t2 != t3)
        t2 = t2 == null || t3 == null || !t1.pathsEqual$2(t2, t3);
      else
        t2 = false;
      if (t2)
        return pathParsed.toString$0(0);
      while (true) {
        t2 = fromParsed.parts;
        t3 = t2.length;
        t4 = false;
        if (t3 !== 0) {
          t5 = pathParsed.parts;
          t6 = t5.length;
          if (t6 !== 0) {
            if (0 >= t3)
              return A.ioore(t2, 0);
            t2 = t2[0];
            if (0 >= t6)
              return A.ioore(t5, 0);
            t5 = t1.pathsEqual$2(t2, t5[0]);
            t2 = t5;
          } else
            t2 = t4;
        } else
          t2 = t4;
        if (!t2)
          break;
        B.JSArray_methods.removeAt$1(fromParsed.parts, 0);
        B.JSArray_methods.removeAt$1(fromParsed.separators, 1);
        B.JSArray_methods.removeAt$1(pathParsed.parts, 0);
        B.JSArray_methods.removeAt$1(pathParsed.separators, 1);
      }
      t2 = fromParsed.parts;
      t3 = t2.length;
      if (t3 !== 0) {
        if (0 >= t3)
          return A.ioore(t2, 0);
        t2 = t2[0] === "..";
      } else
        t2 = false;
      if (t2)
        throw A.wrapException(A.PathException$(_s26_ + path + '" from "' + from + '".'));
      t2 = type$.String;
      B.JSArray_methods.insertAll$2(pathParsed.parts, 0, A.List_List$filled(t3, "..", false, t2));
      B.JSArray_methods.$indexSet(pathParsed.separators, 0, "");
      B.JSArray_methods.insertAll$2(pathParsed.separators, 1, A.List_List$filled(fromParsed.parts.length, t1.get$separator(), false, t2));
      t1 = pathParsed.parts;
      t2 = t1.length;
      if (t2 === 0)
        return ".";
      if (t2 > 1 && B.JSArray_methods.get$last(t1) === ".") {
        B.JSArray_methods.removeLast$0(pathParsed.parts);
        t1 = pathParsed.separators;
        if (0 >= t1.length)
          return A.ioore(t1, -1);
        t1.pop();
        if (0 >= t1.length)
          return A.ioore(t1, -1);
        t1.pop();
        B.JSArray_methods.add$1(t1, "");
      }
      pathParsed.root = "";
      pathParsed.removeTrailingSeparators$0();
      return pathParsed.toString$0(0);
    },
    prettyUri$1(uri) {
      var path, rel, _this = this,
        typedUri = A._parseUri(uri);
      if (typedUri.get$scheme() === "file" && _this.style === $.$get$Style_url())
        return typedUri.toString$0(0);
      else if (typedUri.get$scheme() !== "file" && typedUri.get$scheme() !== "" && _this.style !== $.$get$Style_url())
        return typedUri.toString$0(0);
      path = _this.normalize$1(_this.style.pathFromUri$1(A._parseUri(typedUri)));
      rel = _this.relative$1(path);
      return _this.split$1(0, rel).length > _this.split$1(0, path).length ? path : rel;
    }
  };
  A.Context_joinAll_closure.prototype = {
    call$1(part) {
      return A._asString(part) !== "";
    },
    $signature: 31
  };
  A.Context_split_closure.prototype = {
    call$1(part) {
      return A._asString(part).length !== 0;
    },
    $signature: 31
  };
  A._validateArgList_closure.prototype = {
    call$1(arg) {
      A._asStringQ(arg);
      return arg == null ? "null" : '"' + arg + '"';
    },
    $signature: 106
  };
  A.InternalStyle.prototype = {
    getRoot$1(path) {
      var t1,
        $length = this.rootLength$1(path);
      if ($length > 0)
        return B.JSString_methods.substring$2(path, 0, $length);
      if (this.isRootRelative$1(path)) {
        if (0 >= path.length)
          return A.ioore(path, 0);
        t1 = path[0];
      } else
        t1 = null;
      return t1;
    },
    pathsEqual$2(path1, path2) {
      return path1 === path2;
    }
  };
  A.ParsedPath.prototype = {
    removeTrailingSeparators$0() {
      var t1, t2, _this = this;
      while (true) {
        t1 = _this.parts;
        if (!(t1.length !== 0 && B.JSArray_methods.get$last(t1) === ""))
          break;
        B.JSArray_methods.removeLast$0(_this.parts);
        t1 = _this.separators;
        if (0 >= t1.length)
          return A.ioore(t1, -1);
        t1.pop();
      }
      t1 = _this.separators;
      t2 = t1.length;
      if (t2 !== 0)
        B.JSArray_methods.$indexSet(t1, t2 - 1, "");
    },
    normalize$0() {
      var t1, t2, leadingDoubles, _i, part, t3, _this = this,
        newParts = A._setArrayType([], type$.JSArray_String);
      for (t1 = _this.parts, t2 = t1.length, leadingDoubles = 0, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) {
        part = t1[_i];
        if (!(part === "." || part === ""))
          if (part === "..") {
            t3 = newParts.length;
            if (t3 !== 0) {
              if (0 >= t3)
                return A.ioore(newParts, -1);
              newParts.pop();
            } else
              ++leadingDoubles;
          } else
            B.JSArray_methods.add$1(newParts, part);
      }
      if (_this.root == null)
        B.JSArray_methods.insertAll$2(newParts, 0, A.List_List$filled(leadingDoubles, "..", false, type$.String));
      if (newParts.length === 0 && _this.root == null)
        B.JSArray_methods.add$1(newParts, ".");
      _this.parts = newParts;
      t1 = _this.style;
      _this.separators = A.List_List$filled(newParts.length + 1, t1.get$separator(), true, type$.String);
      t2 = _this.root;
      if (t2 == null || newParts.length === 0 || !t1.needsSeparator$1(t2))
        B.JSArray_methods.$indexSet(_this.separators, 0, "");
      t2 = _this.root;
      if (t2 != null && t1 === $.$get$Style_windows())
        _this.root = A.stringReplaceAllUnchecked(t2, "/", "\\");
      _this.removeTrailingSeparators$0();
    },
    toString$0(_) {
      var t2, t3, t4, t5, i,
        t1 = this.root;
      t1 = t1 != null ? t1 : "";
      for (t2 = this.parts, t3 = t2.length, t4 = this.separators, t5 = t4.length, i = 0; i < t3; ++i) {
        if (!(i < t5))
          return A.ioore(t4, i);
        t1 = t1 + t4[i] + t2[i];
      }
      t1 += B.JSArray_methods.get$last(t4);
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    },
    set$parts(parts) {
      this.parts = type$.List_String._as(parts);
    }
  };
  A.PathException.prototype = {
    toString$0(_) {
      return "PathException: " + this.message;
    },
    $isException: 1
  };
  A.Style.prototype = {
    toString$0(_) {
      return this.get$name();
    }
  };
  A.PosixStyle.prototype = {
    containsSeparator$1(path) {
      return B.JSString_methods.contains$1(path, "/");
    },
    isSeparator$1(codeUnit) {
      return codeUnit === 47;
    },
    needsSeparator$1(path) {
      var t2,
        t1 = path.length;
      if (t1 !== 0) {
        t2 = t1 - 1;
        if (!(t2 >= 0))
          return A.ioore(path, t2);
        t2 = path.charCodeAt(t2) !== 47;
        t1 = t2;
      } else
        t1 = false;
      return t1;
    },
    rootLength$2$withDrive(path, withDrive) {
      var t1 = path.length;
      if (t1 !== 0) {
        if (0 >= t1)
          return A.ioore(path, 0);
        t1 = path.charCodeAt(0) === 47;
      } else
        t1 = false;
      if (t1)
        return 1;
      return 0;
    },
    rootLength$1(path) {
      return this.rootLength$2$withDrive(path, false);
    },
    isRootRelative$1(path) {
      return false;
    },
    pathFromUri$1(uri) {
      var t1;
      if (uri.get$scheme() === "" || uri.get$scheme() === "file") {
        t1 = uri.get$path();
        return A._Uri__uriDecode(t1, 0, t1.length, B.C_Utf8Codec, false);
      }
      throw A.wrapException(A.ArgumentError$("Uri " + uri.toString$0(0) + " must have scheme 'file:'.", null));
    },
    get$name() {
      return "posix";
    },
    get$separator() {
      return "/";
    }
  };
  A.UrlStyle.prototype = {
    containsSeparator$1(path) {
      return B.JSString_methods.contains$1(path, "/");
    },
    isSeparator$1(codeUnit) {
      return codeUnit === 47;
    },
    needsSeparator$1(path) {
      var t2,
        t1 = path.length;
      if (t1 === 0)
        return false;
      t2 = t1 - 1;
      if (!(t2 >= 0))
        return A.ioore(path, t2);
      if (path.charCodeAt(t2) !== 47)
        return true;
      return B.JSString_methods.endsWith$1(path, "://") && this.rootLength$1(path) === t1;
    },
    rootLength$2$withDrive(path, withDrive) {
      var i, codeUnit, index,
        t1 = path.length;
      if (t1 === 0)
        return 0;
      if (0 >= t1)
        return A.ioore(path, 0);
      if (path.charCodeAt(0) === 47)
        return 1;
      for (i = 0; i < t1; ++i) {
        codeUnit = path.charCodeAt(i);
        if (codeUnit === 47)
          return 0;
        if (codeUnit === 58) {
          if (i === 0)
            return 0;
          index = B.JSString_methods.indexOf$2(path, "/", B.JSString_methods.startsWith$2(path, "//", i + 1) ? i + 3 : i);
          if (index <= 0)
            return t1;
          if (!withDrive || t1 < index + 3)
            return index;
          if (!B.JSString_methods.startsWith$1(path, "file://"))
            return index;
          t1 = A.driveLetterEnd(path, index + 1);
          return t1 == null ? index : t1;
        }
      }
      return 0;
    },
    rootLength$1(path) {
      return this.rootLength$2$withDrive(path, false);
    },
    isRootRelative$1(path) {
      var t1 = path.length;
      if (t1 !== 0) {
        if (0 >= t1)
          return A.ioore(path, 0);
        t1 = path.charCodeAt(0) === 47;
      } else
        t1 = false;
      return t1;
    },
    pathFromUri$1(uri) {
      return uri.toString$0(0);
    },
    get$name() {
      return "url";
    },
    get$separator() {
      return "/";
    }
  };
  A.WindowsStyle.prototype = {
    containsSeparator$1(path) {
      return B.JSString_methods.contains$1(path, "/");
    },
    isSeparator$1(codeUnit) {
      return codeUnit === 47 || codeUnit === 92;
    },
    needsSeparator$1(path) {
      var t2,
        t1 = path.length;
      if (t1 === 0)
        return false;
      t2 = t1 - 1;
      if (!(t2 >= 0))
        return A.ioore(path, t2);
      t2 = path.charCodeAt(t2);
      return !(t2 === 47 || t2 === 92);
    },
    rootLength$2$withDrive(path, withDrive) {
      var t2, index,
        t1 = path.length;
      if (t1 === 0)
        return 0;
      if (0 >= t1)
        return A.ioore(path, 0);
      if (path.charCodeAt(0) === 47)
        return 1;
      if (path.charCodeAt(0) === 92) {
        if (t1 >= 2) {
          if (1 >= t1)
            return A.ioore(path, 1);
          t2 = path.charCodeAt(1) !== 92;
        } else
          t2 = true;
        if (t2)
          return 1;
        index = B.JSString_methods.indexOf$2(path, "\\", 2);
        if (index > 0) {
          index = B.JSString_methods.indexOf$2(path, "\\", index + 1);
          if (index > 0)
            return index;
        }
        return t1;
      }
      if (t1 < 3)
        return 0;
      if (!A.isAlphabetic(path.charCodeAt(0)))
        return 0;
      if (path.charCodeAt(1) !== 58)
        return 0;
      t1 = path.charCodeAt(2);
      if (!(t1 === 47 || t1 === 92))
        return 0;
      return 3;
    },
    rootLength$1(path) {
      return this.rootLength$2$withDrive(path, false);
    },
    isRootRelative$1(path) {
      return this.rootLength$1(path) === 1;
    },
    pathFromUri$1(uri) {
      var path, t1;
      if (uri.get$scheme() !== "" && uri.get$scheme() !== "file")
        throw A.wrapException(A.ArgumentError$("Uri " + uri.toString$0(0) + " must have scheme 'file:'.", null));
      path = uri.get$path();
      if (uri.get$host() === "") {
        if (path.length >= 3 && B.JSString_methods.startsWith$1(path, "/") && A.driveLetterEnd(path, 1) != null)
          path = B.JSString_methods.replaceFirst$2(path, "/", "");
      } else
        path = "\\\\" + uri.get$host() + path;
      t1 = A.stringReplaceAllUnchecked(path, "/", "\\");
      return A._Uri__uriDecode(t1, 0, t1.length, B.C_Utf8Codec, false);
    },
    codeUnitsEqual$2(codeUnit1, codeUnit2) {
      var upperCase1;
      if (codeUnit1 === codeUnit2)
        return true;
      if (codeUnit1 === 47)
        return codeUnit2 === 92;
      if (codeUnit1 === 92)
        return codeUnit2 === 47;
      if ((codeUnit1 ^ codeUnit2) !== 32)
        return false;
      upperCase1 = codeUnit1 | 32;
      return upperCase1 >= 97 && upperCase1 <= 122;
    },
    pathsEqual$2(path1, path2) {
      var t1, t2, i;
      if (path1 === path2)
        return true;
      t1 = path1.length;
      t2 = path2.length;
      if (t1 !== t2)
        return false;
      for (i = 0; i < t1; ++i) {
        if (!(i < t2))
          return A.ioore(path2, i);
        if (!this.codeUnitsEqual$2(path1.charCodeAt(i), path2.charCodeAt(i)))
          return false;
      }
      return true;
    },
    get$name() {
      return "windows";
    },
    get$separator() {
      return "\\";
    }
  };
  A.Pool.prototype = {
    request$0() {
      var t1, t2, _this = this;
      if ((_this._closeMemo._async_memoizer$_completer.future._state & 30) !== 0)
        throw A.wrapException(A.StateError$("request() may not be called on a closed Pool."));
      t1 = _this._allocatedResources;
      if (t1 < _this._maxAllocatedResources) {
        _this._allocatedResources = t1 + 1;
        return A.Future_Future$value(new A.PoolResource(_this), type$.PoolResource);
      } else {
        t1 = _this._onReleaseCallbacks;
        if (!t1.get$isEmpty(0))
          return _this._runOnRelease$1(t1.removeFirst$0());
        else {
          t1 = new A._Future($.Zone__current, type$._Future_PoolResource);
          t2 = _this._requestedResources;
          t2._collection$_add$1(t2.$ti._precomputed1._as(new A._AsyncCompleter(t1, type$._AsyncCompleter_PoolResource)));
          _this._resetTimer$0();
          return t1;
        }
      }
    },
    withResource$1$1(callback, $T) {
      return this.withResource$body$Pool($T._eval$1("0/()")._as(callback), $T, $T);
    },
    withResource$body$Pool(callback, $T, $async$type) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter($async$type),
        $async$returnValue, $async$handler = 2, $async$errorStack = [], $async$next = [], $async$self = this, resource, t1, t2;
      var $async$withResource$1$1 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
        if ($async$errorCode === 1) {
          $async$errorStack.push($async$result);
          $async$goto = $async$handler;
        }
        while (true)
          switch ($async$goto) {
            case 0:
              // Function start
              if (($async$self._closeMemo._async_memoizer$_completer.future._state & 30) !== 0)
                throw A.wrapException(A.StateError$("withResource() may not be called on a closed Pool."));
              $async$goto = 3;
              return A._asyncAwait($async$self.request$0(), $async$withResource$1$1);
            case 3:
              // returning from await.
              resource = $async$result;
              $async$handler = 4;
              t1 = callback.call$0();
              $async$goto = 7;
              return A._asyncAwait($T._eval$1("Future<0>")._is(t1) ? t1 : A._Future$value($T._as(t1), $T), $async$withResource$1$1);
            case 7:
              // returning from await.
              t1 = $async$result;
              $async$returnValue = t1;
              $async$next = [1];
              // goto finally
              $async$goto = 5;
              break;
              $async$next.push(6);
              // goto finally
              $async$goto = 5;
              break;
            case 4:
              // uncaught
              $async$next = [2];
            case 5:
              // finally
              $async$handler = 2;
              t1 = resource;
              if (t1._released)
                A.throwExpression(A.StateError$("A PoolResource may only be released once."));
              t1._released = true;
              t1 = t1._pool;
              t1._resetTimer$0();
              t2 = t1._requestedResources;
              if (!t2.get$isEmpty(0))
                t2.removeFirst$0().complete$1(new A.PoolResource(t1));
              else {
                t2 = --t1._allocatedResources;
                if ((t1._closeMemo._async_memoizer$_completer.future._state & 30) !== 0 && t2 === 0)
                  null.close$0();
              }
              // goto the next finally handler
              $async$goto = $async$next.pop();
              break;
            case 6:
              // after finally
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
            case 2:
              // rethrow
              return A._asyncRethrow($async$errorStack.at(-1), $async$completer);
          }
      });
      return A._asyncStartSync($async$withResource$1$1, $async$completer);
    },
    _runOnRelease$1(onRelease) {
      var t1, t2;
      A.Future_Future$sync(type$.dynamic_Function._as(onRelease), type$.dynamic).then$1$1(new A.Pool__runOnRelease_closure(this), type$.Null).catchError$1(new A.Pool__runOnRelease_closure0(this));
      t1 = new A._Future($.Zone__current, type$._Future_PoolResource);
      t2 = this._onReleaseCompleters;
      t2._collection$_add$1(t2.$ti._precomputed1._as(new A._SyncCompleter(t1, type$._SyncCompleter_PoolResource)));
      return t1;
    },
    _resetTimer$0() {
      var t2,
        t1 = this._timer;
      if (t1 == null)
        return;
      t2 = this._requestedResources;
      if (t2._head === t2._tail)
        t1._restartable_timer$_timer.cancel$0();
      else {
        t1._restartable_timer$_timer.cancel$0();
        t1._restartable_timer$_timer = A.Timer_Timer(t1._restartable_timer$_duration, t1._restartable_timer$_callback);
      }
    }
  };
  A.Pool__runOnRelease_closure.prototype = {
    call$1(value) {
      var t1 = this.$this;
      t1._onReleaseCompleters.removeFirst$0().complete$1(new A.PoolResource(t1));
    },
    $signature: 6
  };
  A.Pool__runOnRelease_closure0.prototype = {
    call$2(error, stackTrace) {
      type$.Object._as(error);
      type$.StackTrace._as(stackTrace);
      this.$this._onReleaseCompleters.removeFirst$0().completeError$2(error, stackTrace);
    },
    $signature: 5
  };
  A.PoolResource.prototype = {};
  A.SourceFile.prototype = {
    get$length(_) {
      return this._decodedChars.length;
    },
    get$lines() {
      return this._lineStarts.length;
    },
    SourceFile$decoded$2$url(decodedChars, url) {
      var t1, t2, t3, i, c, j, t4;
      for (t1 = this._decodedChars, t2 = t1.length, t3 = this._lineStarts, i = 0; i < t2; ++i) {
        c = t1[i];
        if (c === 13) {
          j = i + 1;
          if (j < t2) {
            if (!(j < t2))
              return A.ioore(t1, j);
            t4 = t1[j] !== 10;
          } else
            t4 = true;
          if (t4)
            c = 10;
        }
        if (c === 10)
          B.JSArray_methods.add$1(t3, i + 1);
      }
    },
    getLine$1(offset) {
      var t1, _this = this;
      if (offset < 0)
        throw A.wrapException(A.RangeError$("Offset may not be negative, was " + offset + "."));
      else if (offset > _this._decodedChars.length)
        throw A.wrapException(A.RangeError$("Offset " + offset + string$.x20must_ + _this.get$length(0) + "."));
      t1 = _this._lineStarts;
      if (offset < B.JSArray_methods.get$first(t1))
        return -1;
      if (offset >= B.JSArray_methods.get$last(t1))
        return t1.length - 1;
      if (_this._isNearCachedLine$1(offset)) {
        t1 = _this._cachedLine;
        t1.toString;
        return t1;
      }
      return _this._cachedLine = _this._binarySearch$1(offset) - 1;
    },
    _isNearCachedLine$1(offset) {
      var t2, t3, t4,
        t1 = this._cachedLine;
      if (t1 == null)
        return false;
      t2 = this._lineStarts;
      t3 = t2.length;
      if (t1 >>> 0 !== t1 || t1 >= t3)
        return A.ioore(t2, t1);
      if (offset < t2[t1])
        return false;
      if (!(t1 >= t3 - 1)) {
        t4 = t1 + 1;
        if (!(t4 < t3))
          return A.ioore(t2, t4);
        t4 = offset < t2[t4];
      } else
        t4 = true;
      if (t4)
        return true;
      if (!(t1 >= t3 - 2)) {
        t4 = t1 + 2;
        if (!(t4 < t3))
          return A.ioore(t2, t4);
        t4 = offset < t2[t4];
        t2 = t4;
      } else
        t2 = true;
      if (t2) {
        this._cachedLine = t1 + 1;
        return true;
      }
      return false;
    },
    _binarySearch$1(offset) {
      var min, half,
        t1 = this._lineStarts,
        t2 = t1.length,
        max = t2 - 1;
      for (min = 0; min < max;) {
        half = min + B.JSInt_methods._tdivFast$1(max - min, 2);
        if (!(half >= 0 && half < t2))
          return A.ioore(t1, half);
        if (t1[half] > offset)
          max = half;
        else
          min = half + 1;
      }
      return max;
    },
    getColumn$1(offset) {
      var line, t1, lineStart, _this = this;
      if (offset < 0)
        throw A.wrapException(A.RangeError$("Offset may not be negative, was " + offset + "."));
      else if (offset > _this._decodedChars.length)
        throw A.wrapException(A.RangeError$("Offset " + offset + " must be not be greater than the number of characters in the file, " + _this.get$length(0) + "."));
      line = _this.getLine$1(offset);
      t1 = _this._lineStarts;
      if (!(line >= 0 && line < t1.length))
        return A.ioore(t1, line);
      lineStart = t1[line];
      if (lineStart > offset)
        throw A.wrapException(A.RangeError$("Line " + line + " comes after offset " + offset + "."));
      return offset - lineStart;
    },
    getOffset$1(line) {
      var t1, t2, result, t3;
      if (line < 0)
        throw A.wrapException(A.RangeError$("Line may not be negative, was " + line + "."));
      else {
        t1 = this._lineStarts;
        t2 = t1.length;
        if (line >= t2)
          throw A.wrapException(A.RangeError$("Line " + line + " must be less than the number of lines in the file, " + this.get$lines() + "."));
      }
      result = t1[line];
      if (result <= this._decodedChars.length) {
        t3 = line + 1;
        t1 = t3 < t2 && result >= t1[t3];
      } else
        t1 = true;
      if (t1)
        throw A.wrapException(A.RangeError$("Line " + line + " doesn't have 0 columns."));
      return result;
    }
  };
  A.FileLocation.prototype = {
    get$sourceUrl() {
      return this.file.url;
    },
    get$line() {
      return this.file.getLine$1(this.offset);
    },
    get$column() {
      return this.file.getColumn$1(this.offset);
    },
    get$offset() {
      return this.offset;
    }
  };
  A._FileSpan.prototype = {
    get$sourceUrl() {
      return this.file.url;
    },
    get$length(_) {
      return this._file$_end - this._file$_start;
    },
    get$start() {
      return A.FileLocation$_(this.file, this._file$_start);
    },
    get$end() {
      return A.FileLocation$_(this.file, this._file$_end);
    },
    get$text() {
      return A.String_String$fromCharCodes(B.NativeUint32List_methods.sublist$2(this.file._decodedChars, this._file$_start, this._file$_end), 0, null);
    },
    get$context() {
      var _this = this,
        t1 = _this.file,
        endOffset = _this._file$_end,
        endLine = t1.getLine$1(endOffset);
      if (t1.getColumn$1(endOffset) === 0 && endLine !== 0) {
        if (endOffset - _this._file$_start === 0)
          return endLine === t1._lineStarts.length - 1 ? "" : A.String_String$fromCharCodes(B.NativeUint32List_methods.sublist$2(t1._decodedChars, t1.getOffset$1(endLine), t1.getOffset$1(endLine + 1)), 0, null);
      } else
        endOffset = endLine === t1._lineStarts.length - 1 ? t1._decodedChars.length : t1.getOffset$1(endLine + 1);
      return A.String_String$fromCharCodes(B.NativeUint32List_methods.sublist$2(t1._decodedChars, t1.getOffset$1(t1.getLine$1(_this._file$_start)), endOffset), 0, null);
    },
    compareTo$1(_, other) {
      var result;
      type$.SourceSpan._as(other);
      if (!(other instanceof A._FileSpan))
        return this.super$SourceSpanMixin$compareTo(0, other);
      result = B.JSInt_methods.compareTo$1(this._file$_start, other._file$_start);
      return result === 0 ? B.JSInt_methods.compareTo$1(this._file$_end, other._file$_end) : result;
    },
    $eq(_, other) {
      var _this = this;
      if (other == null)
        return false;
      if (!(other instanceof A._FileSpan))
        return _this.super$SourceSpanMixin$$eq(0, other);
      return _this._file$_start === other._file$_start && _this._file$_end === other._file$_end && J.$eq$(_this.file.url, other.file.url);
    },
    get$hashCode(_) {
      return A.Object_hash(this._file$_start, this._file$_end, this.file.url, B.C_SentinelValue);
    },
    $isSourceSpanWithContext: 1
  };
  A.Highlighter.prototype = {
    highlight$0() {
      var t2, highlightsByColumn, t3, t4, i, line, lastLine, t5, t6, t7, t8, t9, t10, t11, index, primaryIdx, primary, _i, _this = this, _null = null,
        t1 = _this._lines;
      _this._writeFileStart$1(B.JSArray_methods.get$first(t1).url);
      t2 = _this._maxMultilineSpans;
      highlightsByColumn = A.List_List$filled(t2, _null, false, type$.nullable__Highlight);
      for (t3 = _this._buffer, t2 = t2 !== 0, t4 = _this._primaryColor, i = 0; i < t1.length; ++i) {
        line = t1[i];
        if (i > 0) {
          lastLine = t1[i - 1];
          t5 = line.url;
          if (!J.$eq$(lastLine.url, t5)) {
            _this._writeSidebar$1$end("\u2575");
            t3._contents += "\n";
            _this._writeFileStart$1(t5);
          } else if (lastLine.number + 1 !== line.number) {
            _this._writeSidebar$1$text("...");
            t3._contents += "\n";
          }
        }
        for (t5 = line.highlights, t6 = A._arrayInstanceType(t5)._eval$1("ReversedListIterable<1>"), t7 = new A.ReversedListIterable(t5, t6), t7 = new A.ListIterator(t7, t7.get$length(0), t6._eval$1("ListIterator<ListIterable.E>")), t6 = t6._eval$1("ListIterable.E"), t8 = line.number, t9 = line.text; t7.moveNext$0();) {
          t10 = t7.__internal$_current;
          if (t10 == null)
            t10 = t6._as(t10);
          t11 = t10.span;
          if (t11.get$start().get$line() !== t11.get$end().get$line() && t11.get$start().get$line() === t8 && _this._isOnlyWhitespace$1(B.JSString_methods.substring$2(t9, 0, t11.get$start().get$column()))) {
            index = B.JSArray_methods.indexOf$1(highlightsByColumn, _null);
            if (index < 0)
              A.throwExpression(A.ArgumentError$(A.S(highlightsByColumn) + " contains no null elements.", _null));
            B.JSArray_methods.$indexSet(highlightsByColumn, index, t10);
          }
        }
        _this._writeSidebar$1$line(t8);
        t3._contents += " ";
        _this._writeMultilineHighlights$2(line, highlightsByColumn);
        if (t2)
          t3._contents += " ";
        primaryIdx = B.JSArray_methods.indexWhere$1(t5, new A.Highlighter_highlight_closure());
        if (primaryIdx === -1)
          primary = _null;
        else {
          if (!(primaryIdx >= 0 && primaryIdx < t5.length))
            return A.ioore(t5, primaryIdx);
          primary = t5[primaryIdx];
        }
        t6 = primary != null;
        if (t6) {
          t7 = primary.span;
          t10 = t7.get$start().get$line() === t8 ? t7.get$start().get$column() : 0;
          _this._writeHighlightedText$4$color(t9, t10, t7.get$end().get$line() === t8 ? t7.get$end().get$column() : t9.length, t4);
        } else
          _this._writeText$1(t9);
        t3._contents += "\n";
        if (t6)
          _this._writeIndicator$3(line, primary, highlightsByColumn);
        for (t5 = t5.length, _i = 0; _i < t5; ++_i)
          continue;
      }
      _this._writeSidebar$1$end("\u2575");
      t1 = t3._contents;
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    },
    _writeFileStart$1(url) {
      var t1, t2, _this = this;
      if (!_this._multipleFiles || !type$.Uri._is(url))
        _this._writeSidebar$1$end("\u2577");
      else {
        _this._writeSidebar$1$end("\u250c");
        _this._colorize$1$2$color(new A.Highlighter__writeFileStart_closure(_this), "\x1b[34m", type$.void);
        t1 = _this._buffer;
        t2 = " " + $.$get$context().prettyUri$1(url);
        t1._contents += t2;
      }
      _this._buffer._contents += "\n";
    },
    _writeMultilineHighlights$3$current(line, highlightsByColumn, current) {
      var t1, currentColor, t2, t3, t4, t5, t6, foundCurrent, _i, highlight, t7, startLine, endLine, _this = this, _box_0 = {};
      type$.List_nullable__Highlight._as(highlightsByColumn);
      _box_0.openedOnThisLine = false;
      _box_0.openedOnThisLineColor = null;
      t1 = current == null;
      if (t1)
        currentColor = null;
      else
        currentColor = _this._primaryColor;
      for (t2 = highlightsByColumn.length, t3 = type$.Null, t4 = _this._primaryColor, t1 = !t1, t5 = _this._buffer, t6 = type$.void, foundCurrent = false, _i = 0; _i < t2; ++_i) {
        highlight = highlightsByColumn[_i];
        t7 = highlight == null;
        startLine = t7 ? null : highlight.span.get$start().get$line();
        endLine = t7 ? null : highlight.span.get$end().get$line();
        if (t1 && highlight === current) {
          _this._colorize$1$2$color(new A.Highlighter__writeMultilineHighlights_closure(_this, startLine, line), currentColor, t3);
          foundCurrent = true;
        } else if (foundCurrent)
          _this._colorize$1$2$color(new A.Highlighter__writeMultilineHighlights_closure0(_this, highlight), currentColor, t3);
        else if (t7)
          if (_box_0.openedOnThisLine)
            _this._colorize$1$2$color(new A.Highlighter__writeMultilineHighlights_closure1(_this), _box_0.openedOnThisLineColor, t6);
          else
            t5._contents += " ";
        else
          _this._colorize$1$2$color(new A.Highlighter__writeMultilineHighlights_closure2(_box_0, _this, current, startLine, line, highlight, endLine), t4, t3);
      }
    },
    _writeMultilineHighlights$2(line, highlightsByColumn) {
      return this._writeMultilineHighlights$3$current(line, highlightsByColumn, null);
    },
    _writeHighlightedText$4$color(text, startColumn, endColumn, color) {
      var _this = this;
      _this._writeText$1(B.JSString_methods.substring$2(text, 0, startColumn));
      _this._colorize$1$2$color(new A.Highlighter__writeHighlightedText_closure(_this, text, startColumn, endColumn), color, type$.void);
      _this._writeText$1(B.JSString_methods.substring$2(text, endColumn, text.length));
    },
    _writeIndicator$3(line, highlight, highlightsByColumn) {
      var color, t1, t2, _this = this;
      type$.List_nullable__Highlight._as(highlightsByColumn);
      color = _this._primaryColor;
      t1 = highlight.span;
      if (t1.get$start().get$line() === t1.get$end().get$line()) {
        _this._writeSidebar$0();
        t1 = _this._buffer;
        t1._contents += " ";
        _this._writeMultilineHighlights$3$current(line, highlightsByColumn, highlight);
        if (highlightsByColumn.length !== 0)
          t1._contents += " ";
        _this._writeLabel$3(highlight, highlightsByColumn, _this._colorize$1$2$color(new A.Highlighter__writeIndicator_closure(_this, line, highlight), color, type$.int));
      } else {
        t2 = line.number;
        if (t1.get$start().get$line() === t2) {
          if (B.JSArray_methods.contains$1(highlightsByColumn, highlight))
            return;
          A.replaceFirstNull(highlightsByColumn, highlight, type$._Highlight);
          _this._writeSidebar$0();
          t1 = _this._buffer;
          t1._contents += " ";
          _this._writeMultilineHighlights$3$current(line, highlightsByColumn, highlight);
          _this._colorize$1$2$color(new A.Highlighter__writeIndicator_closure0(_this, line, highlight), color, type$.void);
          t1._contents += "\n";
        } else if (t1.get$end().get$line() === t2) {
          t1 = t1.get$end().get$column();
          if (t1 === line.text.length) {
            A.replaceWithNull(highlightsByColumn, highlight, type$._Highlight);
            return;
          }
          _this._writeSidebar$0();
          _this._buffer._contents += " ";
          _this._writeMultilineHighlights$3$current(line, highlightsByColumn, highlight);
          _this._writeLabel$3(highlight, highlightsByColumn, _this._colorize$1$2$color(new A.Highlighter__writeIndicator_closure1(_this, false, line, highlight), color, type$.int));
          A.replaceWithNull(highlightsByColumn, highlight, type$._Highlight);
        }
      }
    },
    _writeArrow$3$beginning(line, column, beginning) {
      var t1 = beginning ? 0 : 1,
        t2 = this._buffer;
      t1 = B.JSString_methods.$mul("\u2500", 1 + column + this._countTabs$1(B.JSString_methods.substring$2(line.text, 0, column + t1)) * 3);
      t2._contents = (t2._contents += t1) + "^";
    },
    _writeArrow$2(line, column) {
      return this._writeArrow$3$beginning(line, column, true);
    },
    _writeLabel$3(highlight, highlightsByColumn, underlineLength) {
      type$.List_nullable__Highlight._as(highlightsByColumn);
      this._buffer._contents += "\n";
      return;
    },
    _writeText$1(text) {
      var t1, t2, t3, t4;
      for (t1 = new A.CodeUnits(text), t2 = type$.CodeUnits, t1 = new A.ListIterator(t1, t1.get$length(0), t2._eval$1("ListIterator<ListBase.E>")), t3 = this._buffer, t2 = t2._eval$1("ListBase.E"); t1.moveNext$0();) {
        t4 = t1.__internal$_current;
        if (t4 == null)
          t4 = t2._as(t4);
        if (t4 === 9) {
          t4 = B.JSString_methods.$mul(" ", 4);
          t3._contents += t4;
        } else {
          t4 = A.Primitives_stringFromCharCode(t4);
          t3._contents += t4;
        }
      }
    },
    _writeSidebar$3$end$line$text(end, line, text) {
      var t1 = {};
      t1.text = text;
      if (line != null)
        t1.text = B.JSInt_methods.toString$0(line + 1);
      this._colorize$1$2$color(new A.Highlighter__writeSidebar_closure(t1, this, end), "\x1b[34m", type$.Null);
    },
    _writeSidebar$1$end(end) {
      return this._writeSidebar$3$end$line$text(end, null, null);
    },
    _writeSidebar$1$text(text) {
      return this._writeSidebar$3$end$line$text(null, null, text);
    },
    _writeSidebar$1$line(line) {
      return this._writeSidebar$3$end$line$text(null, line, null);
    },
    _writeSidebar$0() {
      return this._writeSidebar$3$end$line$text(null, null, null);
    },
    _countTabs$1(text) {
      var t1, t2, count, t3;
      for (t1 = new A.CodeUnits(text), t2 = type$.CodeUnits, t1 = new A.ListIterator(t1, t1.get$length(0), t2._eval$1("ListIterator<ListBase.E>")), t2 = t2._eval$1("ListBase.E"), count = 0; t1.moveNext$0();) {
        t3 = t1.__internal$_current;
        if ((t3 == null ? t2._as(t3) : t3) === 9)
          ++count;
      }
      return count;
    },
    _isOnlyWhitespace$1(text) {
      var t1, t2, t3;
      for (t1 = new A.CodeUnits(text), t2 = type$.CodeUnits, t1 = new A.ListIterator(t1, t1.get$length(0), t2._eval$1("ListIterator<ListBase.E>")), t2 = t2._eval$1("ListBase.E"); t1.moveNext$0();) {
        t3 = t1.__internal$_current;
        if (t3 == null)
          t3 = t2._as(t3);
        if (t3 !== 32 && t3 !== 9)
          return false;
      }
      return true;
    },
    _colorize$1$2$color(callback, color, $T) {
      var t1, result;
      $T._eval$1("0()")._as(callback);
      t1 = this._primaryColor != null;
      if (t1 && color != null)
        this._buffer._contents += color;
      result = callback.call$0();
      if (t1 && color != null)
        this._buffer._contents += "\x1b[0m";
      return result;
    }
  };
  A.Highlighter_closure.prototype = {
    call$0() {
      return this.color;
    },
    $signature: 54
  };
  A.Highlighter$__closure.prototype = {
    call$1(line) {
      var t1 = type$._Line._as(line).highlights,
        t2 = A._arrayInstanceType(t1);
      return new A.WhereIterable(t1, t2._eval$1("bool(1)")._as(new A.Highlighter$___closure()), t2._eval$1("WhereIterable<1>")).get$length(0);
    },
    $signature: 55
  };
  A.Highlighter$___closure.prototype = {
    call$1(highlight) {
      var t1 = type$._Highlight._as(highlight).span;
      return t1.get$start().get$line() !== t1.get$end().get$line();
    },
    $signature: 15
  };
  A.Highlighter$__closure0.prototype = {
    call$1(line) {
      return type$._Line._as(line).url;
    },
    $signature: 57
  };
  A.Highlighter__collateLines_closure.prototype = {
    call$1(highlight) {
      var t1 = type$._Highlight._as(highlight).span.get$sourceUrl();
      return t1 == null ? new A.Object() : t1;
    },
    $signature: 58
  };
  A.Highlighter__collateLines_closure0.prototype = {
    call$2(highlight1, highlight2) {
      var t1 = type$._Highlight;
      return t1._as(highlight1).span.compareTo$1(0, t1._as(highlight2).span);
    },
    $signature: 59
  };
  A.Highlighter__collateLines_closure1.prototype = {
    call$1(entry) {
      var url, highlightsForFile, lines, t1, t2, t3, t4, context, t5, linesBeforeSpan, lineNumber, _i, line, activeHighlights, flags, highlightIndex, oldHighlightLength, t6, t7;
      type$.MapEntry_of_Object_and_List__Highlight._as(entry);
      url = entry.key;
      highlightsForFile = entry.value;
      lines = A._setArrayType([], type$.JSArray__Line);
      for (t1 = J.getInterceptor$ax(highlightsForFile), t2 = t1.get$iterator(highlightsForFile), t3 = type$.JSArray__Highlight; t2.moveNext$0();) {
        t4 = t2.get$current().span;
        context = t4.get$context();
        t5 = A.findLineStart(context, t4.get$text(), t4.get$start().get$column());
        t5.toString;
        linesBeforeSpan = B.JSString_methods.allMatches$1("\n", B.JSString_methods.substring$2(context, 0, t5)).get$length(0);
        lineNumber = t4.get$start().get$line() - linesBeforeSpan;
        for (t4 = context.split("\n"), t5 = t4.length, _i = 0; _i < t5; ++_i) {
          line = t4[_i];
          if (lines.length === 0 || lineNumber > B.JSArray_methods.get$last(lines).number)
            B.JSArray_methods.add$1(lines, new A._Line(line, lineNumber, url, A._setArrayType([], t3)));
          ++lineNumber;
        }
      }
      activeHighlights = A._setArrayType([], t3);
      for (t2 = lines.length, t3 = type$.bool_Function__Highlight, flags = activeHighlights.$flags | 0, highlightIndex = 0, _i = 0; _i < lines.length; lines.length === t2 || (0, A.throwConcurrentModificationError)(lines), ++_i) {
        line = lines[_i];
        t4 = t3._as(new A.Highlighter__collateLines__closure(line));
        flags & 1 && A.throwUnsupportedOperation(activeHighlights, 16);
        B.JSArray_methods._removeWhere$2(activeHighlights, t4, true);
        oldHighlightLength = activeHighlights.length;
        for (t4 = t1.skip$1(highlightsForFile, highlightIndex), t5 = t4.$ti, t4 = new A.ListIterator(t4, t4.get$length(0), t5._eval$1("ListIterator<ListIterable.E>")), t6 = line.number, t5 = t5._eval$1("ListIterable.E"); t4.moveNext$0();) {
          t7 = t4.__internal$_current;
          if (t7 == null)
            t7 = t5._as(t7);
          if (t7.span.get$start().get$line() > t6)
            break;
          B.JSArray_methods.add$1(activeHighlights, t7);
        }
        highlightIndex += activeHighlights.length - oldHighlightLength;
        B.JSArray_methods.addAll$1(line.highlights, activeHighlights);
      }
      return lines;
    },
    $signature: 60
  };
  A.Highlighter__collateLines__closure.prototype = {
    call$1(highlight) {
      return type$._Highlight._as(highlight).span.get$end().get$line() < this.line.number;
    },
    $signature: 15
  };
  A.Highlighter_highlight_closure.prototype = {
    call$1(highlight) {
      type$._Highlight._as(highlight);
      return true;
    },
    $signature: 15
  };
  A.Highlighter__writeFileStart_closure.prototype = {
    call$0() {
      var t1 = this.$this._buffer,
        t2 = B.JSString_methods.$mul("\u2500", 2) + ">";
      t1._contents += t2;
      return null;
    },
    $signature: 0
  };
  A.Highlighter__writeMultilineHighlights_closure.prototype = {
    call$0() {
      var t1 = this.$this._buffer,
        t2 = this.startLine === this.line.number ? "\u250c" : "\u2514";
      t1._contents += t2;
    },
    $signature: 1
  };
  A.Highlighter__writeMultilineHighlights_closure0.prototype = {
    call$0() {
      var t1 = this.$this._buffer,
        t2 = this.highlight == null ? "\u2500" : "\u253c";
      t1._contents += t2;
    },
    $signature: 1
  };
  A.Highlighter__writeMultilineHighlights_closure1.prototype = {
    call$0() {
      this.$this._buffer._contents += "\u2500";
      return null;
    },
    $signature: 0
  };
  A.Highlighter__writeMultilineHighlights_closure2.prototype = {
    call$0() {
      var t2, t3, _this = this,
        t1 = _this._box_0,
        vertical = t1.openedOnThisLine ? "\u253c" : "\u2502";
      if (_this.current != null)
        _this.$this._buffer._contents += vertical;
      else {
        t2 = _this.line;
        t3 = t2.number;
        if (_this.startLine === t3) {
          t2 = _this.$this;
          t2._colorize$1$2$color(new A.Highlighter__writeMultilineHighlights__closure(t1, t2), t1.openedOnThisLineColor, type$.Null);
          t1.openedOnThisLine = true;
          if (t1.openedOnThisLineColor == null)
            t1.openedOnThisLineColor = t2._primaryColor;
        } else {
          t2 = _this.endLine === t3 && _this.highlight.span.get$end().get$column() === t2.text.length;
          t3 = _this.$this;
          if (t2)
            t3._buffer._contents += "\u2514";
          else
            t3._colorize$1$2$color(new A.Highlighter__writeMultilineHighlights__closure0(t3, vertical), t1.openedOnThisLineColor, type$.Null);
        }
      }
    },
    $signature: 1
  };
  A.Highlighter__writeMultilineHighlights__closure.prototype = {
    call$0() {
      var t1 = this.$this._buffer,
        t2 = this._box_0.openedOnThisLine ? "\u252c" : "\u250c";
      t1._contents += t2;
    },
    $signature: 1
  };
  A.Highlighter__writeMultilineHighlights__closure0.prototype = {
    call$0() {
      this.$this._buffer._contents += this.vertical;
    },
    $signature: 1
  };
  A.Highlighter__writeHighlightedText_closure.prototype = {
    call$0() {
      var _this = this;
      return _this.$this._writeText$1(B.JSString_methods.substring$2(_this.text, _this.startColumn, _this.endColumn));
    },
    $signature: 0
  };
  A.Highlighter__writeIndicator_closure.prototype = {
    call$0() {
      var tabsBefore, tabsInside,
        t1 = this.$this,
        t2 = t1._buffer,
        t3 = t2._contents,
        t4 = this.highlight.span,
        startColumn = t4.get$start().get$column(),
        endColumn = t4.get$end().get$column();
      t4 = this.line.text;
      tabsBefore = t1._countTabs$1(B.JSString_methods.substring$2(t4, 0, startColumn));
      tabsInside = t1._countTabs$1(B.JSString_methods.substring$2(t4, startColumn, endColumn));
      startColumn += tabsBefore * 3;
      t4 = B.JSString_methods.$mul(" ", startColumn);
      t2._contents += t4;
      t4 = B.JSString_methods.$mul("^", Math.max(endColumn + (tabsBefore + tabsInside) * 3 - startColumn, 1));
      return (t2._contents += t4).length - t3.length;
    },
    $signature: 28
  };
  A.Highlighter__writeIndicator_closure0.prototype = {
    call$0() {
      return this.$this._writeArrow$2(this.line, this.highlight.span.get$start().get$column());
    },
    $signature: 0
  };
  A.Highlighter__writeIndicator_closure1.prototype = {
    call$0() {
      var _this = this,
        t1 = _this.$this,
        t2 = t1._buffer,
        t3 = t2._contents;
      if (_this.coversWholeLine) {
        t1 = B.JSString_methods.$mul("\u2500", 3);
        t2._contents += t1;
      } else
        t1._writeArrow$3$beginning(_this.line, Math.max(_this.highlight.span.get$end().get$column() - 1, 0), false);
      return t2._contents.length - t3.length;
    },
    $signature: 28
  };
  A.Highlighter__writeSidebar_closure.prototype = {
    call$0() {
      var t1 = this.$this,
        t2 = t1._buffer,
        t3 = this._box_0.text;
      if (t3 == null)
        t3 = "";
      t1 = B.JSString_methods.padRight$1(t3, t1._paddingBeforeSidebar);
      t1 = t2._contents += t1;
      t3 = this.end;
      t2._contents = t1 + (t3 == null ? "\u2502" : t3);
    },
    $signature: 1
  };
  A._Highlight.prototype = {
    toString$0(_) {
      var t1 = this.span;
      t1 = "primary " + ("" + t1.get$start().get$line() + ":" + t1.get$start().get$column() + "-" + t1.get$end().get$line() + ":" + t1.get$end().get$column());
      return t1.charCodeAt(0) == 0 ? t1 : t1;
    }
  };
  A._Highlight_closure.prototype = {
    call$0() {
      var t1, t2, t3, t4,
        newSpan = this.span;
      if (!(type$.SourceSpanWithContext._is(newSpan) && A.findLineStart(newSpan.get$context(), newSpan.get$text(), newSpan.get$start().get$column()) != null)) {
        t1 = A.SourceLocation$(newSpan.get$start().get$offset(), 0, 0, newSpan.get$sourceUrl());
        t2 = newSpan.get$end().get$offset();
        t3 = newSpan.get$sourceUrl();
        t4 = A.countCodeUnits(newSpan.get$text(), 10);
        newSpan = A.SourceSpanWithContext$(t1, A.SourceLocation$(t2, A._Highlight__lastLineLength(newSpan.get$text()), t4, t3), newSpan.get$text(), newSpan.get$text());
      }
      return A._Highlight__normalizeEndOfLine(A._Highlight__normalizeTrailingNewline(A._Highlight__normalizeNewlines(newSpan)));
    },
    $signature: 62
  };
  A._Line.prototype = {
    toString$0(_) {
      return "" + this.number + ': "' + this.text + '" (' + B.JSArray_methods.join$1(this.highlights, ", ") + ")";
    }
  };
  A.SourceLocation.prototype = {
    distance$1(other) {
      var t1 = this.sourceUrl;
      if (!J.$eq$(t1, other.get$sourceUrl()))
        throw A.wrapException(A.ArgumentError$('Source URLs "' + A.S(t1) + '" and "' + A.S(other.get$sourceUrl()) + "\" don't match.", null));
      return Math.abs(this.offset - other.get$offset());
    },
    compareTo$1(_, other) {
      var t1;
      type$.SourceLocation._as(other);
      t1 = this.sourceUrl;
      if (!J.$eq$(t1, other.get$sourceUrl()))
        throw A.wrapException(A.ArgumentError$('Source URLs "' + A.S(t1) + '" and "' + A.S(other.get$sourceUrl()) + "\" don't match.", null));
      return this.offset - other.get$offset();
    },
    $eq(_, other) {
      if (other == null)
        return false;
      return type$.SourceLocation._is(other) && J.$eq$(this.sourceUrl, other.get$sourceUrl()) && this.offset === other.get$offset();
    },
    get$hashCode(_) {
      var t1 = this.sourceUrl;
      t1 = t1 == null ? null : t1.get$hashCode(t1);
      if (t1 == null)
        t1 = 0;
      return t1 + this.offset;
    },
    toString$0(_) {
      var _this = this,
        t1 = A.getRuntimeTypeOfDartObject(_this).toString$0(0),
        source = _this.sourceUrl;
      return "<" + t1 + ": " + _this.offset + " " + (A.S(source == null ? "unknown source" : source) + ":" + (_this.line + 1) + ":" + (_this.column + 1)) + ">";
    },
    $isComparable: 1,
    get$sourceUrl() {
      return this.sourceUrl;
    },
    get$offset() {
      return this.offset;
    },
    get$line() {
      return this.line;
    },
    get$column() {
      return this.column;
    }
  };
  A.SourceLocationMixin.prototype = {
    distance$1(other) {
      if (!J.$eq$(this.file.url, other.get$sourceUrl()))
        throw A.wrapException(A.ArgumentError$('Source URLs "' + A.S(this.get$sourceUrl()) + '" and "' + A.S(other.get$sourceUrl()) + "\" don't match.", null));
      return Math.abs(this.offset - other.get$offset());
    },
    compareTo$1(_, other) {
      type$.SourceLocation._as(other);
      if (!J.$eq$(this.file.url, other.get$sourceUrl()))
        throw A.wrapException(A.ArgumentError$('Source URLs "' + A.S(this.get$sourceUrl()) + '" and "' + A.S(other.get$sourceUrl()) + "\" don't match.", null));
      return this.offset - other.get$offset();
    },
    $eq(_, other) {
      if (other == null)
        return false;
      return type$.SourceLocation._is(other) && J.$eq$(this.file.url, other.get$sourceUrl()) && this.offset === other.get$offset();
    },
    get$hashCode(_) {
      var t1 = this.file.url;
      t1 = t1 == null ? null : t1.get$hashCode(t1);
      if (t1 == null)
        t1 = 0;
      return t1 + this.offset;
    },
    toString$0(_) {
      var t1 = A.getRuntimeTypeOfDartObject(this).toString$0(0),
        t2 = this.offset,
        t3 = this.file,
        source = t3.url;
      return "<" + t1 + ": " + t2 + " " + (A.S(source == null ? "unknown source" : source) + ":" + (t3.getLine$1(t2) + 1) + ":" + (t3.getColumn$1(t2) + 1)) + ">";
    },
    $isComparable: 1,
    $isSourceLocation: 1
  };
  A.SourceSpanBase.prototype = {
    SourceSpanBase$3(start, end, text) {
      var t3,
        t1 = this.end,
        t2 = this.start;
      if (!J.$eq$(t1.get$sourceUrl(), t2.get$sourceUrl()))
        throw A.wrapException(A.ArgumentError$('Source URLs "' + A.S(t2.get$sourceUrl()) + '" and  "' + A.S(t1.get$sourceUrl()) + "\" don't match.", null));
      else if (t1.get$offset() < t2.get$offset())
        throw A.wrapException(A.ArgumentError$("End " + t1.toString$0(0) + " must come after start " + t2.toString$0(0) + ".", null));
      else {
        t3 = this.text;
        if (t3.length !== t2.distance$1(t1))
          throw A.wrapException(A.ArgumentError$('Text "' + t3 + '" must be ' + t2.distance$1(t1) + " characters long.", null));
      }
    },
    get$start() {
      return this.start;
    },
    get$end() {
      return this.end;
    },
    get$text() {
      return this.text;
    }
  };
  A.SourceSpanException.prototype = {
    get$message() {
      return this._span_exception$_message;
    },
    toString$0(_) {
      var t3, t4, highlight,
        t1 = this._span,
        t2 = "line " + (t1.get$start().get$line() + 1) + ", column " + (t1.get$start().get$column() + 1);
      if (t1.get$sourceUrl() != null) {
        t3 = t1.get$sourceUrl();
        t4 = $.$get$context();
        t3.toString;
        t3 = t2 + (" of " + t4.prettyUri$1(t3));
        t2 = t3;
      }
      t2 += ": " + this._span_exception$_message;
      highlight = t1.highlight$1$color(null);
      t1 = highlight.length !== 0 ? t2 + "\n" + highlight : t2;
      return "Error on " + (t1.charCodeAt(0) == 0 ? t1 : t1);
    },
    $isException: 1
  };
  A.SourceSpanFormatException.prototype = {
    get$offset() {
      var t1 = this._span;
      t1 = A.FileLocation$_(t1.file, t1._file$_start);
      return t1.offset;
    },
    $isFormatException: 1,
    get$source() {
      return this.source;
    }
  };
  A.SourceSpanMixin.prototype = {
    get$sourceUrl() {
      return this.get$start().get$sourceUrl();
    },
    get$length(_) {
      return this.get$end().get$offset() - this.get$start().get$offset();
    },
    compareTo$1(_, other) {
      var result;
      type$.SourceSpan._as(other);
      result = this.get$start().compareTo$1(0, other.get$start());
      return result === 0 ? this.get$end().compareTo$1(0, other.get$end()) : result;
    },
    highlight$1$color(color) {
      var _this = this;
      if (!type$.SourceSpanWithContext._is(_this) && _this.get$length(_this) === 0)
        return "";
      return A.Highlighter$(_this, color).highlight$0();
    },
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A.SourceSpanMixin && this.get$start().$eq(0, other.get$start()) && this.get$end().$eq(0, other.get$end());
    },
    get$hashCode(_) {
      return A.Object_hash(this.get$start(), this.get$end(), B.C_SentinelValue, B.C_SentinelValue);
    },
    toString$0(_) {
      var _this = this;
      return "<" + A.getRuntimeTypeOfDartObject(_this).toString$0(0) + ": from " + _this.get$start().toString$0(0) + " to " + _this.get$end().toString$0(0) + ' "' + _this.get$text() + '">';
    },
    $isComparable: 1,
    $isSourceSpan: 1
  };
  A.SourceSpanWithContext.prototype = {
    get$context() {
      return this._context;
    }
  };
  A.SseClient.prototype = {
    SseClient$2$debugKey(serverUrl, debugKey) {
      var t2, _this = this,
        t1 = serverUrl + "?sseClientId=" + _this._clientId;
      _this.__SseClient__serverUrl_A = t1;
      t2 = type$.JSObject;
      t1 = t2._as(new init.G.EventSource(t1, {withCredentials: true}));
      _this.__SseClient__eventSource_A = t1;
      new A._EventStream(t1, "open", false, type$._EventStream_JSObject).get$first(0).whenComplete$1(new A.SseClient_closure(_this));
      _this.__SseClient__eventSource_A.addEventListener("message", A._functionToJS1(_this.get$_onIncomingMessage()));
      _this.__SseClient__eventSource_A.addEventListener("control", A._functionToJS1(_this.get$_onIncomingControlMessage()));
      t1 = type$.nullable_void_Function_JSObject;
      A._EventStreamSubscription$(_this.__SseClient__eventSource_A, "open", t1._as(new A.SseClient_closure0(_this)), false, t2);
      A._EventStreamSubscription$(_this.__SseClient__eventSource_A, "error", t1._as(new A.SseClient_closure1(_this)), false, t2);
    },
    close$0() {
      var _this = this,
        t1 = _this.__SseClient__eventSource_A;
      t1 === $ && A.throwLateFieldNI("_eventSource");
      t1.close();
      if ((_this._onConnected.future._state & 30) === 0) {
        t1 = _this._outgoingController;
        new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>")).listen$2$cancelOnError(null, true).asFuture$1$1(null, type$.void);
      }
      _this._incomingController.close$0();
      _this._outgoingController.close$0();
    },
    _closeWithError$1(error) {
      var t1;
      this._incomingController.addError$1(error);
      this.close$0();
      t1 = this._onConnected;
      if ((t1.future._state & 30) === 0)
        t1.completeError$1(error);
    },
    _onIncomingControlMessage$1(message) {
      var data = type$.JSObject._as(message).data;
      if (J.$eq$(A.dartify(data), "close"))
        this.close$0();
      else
        throw A.wrapException(A.UnsupportedError$("[" + this._clientId + '] Illegal Control Message "' + A.S(data) + '"'));
    },
    _onIncomingMessage$1(message) {
      this._incomingController.add$1(0, A._asString(B.C_JsonCodec.decode$2$reviver(A._asString(type$.JSObject._as(message).data), null)));
    },
    _onOutgoingDone$0() {
      this.close$0();
    },
    _onOutgoingMessage$1(message) {
      return this._onOutgoingMessage$body$SseClient(A._asStringQ(message));
    },
    _onOutgoingMessage$body$SseClient(message) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        $async$self = this, t1;
      var $async$_onOutgoingMessage$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 = {};
              t1.encodedMessage = null;
              $async$goto = 2;
              return A._asyncAwait($.$get$_requestPool().withResource$1$1(new A.SseClient__onOutgoingMessage_closure(t1, $async$self, message), type$.Null), $async$_onOutgoingMessage$1);
            case 2:
              // returning from await.
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$_onOutgoingMessage$1, $async$completer);
    }
  };
  A.SseClient_closure.prototype = {
    call$0() {
      var t2,
        t1 = this.$this;
      t1._onConnected.complete$0();
      t2 = t1._outgoingController;
      new A._ControllerStream(t2, A._instanceType(t2)._eval$1("_ControllerStream<1>")).listen$2$onDone(t1.get$_onOutgoingMessage(), t1.get$_onOutgoingDone());
    },
    $signature: 1
  };
  A.SseClient_closure0.prototype = {
    call$1(_) {
      var t1 = this.$this._errorTimer;
      if (t1 != null)
        t1.cancel$0();
    },
    $signature: 2
  };
  A.SseClient_closure1.prototype = {
    call$1(error) {
      var t1 = this.$this,
        t2 = t1._errorTimer;
      t2 = t2 == null ? null : t2.get$isActive();
      if (t2 !== true)
        t1._errorTimer = A.Timer_Timer(B.Duration_5000000, new A.SseClient__closure(t1, error));
    },
    $signature: 2
  };
  A.SseClient__closure.prototype = {
    call$0() {
      this.$this._closeWithError$1(this.error);
    },
    $signature: 0
  };
  A.SseClient__onOutgoingMessage_closure.prototype = {
    call$0() {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.Null),
        $async$handler = 1, $async$errorStack = [], $async$self = this, e, e0, url, error, augmentedError, exception, t1, t2, $async$exception;
      var $async$call$0 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
        if ($async$errorCode === 1) {
          $async$errorStack.push($async$result);
          $async$goto = $async$handler;
        }
        while (true)
          switch ($async$goto) {
            case 0:
              // Function start
              try {
                $async$self._box_0.encodedMessage = B.C_JsonCodec.encode$2$toEncodable($async$self.message, null);
              } catch (exception) {
                t1 = A.unwrapException(exception);
                if (t1 instanceof A.JsonUnsupportedObjectError) {
                  e = t1;
                  t1 = $async$self.$this;
                  t1._logger.log$4(B.Level_WARNING_900, "[" + t1._clientId + "] Unable to encode outgoing message: " + A.S(e), null, null);
                } else if (t1 instanceof A.ArgumentError) {
                  e0 = t1;
                  t1 = $async$self.$this;
                  t1._logger.log$4(B.Level_WARNING_900, "[" + t1._clientId + "] Invalid argument: " + A.S(e0), null, null);
                } else
                  throw exception;
              }
              $async$handler = 3;
              t1 = $async$self.$this;
              t2 = t1.__SseClient__serverUrl_A;
              t2 === $ && A.throwLateFieldNI("_serverUrl");
              url = t2 + "&messageId=" + ++t1._lastMessageId;
              t1 = $async$self._box_0.encodedMessage;
              if (t1 == null)
                t1 = null;
              t1 = {method: "POST", body: t1, credentials: "include"};
              t2 = type$.JSObject;
              $async$goto = 6;
              return A._asyncAwait(A.promiseToFuture(t2._as(t2._as(init.G.window).fetch(url, t1)), t2), $async$call$0);
            case 6:
              // returning from await.
              $async$handler = 1;
              // goto after finally
              $async$goto = 5;
              break;
            case 3:
              // catch
              $async$handler = 2;
              $async$exception = $async$errorStack.pop();
              error = A.unwrapException($async$exception);
              t1 = $async$self.$this;
              augmentedError = "[" + t1._clientId + "] SSE client failed to send " + A.S($async$self.message) + ":\n " + A.S(error);
              t1._logger.log$4(B.Level_SEVERE_1000, augmentedError, null, null);
              t1._closeWithError$1(augmentedError);
              // goto after finally
              $async$goto = 5;
              break;
            case 2:
              // uncaught
              // goto rethrow
              $async$goto = 1;
              break;
            case 5:
              // after finally
              // implicit return
              return A._asyncReturn(null, $async$completer);
            case 1:
              // rethrow
              return A._asyncRethrow($async$errorStack.at(-1), $async$completer);
          }
      });
      return A._asyncStartSync($async$call$0, $async$completer);
    },
    $signature: 65
  };
  A.generateUuidV4_generateBits.prototype = {
    call$1(bitCount) {
      return this.random.nextInt$1(B.JSInt_methods._shlPositive$1(1, bitCount));
    },
    $signature: 27
  };
  A.generateUuidV4_printDigits.prototype = {
    call$2(value, count) {
      return B.JSString_methods.padLeft$2(B.JSInt_methods.toRadixString$1(value, 16), count, "0");
    },
    $signature: 22
  };
  A.generateUuidV4_bitsDigits.prototype = {
    call$2(bitCount, digitCount) {
      return this.printDigits.call$2(this.generateBits.call$1(bitCount), digitCount);
    },
    $signature: 22
  };
  A.GuaranteeChannel.prototype = {
    GuaranteeChannel$3$allowSinkErrors(innerSink, allowSinkErrors, _box_0, $T) {
      var _this = this,
        t1 = _this.$ti,
        t2 = t1._eval$1("_GuaranteeSink<1>")._as(new A._GuaranteeSink(innerSink, _this, new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_dynamic), type$._AsyncCompleter_dynamic), allowSinkErrors, $T._eval$1("_GuaranteeSink<0>")));
      _this.__GuaranteeChannel__sink_F !== $ && A.throwLateFieldAI("_sink");
      _this.__GuaranteeChannel__sink_F = t2;
      t1 = t1._eval$1("StreamController<1>")._as(A.StreamController_StreamController(null, new A.GuaranteeChannel_closure(_box_0, _this, $T), true, $T));
      _this.__GuaranteeChannel__streamController_F !== $ && A.throwLateFieldAI("_streamController");
      _this.__GuaranteeChannel__streamController_F = t1;
    },
    _onSinkDisconnected$0() {
      var subscription, t1;
      this._disconnected = true;
      subscription = this._guarantee_channel$_subscription;
      if (subscription != null)
        subscription.cancel$0();
      t1 = this.__GuaranteeChannel__streamController_F;
      t1 === $ && A.throwLateFieldNI("_streamController");
      t1.close$0();
    }
  };
  A.GuaranteeChannel_closure.prototype = {
    call$0() {
      var t2, t3,
        t1 = this.$this;
      if (t1._disconnected)
        return;
      t2 = this._box_0.innerStream;
      t3 = t1.__GuaranteeChannel__streamController_F;
      t3 === $ && A.throwLateFieldNI("_streamController");
      t1._guarantee_channel$_subscription = t2.listen$3$onDone$onError(this.T._eval$1("~(0)")._as(t3.get$add(t3)), new A.GuaranteeChannel__closure(t1), t3.get$addError());
    },
    $signature: 0
  };
  A.GuaranteeChannel__closure.prototype = {
    call$0() {
      var t1 = this.$this,
        t2 = t1.__GuaranteeChannel__sink_F;
      t2 === $ && A.throwLateFieldNI("_sink");
      t2._onStreamDisconnected$0();
      t1 = t1.__GuaranteeChannel__streamController_F;
      t1 === $ && A.throwLateFieldNI("_streamController");
      t1.close$0();
    },
    $signature: 0
  };
  A._GuaranteeSink.prototype = {
    add$1(_, data) {
      var t1, _this = this;
      _this.$ti._precomputed1._as(data);
      if (_this._closed)
        throw A.wrapException(A.StateError$("Cannot add event after closing."));
      if (_this._disconnected)
        return;
      t1 = _this._inner;
      t1._async$_target.add$1(0, t1.$ti._precomputed1._as(data));
    },
    addError$2(error, stackTrace) {
      if (this._closed)
        throw A.wrapException(A.StateError$("Cannot add event after closing."));
      if (this._disconnected)
        return;
      this._guarantee_channel$_addError$2(error, stackTrace);
    },
    addError$1(error) {
      return this.addError$2(error, null);
    },
    _guarantee_channel$_addError$2(error, stackTrace) {
      var _this = this;
      if (_this._allowErrors) {
        _this._inner._async$_target.addError$2(error, stackTrace);
        return;
      }
      _this._doneCompleter.completeError$2(error, stackTrace);
      _this._onStreamDisconnected$0();
      _this._guarantee_channel$_channel._onSinkDisconnected$0();
      _this._inner._async$_target.close$0().catchError$1(new A._GuaranteeSink__addError_closure());
    },
    close$0() {
      var _this = this;
      if (_this._closed)
        return _this._doneCompleter.future;
      _this._closed = true;
      if (!_this._disconnected) {
        _this._guarantee_channel$_channel._onSinkDisconnected$0();
        _this._doneCompleter.complete$1(_this._inner._async$_target.close$0());
      }
      return _this._doneCompleter.future;
    },
    _onStreamDisconnected$0() {
      this._disconnected = true;
      var t1 = this._doneCompleter;
      if ((t1.future._state & 30) === 0)
        t1.complete$0();
      return;
    },
    $isStreamSink: 1
  };
  A._GuaranteeSink__addError_closure.prototype = {
    call$1(_) {
    },
    $signature: 6
  };
  A.StreamChannelController.prototype = {};
  A.StreamChannelMixin.prototype = {$isStreamChannel: 1};
  A.StringScannerException.prototype = {
    get$source() {
      return A._asString(this.source);
    }
  };
  A.StringScanner.prototype = {
    get$lastMatch() {
      var _this = this;
      if (_this._string_scanner$_position !== _this._lastMatchPosition)
        _this._lastMatch = null;
      return _this._lastMatch;
    },
    scan$1(pattern) {
      var success, _this = this,
        t1 = _this._lastMatch = J.matchAsPrefix$2$s(pattern, _this.string, _this._string_scanner$_position);
      _this._lastMatchPosition = _this._string_scanner$_position;
      success = t1 != null;
      if (success)
        _this._lastMatchPosition = _this._string_scanner$_position = t1.get$end();
      return success;
    },
    expect$2$name(pattern, $name) {
      var t1;
      if (this.scan$1(pattern))
        return;
      if ($name == null)
        if (pattern instanceof A.JSSyntaxRegExp)
          $name = "/" + pattern.pattern + "/";
        else {
          t1 = J.toString$0$(pattern);
          t1 = A.stringReplaceAllUnchecked(t1, "\\", "\\\\");
          $name = '"' + A.stringReplaceAllUnchecked(t1, '"', '\\"') + '"';
        }
      this._fail$1($name);
    },
    expect$1(pattern) {
      return this.expect$2$name(pattern, null);
    },
    expectDone$0() {
      if (this._string_scanner$_position === this.string.length)
        return;
      this._fail$1("no more input");
    },
    error$3$length$position(message, $length, position) {
      var t2, t3, t4, t5, sourceFile, end,
        t1 = this.string;
      if (position < 0)
        A.throwExpression(A.RangeError$("position must be greater than or equal to 0."));
      else if (position > t1.length)
        A.throwExpression(A.RangeError$("position must be less than or equal to the string length."));
      t2 = position + $length > t1.length;
      if (t2)
        A.throwExpression(A.RangeError$("position plus length must not go beyond the end of the string."));
      t2 = this.sourceUrl;
      t3 = new A.CodeUnits(t1);
      t4 = A._setArrayType([0], type$.JSArray_int);
      t5 = new Uint32Array(A._ensureNativeList(t3.toList$0(t3)));
      sourceFile = new A.SourceFile(t2, t4, t5);
      sourceFile.SourceFile$decoded$2$url(t3, t2);
      end = position + $length;
      if (end > t5.length)
        A.throwExpression(A.RangeError$("End " + end + string$.x20must_ + sourceFile.get$length(0) + "."));
      else if (position < 0)
        A.throwExpression(A.RangeError$("Start may not be negative, was " + position + "."));
      throw A.wrapException(new A.StringScannerException(t1, message, new A._FileSpan(sourceFile, position, end)));
    },
    _fail$1($name) {
      this.error$3$length$position("expected " + $name + ".", 0, this._string_scanner$_position);
    }
  };
  A.RNG.prototype = {};
  A.MathRNG.prototype = {
    _generateInternal$0() {
      var t1, i, k, t2, t3,
        b = new Uint8Array(16);
      for (t1 = this._rnd, i = 0; i < 16; i += 4) {
        k = t1.nextInt$1(B.JSNumber_methods.toInt$0(Math.pow(2, 32)));
        if (!(i < 16))
          return A.ioore(b, i);
        b[i] = k;
        t2 = i + 1;
        t3 = B.JSInt_methods._shrOtherPositive$1(k, 8);
        if (!(t2 < 16))
          return A.ioore(b, t2);
        b[t2] = t3;
        t3 = i + 2;
        t2 = B.JSInt_methods._shrOtherPositive$1(k, 16);
        if (!(t3 < 16))
          return A.ioore(b, t3);
        b[t3] = t2;
        t2 = i + 3;
        t3 = B.JSInt_methods._shrOtherPositive$1(k, 24);
        if (!(t2 < 16))
          return A.ioore(b, t2);
        b[t2] = t3;
      }
      return b;
    }
  };
  A.UuidV1.prototype = {
    _init$0() {
      if ($.V1State_initialized)
        return;
      var uint8list = $.$get$V1State_random()._generateInternal$0();
      $.V1State_nodeId = A._setArrayType([uint8list[0] | 1, uint8list[1], uint8list[2], uint8list[3], uint8list[4], uint8list[5]], type$.JSArray_int);
      $.V1State_clockSeq = (uint8list[6] << 8 | uint8list[7]) & 262143;
      $.V1State_initialized = true;
    },
    generate$1$options(options) {
      var buf, clockSeq, mSecs, t1, nSecs, t2, tl, tmh, node, n, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17;
      this._init$0();
      buf = new Uint8Array(16);
      clockSeq = $.V1State_clockSeq;
      mSecs = Date.now();
      t1 = $.V1State_nSecs;
      nSecs = t1 + 1;
      t2 = $.V1State_mSecs;
      t1 = mSecs - t2 + (nSecs - t1) / 10000 < 0;
      if (t1)
        clockSeq = clockSeq + 1 & 16383;
      t1 = t1 || mSecs > t2;
      if (t1)
        nSecs = 0;
      if (nSecs >= 10000)
        throw A.wrapException(A.Exception_Exception("uuid.v1(): Can't create more than 10M uuids/sec"));
      $.V1State_mSecs = mSecs;
      $.V1State_nSecs = nSecs;
      $.V1State_clockSeq = clockSeq;
      mSecs += 122192928e5;
      tl = ((mSecs & 268435455) * 10000 + nSecs) % 4294967296;
      buf[0] = tl >>> 24 & 255;
      buf[1] = tl >>> 16 & 255;
      buf[2] = tl >>> 8 & 255;
      buf[3] = tl & 255;
      tmh = B.JSNumber_methods.floor$0(mSecs / 4294967296 * 10000) & 268435455;
      buf[4] = tmh >>> 8 & 255;
      buf[5] = tmh & 255;
      buf[6] = tmh >>> 24 & 255;
      buf[7] = tmh >>> 16 & 255;
      buf[8] = clockSeq >>> 8 & 63;
      buf[9] = clockSeq & 255;
      buf[6] = buf[6] & 15 | 16;
      buf[8] = buf[8] | 128;
      node = $.V1State_nodeId;
      for (t1 = node.length, n = 0; n < 6; ++n) {
        if (!(n < t1))
          return A.ioore(node, n);
        buf[10 + n] = node[n];
      }
      t1 = $.$get$UuidParsing__byteToHex();
      t2 = buf[0];
      if (!(t2 < 256))
        return A.ioore(t1, t2);
      t2 = t1[t2];
      t3 = buf[1];
      if (!(t3 < 256))
        return A.ioore(t1, t3);
      t3 = t1[t3];
      t4 = buf[2];
      if (!(t4 < 256))
        return A.ioore(t1, t4);
      t4 = t1[t4];
      t5 = buf[3];
      if (!(t5 < 256))
        return A.ioore(t1, t5);
      t5 = t1[t5];
      t6 = buf[4];
      if (!(t6 < 256))
        return A.ioore(t1, t6);
      t6 = t1[t6];
      t7 = buf[5];
      if (!(t7 < 256))
        return A.ioore(t1, t7);
      t7 = t1[t7];
      t8 = buf[6];
      if (!(t8 < 256))
        return A.ioore(t1, t8);
      t8 = t1[t8];
      t9 = buf[7];
      if (!(t9 < 256))
        return A.ioore(t1, t9);
      t9 = t1[t9];
      t10 = buf[8];
      if (!(t10 < 256))
        return A.ioore(t1, t10);
      t10 = t1[t10];
      t11 = buf[9];
      if (!(t11 < 256))
        return A.ioore(t1, t11);
      t11 = t1[t11];
      t12 = buf[10];
      if (!(t12 < 256))
        return A.ioore(t1, t12);
      t12 = t1[t12];
      t13 = buf[11];
      if (!(t13 < 256))
        return A.ioore(t1, t13);
      t13 = t1[t13];
      t14 = buf[12];
      if (!(t14 < 256))
        return A.ioore(t1, t14);
      t14 = t1[t14];
      t15 = buf[13];
      if (!(t15 < 256))
        return A.ioore(t1, t15);
      t15 = t1[t15];
      t16 = buf[14];
      if (!(t16 < 256))
        return A.ioore(t1, t16);
      t16 = t1[t16];
      t17 = buf[15];
      if (!(t17 < 256))
        return A.ioore(t1, t17);
      return t2 + t3 + t4 + t5 + "-" + t6 + t7 + "-" + t8 + t9 + "-" + t10 + t11 + "-" + t12 + t13 + t14 + t15 + t16 + t1[t17];
    }
  };
  A.EventStreamProvider.prototype = {};
  A._EventStream.prototype = {
    listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) {
      var t1 = this.$ti;
      t1._eval$1("~(1)?")._as(onData);
      type$.nullable_void_Function._as(onDone);
      return A._EventStreamSubscription$(this._target, this._eventType, onData, false, t1._precomputed1);
    },
    listen$3$onDone$onError(onData, onDone, onError) {
      return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError);
    }
  };
  A._EventStreamSubscription.prototype = {
    cancel$0() {
      var _this = this,
        emptyFuture = A.Future_Future$value(null, type$.void);
      if (_this._target == null)
        return emptyFuture;
      _this._unlisten$0();
      _this._onData = _this._target = null;
      return emptyFuture;
    },
    onData$1(handleData) {
      var t1, _this = this;
      _this.$ti._eval$1("~(1)?")._as(handleData);
      if (_this._target == null)
        throw A.wrapException(A.StateError$("Subscription has been canceled."));
      _this._unlisten$0();
      t1 = A._wrapZone(new A._EventStreamSubscription_onData_closure(handleData), type$.JSObject);
      t1 = t1 == null ? null : A._functionToJS1(t1);
      _this._onData = t1;
      _this._tryResume$0();
    },
    pause$0() {
      if (this._target == null)
        return;
      ++this._pauseCount;
      this._unlisten$0();
    },
    resume$0() {
      var _this = this;
      if (_this._target == null || _this._pauseCount <= 0)
        return;
      --_this._pauseCount;
      _this._tryResume$0();
    },
    _tryResume$0() {
      var _this = this,
        t1 = _this._onData;
      if (t1 != null && _this._pauseCount <= 0)
        _this._target.addEventListener(_this._eventType, t1, false);
    },
    _unlisten$0() {
      var t1 = this._onData;
      if (t1 != null)
        this._target.removeEventListener(this._eventType, t1, false);
    },
    $isStreamSubscription: 1
  };
  A._EventStreamSubscription_closure.prototype = {
    call$1(e) {
      return this.onData.call$1(type$.JSObject._as(e));
    },
    $signature: 2
  };
  A._EventStreamSubscription_onData_closure.prototype = {
    call$1(e) {
      return this.handleData.call$1(type$.JSObject._as(e));
    },
    $signature: 2
  };
  A.BrowserWebSocket.prototype = {
    _browser_web_socket$_closed$2(code, reason) {
      var t1 = this._browser_web_socket$_events;
      if ((t1._state & 4) !== 0)
        return;
      t1.add$1(0, new A.CloseReceived(code, reason));
      t1.close$0();
    },
    sendBytes$1(b) {
      var t1;
      if ((this._browser_web_socket$_events._state & 4) !== 0)
        throw A.wrapException(A.WebSocketConnectionClosed$());
      t1 = A.jsify(b);
      t1.toString;
      this._webSocket.send(t1);
    },
    close$2(code, reason) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        $async$self = this, t1;
      var $async$close$2 = 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 = $async$self._browser_web_socket$_events;
              if ((t1._state & 4) !== 0)
                throw A.wrapException(A.WebSocketConnectionClosed$());
              t1.close$0();
              $async$self._webSocket.close();
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$close$2, $async$completer);
    },
    $isWebSocket: 1
  };
  A.BrowserWebSocket_connect_closure.prototype = {
    call$1(_) {
      type$.JSObject._as(_);
      this.webSocketConnected.complete$1(this.browserSocket);
    },
    $signature: 8
  };
  A.BrowserWebSocket_connect_closure0.prototype = {
    call$1(e) {
      var t1;
      type$.JSObject._as(e);
      t1 = this.webSocketConnected;
      if ((t1.future._state & 30) === 0)
        t1.completeError$1(new A.WebSocketException());
      else
        this.browserSocket._browser_web_socket$_closed$2(1006, "error");
    },
    $signature: 8
  };
  A.BrowserWebSocket_connect_closure1.prototype = {
    call$1(e) {
      var t2, data,
        t1 = this.browserSocket._browser_web_socket$_events;
      if ((t1._state & 4) !== 0)
        return;
      t2 = e.data;
      t2.toString;
      data = A._Cell$named("data");
      if (typeof t2 === "string")
        data.__late_helper$_value = new A.TextDataReceived(A._asString(t2));
      else if (typeof t2 === "object" && A.JSAnyUtilityExtension_instanceOfString(type$.JSObject._as(t2), "ArrayBuffer"))
        data.__late_helper$_value = new A.BinaryDataReceived(A.NativeUint8List_NativeUint8List$view(type$.NativeByteBuffer._as(t2), 0, null));
      else
        throw A.wrapException(A.StateError$("unexpected message type: " + J.get$runtimeType$(t2).toString$0(0)));
      t1.add$1(0, data._readLocal$0());
    },
    $signature: 2
  };
  A.BrowserWebSocket_connect_closure2.prototype = {
    call$1($event) {
      var t1;
      type$.JSObject._as($event);
      t1 = this.webSocketConnected;
      if ((t1.future._state & 30) === 0)
        t1.complete$1(this.browserSocket);
      this.browserSocket._browser_web_socket$_closed$2(A._asInt($event.code), A._asString($event.reason));
    },
    $signature: 8
  };
  A.WebSocketEvent.prototype = {};
  A.TextDataReceived.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A.TextDataReceived && other.text === this.text;
    },
    get$hashCode(_) {
      return B.JSString_methods.get$hashCode(this.text);
    }
  };
  A.BinaryDataReceived.prototype = {
    $eq(_, other) {
      var t1, t2, t3, t4, i;
      if (other == null)
        return false;
      if (other instanceof A.BinaryDataReceived && other.data.length === this.data.length) {
        for (t1 = this.data, t2 = t1.length, t3 = other.data, t4 = t3.length, i = 0; i < t2; ++i) {
          if (!(i < t4))
            return A.ioore(t3, i);
          if (t3[i] !== t1[i])
            return false;
        }
        return true;
      }
      return false;
    },
    get$hashCode(_) {
      return A.Primitives_objectHashCode(this.data);
    },
    toString$0(_) {
      return "BinaryDataReceived(" + A.S(this.data) + ")";
    }
  };
  A.CloseReceived.prototype = {
    $eq(_, other) {
      if (other == null)
        return false;
      return other instanceof A.CloseReceived && other.code === this.code && other.reason === this.reason;
    },
    get$hashCode(_) {
      return A.Primitives_objectHashCode([this.code, this.reason]);
    },
    toString$0(_) {
      return "CloseReceived(" + this.code + ", " + this.reason + ")";
    }
  };
  A.WebSocketException.prototype = {$isException: 1};
  A.WebSocketConnectionClosed.prototype = {};
  A.AdapterWebSocketChannel.prototype = {
    AdapterWebSocketChannel$1(webSocket) {
      webSocket.then$1$2$onError(new A.AdapterWebSocketChannel_closure(this), new A.AdapterWebSocketChannel_closure0(this), type$.Null);
    },
    $isWebSocketChannel: 1
  };
  A.AdapterWebSocketChannel_closure.prototype = {
    call$1(webSocket) {
      var t1, t2;
      type$.WebSocket._as(webSocket);
      t1 = webSocket._browser_web_socket$_events;
      t2 = this.$this;
      new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>")).listen$1(new A.AdapterWebSocketChannel__closure(t2));
      t1 = t2._adapter_web_socket_channel$_controller.__StreamChannelController__local_F;
      t1 === $ && A.throwLateFieldNI("_local");
      t1 = t1.__GuaranteeChannel__streamController_F;
      t1 === $ && A.throwLateFieldNI("_streamController");
      new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>")).listen$2$onDone(new A.AdapterWebSocketChannel__closure0(webSocket), new A.AdapterWebSocketChannel__closure1(t2, webSocket));
      A._asString(webSocket._webSocket.protocol);
      t2._readyCompleter.complete$0();
    },
    $signature: 67
  };
  A.AdapterWebSocketChannel__closure.prototype = {
    call$1($event) {
      var t1, text, data, _s6_ = "_local", _s5_ = "_sink";
      type$.WebSocketEvent._as($event);
      $label0$0: {
        t1 = $event instanceof A.TextDataReceived;
        text = t1 ? $event.text : null;
        if (t1) {
          t1 = this.$this._adapter_web_socket_channel$_controller.__StreamChannelController__local_F;
          t1 === $ && A.throwLateFieldNI(_s6_);
          t1 = t1.__GuaranteeChannel__sink_F;
          t1 === $ && A.throwLateFieldNI(_s5_);
          t1.add$1(0, text);
          break $label0$0;
        }
        t1 = $event instanceof A.BinaryDataReceived;
        data = t1 ? $event.data : null;
        if (t1) {
          t1 = this.$this._adapter_web_socket_channel$_controller.__StreamChannelController__local_F;
          t1 === $ && A.throwLateFieldNI(_s6_);
          t1 = t1.__GuaranteeChannel__sink_F;
          t1 === $ && A.throwLateFieldNI(_s5_);
          t1.add$1(0, data);
          break $label0$0;
        }
        if ($event instanceof A.CloseReceived) {
          t1 = this.$this._adapter_web_socket_channel$_controller.__StreamChannelController__local_F;
          t1 === $ && A.throwLateFieldNI(_s6_);
          t1 = t1.__GuaranteeChannel__sink_F;
          t1 === $ && A.throwLateFieldNI(_s5_);
          t1.close$0();
        }
      }
    },
    $signature: 68
  };
  A.AdapterWebSocketChannel__closure0.prototype = {
    call$1(obj) {
      var _1_0, s, b, b0, t1, t2, exception;
      try {
        $label1$1: {
          _1_0 = obj;
          s = null;
          t1 = typeof _1_0 == "string";
          if (t1)
            s = _1_0;
          if (t1) {
            t1 = this.webSocket;
            t2 = A._asString(s);
            if ((t1._browser_web_socket$_events._state & 4) !== 0)
              A.throwExpression(A.WebSocketConnectionClosed$());
            t2 = A.jsify(t2);
            t2.toString;
            t1._webSocket.send(t2);
            break $label1$1;
          }
          b = null;
          t1 = type$.Uint8List._is(_1_0);
          if (t1)
            b = _1_0;
          if (t1) {
            this.webSocket.sendBytes$1(b);
            break $label1$1;
          }
          b0 = null;
          t1 = type$.List_int._is(_1_0);
          if (t1)
            b0 = _1_0;
          if (t1) {
            this.webSocket.sendBytes$1(new Uint8Array(A._ensureNativeList(b0)));
            break $label1$1;
          }
          t1 = A.UnsupportedError$("Cannot send " + J.get$runtimeType$(obj).toString$0(0));
          throw A.wrapException(t1);
        }
      } catch (exception) {
        if (!(A.unwrapException(exception) instanceof A.WebSocketConnectionClosed))
          throw exception;
      }
    },
    $signature: 9
  };
  A.AdapterWebSocketChannel__closure1.prototype = {
    call$0() {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        $async$handler = 1, $async$errorStack = [], $async$self = this, t1, exception, $async$exception;
      var $async$call$0 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
        if ($async$errorCode === 1) {
          $async$errorStack.push($async$result);
          $async$goto = $async$handler;
        }
        while (true)
          switch ($async$goto) {
            case 0:
              // Function start
              $async$handler = 3;
              t1 = $async$self.$this;
              $async$goto = 6;
              return A._asyncAwait($async$self.webSocket.close$2(t1._localCloseCode, t1._localCloseReason), $async$call$0);
            case 6:
              // returning from await.
              $async$handler = 1;
              // goto after finally
              $async$goto = 5;
              break;
            case 3:
              // catch
              $async$handler = 2;
              $async$exception = $async$errorStack.pop();
              if (!(A.unwrapException($async$exception) instanceof A.WebSocketConnectionClosed))
                throw $async$exception;
              // goto after finally
              $async$goto = 5;
              break;
            case 2:
              // uncaught
              // goto rethrow
              $async$goto = 1;
              break;
            case 5:
              // after finally
              // implicit return
              return A._asyncReturn(null, $async$completer);
            case 1:
              // rethrow
              return A._asyncRethrow($async$errorStack.at(-1), $async$completer);
          }
      });
      return A._asyncStartSync($async$call$0, $async$completer);
    },
    $signature: 19
  };
  A.AdapterWebSocketChannel_closure0.prototype = {
    call$1(e) {
      var error, t1, t2;
      type$.Object._as(e);
      error = e instanceof A.TimeoutException ? e : new A.WebSocketChannelException(J.toString$0$(e));
      t1 = this.$this;
      t1._readyCompleter.completeError$1(error);
      t1 = t1._adapter_web_socket_channel$_controller.__StreamChannelController__local_F;
      t1 === $ && A.throwLateFieldNI("_local");
      t2 = t1.__GuaranteeChannel__sink_F;
      t2 === $ && A.throwLateFieldNI("_sink");
      t2.addError$1(error);
      t1 = t1.__GuaranteeChannel__sink_F;
      t1 === $ && A.throwLateFieldNI("_sink");
      t1.close$0();
    },
    $signature: 69
  };
  A._WebSocketSink.prototype = {$isWebSocketSink: 1};
  A.WebSocketChannelException.prototype = {
    toString$0(_) {
      return "WebSocketChannelException: " + this.message;
    },
    $isException: 1
  };
  A.main_closure.prototype = {
    call$0() {
      return this.$call$body$main_closure();
    },
    $call$body$main_closure() {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        uri, t2, fixedPath, fixedUri, client, _0_0, t3, manager, t4, t5, t6, debugEventController, t7, _box_0, t1;
      var $async$call$0 = 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
              _box_0 = {};
              t1 = init.G;
              if (A._asStringQ(t1.$dartAppInstanceId) == null)
                t1.$dartAppInstanceId = new A.UuidV1(null).generate$1$options(null);
              uri = A.Uri_parse(A._asString(t1.$dwdsDevHandlerPath));
              t2 = type$.JSObject;
              if (A._asString(t2._as(t2._as(t1.window).location).protocol) === "https:" && uri.get$scheme() === "http" && uri.get$host() !== "localhost")
                uri = uri.replace$1$scheme("https");
              else if (A._asString(t2._as(t2._as(t1.window).location).protocol) === "wss:" && uri.get$scheme() === "ws" && uri.get$host() !== "localhost")
                uri = uri.replace$1$scheme("wss");
              fixedPath = uri.toString$0(0);
              fixedUri = A.Uri_parse(fixedPath);
              client = fixedUri.isScheme$1("ws") || fixedUri.isScheme$1("wss") ? new A.WebSocketClient(A.AdapterWebSocketChannel$(A.BrowserWebSocket_connect(fixedUri, null))) : new A.SseSocketClient(A.SseClient$(fixedPath, "InjectedClient"));
              _0_0 = A._asString(t1.$dartModuleStrategy);
              $async$goto = "require-js" === _0_0 ? 3 : 4;
              break;
            case 3:
              // then
              $async$goto = 5;
              return A._asyncAwait(A.RequireRestarter_create(), $async$call$0);
            case 5:
              // returning from await.
              t3 = $async$result;
              // goto break $label0$0
              $async$goto = 2;
              break;
            case 4:
              // join
              if ("ddc-library-bundle" === _0_0) {
                t3 = new A.DdcLibraryBundleRestarter();
                // goto break $label0$0
                $async$goto = 2;
                break;
              }
              if ("ddc" === _0_0 || "legacy" === _0_0) {
                t3 = new A.DdcRestarter();
                // goto break $label0$0
                $async$goto = 2;
                break;
              }
              t3 = A.throwExpression(A.StateError$("Unknown module strategy: " + A.S(A.getProperty(A.staticInteropGlobalContext(), "$dartModuleStrategy", type$.String))));
            case 2:
              // break $label0$0
              manager = new A.ReloadingManager(client, t3);
              t1.$dartHotReloadStartDwds = A._functionToJS0(new A.main__closure(manager));
              t1.$dartHotReloadEndDwds = A._functionToJS0(new A.main__closure0(manager));
              _box_0.readyToRunMainCompleter = null;
              t1.$dartHotRestartDwds = A._functionToJS2(new A.main__closure1(_box_0, manager));
              t1.$dartReadyToRunMain = A._functionToJS0(new A.main__closure2(_box_0));
              t3 = $.Zone__current;
              t4 = Math.max(100, 1);
              t5 = A.StreamController_StreamController(null, null, false, type$.DebugEvent);
              t6 = A.StreamController_StreamController(null, null, false, type$.List_DebugEvent);
              debugEventController = new A.BatchedStreamController(t4, 1000, t5, t6, new A._AsyncCompleter(new A._Future(t3, type$._Future_bool), type$._AsyncCompleter_bool), type$.BatchedStreamController_DebugEvent);
              t3 = A.List_List$filled(A.QueueList__computeInitialCapacity(null), null, false, type$.nullable_Result_DebugEvent);
              t4 = A.ListQueue$(type$._EventRequest_dynamic);
              t7 = type$.StreamQueue_DebugEvent;
              debugEventController.__BatchedStreamController__inputQueue_A = t7._as(new A.StreamQueue(new A._ControllerStream(t5, A._instanceType(t5)._eval$1("_ControllerStream<1>")), new A.QueueList(t3, 0, 0, type$.QueueList_Result_DebugEvent), t4, t7));
              A.safeUnawaited(debugEventController._batchAndSendEvents$0());
              new A._ControllerStream(t6, A._instanceType(t6)._eval$1("_ControllerStream<1>")).listen$1(new A.main__closure3(client));
              t1.$emitDebugEvent = A._functionToJS2(new A.main__closure4(debugEventController));
              t1.$emitRegisterEvent = A._functionToJS1(new A.main__closure5(client));
              t1.$launchDevTools = A._functionToJS0(new A.main__closure6(client));
              client.get$stream().listen$2$onError(new A.main__closure7(manager, client), new A.main__closure8());
              if (A._asBool(t1.$dwdsEnableDevToolsLaunch))
                A._EventStreamSubscription$(t2._as(t1.window), "keydown", type$.nullable_void_Function_JSObject._as(new A.main__closure9()), false, t2);
              if (A._asString(t1.$dartModuleStrategy) !== "ddc-library-bundle")
                if (A._isChromium())
                  A._sendConnectRequest(client.get$sink());
                else
                  A.runMain();
              else {
                A._sendConnectRequest(client.get$sink());
                if (A._asBool(t1.$useDwdsWebSocketConnection))
                  A.runMain();
              }
              A._launchCommunicationWithDebugExtension();
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$call$0, $async$completer);
    },
    $signature: 19
  };
  A.main__closure.prototype = {
    call$0() {
      return A.FutureOfJSAnyToJSPromise_get_toJS(this.manager._restarter.hotReloadStart$1(A.hotReloadSourcesPath()), type$.JSObject);
    },
    $signature: 10
  };
  A.main__closure0.prototype = {
    call$0() {
      return A.FutureOfVoidToJSPromise_get_toJS(this.manager.hotReloadEnd$0());
    },
    $signature: 10
  };
  A.main__closure1.prototype = {
    call$2(runId, pauseIsolatesOnStart) {
      var t1, t2;
      A._asString(runId);
      A._asBoolQ(pauseIsolatesOnStart);
      t1 = this.manager;
      if (pauseIsolatesOnStart === true) {
        t2 = new A._Future($.Zone__current, type$._Future_dynamic);
        this._box_0.readyToRunMainCompleter = new A._AsyncCompleter(t2, type$._AsyncCompleter_dynamic);
        return A.FutureOfVoidToJSPromise_get_toJS(t1.hotRestart$2$readyToRunMain$runId(t2, runId));
      } else
        return A.FutureOfVoidToJSPromise_get_toJS(t1.hotRestart$1$runId(runId));
    },
    call$1(runId) {
      return this.call$2(runId, null);
    },
    $signature: 71
  };
  A.main__closure2.prototype = {
    call$0() {
      var t1 = this._box_0,
        t2 = t1.readyToRunMainCompleter;
      if (t2 == null)
        return;
      if ((t2.future._state & 30) !== 0)
        return;
      t2.complete$0();
      t1.readyToRunMainCompleter = null;
    },
    $signature: 1
  };
  A.main__closure3.prototype = {
    call$1(events) {
      var t1, t2, t3;
      type$.List_DebugEvent._as(events);
      if (A._asBool(init.G.$dartEmitDebugEvents)) {
        t1 = this.client.get$sink();
        t2 = $.$get$serializers();
        t3 = new A.BatchedDebugEventsBuilder();
        type$.nullable_void_Function_BatchedDebugEventsBuilder._as(new A.main___closure2(events)).call$1(t3);
        A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._debug_event$_build$0()), null), type$.dynamic);
      }
    },
    $signature: 72
  };
  A.main___closure2.prototype = {
    call$1(b) {
      var t1 = A.ListBuilder_ListBuilder(this.events, type$.DebugEvent);
      type$.nullable_ListBuilder_DebugEvent._as(t1);
      b.get$_debug_event$_$this().set$_events(t1);
      return t1;
    },
    $signature: 73
  };
  A.main__closure4.prototype = {
    call$2(kind, eventData) {
      var t1, t2;
      A._asString(kind);
      A._asString(eventData);
      if (A._asBool(init.G.$dartEmitDebugEvents)) {
        t1 = this.debugEventController._inputController;
        t2 = new A.DebugEventBuilder();
        type$.nullable_void_Function_DebugEventBuilder._as(new A.main___closure1(kind, eventData)).call$1(t2);
        A._trySendEvent(new A._StreamSinkWrapper(t1, A._instanceType(t1)._eval$1("_StreamSinkWrapper<1>")), t2._debug_event$_build$0(), type$.DebugEvent);
      }
    },
    $signature: 74
  };
  A.main___closure1.prototype = {
    call$1(b) {
      var t1 = Date.now();
      b.get$_debug_event$_$this()._timestamp = t1;
      b.get$_debug_event$_$this()._debug_event$_kind = this.kind;
      b.get$_debug_event$_$this()._eventData = this.eventData;
      return b;
    },
    $signature: 75
  };
  A.main__closure5.prototype = {
    call$1(eventData) {
      var t1, t2, t3;
      A._asString(eventData);
      t1 = this.client.get$sink();
      t2 = $.$get$serializers();
      t3 = new A.RegisterEventBuilder();
      type$.nullable_void_Function_RegisterEventBuilder._as(new A.main___closure0(eventData)).call$1(t3);
      A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._register_event$_build$0()), null), type$.dynamic);
    },
    $signature: 76
  };
  A.main___closure0.prototype = {
    call$1(b) {
      var t1 = Date.now();
      b.get$_register_event$_$this()._register_event$_timestamp = t1;
      b.get$_register_event$_$this()._register_event$_eventData = this.eventData;
      return b;
    },
    $signature: 77
  };
  A.main__closure6.prototype = {
    call$0() {
      var t1, t2, t3;
      if (!A._isChromium()) {
        type$.JSObject._as(init.G.window).alert("Dart DevTools is only supported on Chromium based browsers.");
        return;
      }
      t1 = this.client.get$sink();
      t2 = $.$get$serializers();
      t3 = new A.DevToolsRequestBuilder();
      type$.nullable_void_Function_DevToolsRequestBuilder._as(new A.main___closure()).call$1(t3);
      A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._devtools_request$_build$0()), null), type$.dynamic);
    },
    $signature: 1
  };
  A.main___closure.prototype = {
    call$1(b) {
      var t1 = init.G,
        t2 = A._asString(t1.$dartAppId);
      b.get$_devtools_request$_$this()._devtools_request$_appId = t2;
      t1 = A._asStringQ(t1.$dartAppInstanceId);
      b.get$_devtools_request$_$this()._devtools_request$_instanceId = t1;
      return b;
    },
    $signature: 78
  };
  A.main__closure7.prototype = {
    call$1(serialized) {
      return this.$call$body$main__closure(A._asString(serialized));
    },
    $call$body$main__closure(serialized) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        $async$self = this, t1, t2, $alert, t3, $event;
      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
              $event = $.$get$serializers().deserialize$1(B.C_JsonCodec.decode$2$reviver(serialized, null));
              $async$goto = $event instanceof A._$BuildResult ? 2 : 4;
              break;
            case 2:
              // then
              t1 = init.G;
              $async$goto = A._asString(t1.$dartReloadConfiguration) === "ReloadConfiguration.liveReload" ? 5 : 7;
              break;
            case 5:
              // then
              t2 = type$.JSObject;
              t2._as(t2._as(t1.window).location).reload();
              // goto join
              $async$goto = 6;
              break;
            case 7:
              // else
              $async$goto = A._asString(t1.$dartReloadConfiguration) === "ReloadConfiguration.hotRestart" ? 8 : 10;
              break;
            case 8:
              // then
              $async$goto = 11;
              return A._asyncAwait($async$self.manager.hotRestart$0(), $async$call$1);
            case 11:
              // returning from await.
              // goto join
              $async$goto = 9;
              break;
            case 10:
              // else
              $async$goto = A._asString(t1.$dartReloadConfiguration) === "ReloadConfiguration.hotReload" ? 12 : 13;
              break;
            case 12:
              // then
              t1 = $async$self.manager;
              $async$goto = 14;
              return A._asyncAwait(t1._restarter.hotReloadStart$1(A.hotReloadSourcesPath()), $async$call$1);
            case 14:
              // returning from await.
              $async$goto = 15;
              return A._asyncAwait(t1.hotReloadEnd$0(), $async$call$1);
            case 15:
              // returning from await.
            case 13:
              // join
            case 9:
              // join
            case 6:
              // join
              // goto join
              $async$goto = 3;
              break;
            case 4:
              // else
              $async$goto = $event instanceof A._$DevToolsResponse ? 16 : 18;
              break;
            case 16:
              // then
              if (!$event.success) {
                $alert = "DevTools failed to open with:\n" + A.S($event.error);
                t1 = $event.promptExtension && A._asBool(type$.JSObject._as(init.G.window).confirm($alert));
                t2 = init.G;
                t3 = type$.JSObject;
                if (t1)
                  type$.nullable_JSObject._as(t3._as(t2.window).open("https://dart.dev/to/web-debug-extension", "_blank"));
                else
                  t3._as(t2.window).alert($alert);
              }
              // goto join
              $async$goto = 17;
              break;
            case 18:
              // else
              $async$goto = $event instanceof A._$RunRequest ? 19 : 21;
              break;
            case 19:
              // then
              A.runMain();
              // goto join
              $async$goto = 20;
              break;
            case 21:
              // else
              $async$goto = $event instanceof A._$ErrorResponse ? 22 : 24;
              break;
            case 22:
              // then
              type$.JSObject._as(init.G.window).reportError("Error from backend:\n\nError: " + $event.error + "\n\nStack Trace:\n" + $event.stackTrace);
              // goto join
              $async$goto = 23;
              break;
            case 24:
              // else
              $async$goto = $event instanceof A._$HotReloadRequest ? 25 : 26;
              break;
            case 25:
              // then
              $async$goto = 27;
              return A._asyncAwait(A.handleWebSocketHotReloadRequest($event, $async$self.manager, $async$self.client.get$sink()), $async$call$1);
            case 27:
              // returning from await.
            case 26:
              // join
            case 23:
              // join
            case 20:
              // join
            case 17:
              // join
            case 3:
              // join
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$call$1, $async$completer);
    },
    $signature: 79
  };
  A.main__closure8.prototype = {
    call$1(error) {
    },
    $signature: 6
  };
  A.main__closure9.prototype = {
    call$1(e) {
      var t1 = A.JSAnyUtilityExtension_instanceOfString(e, "KeyboardEvent");
      if (t1)
        if (B.JSArray_methods.contains$1(B.List_fAJ, A._asString(e.key)) && A._asBool(e.altKey) && !A._asBool(e.ctrlKey) && !A._asBool(e.metaKey)) {
          e.preventDefault();
          type$.JavaScriptFunction._as(init.G.$launchDevTools).call();
        }
    },
    $signature: 2
  };
  A.main_closure0.prototype = {
    call$2(error, stackTrace) {
      type$.Object._as(error);
      type$.StackTrace._as(stackTrace);
      A.print("Unhandled error detected in the injected client.js script.\n\nYou can disable this script in webdev by passing --no-injected-client if it\nis preventing your app from loading, but note that this will also prevent\nall debugging and hot reload/restart functionality from working.\n\nThe original error is below, please file an issue at\nhttps://github.com/dart-lang/webdev/issues/new and attach this output:\n\n" + A.S(error) + "\n" + stackTrace.toString$0(0) + "\n");
    },
    $signature: 14
  };
  A._sendConnectRequest_closure.prototype = {
    call$1(b) {
      var t1 = init.G,
        t2 = A._asString(t1.$dartAppId);
      b.get$_connect_request$_$this()._connect_request$_appId = t2;
      t2 = A._asStringQ(t1.$dartAppInstanceId);
      b.get$_connect_request$_$this()._instanceId = t2;
      t1 = A._asString(t1.$dartEntrypointPath);
      b.get$_connect_request$_$this()._entrypointPath = t1;
      return b;
    },
    $signature: 80
  };
  A._launchCommunicationWithDebugExtension_closure.prototype = {
    call$1(b) {
      var t3, t4,
        t1 = init.G,
        t2 = A._asString(t1.$dartEntrypointPath);
      b.get$_$this()._appEntrypointPath = t2;
      t2 = type$.JavaScriptObject;
      t3 = A._asStringQ(t2._as(t1.window).$dartAppId);
      b.get$_$this()._appId = t3;
      t3 = A._asStringQ(t1.$dartAppInstanceId);
      b.get$_$this()._appInstanceId = t3;
      t3 = type$.JSObject;
      t4 = A._asString(t3._as(t3._as(t1.window).location).origin);
      b.get$_$this()._appOrigin = t4;
      t3 = A._asString(t3._as(t3._as(t1.window).location).href);
      b.get$_$this()._appUrl = t3;
      t3 = A._authUrl();
      b.get$_$this()._authUrl = t3;
      t3 = A._asStringQ(t2._as(t1.window).$dartExtensionUri);
      b.get$_$this()._extensionUrl = t3;
      t3 = A._asBoolQ(t2._as(t1.window).$isInternalBuild);
      b.get$_$this()._isInternalBuild = t3;
      t2 = A._asBoolQ(t2._as(t1.window).$isFlutterApp);
      b.get$_$this()._isFlutterApp = t2;
      t1 = A._asStringQ(t1.$dartWorkspaceName);
      b.get$_$this()._workspaceName = t1;
      return b;
    },
    $signature: 81
  };
  A._handleAuthRequest_closure.prototype = {
    call$1(isAuthenticated) {
      return A._dispatchEvent("dart-auth-response", "" + A._asBool(isAuthenticated));
    },
    $signature: 82
  };
  A._sendResponse_closure.prototype = {
    call$1(b) {
      var t1;
      b.set$id(this.requestId);
      b.set$success(this.success);
      t1 = this.errorMessage;
      if (t1 != null)
        b.set$errorMessage(t1);
    },
    $signature: 7
  };
  A.DdcLibraryBundleRestarter.prototype = {
    _runMainWhenReady$2(readyToRunMain, runMain) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void);
      var $async$_runMainWhenReady$2 = 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
              $async$goto = readyToRunMain != null ? 2 : 3;
              break;
            case 2:
              // then
              $async$goto = 4;
              return A._asyncAwait(readyToRunMain, $async$_runMainWhenReady$2);
            case 4:
              // returning from await.
            case 3:
              // join
              runMain.call();
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$_runMainWhenReady$2, $async$completer);
    },
    restart$2$readyToRunMain$runId(readyToRunMain, runId) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.bool),
        $async$returnValue, $async$self = this, mainHandler, t1, t2;
      var $async$restart$2$readyToRunMain$runId = 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 = init.G;
              t2 = type$.JSObject;
              $async$goto = 3;
              return A._asyncAwait(A._Debugger_maybeInvokeFlutterDisassemble(t2._as(t2._as(t1.dartDevEmbedder).debugger)), $async$restart$2$readyToRunMain$runId);
            case 3:
              // returning from await.
              mainHandler = A._functionToJS1(new A.DdcLibraryBundleRestarter_restart_closure($async$self, readyToRunMain));
              t2._as(t2._as(t1.dartDevEmbedder).config).capturedMainHandler = mainHandler;
              $async$goto = 4;
              return A._asyncAwait(A.promiseToFuture(t2._as(t2._as(t1.dartDevEmbedder).hotRestart()), type$.nullable_Object), $async$restart$2$readyToRunMain$runId);
            case 4:
              // returning from await.
              $async$returnValue = true;
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$restart$2$readyToRunMain$runId, $async$completer);
    },
    hotReloadStart$1(hotReloadSourcesPath) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.JSObject),
        $async$returnValue, $async$self = this, t4, srcModuleLibraries, filesToLoad, _this, librariesToReload, t5, t6, srcModuleLibraryCast, module, libraries, t7, t1, t2, t3, xhr, $async$temp1, $async$temp2, $async$temp3;
      var $async$hotReloadStart$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 = new A._Future($.Zone__current, type$._Future_String);
              t2 = init.G;
              t3 = type$.JSObject;
              xhr = t3._as(new t2.XMLHttpRequest());
              xhr.withCredentials = true;
              xhr.onreadystatechange = A._functionToJS0(new A.DdcLibraryBundleRestarter_hotReloadStart_closure(xhr, new A._AsyncCompleter(t1, type$._AsyncCompleter_String)));
              xhr.open("GET", hotReloadSourcesPath, true);
              xhr.send();
              t4 = type$.List_dynamic;
              $async$temp1 = J;
              $async$temp2 = t4;
              $async$temp3 = B.C_JsonCodec;
              $async$goto = 3;
              return A._asyncAwait(t1, $async$hotReloadStart$1);
            case 3:
              // returning from await.
              srcModuleLibraries = $async$temp1.cast$1$0$ax($async$temp2._as($async$temp3.decode$1($async$result)), type$.Map_dynamic_dynamic);
              t1 = type$.JSArray_nullable_Object;
              filesToLoad = t1._as(new t2.Array());
              _this = {};
              librariesToReload = t1._as(new t2.Array());
              for (t1 = srcModuleLibraries.get$iterator(srcModuleLibraries), t5 = type$.String, t6 = type$.Object; t1.moveNext$0();) {
                srcModuleLibraryCast = t1.get$current().cast$2$0(0, t5, t6);
                filesToLoad.push(A._asString(srcModuleLibraryCast.$index(0, "src")));
                module = A._asString(srcModuleLibraryCast.$index(0, "module"));
                libraries = J.cast$1$0$ax(t4._as(srcModuleLibraryCast.$index(0, "libraries")), t5);
                _this[module] = A.jsify(libraries);
                for (t7 = libraries.get$iterator(libraries); t7.moveNext$0();)
                  librariesToReload.push(t7.get$current());
              }
              t3._as(t3._as(t2.dartDevEmbedder).config).capturedHotReloadEndHandler = A._functionToJS1(new A.DdcLibraryBundleRestarter_hotReloadStart_closure0($async$self));
              $async$goto = 4;
              return A._asyncAwait(A.promiseToFuture(t3._as(t3._as(t2.dartDevEmbedder).hotReload(filesToLoad, librariesToReload)), type$.nullable_Object), $async$hotReloadStart$1);
            case 4:
              // returning from await.
              $async$returnValue = _this;
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$hotReloadStart$1, $async$completer);
    },
    hotReloadEnd$0() {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        $async$self = this, t1;
      var $async$hotReloadEnd$0 = 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
              $async$self._capturedHotReloadEndCallback.call();
              t1 = type$.JSObject;
              t1._as(t1._as(init.G.dartDevEmbedder).config).capturedHotReloadEndHandler = null;
              $async$self._capturedHotReloadEndCallback = null;
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$hotReloadEnd$0, $async$completer);
    },
    $isRestarter: 1
  };
  A.DdcLibraryBundleRestarter_restart_closure.prototype = {
    call$1(runMain) {
      var t1;
      type$.JavaScriptFunction._as(runMain);
      t1 = type$.JSObject;
      t1._as(t1._as(init.G.dartDevEmbedder).config).capturedMainHandler = null;
      A.safeUnawaited(this.$this._runMainWhenReady$2(this.readyToRunMain, runMain));
    },
    $signature: 20
  };
  A.DdcLibraryBundleRestarter_hotReloadStart_closure.prototype = {
    call$0() {
      var t1 = this.xhr;
      if (A._asInt(t1.readyState) === 4 && A._asInt(t1.status) === 200 || A._asInt(t1.status) === 304)
        this.completer.complete$1(A._asString(t1.responseText));
    },
    $signature: 1
  };
  A.DdcLibraryBundleRestarter_hotReloadStart_closure0.prototype = {
    call$1(hotReloadEndCallback) {
      this.$this._capturedHotReloadEndCallback = type$.JavaScriptFunction._as(hotReloadEndCallback);
    },
    $signature: 20
  };
  A.DdcRestarter.prototype = {
    restart$2$readyToRunMain$runId(readyToRunMain, runId) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.bool),
        $async$returnValue, t1, t2, t3;
      var $async$restart$2$readyToRunMain$runId = 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 = init.G;
              t2 = type$.JavaScriptObject._as(t1.dart_library);
              t3 = readyToRunMain == null ? null : A.FutureOfVoidToJSPromise_get_toJS(readyToRunMain);
              t2.reload(runId, t3);
              t3 = new A._Future($.Zone__current, type$._Future_bool);
              t2 = type$.JSObject;
              $async$returnValue = t3.then$1$1(new A.DdcRestarter_restart_closure(A._EventStreamSubscription$(t2._as(t1.window), "message", type$.nullable_void_Function_JSObject._as(new A.DdcRestarter_restart_closure0(new A._AsyncCompleter(t3, type$._AsyncCompleter_bool))), false, t2)), type$.bool);
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$restart$2$readyToRunMain$runId, $async$completer);
    },
    hotReloadEnd$0() {
      return A.throwExpression(A.UnimplementedError$(string$.Hot_reD));
    },
    hotReloadStart$1(hotReloadSourcesPath) {
      return A.throwExpression(A.UnimplementedError$(string$.Hot_reD));
    },
    $isRestarter: 1
  };
  A.DdcRestarter_restart_closure0.prototype = {
    call$1($event) {
      var t1 = $event.data,
        message = t1 == null ? null : A.dartify(t1);
      if (type$.Map_dynamic_dynamic._is(message) && J.$eq$(message.$index(0, "type"), "DDC_STATE_CHANGE") && J.$eq$(message.$index(0, "state"), "restart_end"))
        this.reloadCompleter.complete$1(true);
    },
    $signature: 2
  };
  A.DdcRestarter_restart_closure.prototype = {
    call$1(value) {
      A._asBool(value);
      this.sub.cancel$0();
      return value;
    },
    $signature: 84
  };
  A.ReloadingManager.prototype = {
    hotRestart$2$readyToRunMain$runId(readyToRunMain, runId) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.bool),
        $async$returnValue, $async$self = this, result, t1, t2;
      var $async$hotRestart$2$readyToRunMain$runId = 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 = $async$self._client.get$sink();
              t2 = $.$get$serializers();
              t1.add$1(0, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(new A.IsolateExitBuilder()._isolate_events$_build$0()), null));
              $async$goto = 3;
              return A._asyncAwait($async$self._restarter.restart$2$readyToRunMain$runId(readyToRunMain, runId), $async$hotRestart$2$readyToRunMain$runId);
            case 3:
              // returning from await.
              result = $async$result;
              $async$self._afterRestart$1(result);
              $async$returnValue = result;
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$hotRestart$2$readyToRunMain$runId, $async$completer);
    },
    hotRestart$0() {
      return this.hotRestart$2$readyToRunMain$runId(null, null);
    },
    hotRestart$1$runId(runId) {
      return this.hotRestart$2$readyToRunMain$runId(null, runId);
    },
    hotReloadEnd$0() {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        $async$self = this;
      var $async$hotReloadEnd$0 = 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
              $async$goto = 2;
              return A._asyncAwait($async$self._restarter.hotReloadEnd$0(), $async$hotReloadEnd$0);
            case 2:
              // returning from await.
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$hotReloadEnd$0, $async$completer);
    },
    _afterRestart$1(succeeded) {
      var t1, t2;
      if (!succeeded)
        return;
      t1 = this._client.get$sink();
      t2 = $.$get$serializers();
      t1.add$1(0, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(new A.IsolateStartBuilder()._isolate_events$_build$0()), null));
    }
  };
  A.HotReloadFailedException.prototype = {
    toString$0(_) {
      return "HotReloadFailedException: '" + this._s + "'";
    },
    $isException: 1
  };
  A.RequireRestarter.prototype = {
    restart$2$readyToRunMain$runId(readyToRunMain, runId) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.bool),
        $async$returnValue, $async$self = this, newDigests, modulesToLoad, t3, t4, t5, t6, t7, line, toZone, t8, result, t1, t2;
      var $async$restart$2$readyToRunMain$runId = 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 = init.G;
              t2 = type$.JavaScriptObject;
              $async$goto = 3;
              return A._asyncAwait(A.SdkDeveloperExtension_maybeInvokeFlutterDisassemble(t2._as(t2._as(t1.$loadModuleConfig("dart_sdk")).developer)), $async$restart$2$readyToRunMain$runId);
            case 3:
              // returning from await.
              $async$goto = 4;
              return A._asyncAwait($async$self._getDigests$0(), $async$restart$2$readyToRunMain$runId);
            case 4:
              // returning from await.
              newDigests = $async$result;
              modulesToLoad = A._setArrayType([], type$.JSArray_String);
              for (t3 = newDigests.get$keys(), t3 = t3.get$iterator(t3), t4 = $.RequireRestarter____lastKnownDigests._name, t5 = type$.JSObject; t3.moveNext$0();) {
                t6 = t3.get$current();
                t7 = $.RequireRestarter____lastKnownDigests.__late_helper$_value;
                if (t7 === $.RequireRestarter____lastKnownDigests)
                  A.throwExpression(A.LateError$fieldNI(t4));
                if (!t7.containsKey$1(t6)) {
                  line = "Error during script reloading, refreshing the page. \nUnable to find an existing digest for module: " + t6 + ".";
                  toZone = $.printToZone;
                  if (toZone == null)
                    A.printString(line);
                  else
                    toZone.call$1(line);
                  t5._as(t5._as(t1.window).location).reload();
                } else {
                  t7 = $.RequireRestarter____lastKnownDigests.__late_helper$_value;
                  if (t7 === $.RequireRestarter____lastKnownDigests)
                    A.throwExpression(A.LateError$fieldNI(t4));
                  if (t7.$index(0, t6) != newDigests.$index(0, t6)) {
                    t7 = $.RequireRestarter____lastKnownDigests.__late_helper$_value;
                    if (t7 === $.RequireRestarter____lastKnownDigests)
                      A.throwExpression(A.LateError$fieldNI(t4));
                    t8 = newDigests.$index(0, t6);
                    t8.toString;
                    t7.$indexSet(0, t6, t8);
                    B.JSArray_methods.add$1(modulesToLoad, t6);
                  }
                }
              }
              $async$goto = modulesToLoad.length !== 0 ? 5 : 7;
              break;
            case 5:
              // then
              $async$self._updateGraph$0();
              $async$goto = 8;
              return A._asyncAwait($async$self._reload$1(modulesToLoad), $async$restart$2$readyToRunMain$runId);
            case 8:
              // returning from await.
              result = $async$result;
              // goto join
              $async$goto = 6;
              break;
            case 7:
              // else
              result = true;
            case 6:
              // join
              t2._as(t2._as(t1.$loadModuleConfig("dart_sdk")).dart).hotRestart();
              A.safeUnawaited($async$self._require_restarter$_runMainWhenReady$1(readyToRunMain));
              $async$returnValue = result;
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$restart$2$readyToRunMain$runId, $async$completer);
    },
    hotReloadEnd$0() {
      return A.throwExpression(A.UnimplementedError$(string$.Hot_reA));
    },
    hotReloadStart$1(hotReloadSourcesPath) {
      return A.throwExpression(A.UnimplementedError$(string$.Hot_reA));
    },
    _require_restarter$_runMainWhenReady$1(readyToRunMain) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void);
      var $async$_require_restarter$_runMainWhenReady$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
              $async$goto = readyToRunMain != null ? 2 : 3;
              break;
            case 2:
              // then
              $async$goto = 4;
              return A._asyncAwait(readyToRunMain, $async$_require_restarter$_runMainWhenReady$1);
            case 4:
              // returning from await.
            case 3:
              // join
              A.runMain();
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$_require_restarter$_runMainWhenReady$1, $async$completer);
    },
    _getDigests$0() {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.Map_String_String),
        $async$returnValue, response, t1;
      var $async$_getDigests$0 = 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
              $async$goto = 3;
              return A._asyncAwait(new A.BrowserClient(A.LinkedHashSet_LinkedHashSet$_empty(type$.JSObject))._sendUnstreamed$3("GET", A.Uri_parse(A._asString(type$.JavaScriptObject._as(init.G.$requireLoader).digestsPath)), null), $async$_getDigests$0);
            case 3:
              // returning from await.
              response = $async$result;
              t1 = type$.String;
              $async$returnValue = type$.Map_dynamic_dynamic._as(B.C_JsonCodec.decode$2$reviver(A.encodingForCharset(A._contentTypeForHeaders(response.headers).parameters._collection$_map.$index(0, "charset")).decode$1(response.bodyBytes), null)).cast$2$0(0, t1, t1);
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
          }
      });
      return A._asyncStartSync($async$_getDigests$0, $async$completer);
    },
    _initialize$0() {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.void),
        $async$self = this, $async$temp1;
      var $async$_initialize$0 = 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
              $async$temp1 = $.RequireRestarter____lastKnownDigests;
              $async$goto = 2;
              return A._asyncAwait($async$self._getDigests$0(), $async$_initialize$0);
            case 2:
              // returning from await.
              $async$temp1.__late_helper$_value = $async$result;
              // implicit return
              return A._asyncReturn(null, $async$completer);
          }
      });
      return A._asyncStartSync($async$_initialize$0, $async$completer);
    },
    _moduleParents$1(module) {
      var t1;
      A._asString(module);
      t1 = type$.JavaScriptObject;
      t1 = type$.nullable_JSArray_nullable_Object._as(t1._as(t1._as(init.G.$requireLoader).moduleParentsGraph).get(module));
      if (t1 == null)
        t1 = null;
      else {
        t1 = A.JSArrayExtension_toDartIterable(t1, type$.String);
        t1 = A.List_List$_of(t1, t1.$ti._eval$1("ListIterable.E"));
      }
      return t1 == null ? A._setArrayType([], type$.JSArray_String) : t1;
    },
    _moduleTopologicalCompare$2(module1, module2) {
      var t1, order1, order2, t2, topological;
      A._asString(module1);
      A._asString(module2);
      t1 = this._moduleOrdering;
      order1 = t1.$index(0, module1);
      order2 = t1.$index(0, module2);
      t2 = order1 == null;
      if (t2 || order2 == null)
        throw A.wrapException(A.HotReloadFailedException$("Unable to fetch ordering info for module: " + (t2 ? module1 : module2)));
      t2 = t1.$index(0, module2);
      t2.toString;
      t1 = t1.$index(0, module1);
      t1.toString;
      topological = B.JSInt_methods.compareTo$1(t2, t1);
      return topological === 0 ? B.JSString_methods.compareTo$1(module1, module2) : topological;
    },
    _reload$1(modules) {
      return this._reload$body$RequireRestarter(type$.List_String._as(modules));
    },
    _reload$body$RequireRestarter(modules) {
      var $async$goto = 0,
        $async$completer = A._makeAsyncAwaitCompleter(type$.bool),
        $async$returnValue, $async$handler = 2, $async$errorStack = [], $async$self = this, reloadedModules, moduleId, parentIds, e, _box_0, t4, t5, t6, t7, t8, t9, t10, _this, parentIds0, result, exception, t1, t2, dart, t3, $async$exception;
      var $async$_reload$1 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
        if ($async$errorCode === 1) {
          $async$errorStack.push($async$result);
          $async$goto = $async$handler;
        }
        while (true)
          switch ($async$goto) {
            case 0:
              // Function start
              t1 = init.G;
              t2 = type$.JavaScriptObject;
              dart = t2._as(t2._as(t1.$loadModuleConfig("dart_sdk")).dart);
              t3 = $async$self._running.future;
              $async$goto = (t3._state & 30) === 0 ? 3 : 4;
              break;
            case 3:
              // then
              $async$goto = 5;
              return A._asyncAwait(t3, $async$_reload$1);
            case 5:
              // returning from await.
              $async$returnValue = $async$result;
              // goto return
              $async$goto = 1;
              break;
            case 4:
              // join
              $async$self._running = new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_bool), type$._AsyncCompleter_bool);
              reloadedModules = 0;
              $async$handler = 7;
              _box_0 = {};
              t3 = $async$self.__RequireRestarter__dirtyModules_A;
              t3 === $ && A.throwLateFieldNI("_dirtyModules");
              t3.addAll$1(0, modules);
              _box_0.previousModuleId = null;
              t3 = $async$self.get$_moduleTopologicalCompare(), t4 = type$.String, t5 = type$.nullable_JSArray_nullable_Object, t6 = type$.JSArray_String, t7 = A._callDartFunctionFast0;
            case 10:
              // for condition
              if (!(t8 = $async$self.__RequireRestarter__dirtyModules_A, t9 = t8._root, t10 = t9 == null, !t10)) {
                // goto after for
                $async$goto = 11;
                break;
              }
              if (t10)
                A.throwExpression(A.IterableElementError_noElement());
              t9 = t8._splayMin$1(t9);
              t8._root = t9;
              moduleId = t9.key;
              $async$self.__RequireRestarter__dirtyModules_A.remove$1(0, moduleId);
              _this = A._asString(moduleId);
              t9 = t5._as(t2._as(t2._as(t1.$requireLoader).moduleParentsGraph).get(_this));
              if (t9 == null)
                parentIds0 = null;
              else {
                t8 = A.JSArrayExtension_toDartIterable(t9, t4);
                t8 = A.List_List$_of(t8, t8.$ti._eval$1("ListIterable.E"));
                parentIds0 = t8;
              }
              parentIds = parentIds0 == null ? A._setArrayType([], t6) : parentIds0;
              $async$goto = J.get$length$asx(parentIds) === 0 ? 12 : 14;
              break;
            case 12:
              // then
              t8 = new A.RequireRestarter__reload_closure(_box_0, dart);
              if (typeof t8 == "function")
                A.throwExpression(A.ArgumentError$("Attempting to rewrap a JS function.", null));
              result = function(_call, f) {
                return function() {
                  return _call(f);
                };
              }(t7, t8);
              result[$.$get$DART_CLOSURE_PROPERTY_NAME()] = t8;
              t1.$dartRunMain = result;
              // goto join
              $async$goto = 13;
              break;
            case 14:
              // else
              t8 = reloadedModules;
              if (typeof t8 !== "number") {
                $async$returnValue = t8.$add();
                // goto return
                $async$goto = 1;
                break;
              }
              reloadedModules = t8 + 1;
              $async$goto = 15;
              return A._asyncAwait($async$self._reloadModule$1(moduleId), $async$_reload$1);
            case 15:
              // returning from await.
              J.sort$1$ax(parentIds, t3);
              $async$self.__RequireRestarter__dirtyModules_A.addAll$1(0, parentIds);
              _box_0.previousModuleId = moduleId;
            case 13:
              // join
              // goto for condition
              $async$goto = 10;
              break;
            case 11:
              // after for
              A.print(A.S(reloadedModules) + " module(s) were hot-reloaded.");
              $async$self._running.complete$1(true);
              $async$handler = 2;
              // goto after finally
              $async$goto = 9;
              break;
            case 7:
              // catch
              $async$handler = 6;
              $async$exception = $async$errorStack.pop();
              t2 = A.unwrapException($async$exception);
              if (t2 instanceof A.HotReloadFailedException) {
                e = t2;
                A.print("Error during script reloading. Firing full page reload. " + A.S(e));
                t2 = type$.JSObject;
                t2._as(t2._as(t1.window).location).reload();
                $async$self._running.complete$1(false);
              } else
                throw $async$exception;
              // goto after finally
              $async$goto = 9;
              break;
            case 6:
              // uncaught
              // goto rethrow
              $async$goto = 2;
              break;
            case 9:
              // after finally
              $async$returnValue = $async$self._running.future;
              // goto return
              $async$goto = 1;
              break;
            case 1:
              // return
              return A._asyncReturn($async$returnValue, $async$completer);
            case 2:
              // rethrow
              return A._asyncRethrow($async$errorStack.at(-1), $async$completer);
          }
      });
      return A._asyncStartSync($async$_reload$1, $async$completer);
    },
    _reloadModule$1(moduleId) {
      var t1 = new A._Future($.Zone__current, type$._Future_dynamic),
        completer = new A._AsyncCompleter(t1, type$._AsyncCompleter_dynamic),
        stackTrace = A.StackTrace_current();
      type$.JavaScriptObject._as(init.G.$requireLoader).forceLoadModule(moduleId, A._functionToJS0(new A.RequireRestarter__reloadModule_closure(completer)), A._functionToJS1(new A.RequireRestarter__reloadModule_closure0(completer, stackTrace)));
      return t1;
    },
    _updateGraph$0() {
      var t3, stronglyConnectedComponents, i, _i,
        t1 = init.G,
        t2 = type$.JavaScriptObject;
      t2 = t2._as(t2._as(t1.$requireLoader).moduleParentsGraph);
      t3 = type$.String;
      stronglyConnectedComponents = A.stronglyConnectedComponents(A.JSArrayExtension_toDartIterable(type$.JSArray_nullable_Object._as(t1.Array.from(type$.JSObject._as(t2.keys()))), t3), this.get$_moduleParents(), t3);
      t3 = this._moduleOrdering;
      if (t3._collection$_length > 0) {
        t3._strings = t3._nums = t3._collection$_rest = t3._keys = null;
        t3._collection$_length = 0;
      }
      for (i = 0; i < stronglyConnectedComponents.length; ++i)
        for (t1 = stronglyConnectedComponents[i], t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i)
          t3.$indexSet(0, t1[_i], i);
    },
    $isRestarter: 1
  };
  A.RequireRestarter__reload_closure.prototype = {
    call$0() {
      var t1 = type$.JSObject._as(this.dart.getModuleLibraries(this._box_0.previousModuleId));
      t1 = A.JSArrayExtension_toDartIterable(type$.JSArray_nullable_Object._as(init.G.Object.values(t1)), type$.nullable_Object).get$first(0);
      t1.toString;
      type$.JavaScriptObject._as(t1).main();
    },
    $signature: 1
  };
  A.RequireRestarter__reloadModule_closure.prototype = {
    call$0() {
      this.completer.complete$0();
    },
    $signature: 1
  };
  A.RequireRestarter__reloadModule_closure0.prototype = {
    call$1(e) {
      this.completer.completeError$2(new A.HotReloadFailedException(A._asString(type$.JavaScriptObject._as(e).message)), this.stackTrace);
    },
    $signature: 87
  };
  A._createScript_closure.prototype = {
    call$0() {
      var nonce = A._findNonce();
      if (nonce == null)
        return new A._createScript__closure();
      return new A._createScript__closure0(nonce);
    },
    $signature: 88
  };
  A._createScript__closure.prototype = {
    call$0() {
      var t1 = type$.JSObject;
      return t1._as(t1._as(init.G.document).createElement("script"));
    },
    $signature: 10
  };
  A._createScript__closure0.prototype = {
    call$0() {
      var t1 = type$.JSObject,
        scriptElement = t1._as(t1._as(init.G.document).createElement("script"));
      scriptElement.setAttribute("nonce", this.nonce);
      return scriptElement;
    },
    $signature: 10
  };
  A.runMain_closure.prototype = {
    call$0() {
      return this.scriptElement.remove();
    },
    $signature: 0
  };
  A.JSArrayExtension_toDartIterable_closure.prototype = {
    call$1(e) {
      return this.T._as(A.dartify(e));
    },
    $signature() {
      return this.T._eval$1("0(Object?)");
    }
  };
  (function aliases() {
    var _ = 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;
    _.super$JsLinkedHashMap$internalRemove = _.internalRemove$1;
    _ = A._BufferingStreamSubscription.prototype;
    _.super$_BufferingStreamSubscription$_add = _._add$1;
    _.super$_BufferingStreamSubscription$_addError = _._addError$2;
    _ = A._HashMap.prototype;
    _.super$_HashMap$_containsKey = _._containsKey$1;
    _.super$_HashMap$_get = _._get$1;
    _.super$_HashMap$_set = _._set$2;
    _ = A.ListBase.prototype;
    _.super$ListBase$setRange = _.setRange$4;
    _ = A.BaseRequest.prototype;
    _.super$BaseRequest$finalize = _.finalize$0;
    _ = A.SourceSpanMixin.prototype;
    _.super$SourceSpanMixin$compareTo = _.compareTo$1;
    _.super$SourceSpanMixin$$eq = _.$eq;
  })();
  (function installTearOffs() {
    var _static_2 = hunkHelpers._static_2,
      _static_1 = hunkHelpers._static_1,
      _static_0 = hunkHelpers._static_0,
      _static = hunkHelpers.installStaticTearOff,
      _instance = hunkHelpers.installInstanceTearOff,
      _instance_2_u = hunkHelpers._instance_2u,
      _instance_1_i = hunkHelpers._instance_1i,
      _instance_0_u = hunkHelpers._instance_0u,
      _instance_1_u = hunkHelpers._instance_1u;
    _static_2(J, "_interceptors_JSArray__compareAny$closure", "JSArray__compareAny", 30);
    _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 16);
    _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 16);
    _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 16);
    _static_0(A, "async___startMicrotaskLoop$closure", "_startMicrotaskLoop", 0);
    _static_1(A, "async___nullDataHandler$closure", "_nullDataHandler", 7);
    _static_2(A, "async___nullErrorHandler$closure", "_nullErrorHandler", 14);
    _static_0(A, "async___nullDoneHandler$closure", "_nullDoneHandler", 0);
    _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 91, 0);
    _static(A, "async___rootRun$closure", 4, null, ["call$1$4", "call$4"], ["_rootRun", function($self, $parent, zone, f) {
      return A._rootRun($self, $parent, zone, f, type$.dynamic);
    }], 92, 0);
    _static(A, "async___rootRunUnary$closure", 5, null, ["call$2$5", "call$5"], ["_rootRunUnary", function($self, $parent, zone, f, arg) {
      var t1 = type$.dynamic;
      return A._rootRunUnary($self, $parent, zone, f, arg, t1, t1);
    }], 93, 0);
    _static(A, "async___rootRunBinary$closure", 6, null, ["call$3$6"], ["_rootRunBinary"], 94, 0);
    _static(A, "async___rootRegisterCallback$closure", 4, null, ["call$1$4", "call$4"], ["_rootRegisterCallback", function($self, $parent, zone, f) {
      return A._rootRegisterCallback($self, $parent, zone, f, type$.dynamic);
    }], 95, 0);
    _static(A, "async___rootRegisterUnaryCallback$closure", 4, null, ["call$2$4", "call$4"], ["_rootRegisterUnaryCallback", function($self, $parent, zone, f) {
      var t1 = type$.dynamic;
      return A._rootRegisterUnaryCallback($self, $parent, zone, f, t1, t1);
    }], 96, 0);
    _static(A, "async___rootRegisterBinaryCallback$closure", 4, null, ["call$3$4", "call$4"], ["_rootRegisterBinaryCallback", function($self, $parent, zone, f) {
      var t1 = type$.dynamic;
      return A._rootRegisterBinaryCallback($self, $parent, zone, f, t1, t1, t1);
    }], 97, 0);
    _static(A, "async___rootErrorCallback$closure", 5, null, ["call$5"], ["_rootErrorCallback"], 98, 0);
    _static(A, "async___rootScheduleMicrotask$closure", 4, null, ["call$4"], ["_rootScheduleMicrotask"], 99, 0);
    _static(A, "async___rootCreateTimer$closure", 5, null, ["call$5"], ["_rootCreateTimer"], 100, 0);
    _static(A, "async___rootCreatePeriodicTimer$closure", 5, null, ["call$5"], ["_rootCreatePeriodicTimer"], 101, 0);
    _static(A, "async___rootPrint$closure", 4, null, ["call$4"], ["_rootPrint"], 102, 0);
    _static_1(A, "async___printToZone$closure", "_printToZone", 103);
    _static(A, "async___rootFork$closure", 5, null, ["call$5"], ["_rootFork"], 104, 0);
    _instance(A._Completer.prototype, "get$completeError", 0, 1, null, ["call$2", "call$1"], ["completeError$2", "completeError$1"], 33, 0, 0);
    _instance_2_u(A._Future.prototype, "get$_completeError", "_completeError$2", 14);
    var _;
    _instance_1_i(_ = A._StreamController.prototype, "get$add", "add$1", 9);
    _instance(_, "get$addError", 0, 1, null, ["call$2", "call$1"], ["addError$2", "addError$1"], 33, 0, 0);
    _instance_0_u(_ = A._ControllerSubscription.prototype, "get$_onPause", "_onPause$0", 0);
    _instance_0_u(_, "get$_onResume", "_onResume$0", 0);
    _instance_0_u(_ = A._BufferingStreamSubscription.prototype, "get$_onPause", "_onPause$0", 0);
    _instance_0_u(_, "get$_onResume", "_onResume$0", 0);
    _instance_0_u(A._DoneStreamSubscription.prototype, "get$_onMicrotask", "_onMicrotask$0", 0);
    _instance_0_u(_ = A._ForwardingStreamSubscription.prototype, "get$_onPause", "_onPause$0", 0);
    _instance_0_u(_, "get$_onResume", "_onResume$0", 0);
    _instance_1_u(_, "get$_handleData", "_handleData$1", 9);
    _instance_2_u(_, "get$_handleError", "_handleError$2", 21);
    _instance_0_u(_, "get$_handleDone", "_handleDone$0", 0);
    _static_2(A, "collection___defaultEquals$closure", "_defaultEquals0", 18);
    _static_1(A, "collection___defaultHashCode$closure", "_defaultHashCode", 17);
    _static_2(A, "collection_ListBase__compareAny$closure", "ListBase__compareAny", 30);
    _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 4);
    _instance_1_i(_ = A._ByteCallbackSink.prototype, "get$add", "add$1", 9);
    _instance_0_u(_, "get$close", "close$0", 0);
    _static_1(A, "core__identityHashCode$closure", "identityHashCode", 17);
    _static_2(A, "core__identical$closure", "identical", 18);
    _static_1(A, "core_Uri_decodeComponent$closure", "Uri_decodeComponent", 13);
    _static(A, "math__max$closure", 2, null, ["call$1$2", "call$2"], ["max", function(a, b) {
      return A.max(a, b, type$.num);
    }], 105, 0);
    _instance_2_u(_ = A.DeepCollectionEquality.prototype, "get$equals", "equals$2", 18);
    _instance_1_u(_, "get$hash", "hash$1", 17);
    _instance_1_u(_, "get$isValidKey", "isValidKey$1", 12);
    _static(A, "hot_reload_response_HotReloadResponse___new_tearOff$closure", 0, null, ["call$1", "call$0"], ["HotReloadResponse___new_tearOff", function() {
      return A.HotReloadResponse___new_tearOff(null);
    }], 70, 0);
    _static_1(A, "case_insensitive_map_CaseInsensitiveMap__canonicalizer$closure", "CaseInsensitiveMap__canonicalizer", 13);
    _instance_1_u(_ = A.SseClient.prototype, "get$_onIncomingControlMessage", "_onIncomingControlMessage$1", 2);
    _instance_1_u(_, "get$_onIncomingMessage", "_onIncomingMessage$1", 2);
    _instance_0_u(_, "get$_onOutgoingDone", "_onOutgoingDone$0", 0);
    _instance_1_u(_, "get$_onOutgoingMessage", "_onOutgoingMessage$1", 64);
    _static_1(A, "client___handleAuthRequest$closure", "_handleAuthRequest", 2);
    _instance_1_u(_ = A.RequireRestarter.prototype, "get$_moduleParents", "_moduleParents$1", 85);
    _instance_2_u(_, "get$_moduleTopologicalCompare", "_moduleTopologicalCompare$2", 86);
  })();
  (function inheritance() {
    var _mixin = hunkHelpers.mixin,
      _inherit = hunkHelpers.inherit,
      _inheritMany = hunkHelpers.inheritMany;
    _inherit(A.Object, null);
    _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, A.SafeToStringHook, J.ArrayIterator, A.Iterable, A.CastIterator, A.Closure, A.MapBase, A.Error, A.ListBase, A.SentinelValue, A.ListIterator, A.MappedIterator, A.WhereIterator, A.ExpandIterator, A.TakeIterator, A.SkipIterator, A.EmptyIterator, A.WhereTypeIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A.ConstantMap, A._KeysOrValuesOrElementsIterator, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.LinkedHashMapValueIterator, A.LinkedHashMapEntryIterator, A._Record, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A.AsyncError, A.TimeoutException, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.Stream, A._StreamController, A._SyncStreamControllerDispatch, A._AsyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._DoneStreamSubscription, A._StreamIterator, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.SetBase, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A._UnmodifiableMapMixin, A.MapView, A._ListQueueIterator, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A.Converter, A._Base64Encoder, A._Base64Decoder, A.ByteConversionSink, A._JsonStringifier, A._Utf8Encoder, A._Utf8Decoder, A._BigIntImpl, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.IntegerDivisionByZeroException, A.MapEntry, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.NullRejectionException, A._JSRandom, A.AsyncMemoizer, A.DelegatingStreamSink, A.ErrorResult, A.ValueResult, A.StreamQueue, A._NextRequest, A._HasNextRequest, A.BuiltList, A.ListBuilder, A.BuiltListMultimap, A.ListMultimapBuilder, A.BuiltMap, A.MapBuilder, A.BuiltSet, A.SetBuilder, A.BuiltSetMultimap, A.SetMultimapBuilder, A.EnumClass, A.IndentingBuiltValueToStringHelper, A.JsonObject, A.FullType, A.BigIntSerializer, A.BoolSerializer, A.BuiltJsonSerializers, A.BuiltJsonSerializersBuilder, A.BuiltListMultimapSerializer, A.BuiltListSerializer, A.BuiltMapSerializer, A.BuiltSetMultimapSerializer, A.BuiltSetSerializer, A.DateTimeSerializer, A.DoubleSerializer, A.DurationSerializer, A.Int32Serializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.ListSerializer, A.MapSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.SetSerializer, A.StringSerializer, A.Uint8ListSerializer, A.UriSerializer, A.CanonicalizedMap, A.DefaultEquality, A.IterableEquality, A.ListEquality, A._UnorderedEquality, A._MapEntry, A.MapEquality, A.DeepCollectionEquality, A._QueueList_Object_ListMixin, A.BuildResult, A._$BuildStatusSerializer, A._$BuildResultSerializer, A.BuildResultBuilder, A.ConnectRequest, A._$ConnectRequestSerializer, A.ConnectRequestBuilder, A.DebugEvent, A.BatchedDebugEvents, A._$DebugEventSerializer, A._$BatchedDebugEventsSerializer, A.DebugEventBuilder, A.BatchedDebugEventsBuilder, A.DebugInfo, A._$DebugInfoSerializer, A.DebugInfoBuilder, A.DevToolsRequest, A.DevToolsResponse, A._$DevToolsRequestSerializer, A._$DevToolsResponseSerializer, A.DevToolsRequestBuilder, A.DevToolsResponseBuilder, A.ErrorResponse, A._$ErrorResponseSerializer, A.ErrorResponseBuilder, A.ExtensionRequest, A.ExtensionResponse, A.ExtensionEvent, A.BatchedEvents, A._$ExtensionRequestSerializer, A._$ExtensionResponseSerializer, A._$ExtensionEventSerializer, A._$BatchedEventsSerializer, A.ExtensionRequestBuilder, A.ExtensionResponseBuilder, A.ExtensionEventBuilder, A.BatchedEventsBuilder, A.HotReloadRequest, A._$HotReloadRequestSerializer, A.HotReloadRequestBuilder, A.HotReloadResponse, A._$HotReloadResponseSerializer, A.HotReloadResponseBuilder, A.IsolateExit, A.IsolateStart, A._$IsolateExitSerializer, A._$IsolateStartSerializer, A.IsolateExitBuilder, A.IsolateStartBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.BatchedStreamController, A.SocketClient, A.Int32, A.Int64, A._StackState, A.BaseClient, A.BaseRequest, A.BaseResponse, A.ClientException, A.MediaType, A.Level, A.LogRecord, A.Logger, A.Context, A.Style, A.ParsedPath, A.PathException, A.Pool, A.PoolResource, A.SourceFile, A.SourceLocationMixin, A.SourceSpanMixin, A.Highlighter, A._Highlight, A._Line, A.SourceLocation, A.SourceSpanException, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.StringScanner, A.RNG, A.UuidV1, A.EventStreamProvider, A._EventStreamSubscription, A.BrowserWebSocket, A.WebSocketEvent, A.WebSocketException, A.WebSocketChannelException, A.DdcLibraryBundleRestarter, A.DdcRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]);
    _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JavaScriptBigInt, J.JavaScriptSymbol, J.JSNumber, J.JSString]);
    _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, J.JSArray, A.NativeByteBuffer, A.NativeTypedData]);
    _inheritMany(J.LegacyJavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction]);
    _inherit(J.JSArraySafeToStringHook, A.SafeToStringHook);
    _inherit(J.JSUnmodifiableArray, J.JSArray);
    _inheritMany(J.JSNumber, [J.JSInt, J.JSNumNotInt]);
    _inheritMany(A.Iterable, [A._CastIterableBase, A.EfficientLengthIterable, A.MappedIterable, A.WhereIterable, A.ExpandIterable, A.TakeIterable, A.SkipIterable, A.WhereTypeIterable, A._KeysOrValues, A._AllMatchesIterable, A._StringAllMatchesIterable]);
    _inheritMany(A._CastIterableBase, [A.CastIterable, A.__CastListBase__CastIterableBase_ListMixin]);
    _inherit(A._EfficientLengthCastIterable, A.CastIterable);
    _inherit(A._CastListBase, A.__CastListBase__CastIterableBase_ListMixin);
    _inheritMany(A.Closure, [A.Closure2Args, A.Closure0Args, A.Instantiation, A.TearOffClosure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._awaitOnObject_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A._Future_timeout_closure0, A.Stream_length_closure, A.Stream_first_closure0, A._CustomZone_bindUnaryCallback_closure, A._CustomZone_bindUnaryCallbackGuarded_closure, A._RootZone_bindUnaryCallback_closure, A._RootZone_bindUnaryCallbackGuarded_closure, A.runZonedGuarded_closure, A._CustomHashMap_closure, A._LinkedCustomHashMap_closure, A._BigIntImpl_hashCode_finish, A._Uri__makePath_closure, A.FutureOfJSAnyToJSPromise_get_toJS__closure, A.FutureOfVoidToJSPromise_get_toJS__closure, A.jsify__convert, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.dartify_convert, A.StreamQueue__ensureListening_closure, A.BuiltListMultimap_BuiltListMultimap_closure, A.BuiltListMultimap_hashCode_closure, A.ListMultimapBuilder_replace_closure, A.BuiltMap_BuiltMap_closure, A.BuiltMap_hashCode_closure, A.BuiltSet_hashCode_closure, A.BuiltSetMultimap_hashCode_closure, A.SetMultimapBuilder_replace_closure, A.newBuiltValueToStringHelper_closure, A.BuiltListMultimapSerializer_serialize_closure, A.BuiltListMultimapSerializer_deserialize_closure, A.BuiltListSerializer_serialize_closure, A.BuiltListSerializer_deserialize_closure, A.BuiltSetMultimapSerializer_serialize_closure, A.BuiltSetMultimapSerializer_deserialize_closure, A.BuiltSetSerializer_serialize_closure, A.BuiltSetSerializer_deserialize_closure, A.ListSerializer_serialize_closure, A.SetSerializer_serialize_closure, A.CanonicalizedMap_keys_closure, A.WebSocketClient_stream_closure, A.BaseRequest_closure0, A.BrowserClient_send_closure, A.BrowserClient_send_closure0, A.ByteStream_toBytes_closure, A.MediaType_toString__closure, A.expectQuotedString_closure, A.Context_joinAll_closure, A.Context_split_closure, A._validateArgList_closure, A.Pool__runOnRelease_closure, A.Highlighter$__closure, A.Highlighter$___closure, A.Highlighter$__closure0, A.Highlighter__collateLines_closure, A.Highlighter__collateLines_closure1, A.Highlighter__collateLines__closure, A.Highlighter_highlight_closure, A.SseClient_closure0, A.SseClient_closure1, A.generateUuidV4_generateBits, A._GuaranteeSink__addError_closure, A._EventStreamSubscription_closure, A._EventStreamSubscription_onData_closure, A.BrowserWebSocket_connect_closure, A.BrowserWebSocket_connect_closure0, A.BrowserWebSocket_connect_closure1, A.BrowserWebSocket_connect_closure2, A.AdapterWebSocketChannel_closure, A.AdapterWebSocketChannel__closure, A.AdapterWebSocketChannel__closure0, A.AdapterWebSocketChannel_closure0, A.main__closure1, A.main__closure3, A.main___closure2, A.main___closure1, A.main__closure5, A.main___closure0, A.main___closure, A.main__closure7, A.main__closure8, A.main__closure9, A._sendConnectRequest_closure, A._launchCommunicationWithDebugExtension_closure, A._handleAuthRequest_closure, A._sendResponse_closure, A.DdcLibraryBundleRestarter_restart_closure, A.DdcLibraryBundleRestarter_hotReloadStart_closure0, A.DdcRestarter_restart_closure0, A.DdcRestarter_restart_closure, A.RequireRestarter__reloadModule_closure0, A.JSArrayExtension_toDartIterable_closure]);
    _inheritMany(A.Closure2Args, [A._CastListBase_sort_closure, A.CastMap_forEach_closure, A.ConstantMap_map_closure, A.JsLinkedHashMap_addAll_closure, A.initHooks_closure0, A._awaitOnObject_closure0, A._wrapJsFunctionForAsync_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure0, A._Future_timeout_closure1, A._BufferingStreamSubscription_asFuture_closure0, A.LinkedHashMap_LinkedHashMap$from_closure, A.MapBase_mapToString_closure, A._JsonStringifier_writeMap_closure, A._BigIntImpl_hashCode_combine, A.Uri__parseIPv4Address_error, A.Uri_parseIPv6Address_error, A.Uri_parseIPv6Address_parseHex, A.FutureOfJSAnyToJSPromise_get_toJS_closure, A.FutureOfJSAnyToJSPromise_get_toJS__closure0, A.FutureOfVoidToJSPromise_get_toJS_closure, A.FutureOfVoidToJSPromise_get_toJS__closure0, A.StreamQueue__ensureListening_closure1, A.hashObjects_closure, A.MapBuilder_replace_closure, A.CanonicalizedMap_addAll_closure, A.CanonicalizedMap_forEach_closure, A.CanonicalizedMap_map_closure, A.safeUnawaited_closure, A.BaseRequest_closure, A.MediaType_toString_closure, A.Pool__runOnRelease_closure0, A.Highlighter__collateLines_closure0, A.generateUuidV4_printDigits, A.generateUuidV4_bitsDigits, A.main__closure4, A.main_closure0]);
    _inherit(A.CastList, A._CastListBase);
    _inheritMany(A.MapBase, [A.CastMap, A.JsLinkedHashMap, A._HashMap, A._JsonMap]);
    _inheritMany(A.Error, [A.LateError, A.TypeError, A.JsNoSuchMethodError, A.UnknownJsTypeError, A.RuntimeError, A._Error, A.JsonUnsupportedObjectError, A.AssertionError, A.ArgumentError, A.UnsupportedError, A.UnimplementedError, A.StateError, A.ConcurrentModificationError, A.BuiltValueNullFieldError, A.BuiltValueNestedFieldError, A.DeserializationError]);
    _inherit(A.UnmodifiableListBase, A.ListBase);
    _inheritMany(A.UnmodifiableListBase, [A.CodeUnits, A.UnmodifiableListView]);
    _inheritMany(A.Closure0Args, [A.nullFuture_closure, A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._TimerImpl$periodic_closure, A.Future_Future$microtask_closure, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainCoreFuture_closure, A._Future__asyncCompleteWithValue_closure, A._Future__asyncCompleteErrorObject_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A._Future_timeout_closure, A.Stream_length_closure0, A.Stream_first_closure, A._StreamController__subscribe_closure, A._StreamController__recordCancel_complete, A._BufferingStreamSubscription_asFuture_closure, A._BufferingStreamSubscription_asFuture__closure, A._BufferingStreamSubscription__sendError_sendError, A._BufferingStreamSubscription__sendDone_sendDone, A._PendingEvents_schedule_closure, A._cancelAndValue_closure, A._CustomZone_bindCallback_closure, A._CustomZone_bindCallbackGuarded_closure, A._rootHandleError_closure, A._RootZone_bindCallback_closure, A._RootZone_bindCallbackGuarded_closure, A._Utf8Decoder__decoder_closure, A._Utf8Decoder__decoderNonfatal_closure, A.StreamQueue__ensureListening_closure0, A.Serializers_Serializers_closure, A.Serializers_Serializers_closure0, A.Serializers_Serializers_closure1, A.Serializers_Serializers_closure2, A.Serializers_Serializers_closure3, A._$serializers_closure, A._$serializers_closure0, A.BatchedStreamController__hasEventOrTimeOut_closure, A.BatchedStreamController__hasEventDuring_closure, A.MediaType_MediaType$parse_closure, A.Logger_Logger_closure, A.Highlighter_closure, A.Highlighter__writeFileStart_closure, A.Highlighter__writeMultilineHighlights_closure, A.Highlighter__writeMultilineHighlights_closure0, A.Highlighter__writeMultilineHighlights_closure1, A.Highlighter__writeMultilineHighlights_closure2, A.Highlighter__writeMultilineHighlights__closure, A.Highlighter__writeMultilineHighlights__closure0, A.Highlighter__writeHighlightedText_closure, A.Highlighter__writeIndicator_closure, A.Highlighter__writeIndicator_closure0, A.Highlighter__writeIndicator_closure1, A.Highlighter__writeSidebar_closure, A._Highlight_closure, A.SseClient_closure, A.SseClient__closure, A.SseClient__onOutgoingMessage_closure, A.GuaranteeChannel_closure, A.GuaranteeChannel__closure, A.AdapterWebSocketChannel__closure1, A.main_closure, A.main__closure, A.main__closure0, A.main__closure2, A.main__closure6, A.DdcLibraryBundleRestarter_hotReloadStart_closure, A.RequireRestarter__reload_closure, A.RequireRestarter__reloadModule_closure, A._createScript_closure, A._createScript__closure, A._createScript__closure0, A.runMain_closure]);
    _inheritMany(A.EfficientLengthIterable, [A.ListIterable, A.EmptyIterable, A.LinkedHashMapKeysIterable, A.LinkedHashMapValuesIterable, A.LinkedHashMapEntriesIterable, A._HashMapKeyIterable]);
    _inheritMany(A.ListIterable, [A.SubListIterable, A.MappedListIterable, A.ReversedListIterable, A.ListQueue, A._JsonMapKeyIterable]);
    _inherit(A.EfficientLengthMappedIterable, A.MappedIterable);
    _inherit(A.EfficientLengthTakeIterable, A.TakeIterable);
    _inherit(A.EfficientLengthSkipIterable, A.SkipIterable);
    _inherit(A.ConstantStringMap, A.ConstantMap);
    _inherit(A.Instantiation1, A.Instantiation);
    _inherit(A.NullError, A.TypeError);
    _inheritMany(A.TearOffClosure, [A.StaticClosure, A.BoundClosure]);
    _inheritMany(A.JsLinkedHashMap, [A.JsIdentityLinkedHashMap, A._LinkedCustomHashMap]);
    _inheritMany(A.NativeTypedData, [A.NativeByteData, A.NativeTypedArray]);
    _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._Completer, [A._AsyncCompleter, A._SyncCompleter]);
    _inheritMany(A.Stream, [A.StreamView, A._StreamImpl, A._EmptyStream, A._ForwardingStream, A._EventStream]);
    _inheritMany(A._StreamController, [A._AsyncStreamController, A._SyncStreamController]);
    _inherit(A._ControllerStream, A._StreamImpl);
    _inheritMany(A._BufferingStreamSubscription, [A._ControllerSubscription, A._ForwardingStreamSubscription]);
    _inheritMany(A._DelayedEvent, [A._DelayedData, A._DelayedError]);
    _inherit(A._MapStream, A._ForwardingStream);
    _inheritMany(A._Zone, [A._CustomZone, A._RootZone]);
    _inheritMany(A._HashMap, [A._IdentityHashMap, A._CustomHashMap]);
    _inherit(A._SetBase, A.SetBase);
    _inheritMany(A._SetBase, [A._HashSet, A._LinkedHashSet]);
    _inherit(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A.MapView);
    _inherit(A.UnmodifiableMapView, A._UnmodifiableMapView_MapView__UnmodifiableMapMixin);
    _inherit(A._SplayTreeSetNode, A._SplayTreeNode);
    _inherit(A._SplayTreeKeyIterator, A._SplayTreeIterator);
    _inherit(A._SplayTreeSet__SplayTree_Iterable, A._SplayTree);
    _inherit(A._SplayTreeSet__SplayTree_Iterable_SetMixin, A._SplayTreeSet__SplayTree_Iterable);
    _inherit(A.SplayTreeSet, A._SplayTreeSet__SplayTree_Iterable_SetMixin);
    _inheritMany(A.Codec, [A.Encoding, A.Base64Codec, A.JsonCodec]);
    _inheritMany(A.Encoding, [A.AsciiCodec, A.Latin1Codec, A.Utf8Codec]);
    _inheritMany(A.Converter, [A._UnicodeSubsetEncoder, A._UnicodeSubsetDecoder, A.Base64Encoder, A.Base64Decoder, A.JsonEncoder, A.JsonDecoder, A.Utf8Encoder, A.Utf8Decoder]);
    _inheritMany(A._UnicodeSubsetEncoder, [A.AsciiEncoder, A.Latin1Encoder]);
    _inheritMany(A._UnicodeSubsetDecoder, [A.AsciiDecoder, A.Latin1Decoder]);
    _inherit(A._ByteCallbackSink, A.ByteConversionSink);
    _inherit(A.JsonCyclicError, A.JsonUnsupportedObjectError);
    _inherit(A._JsonStringStringifier, A._JsonStringifier);
    _inheritMany(A.ArgumentError, [A.RangeError, A.IndexError]);
    _inherit(A._DataUri, A._Uri);
    _inherit(A._BuiltList, A.BuiltList);
    _inherit(A._BuiltListMultimap, A.BuiltListMultimap);
    _inherit(A._BuiltMap, A.BuiltMap);
    _inherit(A._BuiltSet, A.BuiltSet);
    _inherit(A._BuiltSetMultimap, A.BuiltSetMultimap);
    _inheritMany(A.JsonObject, [A.BoolJsonObject, A.ListJsonObject, A.MapJsonObject, A.NumJsonObject, A.StringJsonObject]);
    _inherit(A.SetEquality, A._UnorderedEquality);
    _inherit(A.QueueList, A._QueueList_Object_ListMixin);
    _inherit(A._CastQueueList, A.QueueList);
    _inherit(A.BuildStatus, A.EnumClass);
    _inherit(A._$BuildResult, A.BuildResult);
    _inherit(A._$ConnectRequest, A.ConnectRequest);
    _inherit(A._$DebugEvent, A.DebugEvent);
    _inherit(A._$BatchedDebugEvents, A.BatchedDebugEvents);
    _inherit(A._$DebugInfo, A.DebugInfo);
    _inherit(A._$DevToolsRequest, A.DevToolsRequest);
    _inherit(A._$DevToolsResponse, A.DevToolsResponse);
    _inherit(A._$ErrorResponse, A.ErrorResponse);
    _inherit(A._$ExtensionRequest, A.ExtensionRequest);
    _inherit(A._$ExtensionResponse, A.ExtensionResponse);
    _inherit(A._$ExtensionEvent, A.ExtensionEvent);
    _inherit(A._$BatchedEvents, A.BatchedEvents);
    _inherit(A._$HotReloadRequest, A.HotReloadRequest);
    _inherit(A._$HotReloadResponse, A.HotReloadResponse);
    _inherit(A._$IsolateExit, A.IsolateExit);
    _inherit(A._$IsolateStart, A.IsolateStart);
    _inherit(A._$RegisterEvent, A.RegisterEvent);
    _inherit(A._$RunRequest, A.RunRequest);
    _inheritMany(A.SocketClient, [A.SseSocketClient, A.WebSocketClient]);
    _inherit(A.BrowserClient, A.BaseClient);
    _inherit(A.ByteStream, A.StreamView);
    _inherit(A.Request, A.BaseRequest);
    _inheritMany(A.BaseResponse, [A.Response, A.StreamedResponse]);
    _inherit(A.StreamedResponseV2, A.StreamedResponse);
    _inherit(A.CaseInsensitiveMap, A.CanonicalizedMap);
    _inherit(A.InternalStyle, A.Style);
    _inheritMany(A.InternalStyle, [A.PosixStyle, A.UrlStyle, A.WindowsStyle]);
    _inherit(A.FileLocation, A.SourceLocationMixin);
    _inheritMany(A.SourceSpanMixin, [A._FileSpan, A.SourceSpanBase]);
    _inherit(A.SourceSpanFormatException, A.SourceSpanException);
    _inherit(A.SourceSpanWithContext, A.SourceSpanBase);
    _inheritMany(A.StreamChannelMixin, [A.SseClient, A.GuaranteeChannel, A.AdapterWebSocketChannel]);
    _inherit(A.StringScannerException, A.SourceSpanFormatException);
    _inherit(A.MathRNG, A.RNG);
    _inheritMany(A.WebSocketEvent, [A.TextDataReceived, A.BinaryDataReceived, A.CloseReceived]);
    _inherit(A.WebSocketConnectionClosed, A.WebSocketException);
    _inherit(A._WebSocketSink, A.DelegatingStreamSink);
    _mixin(A.UnmodifiableListBase, A.UnmodifiableListMixin);
    _mixin(A.__CastListBase__CastIterableBase_ListMixin, A.ListBase);
    _mixin(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, A.ListBase);
    _mixin(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, A.FixedLengthListMixin);
    _mixin(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin, A.ListBase);
    _mixin(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin, A.FixedLengthListMixin);
    _mixin(A._AsyncStreamController, A._AsyncStreamControllerDispatch);
    _mixin(A._SyncStreamController, A._SyncStreamControllerDispatch);
    _mixin(A._SplayTreeSet__SplayTree_Iterable, A.Iterable);
    _mixin(A._SplayTreeSet__SplayTree_Iterable_SetMixin, A.SetBase);
    _mixin(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A._UnmodifiableMapMixin);
    _mixin(A._QueueList_Object_ListMixin, A.ListBase);
  })();
  var init = {
    G: typeof self != "undefined" ? self : globalThis,
    typeUniverse: {eC: new Map(), tR: {}, eT: {}, tPV: {}, sEA: []},
    mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List", Object: "Object", Map: "Map"},
    mangledNames: {},
    types: ["~()", "Null()", "~(JSObject)", "Object?(@)", "@(@)", "Null(Object,StackTrace)", "Null(@)", "~(@)", "Null(JSObject)", "~(Object?)", "JSObject()", "Object?(Object?)", "bool(Object?)", "String(String)", "~(Object,StackTrace)", "bool(_Highlight)", "~(~())", "int(Object?)", "bool(Object?,Object?)", "Future<~>()", "Null(JavaScriptFunction)", "~(@,StackTrace)", "String(int,int)", "~(@,@)", "~(Object?,Object?)", "@()", "int(int,int)", "int(int)", "int()", "Null(JavaScriptFunction,JavaScriptFunction)", "int(@,@)", "bool(String)", "String(Match)", "~(Object[StackTrace?])", "bool()", "SetBuilder<Object>()", "MapBuilder<Object,Object>()", "~(int,@)", "ListMultimapBuilder<Object,Object>()", "ListBuilder<Object>()", "ListBuilder<DebugEvent>()", "ListBuilder<ExtensionEvent>()", "IndentingBuiltValueToStringHelper(String)", "String(@)", "bool(String,String)", "int(String)", "int(int,@)", "~(List<int>)", "MediaType()", "~(String,String)", "Object?(~)", "Logger()", "JSObject(Object,StackTrace)", "Null(@,StackTrace)", "String?()", "int(_Line)", "~(String,int?)", "Object(_Line)", "Object(_Highlight)", "int(_Highlight,_Highlight)", "List<_Line>(MapEntry<Object,List<_Highlight>>)", "~(String,int)", "SourceSpanWithContext()", "Null(~())", "~(String?)", "Future<Null>()", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "Null(WebSocket)", "~(WebSocketEvent)", "Null(Object)", "HotReloadResponse([~(HotReloadResponseBuilder)])", "JSObject(String[bool?])", "~(List<DebugEvent>)", "ListBuilder<DebugEvent>(BatchedDebugEventsBuilder)", "Null(String,String)", "DebugEventBuilder(DebugEventBuilder)", "Null(String)", "RegisterEventBuilder(RegisterEventBuilder)", "DevToolsRequestBuilder(DevToolsRequestBuilder)", "Future<~>(String)", "ConnectRequestBuilder(ConnectRequestBuilder)", "DebugInfoBuilder(DebugInfoBuilder)", "~(bool)", "@(@,String)", "bool(bool)", "List<String>(String)", "int(String,String)", "Null(JavaScriptObject)", "JSObject()()", "SetMultimapBuilder<Object,Object>()", "@(String)", "~(Zone?,ZoneDelegate?,Zone,Object,StackTrace)", "0^(Zone?,ZoneDelegate?,Zone,0^())<Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^),1^)<Object?,Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^,2^),1^,2^)<Object?,Object?,Object?>", "0^()(Zone,ZoneDelegate,Zone,0^())<Object?>", "0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))<Object?,Object?>", "0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))<Object?,Object?,Object?>", "AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)", "~(Zone?,ZoneDelegate?,Zone,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))", "~(Zone,ZoneDelegate,Zone,String)", "~(String)", "Zone(Zone?,ZoneDelegate?,Zone,ZoneSpecification?,Map<Object?,Object?>?)", "0^(0^,0^)<num>", "String(String?)"],
    interceptorsByTag: null,
    leafTags: null,
    arrayRti: Symbol("$ti"),
    rttc: {}
  };
  A._Universe_addRules(init.typeUniverse, JSON.parse('{"JavaScriptFunction":"LegacyJavaScriptObject","PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptObject":{"JSObject":[]},"JSArray":{"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"JSIndexable":["1"],"Iterable.E":"1"},"JSBool":{"bool":[],"TrustedGetRuntimeType":[]},"JSNull":{"Null":[],"TrustedGetRuntimeType":[]},"LegacyJavaScriptObject":{"JavaScriptObject":[],"JSObject":[]},"JSArraySafeToStringHook":{"SafeToStringHook":[]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"JSIndexable":["1"],"Iterable.E":"1"},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[],"Comparable":["num"]},"JSInt":{"double":[],"int":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSNumNotInt":{"double":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSString":{"String":[],"Comparable":["String"],"Pattern":[],"JSIndexable":["@"],"TrustedGetRuntimeType":[]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","Iterable.E":"2"},"CastMap":{"MapBase":["3","4"],"Map":["3","4"],"MapBase.K":"3","MapBase.V":"4"},"LateError":{"Error":[]},"CodeUnits":{"ListBase":["int"],"UnmodifiableListMixin":["int"],"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"ListBase.E":"int","Iterable.E":"int","UnmodifiableListMixin.E":"int"},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.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"],"ListIterable.E":"2","Iterable.E":"2"},"WhereIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereIterator":{"Iterator":["1"]},"ExpandIterable":{"Iterable":["2"],"Iterable.E":"2"},"ExpandIterator":{"Iterator":["2"]},"TakeIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthTakeIterable":{"TakeIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"TakeIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"WhereTypeIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereTypeIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_KeysOrValues":{"Iterable":["1"],"Iterable.E":"1"},"_KeysOrValuesOrElementsIterator":{"Iterator":["1"]},"Instantiation":{"Closure":[],"Function":[]},"Instantiation1":{"Closure":[],"Function":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"NullThrownFromJavaScriptException":{"Exception":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Closure":[],"Function":[]},"Closure2Args":{"Closure":[],"Function":[]},"TearOffClosure":{"Closure":[],"Function":[]},"StaticClosure":{"Closure":[],"Function":[]},"BoundClosure":{"Closure":[],"Function":[]},"RuntimeError":{"Error":[]},"JsLinkedHashMap":{"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"LinkedHashMapKeysIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"LinkedHashMapValuesIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapValueIterator":{"Iterator":["1"]},"LinkedHashMapEntriesIterable":{"EfficientLengthIterable":["MapEntry<1,2>"],"Iterable":["MapEntry<1,2>"],"Iterable.E":"MapEntry<1,2>"},"LinkedHashMapEntryIterator":{"Iterator":["MapEntry<1,2>"]},"JsIdentityLinkedHashMap":{"JsLinkedHashMap":["1","2"],"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"JavaScriptObject":[],"JSObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeTypedData":{"JavaScriptObject":[],"JSObject":[]},"NativeByteData":{"JavaScriptObject":[],"ByteData":[],"JSObject":[],"TrustedGetRuntimeType":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"JavaScriptObject":[],"JSObject":[],"JSIndexable":["1"]},"NativeTypedArrayOfDouble":{"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"JSIndexable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"Float32List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"JSIndexable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double","FixedLengthListMixin.E":"double"},"NativeFloat64List":{"Float64List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"JSIndexable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double","FixedLengthListMixin.E":"double"},"NativeInt16List":{"NativeTypedArrayOfInt":[],"Int16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeInt32List":{"NativeTypedArrayOfInt":[],"Int32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeInt8List":{"NativeTypedArrayOfInt":[],"Int8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint16List":{"NativeTypedArrayOfInt":[],"Uint16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint32List":{"NativeTypedArrayOfInt":[],"Uint32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint8ClampedList":{"NativeTypedArrayOfInt":[],"Uint8ClampedList":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"NativeUint8List":{"NativeTypedArrayOfInt":[],"Uint8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"JSIndexable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int","FixedLengthListMixin.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_TimerImpl":{"Timer":[]},"_AsyncAwaitCompleter":{"Completer":["1"]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_Future":{"Future":["1"]},"StreamView":{"Stream":["1"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_AsyncStreamController":{"_AsyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_DoneStreamSubscription":{"StreamSubscription":["1"]},"_EmptyStream":{"Stream":["1"],"Stream.T":"1"},"_ForwardingStream":{"Stream":["2"]},"_ForwardingStreamSubscription":{"_BufferingStreamSubscription":["2"],"StreamSubscription":["2"],"_EventSink":["2"],"_EventDispatch":["2"],"_BufferingStreamSubscription.T":"2"},"_MapStream":{"_ForwardingStream":["1","2"],"Stream":["2"],"Stream.T":"2"},"_ZoneSpecification":{"ZoneSpecification":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_SplayTreeSetNode":{"_SplayTreeNode":["1","_SplayTreeSetNode<1>"],"_SplayTreeNode.K":"1","_SplayTreeNode.1":"_SplayTreeSetNode<1>"},"_HashMap":{"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_CustomHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedCustomHashMap":{"JsLinkedHashMap":["1","2"],"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashSetIterator":{"Iterator":["1"]},"_LinkedHashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_LinkedHashSetIterator":{"Iterator":["1"]},"UnmodifiableListView":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","Iterable.E":"1","UnmodifiableListMixin.E":"1"},"ListBase":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ListQueue":{"Queue":["1"],"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_ListQueueIterator":{"Iterator":["1"]},"SetBase":{"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SetBase":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SplayTreeIterator":{"Iterator":["3"]},"_SplayTreeKeyIterator":{"_SplayTreeIterator":["1","2","1"],"Iterator":["1"],"_SplayTreeIterator.K":"1","_SplayTreeIterator.T":"1","_SplayTreeIterator.1":"2"},"SplayTreeSet":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"_SplayTree":["1","_SplayTreeSetNode<1>"],"Iterable":["1"],"Iterable.E":"1","_SplayTree.1":"_SplayTreeSetNode<1>","_SplayTree.K":"1"},"Encoding":{"Codec":["String","List<int>"]},"_JsonMap":{"MapBase":["String","@"],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"AsciiCodec":{"Encoding":[],"Codec":["String","List<int>"],"Codec.S":"String"},"_UnicodeSubsetEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"AsciiEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"_UnicodeSubsetDecoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"AsciiDecoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Base64Codec":{"Codec":["List<int>","String"],"Codec.S":"List<int>"},"Base64Encoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Base64Decoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Converter":{"StreamTransformer":["1","2"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"],"Codec.S":"Object?"},"JsonEncoder":{"Converter":["Object?","String"],"StreamTransformer":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"],"StreamTransformer":["String","Object?"]},"Latin1Codec":{"Encoding":[],"Codec":["String","List<int>"],"Codec.S":"String"},"Latin1Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Latin1Decoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Utf8Codec":{"Encoding":[],"Codec":["String","List<int>"],"Codec.S":"String"},"Utf8Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Utf8Decoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"BigInt":{"Comparable":["BigInt"]},"DateTime":{"Comparable":["DateTime"]},"double":{"num":[],"Comparable":["num"]},"Duration":{"Comparable":["Duration"]},"int":{"num":[],"Comparable":["num"]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"num":{"Comparable":["num"]},"RegExp":{"Pattern":[]},"RegExpMatch":{"Match":[]},"Set":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"String":{"Comparable":["String"],"Pattern":[]},"_BigIntImpl":{"BigInt":[],"Comparable":["BigInt"]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"_Exception":{"Exception":[]},"FormatException":{"Exception":[]},"IntegerDivisionByZeroException":{"Exception":[],"Error":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"NullRejectionException":{"Exception":[]},"_JSRandom":{"Random":[]},"DelegatingStreamSink":{"StreamSink":["1"]},"ErrorResult":{"Result":["0&"]},"ValueResult":{"Result":["1"]},"_NextRequest":{"_EventRequest":["1"]},"_HasNextRequest":{"_EventRequest":["1"]},"BuiltList":{"Iterable":["1"]},"_BuiltList":{"BuiltList":["1"],"Iterable":["1"],"Iterable.E":"1"},"_BuiltListMultimap":{"BuiltListMultimap":["1","2"]},"_BuiltMap":{"BuiltMap":["1","2"]},"BuiltSet":{"Iterable":["1"]},"_BuiltSet":{"BuiltSet":["1"],"Iterable":["1"],"Iterable.E":"1"},"_BuiltSetMultimap":{"BuiltSetMultimap":["1","2"]},"BuiltValueNullFieldError":{"Error":[]},"BuiltValueNestedFieldError":{"Error":[]},"BoolJsonObject":{"JsonObject":[]},"ListJsonObject":{"JsonObject":[]},"MapJsonObject":{"JsonObject":[]},"NumJsonObject":{"JsonObject":[]},"StringJsonObject":{"JsonObject":[]},"DeserializationError":{"Error":[]},"BigIntSerializer":{"PrimitiveSerializer":["BigInt"],"Serializer":["BigInt"]},"BoolSerializer":{"PrimitiveSerializer":["bool"],"Serializer":["bool"]},"BuiltJsonSerializers":{"Serializers":[]},"BuiltListMultimapSerializer":{"StructuredSerializer":["BuiltListMultimap<@,@>"],"Serializer":["BuiltListMultimap<@,@>"]},"BuiltListSerializer":{"StructuredSerializer":["BuiltList<@>"],"Serializer":["BuiltList<@>"]},"BuiltMapSerializer":{"StructuredSerializer":["BuiltMap<@,@>"],"Serializer":["BuiltMap<@,@>"]},"BuiltSetMultimapSerializer":{"StructuredSerializer":["BuiltSetMultimap<@,@>"],"Serializer":["BuiltSetMultimap<@,@>"]},"BuiltSetSerializer":{"StructuredSerializer":["BuiltSet<@>"],"Serializer":["BuiltSet<@>"]},"DateTimeSerializer":{"PrimitiveSerializer":["DateTime"],"Serializer":["DateTime"]},"DoubleSerializer":{"PrimitiveSerializer":["double"],"Serializer":["double"]},"DurationSerializer":{"PrimitiveSerializer":["Duration"],"Serializer":["Duration"]},"Int32Serializer":{"PrimitiveSerializer":["Int32"],"Serializer":["Int32"]},"Int64Serializer":{"PrimitiveSerializer":["Int64"],"Serializer":["Int64"]},"IntSerializer":{"PrimitiveSerializer":["int"],"Serializer":["int"]},"JsonObjectSerializer":{"PrimitiveSerializer":["JsonObject"],"Serializer":["JsonObject"]},"ListSerializer":{"StructuredSerializer":["List<@>"],"Serializer":["List<@>"]},"MapSerializer":{"StructuredSerializer":["Map<@,@>"],"Serializer":["Map<@,@>"]},"NullSerializer":{"PrimitiveSerializer":["Null"],"Serializer":["Null"]},"NumSerializer":{"PrimitiveSerializer":["num"],"Serializer":["num"]},"RegExpSerializer":{"PrimitiveSerializer":["RegExp"],"Serializer":["RegExp"]},"SetSerializer":{"StructuredSerializer":["Set<@>"],"Serializer":["Set<@>"]},"StringSerializer":{"PrimitiveSerializer":["String"],"Serializer":["String"]},"Uint8ListSerializer":{"PrimitiveSerializer":["Uint8List"],"Serializer":["Uint8List"]},"UriSerializer":{"PrimitiveSerializer":["Uri"],"Serializer":["Uri"]},"CanonicalizedMap":{"Map":["2","3"]},"DefaultEquality":{"Equality":["1"]},"IterableEquality":{"Equality":["Iterable<1>"]},"ListEquality":{"Equality":["List<1>"]},"_UnorderedEquality":{"Equality":["2"]},"SetEquality":{"_UnorderedEquality":["1","Set<1>"],"Equality":["Set<1>"],"_UnorderedEquality.E":"1","_UnorderedEquality.T":"Set<1>"},"MapEquality":{"Equality":["Map<1,2>"]},"DeepCollectionEquality":{"Equality":["@"]},"QueueList":{"ListBase":["1"],"List":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","QueueList.E":"1","Iterable.E":"1"},"_CastQueueList":{"QueueList":["2"],"ListBase":["2"],"List":["2"],"Queue":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","QueueList.E":"2","Iterable.E":"2"},"_$BuildStatusSerializer":{"PrimitiveSerializer":["BuildStatus"],"Serializer":["BuildStatus"]},"_$BuildResultSerializer":{"StructuredSerializer":["BuildResult"],"Serializer":["BuildResult"]},"_$BuildResult":{"BuildResult":[]},"_$ConnectRequestSerializer":{"StructuredSerializer":["ConnectRequest"],"Serializer":["ConnectRequest"]},"_$ConnectRequest":{"ConnectRequest":[]},"_$DebugEventSerializer":{"StructuredSerializer":["DebugEvent"],"Serializer":["DebugEvent"]},"_$BatchedDebugEventsSerializer":{"StructuredSerializer":["BatchedDebugEvents"],"Serializer":["BatchedDebugEvents"]},"_$DebugEvent":{"DebugEvent":[]},"_$BatchedDebugEvents":{"BatchedDebugEvents":[]},"_$DebugInfoSerializer":{"StructuredSerializer":["DebugInfo"],"Serializer":["DebugInfo"]},"_$DebugInfo":{"DebugInfo":[]},"_$DevToolsRequestSerializer":{"StructuredSerializer":["DevToolsRequest"],"Serializer":["DevToolsRequest"]},"_$DevToolsResponseSerializer":{"StructuredSerializer":["DevToolsResponse"],"Serializer":["DevToolsResponse"]},"_$DevToolsRequest":{"DevToolsRequest":[]},"_$DevToolsResponse":{"DevToolsResponse":[]},"_$ErrorResponseSerializer":{"StructuredSerializer":["ErrorResponse"],"Serializer":["ErrorResponse"]},"_$ErrorResponse":{"ErrorResponse":[]},"_$ExtensionRequestSerializer":{"StructuredSerializer":["ExtensionRequest"],"Serializer":["ExtensionRequest"]},"_$ExtensionResponseSerializer":{"StructuredSerializer":["ExtensionResponse"],"Serializer":["ExtensionResponse"]},"_$ExtensionEventSerializer":{"StructuredSerializer":["ExtensionEvent"],"Serializer":["ExtensionEvent"]},"_$BatchedEventsSerializer":{"StructuredSerializer":["BatchedEvents"],"Serializer":["BatchedEvents"]},"_$ExtensionRequest":{"ExtensionRequest":[]},"_$ExtensionResponse":{"ExtensionResponse":[]},"_$ExtensionEvent":{"ExtensionEvent":[]},"_$BatchedEvents":{"BatchedEvents":[]},"_$HotReloadRequestSerializer":{"StructuredSerializer":["HotReloadRequest"],"Serializer":["HotReloadRequest"]},"_$HotReloadRequest":{"HotReloadRequest":[]},"_$HotReloadResponseSerializer":{"StructuredSerializer":["HotReloadResponse"],"Serializer":["HotReloadResponse"]},"_$HotReloadResponse":{"HotReloadResponse":[]},"_$IsolateExitSerializer":{"StructuredSerializer":["IsolateExit"],"Serializer":["IsolateExit"]},"_$IsolateStartSerializer":{"StructuredSerializer":["IsolateStart"],"Serializer":["IsolateStart"]},"_$IsolateExit":{"IsolateExit":[]},"_$IsolateStart":{"IsolateStart":[]},"_$RegisterEventSerializer":{"StructuredSerializer":["RegisterEvent"],"Serializer":["RegisterEvent"]},"_$RegisterEvent":{"RegisterEvent":[]},"_$RunRequestSerializer":{"StructuredSerializer":["RunRequest"],"Serializer":["RunRequest"]},"_$RunRequest":{"RunRequest":[]},"SseSocketClient":{"SocketClient":[]},"WebSocketClient":{"SocketClient":[]},"Int32":{"Comparable":["Object"]},"Int64":{"Comparable":["Object"]},"ByteStream":{"StreamView":["List<int>"],"Stream":["List<int>"],"Stream.T":"List<int>","StreamView.T":"List<int>"},"ClientException":{"Exception":[]},"Request":{"BaseRequest":[]},"StreamedResponseV2":{"StreamedResponse":[]},"CaseInsensitiveMap":{"CanonicalizedMap":["String","String","1"],"Map":["String","1"],"CanonicalizedMap.K":"String","CanonicalizedMap.V":"1","CanonicalizedMap.C":"String"},"Level":{"Comparable":["Level"]},"PathException":{"Exception":[]},"PosixStyle":{"InternalStyle":[]},"UrlStyle":{"InternalStyle":[]},"WindowsStyle":{"InternalStyle":[]},"FileLocation":{"SourceLocation":[],"Comparable":["SourceLocation"]},"_FileSpan":{"SourceSpanWithContext":[],"SourceSpan":[],"Comparable":["SourceSpan"]},"SourceLocation":{"Comparable":["SourceLocation"]},"SourceLocationMixin":{"SourceLocation":[],"Comparable":["SourceLocation"]},"SourceSpan":{"Comparable":["SourceSpan"]},"SourceSpanBase":{"SourceSpan":[],"Comparable":["SourceSpan"]},"SourceSpanException":{"Exception":[]},"SourceSpanFormatException":{"FormatException":[],"Exception":[]},"SourceSpanMixin":{"SourceSpan":[],"Comparable":["SourceSpan"]},"SourceSpanWithContext":{"SourceSpan":[],"Comparable":["SourceSpan"]},"SseClient":{"StreamChannel":["String?"]},"GuaranteeChannel":{"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"StringScannerException":{"FormatException":[],"Exception":[]},"_EventStream":{"Stream":["1"],"Stream.T":"1"},"_EventStreamSubscription":{"StreamSubscription":["1"]},"BrowserWebSocket":{"WebSocket":[]},"TextDataReceived":{"WebSocketEvent":[]},"BinaryDataReceived":{"WebSocketEvent":[]},"CloseReceived":{"WebSocketEvent":[]},"WebSocketException":{"Exception":[]},"WebSocketConnectionClosed":{"Exception":[]},"AdapterWebSocketChannel":{"WebSocketChannel":[],"StreamChannel":["@"]},"_WebSocketSink":{"WebSocketSink":[],"DelegatingStreamSink":["@"],"StreamSink":["@"],"DelegatingStreamSink.T":"@"},"WebSocketChannelException":{"Exception":[]},"DdcLibraryBundleRestarter":{"Restarter":[]},"DdcRestarter":{"Restarter":[]},"RequireRestarter":{"Restarter":[]},"HotReloadFailedException":{"Exception":[]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]}}'));
  A._Universe_addErasedTypes(init.typeUniverse, JSON.parse('{"UnmodifiableListBase":1,"__CastListBase__CastIterableBase_ListMixin":2,"NativeTypedArray":1,"_DelayedEvent":1,"_SplayTreeSet__SplayTree_Iterable":1,"_SplayTreeSet__SplayTree_Iterable_SetMixin":1,"_QueueList_Object_ListMixin":1,"StreamChannelMixin":1}'));
  var string$ = {
    x00_____: "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\u03f6\x00\u0404\u03f4 \u03f4\u03f6\u01f6\u01f6\u03f6\u03fc\u01f4\u03ff\u03ff\u0584\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u05d4\u01f4\x00\u01f4\x00\u0504\u05c4\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0400\x00\u0400\u0200\u03f7\u0200\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0200\u0200\u0200\u03f7\x00",
    x20must_: " must not be greater than the number of characters in the file, ",
    ABCDEF: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
    Cannotff: "Cannot extract a file path from a URI with a fragment component",
    Cannotfq: "Cannot extract a file path from a URI with a query component",
    Cannotn: "Cannot extract a non-Windows file path from a file URI with an authority",
    Dart_e: "Dart exception thrown from converted Future. Use the properties 'error' to fetch the boxed error and 'stack' to recover the stack trace.",
    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",
    Hot_reA: "Hot reload is not supported for the AMD module format.",
    Hot_reD: "Hot reload is not supported for the DDC module format.",
    serial: "serializer must be StructuredSerializer or PrimitiveSerializer"
  };
  var type$ = (function rtii() {
    var findType = A.findType;
    return {
      AsyncError: findType("AsyncError"),
      Base64Codec: findType("Base64Codec"),
      BatchedDebugEvents: findType("BatchedDebugEvents"),
      BatchedEvents: findType("BatchedEvents"),
      BatchedStreamController_DebugEvent: findType("BatchedStreamController<DebugEvent>"),
      BigInt: findType("BigInt"),
      BrowserWebSocket: findType("BrowserWebSocket"),
      BuildResult: findType("BuildResult"),
      BuildStatus: findType("BuildStatus"),
      BuiltListMultimap_dynamic_dynamic: findType("BuiltListMultimap<@,@>"),
      BuiltList_DebugEvent: findType("BuiltList<DebugEvent>"),
      BuiltList_ExtensionEvent: findType("BuiltList<ExtensionEvent>"),
      BuiltList_dynamic: findType("BuiltList<@>"),
      BuiltList_nullable_Object: findType("BuiltList<Object?>"),
      BuiltMap_dynamic_dynamic: findType("BuiltMap<@,@>"),
      BuiltSetMultimap_dynamic_dynamic: findType("BuiltSetMultimap<@,@>"),
      BuiltSet_dynamic: findType("BuiltSet<@>"),
      ByteBuffer: findType("ByteBuffer"),
      ByteData: findType("ByteData"),
      CaseInsensitiveMap_String: findType("CaseInsensitiveMap<String>"),
      CodeUnits: findType("CodeUnits"),
      Comparable_dynamic: findType("Comparable<@>"),
      ConnectRequest: findType("ConnectRequest"),
      DateTime: findType("DateTime"),
      DebugEvent: findType("DebugEvent"),
      DebugInfo: findType("DebugInfo"),
      DevToolsRequest: findType("DevToolsRequest"),
      DevToolsResponse: findType("DevToolsResponse"),
      Duration: findType("Duration"),
      EfficientLengthIterable_dynamic: findType("EfficientLengthIterable<@>"),
      Error: findType("Error"),
      ErrorResponse: findType("ErrorResponse"),
      Exception: findType("Exception"),
      ExtensionEvent: findType("ExtensionEvent"),
      ExtensionRequest: findType("ExtensionRequest"),
      ExtensionResponse: findType("ExtensionResponse"),
      Float32List: findType("Float32List"),
      Float64List: findType("Float64List"),
      FormatException: findType("FormatException"),
      FullType: findType("FullType"),
      Function: findType("Function"),
      Future_void: findType("Future<~>"),
      HotReloadRequest: findType("HotReloadRequest"),
      HotReloadResponse: findType("HotReloadResponse"),
      Int16List: findType("Int16List"),
      Int32: findType("Int32"),
      Int32List: findType("Int32List"),
      Int64: findType("Int64"),
      Int8List: findType("Int8List"),
      IsolateExit: findType("IsolateExit"),
      IsolateStart: findType("IsolateStart"),
      IterableEquality_dynamic: findType("IterableEquality<@>"),
      Iterable_String: findType("Iterable<String>"),
      Iterable_dynamic: findType("Iterable<@>"),
      Iterable_int: findType("Iterable<int>"),
      Iterable_nullable_Object: findType("Iterable<Object?>"),
      JSArray_FullType: findType("JSArray<FullType>"),
      JSArray_Object: findType("JSArray<Object>"),
      JSArray_String: findType("JSArray<String>"),
      JSArray_Type: findType("JSArray<Type>"),
      JSArray__Highlight: findType("JSArray<_Highlight>"),
      JSArray__Line: findType("JSArray<_Line>"),
      JSArray_dynamic: findType("JSArray<@>"),
      JSArray_int: findType("JSArray<int>"),
      JSArray_nullable_Object: findType("JSArray<Object?>"),
      JSArray_nullable_String: findType("JSArray<String?>"),
      JSIndexable_dynamic: findType("JSIndexable<@>"),
      JSNull: findType("JSNull"),
      JSObject: findType("JSObject"),
      JavaScriptFunction: findType("JavaScriptFunction"),
      JavaScriptIndexingBehavior_dynamic: findType("JavaScriptIndexingBehavior<@>"),
      JavaScriptObject: findType("JavaScriptObject"),
      JsonObject: findType("JsonObject"),
      Level: findType("Level"),
      ListBuilder_DebugEvent: findType("ListBuilder<DebugEvent>"),
      ListBuilder_ExtensionEvent: findType("ListBuilder<ExtensionEvent>"),
      ListBuilder_dynamic: findType("ListBuilder<@>"),
      ListEquality_dynamic: findType("ListEquality<@>"),
      ListMultimapBuilder_dynamic_dynamic: findType("ListMultimapBuilder<@,@>"),
      List_DebugEvent: findType("List<DebugEvent>"),
      List_ExtensionEvent: findType("List<ExtensionEvent>"),
      List_String: findType("List<String>"),
      List_dynamic: findType("List<@>"),
      List_int: findType("List<int>"),
      List_nullable_Object: findType("List<Object?>"),
      List_nullable__Highlight: findType("List<_Highlight?>"),
      Logger: findType("Logger"),
      MapBuilder_dynamic_dynamic: findType("MapBuilder<@,@>"),
      MapEntry_String_String: findType("MapEntry<String,String>"),
      MapEntry_of_Object_and_List__Highlight: findType("MapEntry<Object,List<_Highlight>>"),
      MapEquality_dynamic_dynamic: findType("MapEquality<@,@>"),
      Map_String_String: findType("Map<String,String>"),
      Map_dynamic_dynamic: findType("Map<@,@>"),
      Map_of_String_and_nullable_Object: findType("Map<String,Object?>"),
      MappedListIterable_String_dynamic: findType("MappedListIterable<String,@>"),
      MediaType: findType("MediaType"),
      NativeByteBuffer: findType("NativeByteBuffer"),
      NativeTypedArrayOfInt: findType("NativeTypedArrayOfInt"),
      NativeUint8List: findType("NativeUint8List"),
      Null: findType("Null"),
      Object: findType("Object"),
      PoolResource: findType("PoolResource"),
      PrimitiveSerializer_dynamic: findType("PrimitiveSerializer<@>"),
      QueueList_Result_DebugEvent: findType("QueueList<Result<DebugEvent>>"),
      Record: findType("Record"),
      Record_0: findType("+()"),
      RegExp: findType("RegExp"),
      RegExpMatch: findType("RegExpMatch"),
      RegisterEvent: findType("RegisterEvent"),
      RequireRestarter: findType("RequireRestarter"),
      Response: findType("Response"),
      ReversedListIterable_String: findType("ReversedListIterable<String>"),
      RunRequest: findType("RunRequest"),
      SerializerPlugin: findType("SerializerPlugin"),
      Serializer_dynamic: findType("Serializer<@>"),
      SetBuilder_dynamic: findType("SetBuilder<@>"),
      SetEquality_dynamic: findType("SetEquality<@>"),
      SetMultimapBuilder_dynamic_dynamic: findType("SetMultimapBuilder<@,@>"),
      Set_dynamic: findType("Set<@>"),
      SourceLocation: findType("SourceLocation"),
      SourceSpan: findType("SourceSpan"),
      SourceSpanWithContext: findType("SourceSpanWithContext"),
      SplayTreeSet_String: findType("SplayTreeSet<String>"),
      StackTrace: findType("StackTrace"),
      StreamChannelController_nullable_Object: findType("StreamChannelController<Object?>"),
      StreamQueue_DebugEvent: findType("StreamQueue<DebugEvent>"),
      StreamedResponse: findType("StreamedResponse"),
      String: findType("String"),
      String_Function_Match: findType("String(Match)"),
      StructuredSerializer_dynamic: findType("StructuredSerializer<@>"),
      Timer: findType("Timer"),
      TrustedGetRuntimeType: findType("TrustedGetRuntimeType"),
      Type: findType("Type"),
      TypeError: findType("TypeError"),
      Uint16List: findType("Uint16List"),
      Uint32List: findType("Uint32List"),
      Uint8ClampedList: findType("Uint8ClampedList"),
      Uint8List: findType("Uint8List"),
      UnknownJavaScriptObject: findType("UnknownJavaScriptObject"),
      UnmodifiableListView_nullable_Object: findType("UnmodifiableListView<Object?>"),
      UnmodifiableMapView_String_String: findType("UnmodifiableMapView<String,String>"),
      UnmodifiableMapView_of_String_and_nullable_Object: findType("UnmodifiableMapView<String,Object?>"),
      Uri: findType("Uri"),
      WebSocket: findType("WebSocket"),
      WebSocketEvent: findType("WebSocketEvent"),
      WhereTypeIterable_String: findType("WhereTypeIterable<String>"),
      Zone: findType("Zone"),
      _AsyncCompleter_BrowserWebSocket: findType("_AsyncCompleter<BrowserWebSocket>"),
      _AsyncCompleter_PoolResource: findType("_AsyncCompleter<PoolResource>"),
      _AsyncCompleter_StreamedResponse: findType("_AsyncCompleter<StreamedResponse>"),
      _AsyncCompleter_String: findType("_AsyncCompleter<String>"),
      _AsyncCompleter_Uint8List: findType("_AsyncCompleter<Uint8List>"),
      _AsyncCompleter_bool: findType("_AsyncCompleter<bool>"),
      _AsyncCompleter_dynamic: findType("_AsyncCompleter<@>"),
      _AsyncCompleter_void: findType("_AsyncCompleter<~>"),
      _BigIntImpl: findType("_BigIntImpl"),
      _BuiltMap_dynamic_dynamic: findType("_BuiltMap<@,@>"),
      _EventRequest_dynamic: findType("_EventRequest<@>"),
      _EventStream_JSObject: findType("_EventStream<JSObject>"),
      _Future_BrowserWebSocket: findType("_Future<BrowserWebSocket>"),
      _Future_PoolResource: findType("_Future<PoolResource>"),
      _Future_StreamedResponse: findType("_Future<StreamedResponse>"),
      _Future_String: findType("_Future<String>"),
      _Future_Uint8List: findType("_Future<Uint8List>"),
      _Future_bool: findType("_Future<bool>"),
      _Future_dynamic: findType("_Future<@>"),
      _Future_int: findType("_Future<int>"),
      _Future_void: findType("_Future<~>"),
      _Highlight: findType("_Highlight"),
      _IdentityHashMap_of_nullable_Object_and_nullable_Object: findType("_IdentityHashMap<Object?,Object?>"),
      _Line: findType("_Line"),
      _MapEntry: findType("_MapEntry"),
      _StreamControllerAddStreamState_nullable_Object: findType("_StreamControllerAddStreamState<Object?>"),
      _SyncCompleter_PoolResource: findType("_SyncCompleter<PoolResource>"),
      _ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace: findType("_ZoneFunction<~(Zone,ZoneDelegate,Zone,Object,StackTrace)>"),
      bool: findType("bool"),
      bool_Function_Object: findType("bool(Object)"),
      bool_Function__Highlight: findType("bool(_Highlight)"),
      double: findType("double"),
      dynamic: findType("@"),
      dynamic_Function: findType("@()"),
      dynamic_Function_Object: findType("@(Object)"),
      dynamic_Function_Object_StackTrace: findType("@(Object,StackTrace)"),
      dynamic_Function_String: findType("@(String)"),
      int: findType("int"),
      nullable_Future_Null: findType("Future<Null>?"),
      nullable_JSArray_nullable_Object: findType("JSArray<Object?>?"),
      nullable_JSObject: findType("JSObject?"),
      nullable_ListBuilder_DebugEvent: findType("ListBuilder<DebugEvent>?"),
      nullable_ListBuilder_ExtensionEvent: findType("ListBuilder<ExtensionEvent>?"),
      nullable_List_dynamic: findType("List<@>?"),
      nullable_Map_of_nullable_Object_and_nullable_Object: findType("Map<Object?,Object?>?"),
      nullable_Object: findType("Object?"),
      nullable_Result_DebugEvent: findType("Result<DebugEvent>?"),
      nullable_StackTrace: findType("StackTrace?"),
      nullable_String: findType("String?"),
      nullable_String_Function_Match: findType("String(Match)?"),
      nullable_Zone: findType("Zone?"),
      nullable_ZoneDelegate: findType("ZoneDelegate?"),
      nullable_ZoneSpecification: findType("ZoneSpecification?"),
      nullable__DelayedEvent_dynamic: findType("_DelayedEvent<@>?"),
      nullable__FutureListener_dynamic_dynamic: findType("_FutureListener<@,@>?"),
      nullable__Highlight: findType("_Highlight?"),
      nullable__LinkedHashSetCell: findType("_LinkedHashSetCell?"),
      nullable_bool: findType("bool?"),
      nullable_double: findType("double?"),
      nullable_int: findType("int?"),
      nullable_num: findType("num?"),
      nullable_void_Function: findType("~()?"),
      nullable_void_Function_BatchedDebugEventsBuilder: findType("~(BatchedDebugEventsBuilder)?"),
      nullable_void_Function_ConnectRequestBuilder: findType("~(ConnectRequestBuilder)?"),
      nullable_void_Function_DebugEventBuilder: findType("~(DebugEventBuilder)?"),
      nullable_void_Function_DebugInfoBuilder: findType("~(DebugInfoBuilder)?"),
      nullable_void_Function_DevToolsRequestBuilder: findType("~(DevToolsRequestBuilder)?"),
      nullable_void_Function_HotReloadResponseBuilder: findType("~(HotReloadResponseBuilder)?"),
      nullable_void_Function_JSObject: findType("~(JSObject)?"),
      nullable_void_Function_RegisterEventBuilder: findType("~(RegisterEventBuilder)?"),
      num: findType("num"),
      void: findType("~"),
      void_Function: findType("~()"),
      void_Function_HotReloadResponseBuilder: findType("~(HotReloadResponseBuilder)"),
      void_Function_List_int: findType("~(List<int>)"),
      void_Function_Object: findType("~(Object)"),
      void_Function_Object_StackTrace: findType("~(Object,StackTrace)"),
      void_Function_String_dynamic: findType("~(String,@)"),
      void_Function_Timer: findType("~(Timer)")
    };
  })();
  (function constants() {
    var makeConstList = hunkHelpers.makeConstList;
    B.Interceptor_methods = J.Interceptor.prototype;
    B.JSArray_methods = J.JSArray.prototype;
    B.JSBool_methods = J.JSBool.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.AsciiDecoder_false_127 = new A.AsciiDecoder(false, 127);
    B.AsciiEncoder_127 = new A.AsciiEncoder(127);
    B.BuildStatus_failed = new A.BuildStatus("failed");
    B.BuildStatus_started = new A.BuildStatus("started");
    B.BuildStatus_succeeded = new A.BuildStatus("succeeded");
    B.C__EmptyStream = new A._EmptyStream(A.findType("_EmptyStream<List<int>>"));
    B.ByteStream__EmptyStream = new A.ByteStream(B.C__EmptyStream);
    B.CONSTANT = new A.Instantiation1(A.math__max$closure(), A.findType("Instantiation1<int>"));
    B.C_AsciiCodec = new A.AsciiCodec();
    B.C_Base64Encoder = new A.Base64Encoder();
    B.C_Base64Codec = new A.Base64Codec();
    B.C_Base64Decoder = new A.Base64Decoder();
    B.C_DefaultEquality = new A.DefaultEquality(A.findType("DefaultEquality<0&>"));
    B.C_DeepCollectionEquality = new A.DeepCollectionEquality();
    B.C_EmptyIterator = new A.EmptyIterator(A.findType("EmptyIterator<0&>"));
    B.C_IntegerDivisionByZeroException = new A.IntegerDivisionByZeroException();
    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 (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 HTMLElement == "function";
  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 userAgent = navigator.userAgent;
    if (typeof userAgent != "string") return hooks;
    if (userAgent.indexOf("DumpRenderTree") >= 0) return hooks;
    if (userAgent.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_CONST5 = function(hooks) {
  if (typeof navigator != "object") return hooks;
  var userAgent = navigator.userAgent;
  if (typeof userAgent != "string") return hooks;
  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) {
  if (typeof navigator != "object") return hooks;
  var userAgent = navigator.userAgent;
  if (typeof userAgent != "string") return hooks;
  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_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_CONST3 = function(hooks) { return hooks; }
;
    B.C_JsonCodec = new A.JsonCodec();
    B.C_Latin1Codec = new A.Latin1Codec();
    B.C_OutOfMemoryError = new A.OutOfMemoryError();
    B.C_SentinelValue = new A.SentinelValue();
    B.C_Utf8Codec = new A.Utf8Codec();
    B.C_Utf8Encoder = new A.Utf8Encoder();
    B.C__DelayedDone = new A._DelayedDone();
    B.C__JSRandom = new A._JSRandom();
    B.C__RootZone = new A._RootZone();
    B.Duration_0 = new A.Duration(0);
    B.Duration_5000000 = new A.Duration(5000000);
    B.Type_BuiltList_fj6 = A.typeLiteral("BuiltList<@>");
    B.Type_DebugEvent_gLJ = A.typeLiteral("DebugEvent");
    B.List_empty1 = makeConstList([], type$.JSArray_FullType);
    B.FullType_np4 = new A.FullType(B.Type_DebugEvent_gLJ, B.List_empty1, false);
    B.List_njn = makeConstList([B.FullType_np4], type$.JSArray_FullType);
    B.FullType_3Xm = new A.FullType(B.Type_BuiltList_fj6, B.List_njn, false);
    B.Type_String_AXU = A.typeLiteral("String");
    B.FullType_PT1 = new A.FullType(B.Type_String_AXU, B.List_empty1, false);
    B.Type_bool_wF1 = A.typeLiteral("bool");
    B.FullType_R6B = new A.FullType(B.Type_bool_wF1, B.List_empty1, false);
    B.Type_BuiltSetMultimap_yT7 = A.typeLiteral("BuiltSetMultimap<@,@>");
    B.Type_Object_A4p = A.typeLiteral("Object");
    B.FullType_kV7 = new A.FullType(B.Type_Object_A4p, B.List_empty1, false);
    B.List_03P = makeConstList([B.FullType_kV7, B.FullType_kV7], type$.JSArray_FullType);
    B.FullType_SWR = new A.FullType(B.Type_BuiltSetMultimap_yT7, B.List_03P, false);
    B.Type_BuiltListMultimap_HQW = A.typeLiteral("BuiltListMultimap<@,@>");
    B.FullType_WP0 = new A.FullType(B.Type_BuiltListMultimap_HQW, B.List_03P, false);
    B.Type_ExtensionEvent_T8C = A.typeLiteral("ExtensionEvent");
    B.FullType_I4i = new A.FullType(B.Type_ExtensionEvent_T8C, B.List_empty1, false);
    B.List_O9J = makeConstList([B.FullType_I4i], type$.JSArray_FullType);
    B.FullType_ahP = new A.FullType(B.Type_BuiltList_fj6, B.List_O9J, false);
    B.List_LtY = makeConstList([B.FullType_kV7], type$.JSArray_FullType);
    B.FullType_hm4 = new A.FullType(B.Type_BuiltList_fj6, B.List_LtY, false);
    B.Type_BuildStatus_8KJ = A.typeLiteral("BuildStatus");
    B.FullType_k5M = new A.FullType(B.Type_BuildStatus_8KJ, B.List_empty1, false);
    B.Type_BuiltMap_TeX = A.typeLiteral("BuiltMap<@,@>");
    B.FullType_mo5 = new A.FullType(B.Type_BuiltMap_TeX, B.List_03P, false);
    B.FullType_null_List_empty_false = new A.FullType(null, B.List_empty1, false);
    B.Type_int_T7V = A.typeLiteral("int");
    B.FullType_rTD = new A.FullType(B.Type_int_T7V, B.List_empty1, false);
    B.Type_BuiltSet_oHu = A.typeLiteral("BuiltSet<@>");
    B.FullType_tpw = new A.FullType(B.Type_BuiltSet_oHu, B.List_LtY, false);
    B.JsonDecoder_null = new A.JsonDecoder(null);
    B.JsonEncoder_null = new A.JsonEncoder(null);
    B.Latin1Decoder_false_255 = new A.Latin1Decoder(false, 255);
    B.Latin1Encoder_255 = new A.Latin1Encoder(255);
    B.Level_INFO_800 = new A.Level("INFO", 800);
    B.Level_SEVERE_1000 = new A.Level("SEVERE", 1000);
    B.Level_WARNING_900 = new A.Level("WARNING", 900);
    B.Type_ExtensionRequest_9GR = A.typeLiteral("ExtensionRequest");
    B.Type__$ExtensionRequest_o1C = A.typeLiteral("_$ExtensionRequest");
    B.List_2dD = makeConstList([B.Type_ExtensionRequest_9GR, B.Type__$ExtensionRequest_o1C], type$.JSArray_Type);
    B.Type_DebugInfo_ua9 = A.typeLiteral("DebugInfo");
    B.Type__$DebugInfo_ywz = A.typeLiteral("_$DebugInfo");
    B.List_55I = makeConstList([B.Type_DebugInfo_ua9, B.Type__$DebugInfo_ywz], type$.JSArray_Type);
    B.Type_ErrorResponse_WMn = A.typeLiteral("ErrorResponse");
    B.Type__$ErrorResponse_9Ps = A.typeLiteral("_$ErrorResponse");
    B.List_5LV = makeConstList([B.Type_ErrorResponse_WMn, B.Type__$ErrorResponse_9Ps], type$.JSArray_Type);
    B.Type_HotReloadResponse_Gqc = A.typeLiteral("HotReloadResponse");
    B.Type__$HotReloadResponse_56g = A.typeLiteral("_$HotReloadResponse");
    B.List_DqJ = makeConstList([B.Type_HotReloadResponse_Gqc, B.Type__$HotReloadResponse_56g], type$.JSArray_Type);
    B.Type_RegisterEvent_0Yw = A.typeLiteral("RegisterEvent");
    B.Type__$RegisterEvent_Ks1 = A.typeLiteral("_$RegisterEvent");
    B.List_EMv = makeConstList([B.Type_RegisterEvent_0Yw, B.Type__$RegisterEvent_Ks1], type$.JSArray_Type);
    B.Type_DevToolsRequest_DxE = A.typeLiteral("DevToolsRequest");
    B.Type__$DevToolsRequest_Rak = A.typeLiteral("_$DevToolsRequest");
    B.List_G46 = makeConstList([B.Type_DevToolsRequest_DxE, B.Type__$DevToolsRequest_Rak], type$.JSArray_Type);
    B.Type_IsolateStart_nRT = A.typeLiteral("IsolateStart");
    B.Type__$IsolateStart_Pnq = A.typeLiteral("_$IsolateStart");
    B.List_KpG = makeConstList([B.Type_IsolateStart_nRT, B.Type__$IsolateStart_Pnq], type$.JSArray_Type);
    B.Type_IsolateExit_QVA = A.typeLiteral("IsolateExit");
    B.Type__$IsolateExit_4XE = A.typeLiteral("_$IsolateExit");
    B.List_MJN = makeConstList([B.Type_IsolateExit_QVA, B.Type__$IsolateExit_4XE], type$.JSArray_Type);
    B.Type_ExtensionResponse_0Oi = A.typeLiteral("ExtensionResponse");
    B.Type__$ExtensionResponse_46G = A.typeLiteral("_$ExtensionResponse");
    B.List_RWp = makeConstList([B.Type_ExtensionResponse_0Oi, B.Type__$ExtensionResponse_46G], type$.JSArray_Type);
    B.Type_RunRequest_Hfm = A.typeLiteral("RunRequest");
    B.Type__$RunRequest_3ad = A.typeLiteral("_$RunRequest");
    B.List_RlA = makeConstList([B.Type_RunRequest_Hfm, B.Type__$RunRequest_3ad], type$.JSArray_Type);
    B.Type_DevToolsResponse_gVs = A.typeLiteral("DevToolsResponse");
    B.Type__$DevToolsResponse_dcs = A.typeLiteral("_$DevToolsResponse");
    B.List_TEH = makeConstList([B.Type_DevToolsResponse_gVs, B.Type__$DevToolsResponse_dcs], type$.JSArray_Type);
    B.List_Type_BuildStatus_8KJ = makeConstList([B.Type_BuildStatus_8KJ], type$.JSArray_Type);
    B.Type_BatchedDebugEvents_v7B = A.typeLiteral("BatchedDebugEvents");
    B.Type__$BatchedDebugEvents_LFV = A.typeLiteral("_$BatchedDebugEvents");
    B.List_WAE = makeConstList([B.Type_BatchedDebugEvents_v7B, B.Type__$BatchedDebugEvents_LFV], type$.JSArray_Type);
    B.List_ZNA = makeConstList([0, 0, 1048576, 531441, 1048576, 390625, 279936, 823543, 262144, 531441, 1000000, 161051, 248832, 371293, 537824, 759375, 1048576, 83521, 104976, 130321, 160000, 194481, 234256, 279841, 331776, 390625, 456976, 531441, 614656, 707281, 810000, 923521, 1048576, 35937, 39304, 42875, 46656], type$.JSArray_int);
    B.Type_HotReloadRequest_EsW = A.typeLiteral("HotReloadRequest");
    B.Type__$HotReloadRequest_ynq = A.typeLiteral("_$HotReloadRequest");
    B.List_dz9 = makeConstList([B.Type_HotReloadRequest_EsW, B.Type__$HotReloadRequest_ynq], type$.JSArray_Type);
    B.List_empty = makeConstList([], type$.JSArray_String);
    B.List_empty0 = makeConstList([], type$.JSArray_dynamic);
    B.List_fAJ = makeConstList(["d", "D", "\u2202", "\xce"], type$.JSArray_String);
    B.Type__$DebugEvent_YX4 = A.typeLiteral("_$DebugEvent");
    B.List_fK8 = makeConstList([B.Type_DebugEvent_gLJ, B.Type__$DebugEvent_YX4], type$.JSArray_Type);
    B.Type_BatchedEvents_ABc = A.typeLiteral("BatchedEvents");
    B.Type__$BatchedEvents_jAA = A.typeLiteral("_$BatchedEvents");
    B.List_oDF = makeConstList([B.Type_BatchedEvents_ABc, B.Type__$BatchedEvents_jAA], type$.JSArray_Type);
    B.Type_BuildResult_SAR = A.typeLiteral("BuildResult");
    B.Type__$BuildResult_Iwz = A.typeLiteral("_$BuildResult");
    B.List_pLn = makeConstList([B.Type_BuildResult_SAR, B.Type__$BuildResult_Iwz], type$.JSArray_Type);
    B.Type_ConnectRequest_8Nv = A.typeLiteral("ConnectRequest");
    B.Type__$ConnectRequest_3Qd = A.typeLiteral("_$ConnectRequest");
    B.List_xmd = makeConstList([B.Type_ConnectRequest_8Nv, B.Type__$ConnectRequest_3Qd], type$.JSArray_Type);
    B.Type__$ExtensionEvent_WzR = A.typeLiteral("_$ExtensionEvent");
    B.List_yvR = makeConstList([B.Type_ExtensionEvent_T8C, B.Type__$ExtensionEvent_WzR], type$.JSArray_Type);
    B.Object_empty = {};
    B.Map_empty0 = new A.ConstantStringMap(B.Object_empty, [], A.findType("ConstantStringMap<String,String>"));
    B.Map_empty = new A.ConstantStringMap(B.Object_empty, [], A.findType("ConstantStringMap<@,@>"));
    B.Type_BigInt_DZK = A.typeLiteral("BigInt");
    B.Type_BoolJsonObject_Zqn = A.typeLiteral("BoolJsonObject");
    B.Type_ByteBuffer_rqD = A.typeLiteral("ByteBuffer");
    B.Type_ByteData_9dB = A.typeLiteral("ByteData");
    B.Type_DateTime_akv = A.typeLiteral("DateTime");
    B.Type_Duration_VAs = A.typeLiteral("Duration");
    B.Type_Float32List_9Kz = A.typeLiteral("Float32List");
    B.Type_Float64List_9Kz = A.typeLiteral("Float64List");
    B.Type_Int16List_s5h = A.typeLiteral("Int16List");
    B.Type_Int32List_O8Z = A.typeLiteral("Int32List");
    B.Type_Int32_291 = A.typeLiteral("Int32");
    B.Type_Int64_LHp = A.typeLiteral("Int64");
    B.Type_Int8List_rFV = A.typeLiteral("Int8List");
    B.Type_JSObject_ttY = A.typeLiteral("JSObject");
    B.Type_JsonObject_5jQ = A.typeLiteral("JsonObject");
    B.Type_ListJsonObject_qcV = A.typeLiteral("ListJsonObject");
    B.Type_List_hc9 = A.typeLiteral("List<@>");
    B.Type_MapJsonObject_VMr = A.typeLiteral("MapJsonObject");
    B.Type_Map_9Aj = A.typeLiteral("Map<@,@>");
    B.Type_Null_0Rm = A.typeLiteral("Null");
    B.Type_NumJsonObject_hYY = A.typeLiteral("NumJsonObject");
    B.Type_RegExp_w5l = A.typeLiteral("RegExp");
    B.Type_Set_tZi = A.typeLiteral("Set<@>");
    B.Type_StringJsonObject_NL7 = A.typeLiteral("StringJsonObject");
    B.Type_Uint16List_kmP = A.typeLiteral("Uint16List");
    B.Type_Uint32List_kmP = A.typeLiteral("Uint32List");
    B.Type_Uint8ClampedList_04U = A.typeLiteral("Uint8ClampedList");
    B.Type_Uint8List_8Eb = A.typeLiteral("Uint8List");
    B.Type_Uri_l9i = A.typeLiteral("Uri");
    B.Type_double_JIQ = A.typeLiteral("double");
    B.Type_num_LZa = A.typeLiteral("num");
    B.Utf8Decoder_false = new A.Utf8Decoder(false);
    B._StringStackTrace_OdL = new A._StringStackTrace("");
    B._ZoneFunction_KjJ = new A._ZoneFunction(B.C__RootZone, A.async___rootHandleUncaughtError$closure(), type$._ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace);
    B._ZoneFunction_PAY = new A._ZoneFunction(B.C__RootZone, A.async___rootCreatePeriodicTimer$closure(), A.findType("_ZoneFunction<Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))>"));
    B._ZoneFunction_Xkh = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterUnaryCallback$closure(), A.findType("_ZoneFunction<0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))<Object?,Object?>>"));
    B._ZoneFunction__RootZone__rootCreateTimer = new A._ZoneFunction(B.C__RootZone, A.async___rootCreateTimer$closure(), A.findType("_ZoneFunction<Timer(Zone,ZoneDelegate,Zone,Duration,~())>"));
    B._ZoneFunction__RootZone__rootErrorCallback = new A._ZoneFunction(B.C__RootZone, A.async___rootErrorCallback$closure(), A.findType("_ZoneFunction<AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)>"));
    B._ZoneFunction__RootZone__rootFork = new A._ZoneFunction(B.C__RootZone, A.async___rootFork$closure(), A.findType("_ZoneFunction<Zone(Zone,ZoneDelegate,Zone,ZoneSpecification?,Map<Object?,Object?>?)>"));
    B._ZoneFunction__RootZone__rootPrint = new A._ZoneFunction(B.C__RootZone, A.async___rootPrint$closure(), A.findType("_ZoneFunction<~(Zone,ZoneDelegate,Zone,String)>"));
    B._ZoneFunction__RootZone__rootRegisterCallback = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterCallback$closure(), A.findType("_ZoneFunction<0^()(Zone,ZoneDelegate,Zone,0^())<Object?>>"));
    B._ZoneFunction__RootZone__rootRun = new A._ZoneFunction(B.C__RootZone, A.async___rootRun$closure(), A.findType("_ZoneFunction<0^(Zone,ZoneDelegate,Zone,0^())<Object?>>"));
    B._ZoneFunction__RootZone__rootRunBinary = new A._ZoneFunction(B.C__RootZone, A.async___rootRunBinary$closure(), A.findType("_ZoneFunction<0^(Zone,ZoneDelegate,Zone,0^(1^,2^),1^,2^)<Object?,Object?,Object?>>"));
    B._ZoneFunction__RootZone__rootRunUnary = new A._ZoneFunction(B.C__RootZone, A.async___rootRunUnary$closure(), A.findType("_ZoneFunction<0^(Zone,ZoneDelegate,Zone,0^(1^),1^)<Object?,Object?>>"));
    B._ZoneFunction__RootZone__rootScheduleMicrotask = new A._ZoneFunction(B.C__RootZone, A.async___rootScheduleMicrotask$closure(), A.findType("_ZoneFunction<~(Zone,ZoneDelegate,Zone,~())>"));
    B._ZoneFunction_e9o = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterBinaryCallback$closure(), A.findType("_ZoneFunction<0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))<Object?,Object?,Object?>>"));
  })();
  (function staticFields() {
    $._JS_INTEROP_INTERCEPTOR_TAG = null;
    $.toStringVisiting = A._setArrayType([], type$.JSArray_Object);
    $.printToZone = null;
    $.Primitives__identityHashCodeProperty = null;
    $.BoundClosure__receiverFieldNameCache = null;
    $.BoundClosure__interceptorFieldNameCache = null;
    $.getTagFunction = null;
    $.alternateTagFunction = null;
    $.prototypeForTagFunction = null;
    $.dispatchRecordsForInstanceTags = null;
    $.interceptorsForUncacheableTags = null;
    $.initNativeDispatchFlag = null;
    $._Record__computedFieldKeys = A._setArrayType([], A.findType("JSArray<List<Object>?>"));
    $._nextCallback = null;
    $._lastCallback = null;
    $._lastPriorityCallback = null;
    $._isInCallbackLoop = false;
    $.Zone__current = B.C__RootZone;
    $._RootZone__rootDelegate = null;
    $._BigIntImpl__lastDividendDigits = null;
    $._BigIntImpl__lastDividendUsed = null;
    $._BigIntImpl__lastDivisorDigits = null;
    $._BigIntImpl__lastDivisorUsed = null;
    $._BigIntImpl____lastQuoRemDigits = A._Cell$named("_lastQuoRemDigits");
    $._BigIntImpl____lastQuoRemUsed = A._Cell$named("_lastQuoRemUsed");
    $._BigIntImpl____lastRemUsed = A._Cell$named("_lastRemUsed");
    $._BigIntImpl____lastRem_nsh = A._Cell$named("_lastRem_nsh");
    $.Uri__cachedBaseString = "";
    $.Uri__cachedBaseUri = null;
    $._indentingBuiltValueToStringHelperIndent = 0;
    $.LogRecord__nextNumber = 0;
    $.Logger__loggers = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.Logger);
    $._currentUriBase = null;
    $._current = null;
    $.V1State_nodeId = A._setArrayType([], type$.JSArray_int);
    $.V1State_clockSeq = 0;
    $.V1State_mSecs = 0;
    $.V1State_nSecs = 0;
    $.V1State_initialized = false;
    $.RequireRestarter____lastKnownDigests = A._Cell$named("_lastKnownDigests");
  })();
  (function lazyInitializers() {
    var _lazyFinal = hunkHelpers.lazyFinal,
      _lazy = hunkHelpers.lazy;
    _lazyFinal($, "DART_CLOSURE_PROPERTY_NAME", "$get$DART_CLOSURE_PROPERTY_NAME", () => A.getIsolateAffinityTag("_$dart_dartClosure"));
    _lazyFinal($, "nullFuture", "$get$nullFuture", () => B.C__RootZone.run$1$1(new A.nullFuture_closure(), type$.Future_void));
    _lazyFinal($, "_safeToStringHooks", "$get$_safeToStringHooks", () => A._setArrayType([new J.JSArraySafeToStringHook()], A.findType("JSArray<SafeToStringHook>")));
    _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($, "Future__nullFuture", "$get$Future__nullFuture", () => $.$get$nullFuture());
    _lazyFinal($, "_RootZone__rootMap", "$get$_RootZone__rootMap", () => {
      var t1 = type$.dynamic;
      return A.HashMap_HashMap(null, null, null, t1, t1);
    });
    _lazyFinal($, "_Utf8Decoder__reusableBuffer", "$get$_Utf8Decoder__reusableBuffer", () => A.NativeUint8List_NativeUint8List(4096));
    _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($, "_Base64Decoder__inverseAlphabet", "$get$_Base64Decoder__inverseAlphabet", () => A.NativeInt8List__create1(A._ensureNativeList(A._setArrayType([-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, -2, -2, -2, -2, -2, -1, -2, -2, -2, -2, -2, 62, -2, 62, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, -1, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, 63, -2, 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, -2, -2, -2, -2, -2], type$.JSArray_int))));
    _lazy($, "_Base64Decoder__emptyBuffer", "$get$_Base64Decoder__emptyBuffer", () => A.NativeUint8List_NativeUint8List(0));
    _lazyFinal($, "Encoding__nameToEncoding", "$get$Encoding__nameToEncoding", () => A.LinkedHashMap_LinkedHashMap$_literal(["iso_8859-1:1987", B.C_Latin1Codec, "iso-ir-100", B.C_Latin1Codec, "iso_8859-1", B.C_Latin1Codec, "iso-8859-1", B.C_Latin1Codec, "latin1", B.C_Latin1Codec, "l1", B.C_Latin1Codec, "ibm819", B.C_Latin1Codec, "cp819", B.C_Latin1Codec, "csisolatin1", B.C_Latin1Codec, "iso-ir-6", B.C_AsciiCodec, "ansi_x3.4-1968", B.C_AsciiCodec, "ansi_x3.4-1986", B.C_AsciiCodec, "iso_646.irv:1991", B.C_AsciiCodec, "iso646-us", B.C_AsciiCodec, "us-ascii", B.C_AsciiCodec, "us", B.C_AsciiCodec, "ibm367", B.C_AsciiCodec, "cp367", B.C_AsciiCodec, "csascii", B.C_AsciiCodec, "ascii", B.C_AsciiCodec, "csutf8", B.C_Utf8Codec, "utf-8", B.C_Utf8Codec], type$.String, A.findType("Encoding")));
    _lazyFinal($, "_BigIntImpl_zero", "$get$_BigIntImpl_zero", () => A._BigIntImpl__BigIntImpl$_fromInt(0));
    _lazyFinal($, "_BigIntImpl_one", "$get$_BigIntImpl_one", () => A._BigIntImpl__BigIntImpl$_fromInt(1));
    _lazyFinal($, "_BigIntImpl__minusOne", "$get$_BigIntImpl__minusOne", () => $.$get$_BigIntImpl_one().$negate(0));
    _lazyFinal($, "_BigIntImpl__bigInt10000", "$get$_BigIntImpl__bigInt10000", () => A._BigIntImpl__BigIntImpl$_fromInt(10000));
    _lazy($, "_BigIntImpl__parseRE", "$get$_BigIntImpl__parseRE", () => A.RegExp_RegExp("^\\s*([+-]?)((0x[a-f0-9]+)|(\\d+)|([a-z0-9]+))\\s*$", false, false));
    _lazyFinal($, "_Uri__needsNoEncoding", "$get$_Uri__needsNoEncoding", () => A.RegExp_RegExp("^[\\-\\.0-9A-Z_a-z~]*$", true, false));
    _lazyFinal($, "_hashSeed", "$get$_hashSeed", () => A.objectHashCode(B.Type_Object_A4p));
    _lazyFinal($, "_jsBoxedDartObjectProperty", "$get$_jsBoxedDartObjectProperty", () => Symbol("jsBoxedDartObjectProperty"));
    _lazyFinal($, "isSoundMode", "$get$isSoundMode", () => !type$.List_int._is(A._setArrayType([], A.findType("JSArray<int?>"))));
    _lazy($, "newBuiltValueToStringHelper", "$get$newBuiltValueToStringHelper", () => new A.newBuiltValueToStringHelper_closure());
    _lazyFinal($, "_runtimeType", "$get$_runtimeType", () => A.getRuntimeTypeOfDartObject(A.RegExp_RegExp("", true, false)));
    _lazy($, "_$buildStatusSerializer", "$get$_$buildStatusSerializer", () => new A._$BuildStatusSerializer());
    _lazy($, "_$buildResultSerializer", "$get$_$buildResultSerializer", () => new A._$BuildResultSerializer());
    _lazy($, "_$connectRequestSerializer", "$get$_$connectRequestSerializer", () => new A._$ConnectRequestSerializer());
    _lazy($, "_$debugEventSerializer", "$get$_$debugEventSerializer", () => new A._$DebugEventSerializer());
    _lazy($, "_$batchedDebugEventsSerializer", "$get$_$batchedDebugEventsSerializer", () => new A._$BatchedDebugEventsSerializer());
    _lazy($, "_$debugInfoSerializer", "$get$_$debugInfoSerializer", () => new A._$DebugInfoSerializer());
    _lazy($, "_$devToolsRequestSerializer", "$get$_$devToolsRequestSerializer", () => new A._$DevToolsRequestSerializer());
    _lazy($, "_$devToolsResponseSerializer", "$get$_$devToolsResponseSerializer", () => new A._$DevToolsResponseSerializer());
    _lazy($, "_$errorResponseSerializer", "$get$_$errorResponseSerializer", () => new A._$ErrorResponseSerializer());
    _lazy($, "_$extensionRequestSerializer", "$get$_$extensionRequestSerializer", () => new A._$ExtensionRequestSerializer());
    _lazy($, "_$extensionResponseSerializer", "$get$_$extensionResponseSerializer", () => new A._$ExtensionResponseSerializer());
    _lazy($, "_$extensionEventSerializer", "$get$_$extensionEventSerializer", () => new A._$ExtensionEventSerializer());
    _lazy($, "_$batchedEventsSerializer", "$get$_$batchedEventsSerializer", () => new A._$BatchedEventsSerializer());
    _lazy($, "_$hotReloadRequestSerializer", "$get$_$hotReloadRequestSerializer", () => new A._$HotReloadRequestSerializer());
    _lazy($, "_$hotReloadResponseSerializer", "$get$_$hotReloadResponseSerializer", () => new A._$HotReloadResponseSerializer());
    _lazy($, "_$isolateExitSerializer", "$get$_$isolateExitSerializer", () => new A._$IsolateExitSerializer());
    _lazy($, "_$isolateStartSerializer", "$get$_$isolateStartSerializer", () => new A._$IsolateStartSerializer());
    _lazy($, "_$registerEventSerializer", "$get$_$registerEventSerializer", () => new A._$RegisterEventSerializer());
    _lazy($, "_$runRequestSerializer", "$get$_$runRequestSerializer", () => new A._$RunRequestSerializer());
    _lazyFinal($, "serializers", "$get$serializers", () => $.$get$_$serializers());
    _lazy($, "_$serializers", "$get$_$serializers", () => {
      var t1 = A.Serializers_Serializers();
      t1 = A.BuiltJsonSerializersBuilder$_(t1._typeToSerializer.toBuilder$0(), t1._wireNameToSerializer.toBuilder$0(), t1._typeNameToSerializer.toBuilder$0(), t1.builderFactories.toBuilder$0(), t1.serializerPlugins.toBuilder$0());
      t1.add$1(0, $.$get$_$batchedDebugEventsSerializer());
      t1.add$1(0, $.$get$_$batchedEventsSerializer());
      t1.add$1(0, $.$get$_$buildResultSerializer());
      t1.add$1(0, $.$get$_$buildStatusSerializer());
      t1.add$1(0, $.$get$_$connectRequestSerializer());
      t1.add$1(0, $.$get$_$debugEventSerializer());
      t1.add$1(0, $.$get$_$debugInfoSerializer());
      t1.add$1(0, $.$get$_$devToolsRequestSerializer());
      t1.add$1(0, $.$get$_$devToolsResponseSerializer());
      t1.add$1(0, $.$get$_$errorResponseSerializer());
      t1.add$1(0, $.$get$_$extensionEventSerializer());
      t1.add$1(0, $.$get$_$extensionRequestSerializer());
      t1.add$1(0, $.$get$_$extensionResponseSerializer());
      t1.add$1(0, $.$get$_$hotReloadRequestSerializer());
      t1.add$1(0, $.$get$_$hotReloadResponseSerializer());
      t1.add$1(0, $.$get$_$isolateExitSerializer());
      t1.add$1(0, $.$get$_$isolateStartSerializer());
      t1.add$1(0, $.$get$_$registerEventSerializer());
      t1.add$1(0, $.$get$_$runRequestSerializer());
      t1.addBuilderFactory$2(B.FullType_3Xm, new A._$serializers_closure());
      t1.addBuilderFactory$2(B.FullType_ahP, new A._$serializers_closure0());
      return t1.build$0();
    });
    _lazyFinal($, "_logger", "$get$_logger", () => A.Logger_Logger("Utilities"));
    _lazyFinal($, "BaseRequest__tokenRE", "$get$BaseRequest__tokenRE", () => A.RegExp_RegExp("^[\\w!#%&'*+\\-.^`|~]+$", true, false));
    _lazyFinal($, "_digitRegex", "$get$_digitRegex", () => A.RegExp_RegExp("^\\d+$", true, false));
    _lazyFinal($, "_escapedChar", "$get$_escapedChar", () => A.RegExp_RegExp('["\\x00-\\x1F\\x7F]', true, false));
    _lazyFinal($, "token", "$get$token", () => A.RegExp_RegExp('[^()<>@,;:"\\\\/[\\]?={} \\t\\x00-\\x1F\\x7F]+', true, false));
    _lazyFinal($, "_lws", "$get$_lws", () => A.RegExp_RegExp("(?:\\r\\n)?[ \\t]+", true, false));
    _lazyFinal($, "_quotedString", "$get$_quotedString", () => A.RegExp_RegExp('"(?:[^"\\x00-\\x1F\\x7F]|\\\\.)*"', true, false));
    _lazyFinal($, "_quotedPair", "$get$_quotedPair", () => A.RegExp_RegExp("\\\\(.)", true, false));
    _lazyFinal($, "nonToken", "$get$nonToken", () => A.RegExp_RegExp('[()<>@,;:"\\\\/\\[\\]?={} \\t\\x00-\\x1F\\x7F]', true, false));
    _lazyFinal($, "whitespace", "$get$whitespace", () => A.RegExp_RegExp("(?:" + $.$get$_lws().pattern + ")*", true, false));
    _lazyFinal($, "Logger_root", "$get$Logger_root", () => A.Logger_Logger(""));
    _lazyFinal($, "context", "$get$context", () => new A.Context($.$get$Style_platform(), null));
    _lazyFinal($, "Style_posix", "$get$Style_posix", () => new A.PosixStyle(A.RegExp_RegExp("/", true, false), A.RegExp_RegExp("[^/]$", true, false), A.RegExp_RegExp("^/", true, false)));
    _lazyFinal($, "Style_windows", "$get$Style_windows", () => new A.WindowsStyle(A.RegExp_RegExp("[/\\\\]", true, false), A.RegExp_RegExp("[^/\\\\]$", true, false), A.RegExp_RegExp("^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])", true, false), A.RegExp_RegExp("^[/\\\\](?![/\\\\])", true, false)));
    _lazyFinal($, "Style_url", "$get$Style_url", () => new A.UrlStyle(A.RegExp_RegExp("/", true, false), A.RegExp_RegExp("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$", true, false), A.RegExp_RegExp("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*", true, false), A.RegExp_RegExp("^/", true, false)));
    _lazyFinal($, "Style_platform", "$get$Style_platform", () => A.Style__getPlatformStyle());
    _lazyFinal($, "_requestPool", "$get$_requestPool", () => {
      var t4,
        t1 = A.findType("Completer<PoolResource>"),
        t2 = A.ListQueue$(t1),
        t3 = A.ListQueue$(type$.void_Function);
      t1 = A.ListQueue$(t1);
      t4 = A.Completer_Completer(type$.dynamic);
      return new A.Pool(t2, t3, t1, 1000, new A.AsyncMemoizer(t4, A.findType("AsyncMemoizer<@>")));
    });
    _lazy($, "V1State_random", "$get$V1State_random", () => {
      var t1 = A.Random_Random(null);
      return new A.MathRNG(t1);
    });
    _lazyFinal($, "UuidParsing__byteToHex", "$get$UuidParsing__byteToHex", () => {
      var i,
        _list = J.JSArray_JSArray$allocateGrowable(256, type$.String);
      for (i = 0; i < 256; ++i)
        _list[i] = B.JSString_methods.padLeft$2(B.JSInt_methods.toRadixString$1(i, 16), 2, "0");
      return _list;
    });
    _lazyFinal($, "_noncePattern", "$get$_noncePattern", () => A.RegExp_RegExp("^[\\w+/_-]+[=]{0,2}$", true, false));
    _lazyFinal($, "_createScript", "$get$_createScript", () => new A._createScript_closure().call$0());
  })();
  (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: A.NativeByteBuffer, ArrayBufferView: A.NativeTypedData, DataView: A.NativeByteData, 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});
    hunkHelpers.setOrUpdateLeafTags({ArrayBuffer: true, ArrayBufferView: false, DataView: true, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false});
    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";
  })();
  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$1$1 = function(a) {
    return this(a);
  };
  Function.prototype.call$3$3 = function(a, b, c) {
    return this(a, b, c);
  };
  Function.prototype.call$5 = function(a, b, c, d, e) {
    return this(a, b, c, d, e);
  };
  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$3$6 = function(a, b, c, d, e, f) {
    return this(a, b, c, d, e, f);
  };
  Function.prototype.call$1$4 = function(a, b, c, d) {
    return this(a, b, c, d);
  };
  Function.prototype.call$2$1 = function(a) {
    return this(a);
  };
  Function.prototype.call$2$5 = function(a, b, c, d, e) {
    return this(a, b, c, d, e);
  };
  Function.prototype.call$2$4 = function(a, b, c, d) {
    return this(a, b, c, d);
  };
  Function.prototype.call$3$1 = function(a) {
    return this(a);
  };
  Function.prototype.call$3$4 = function(a, b, c, d) {
    return this(a, b, c, d);
  };
  Function.prototype.call$2$2 = function(a, b) {
    return this(a, b);
  };
  Function.prototype.call$2$3 = function(a, b, c) {
    return this(a, b, c);
  };
  Function.prototype.call$1$2 = function(a, b) {
    return this(a, b);
  };
  Function.prototype.call$1$0 = function() {
    return this();
  };
  Function.prototype.call$2$0 = function() {
    return this();
  };
  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([]);
    }
  });
})();
