Exit Full View

Cavern Quest 2 / build / compileSync / js / main / productionExecutable / kotlin / glok-glok-model.js

(function (factory) {
  if (typeof define === 'function' && define.amd)
    define(['exports', './kotlin-kotlin-stdlib.js'], factory);
  else if (typeof exports === 'object')
    factory(module.exports, require('./kotlin-kotlin-stdlib.js'));
  else {
    if (typeof globalThis['kotlin-kotlin-stdlib'] === 'undefined') {
      throw new Error("Error loading module 'glok-glok-model'. Its dependency 'kotlin-kotlin-stdlib' was not found. Please, check whether 'kotlin-kotlin-stdlib' is loaded prior to 'glok-glok-model'.");
    }
    globalThis['glok-glok-model'] = factory(typeof globalThis['glok-glok-model'] === 'undefined' ? {} : globalThis['glok-glok-model'], globalThis['kotlin-kotlin-stdlib']);
  }
}(function (_, kotlin_kotlin) {
  'use strict';
  //region block: imports
  var emptyList = kotlin_kotlin.$_$.b2;
  var protoOf = kotlin_kotlin.$_$.d5;
  var initMetadataForClass = kotlin_kotlin.$_$.q4;
  var VOID = kotlin_kotlin.$_$.c;
  var THROW_CCE = kotlin_kotlin.$_$.n6;
  var isInterface = kotlin_kotlin.$_$.v4;
  var initMetadataForCompanion = kotlin_kotlin.$_$.r4;
  var KtList = kotlin_kotlin.$_$.q1;
  var MutableCollection = kotlin_kotlin.$_$.s1;
  var initMetadataForInterface = kotlin_kotlin.$_$.s4;
  var Unit_instance = kotlin_kotlin.$_$.o1;
  var listOf = kotlin_kotlin.$_$.i2;
  var ArrayList_init_$Create$ = kotlin_kotlin.$_$.f;
  var toList = kotlin_kotlin.$_$.z2;
  var toString = kotlin_kotlin.$_$.f5;
  var throwUninitializedPropertyAccessException = kotlin_kotlin.$_$.x6;
  var UnsupportedOperationException_init_$Create$ = kotlin_kotlin.$_$.a1;
  var collectionSizeOrDefault = kotlin_kotlin.$_$.z1;
  var ArrayList_init_$Create$_0 = kotlin_kotlin.$_$.e;
  var toSet = kotlin_kotlin.$_$.e3;
  var KtSet = kotlin_kotlin.$_$.v1;
  var MutableEntry = kotlin_kotlin.$_$.t1;
  var Pair = kotlin_kotlin.$_$.l6;
  var putAll = kotlin_kotlin.$_$.q2;
  var equals = kotlin_kotlin.$_$.j4;
  var KtMap = kotlin_kotlin.$_$.r1;
  var setOf = kotlin_kotlin.$_$.u2;
  var RandomAccess = kotlin_kotlin.$_$.u1;
  var anyToString = kotlin_kotlin.$_$.b4;
  var hashCode = kotlin_kotlin.$_$.p4;
  var emptySet = kotlin_kotlin.$_$.c2;
  var toString_0 = kotlin_kotlin.$_$.y6;
  var removeAll = kotlin_kotlin.$_$.r2;
  var getKClassFromExpression = kotlin_kotlin.$_$.a;
  var Exception_init_$Create$ = kotlin_kotlin.$_$.q;
  var startsWith = kotlin_kotlin.$_$.w5;
  var endsWith = kotlin_kotlin.$_$.q5;
  var Exception = kotlin_kotlin.$_$.i6;
  var Exception_init_$Init$ = kotlin_kotlin.$_$.p;
  var captureStack = kotlin_kotlin.$_$.c4;
  //endregion
  //region block: pre-declaration
  function addListener(lambda) {
    // Inline function 'kotlin.also' call
    var this_0 = invalidationListener(lambda);
    // Inline function 'uk.co.nickthecoder.glok.property.Observable.addListener.<anonymous>' call
    this.hf(this_0);
    return this_0;
  }
  function addWeakListener(lambda) {
    var inner = invalidationListener(lambda);
    var wrapper = new WeakInvalidationListener(inner);
    this.hf(wrapper);
    return inner;
  }
  initMetadataForInterface(Observable, 'Observable');
  function addChangeListener(lambda) {
    var lcl = listChangeListener(lambda);
    this.if(lcl);
    return lcl;
  }
  initMetadataForInterface(ObservableList, 'ObservableList', VOID, VOID, [KtList, Observable]);
  initMetadataForClass(EmptyObservableList, 'EmptyObservableList', EmptyObservableList, VOID, [ObservableList]);
  initMetadataForCompanion(Companion);
  initMetadataForClass(ListChangeImpl, 'ListChangeImpl');
  initMetadataForClass(listChangeListener$1);
  initMetadataForCompanion(Companion_0);
  initMetadataForClass(MapChangeImpl, 'MapChangeImpl');
  function asReadOnly() {
    return new ReadOnlyObservableListWrapper(this);
  }
  initMetadataForInterface(MutableObservableList, 'MutableObservableList', VOID, VOID, [KtList, MutableCollection, ObservableList]);
  initMetadataForClass(ObservableMutableListIterator, 'ObservableMutableListIterator');
  initMetadataForClass(MutableObservableListWrapper, 'MutableObservableListWrapper', VOID, VOID, [MutableObservableList]);
  initMetadataForClass(KeySet, 'KeySet', VOID, VOID, [MutableCollection, KtSet]);
  initMetadataForClass(KeysIterator, 'KeysIterator');
  initMetadataForClass(EntriesSet, 'EntriesSet', VOID, VOID, [MutableCollection, KtSet]);
  initMetadataForClass(EntriesIterator, 'EntriesIterator');
  initMetadataForClass(EntriesEntry, 'EntriesEntry', VOID, VOID, [MutableEntry]);
  initMetadataForClass(MutableObservableMapWrapper, 'MutableObservableMapWrapper', VOID, VOID, [Observable, KtMap]);
  initMetadataForClass(ObservableMutableIterator, 'ObservableMutableIterator');
  initMetadataForClass(MutableObservableSetWrapper, 'MutableObservableSetWrapper', VOID, VOID, [MutableCollection, Observable, KtSet]);
  initMetadataForInterface(ReadOnly, 'ReadOnly');
  initMetadataForClass(ReadOnlyList, 'ReadOnlyList', VOID, VOID, [KtList, ReadOnly]);
  initMetadataForClass(ReadOnlyRandomAccessList, 'ReadOnlyRandomAccessList', VOID, ReadOnlyList, [ReadOnlyList, KtList, ReadOnly, RandomAccess]);
  initMetadataForClass(ReadOnlyIterator, 'ReadOnlyIterator', VOID, VOID, [ReadOnly]);
  initMetadataForClass(ReadOnlyListIterator, 'ReadOnlyListIterator', VOID, VOID, [ReadOnly]);
  initMetadataForClass(ReadOnlyObservableListWrapper, 'ReadOnlyObservableListWrapper', VOID, VOID, [ObservableList]);
  initMetadataForCompanion(Companion_1);
  initMetadataForClass(SetChangeImpl, 'SetChangeImpl');
  initMetadataForClass(AbstractBidirectionalBind, 'AbstractBidirectionalBind');
  initMetadataForClass(SimpleBidirectionalBind, 'SimpleBidirectionalBind', VOID, AbstractBidirectionalBind);
  initMetadataForClass(BidirectionalGuard, 'BidirectionalGuard', BidirectionalGuard);
  function addChangeListener_0(lambda) {
    // Inline function 'kotlin.also' call
    var this_0 = changeListener(lambda);
    // Inline function 'uk.co.nickthecoder.glok.property.ObservableValue.addChangeListener.<anonymous>' call
    this.yj(this_0);
    return this_0;
  }
  function addBindChangeListener(lambda) {
    // Inline function 'kotlin.also' call
    var this_0 = changeListener(lambda);
    // Inline function 'uk.co.nickthecoder.glok.property.ObservableValue.addBindChangeListener.<anonymous>' call
    this.zj(this_0);
    return this_0;
  }
  function addWeakChangeListener(lambda) {
    var inner = changeListener(lambda);
    var wrapper = new WeakChangeListener(inner);
    this.yj(wrapper);
    return inner;
  }
  function getValue(thisRef, kProperty) {
    return this.t1();
  }
  function sameInstance(other) {
    return new BooleanUnaryFunction(this, ObservableValue$sameInstance$lambda(other));
  }
  initMetadataForInterface(ObservableValue, 'ObservableValue', VOID, VOID, [Observable]);
  initMetadataForClass(ObservableValueBase, 'ObservableValueBase', VOID, VOID, [ObservableValue]);
  initMetadataForClass(LazyObservableValue, 'LazyObservableValue', VOID, ObservableValueBase);
  initMetadataForClass(BinaryFunction, 'BinaryFunction', VOID, LazyObservableValue);
  initMetadataForClass(TernaryFunction, 'TernaryFunction', VOID, LazyObservableValue);
  initMetadataForClass(WeakChangeListener, 'WeakChangeListener');
  initMetadataForClass(changeListener$1);
  function setValue(thisRef, kProperty, newValue) {
    this.ni(newValue);
  }
  initMetadataForInterface(Property, 'Property', VOID, VOID, [ObservableValue]);
  initMetadataForClass(PropertyBase, 'PropertyBase', VOID, ObservableValueBase, [ObservableValueBase, Property]);
  initMetadataForClass(IndirectProperty, 'IndirectProperty', VOID, PropertyBase);
  initMetadataForClass(WeakInvalidationListener, 'WeakInvalidationListener');
  initMetadataForClass(invalidationListener$1);
  initMetadataForClass(CachedValue, 'CachedValue');
  initMetadataForClass(PropertyDelegate, 'PropertyDelegate');
  initMetadataForClass(PropertyException, 'PropertyException', VOID, Exception);
  initMetadataForClass(ReadOnlyPropertyWrapper, 'ReadOnlyPropertyWrapper', VOID, VOID, [ObservableValue]);
  initMetadataForClass(SimpleProperty, 'SimpleProperty', VOID, PropertyBase);
  initMetadataForClass(UnaryFunction, 'UnaryFunction', VOID, LazyObservableValue);
  initMetadataForClass(BooleanBinaryFunction, 'BooleanBinaryFunction', VOID, BinaryFunction, [BinaryFunction, ObservableValue]);
  initMetadataForClass(BooleanUnaryFunction, 'BooleanUnaryFunction', VOID, UnaryFunction, [UnaryFunction, ObservableValue]);
  function asReadOnly_0() {
    return new ReadOnlyBooleanPropertyWrapper(this);
  }
  initMetadataForInterface(BooleanProperty, 'BooleanProperty', VOID, VOID, [Property, ObservableValue]);
  initMetadataForClass(SimpleBooleanProperty, 'SimpleBooleanProperty', VOID, SimpleProperty, [SimpleProperty, BooleanProperty]);
  initMetadataForClass(ReadOnlyBooleanPropertyWrapper, 'ReadOnlyBooleanPropertyWrapper', VOID, ReadOnlyPropertyWrapper, [ReadOnlyPropertyWrapper, ObservableValue]);
  initMetadataForClass(SimpleDoubleProperty, 'SimpleDoubleProperty', VOID, SimpleProperty, [SimpleProperty, ObservableValue, Property]);
  function asReadOnly_1() {
    return new ReadOnlyFloatPropertyWrapper(this);
  }
  initMetadataForInterface(FloatProperty, 'FloatProperty', VOID, VOID, [Property, ObservableValue]);
  initMetadataForClass(FloatUnaryFunction, 'FloatUnaryFunction', VOID, UnaryFunction, [UnaryFunction, ObservableValue]);
  initMetadataForClass(ReadOnlyFloatPropertyWrapper, 'ReadOnlyFloatPropertyWrapper', VOID, ReadOnlyPropertyWrapper, [ReadOnlyPropertyWrapper, ObservableValue]);
  initMetadataForClass(SimpleFloatProperty, 'SimpleFloatProperty', VOID, SimpleProperty, [SimpleProperty, FloatProperty]);
  initMetadataForClass(FloatBinaryFunction, 'FloatBinaryFunction', VOID, BinaryFunction, [BinaryFunction, ObservableValue]);
  initMetadataForInterface(IntProperty, 'IntProperty', VOID, VOID, [Property, ObservableValue]);
  initMetadataForClass(SimpleIntProperty, 'SimpleIntProperty', VOID, SimpleProperty, [SimpleProperty, IntProperty]);
  initMetadataForInterface(StringProperty, 'StringProperty', VOID, VOID, [Property, ObservableValue]);
  initMetadataForClass(SimpleStringProperty, 'SimpleStringProperty', VOID, SimpleProperty, [SimpleProperty, StringProperty]);
  initMetadataForClass(observableFalse$1, VOID, VOID, LazyObservableValue, [LazyObservableValue, ObservableValue]);
  initMetadataForClass(observableTrue$1, VOID, VOID, LazyObservableValue, [LazyObservableValue, ObservableValue]);
  initMetadataForClass(Weak, 'Weak');
  //endregion
  function get_emptyObservableList() {
    _init_properties_EmptyObservableList_kt__i3uxs4();
    return emptyObservableList;
  }
  var emptyObservableList;
  function EmptyObservableList() {
    this.gf_1 = emptyList();
  }
  protoOf(EmptyObservableList).hf = function (listener) {
  };
  protoOf(EmptyObservableList).if = function (listener) {
  };
  protoOf(EmptyObservableList).j = function () {
    return 0;
  };
  protoOf(EmptyObservableList).k = function (index) {
    return this.gf_1.k(index);
  };
  protoOf(EmptyObservableList).l = function () {
    return true;
  };
  protoOf(EmptyObservableList).g = function () {
    return this.gf_1.g();
  };
  protoOf(EmptyObservableList).q1 = function (index) {
    return this.gf_1.q1(index);
  };
  protoOf(EmptyObservableList).v = function (fromIndex, toIndex) {
    return this.gf_1.v(fromIndex, toIndex);
  };
  protoOf(EmptyObservableList).p1 = function (element) {
    return this.gf_1.p1(element);
  };
  protoOf(EmptyObservableList).o1 = function (element) {
    return this.gf_1.o1(element);
  };
  function emptyObservableList_0() {
    _init_properties_EmptyObservableList_kt__i3uxs4();
    var tmp = get_emptyObservableList();
    return isInterface(tmp, ObservableList) ? tmp : THROW_CCE();
  }
  var properties_initialized_EmptyObservableList_kt_7ro9um;
  function _init_properties_EmptyObservableList_kt__i3uxs4() {
    if (!properties_initialized_EmptyObservableList_kt_7ro9um) {
      properties_initialized_EmptyObservableList_kt_7ro9um = true;
      emptyObservableList = new EmptyObservableList();
    }
  }
  function Companion() {
  }
  protoOf(Companion).jf = function (from, removed) {
    return new ListChangeImpl(from, emptyList(), removed);
  };
  protoOf(Companion).kf = function (from, added) {
    return new ListChangeImpl(from, added, emptyList());
  };
  protoOf(Companion).lf = function (from, added, removed) {
    return new ListChangeImpl(from, added, removed);
  };
  var Companion_instance;
  function Companion_getInstance() {
    return Companion_instance;
  }
  function ListChangeImpl(from, added, removed) {
    this.mf_1 = from;
    this.nf_1 = added;
    this.of_1 = removed;
  }
  protoOf(ListChangeImpl).pf = function () {
    return this.mf_1;
  };
  protoOf(ListChangeImpl).qf = function () {
    return this.nf_1;
  };
  protoOf(ListChangeImpl).rf = function () {
    return this.of_1;
  };
  protoOf(ListChangeImpl).toString = function () {
    return 'List Change from ' + this.mf_1 + ' : Added ' + this.nf_1.j() + ' Removed ' + this.of_1.j();
  };
  function listChangeListener(lambda) {
    return new listChangeListener$1(lambda);
  }
  function listChangeListener$1($lambda) {
    this.sf_1 = $lambda;
  }
  protoOf(listChangeListener$1).tf = function (list, change) {
    this.sf_1(list, change);
  };
  function Companion_0() {
  }
  protoOf(Companion_0).uf = function (key, value) {
    return new MapChangeImpl(true, key, value, null);
  };
  protoOf(Companion_0).vf = function (map, key, value) {
    return new MapChangeImpl(false, key, value, map.w1(key));
  };
  var Companion_instance_0;
  function Companion_getInstance_0() {
    return Companion_instance_0;
  }
  function MapChangeImpl(isRemoval, key, value, oldValue) {
    this.wf_1 = isRemoval;
    this.xf_1 = key;
    this.yf_1 = value;
    this.zf_1 = oldValue;
  }
  protoOf(MapChangeImpl).toString = function () {
    return 'Map Change';
  };
  function MutableObservableList() {
  }
  function asMutableObservableList(_this__u8e3s4) {
    return new MutableObservableListWrapper(_this__u8e3s4);
  }
  function invalidate($this, change) {
    var _iterator__ex2g4s = $this.eg_1.g();
    while (_iterator__ex2g4s.h()) {
      var l = _iterator__ex2g4s.i();
      l.gg($this);
    }
    var _iterator__ex2g4s_0 = $this.fg_1.g();
    while (_iterator__ex2g4s_0.h()) {
      var l_0 = _iterator__ex2g4s_0.i();
      l_0.tf($this, change);
    }
  }
  function ObservableMutableListIterator($outer, inner) {
    this.ig_1 = $outer;
    this.hg_1 = inner;
  }
  protoOf(ObservableMutableListIterator).h = function () {
    return this.hg_1.h();
  };
  protoOf(ObservableMutableListIterator).l3 = function () {
    return this.hg_1.l3();
  };
  protoOf(ObservableMutableListIterator).i = function () {
    return this.hg_1.i();
  };
  protoOf(ObservableMutableListIterator).m3 = function () {
    return this.hg_1.m3();
  };
  protoOf(ObservableMutableListIterator).n3 = function () {
    return this.hg_1.n3();
  };
  protoOf(ObservableMutableListIterator).o3 = function () {
    return this.hg_1.o3();
  };
  protoOf(ObservableMutableListIterator).y2 = function () {
    var lastRet = this.m3() - 1 | 0;
    var removed = listOf(this.ig_1.cg_1.k(lastRet));
    this.hg_1.y2();
    var change = Companion_instance.jf(lastRet, removed);
    invalidate(this.ig_1, change);
  };
  function MutableObservableListWrapper$subList$lambda(this$0, $fromIndex) {
    return function (_unused_var__etf5q3, change) {
      var _iterator__ex2g4s = this$0.eg_1.g();
      while (_iterator__ex2g4s.h()) {
        var listener = _iterator__ex2g4s.i();
        listener.gg(this$0);
      }
      var mappedChange = new ListChangeImpl(change.pf() + $fromIndex | 0, change.qf(), change.rf());
      var _iterator__ex2g4s_0 = this$0.fg_1.g();
      while (_iterator__ex2g4s_0.h()) {
        var listener_0 = _iterator__ex2g4s_0.i();
        listener_0.tf(this$0, mappedChange);
      }
      return Unit_instance;
    };
  }
  function MutableObservableListWrapper(actual) {
    this.cg_1 = actual;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.dg_1 = ArrayList_init_$Create$();
    var tmp_0 = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp_0.eg_1 = ArrayList_init_$Create$();
    var tmp_1 = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp_1.fg_1 = ArrayList_init_$Create$();
  }
  protoOf(MutableObservableListWrapper).hf = function (listener) {
    this.eg_1.e(listener);
  };
  protoOf(MutableObservableListWrapper).if = function (listener) {
    this.fg_1.e(listener);
  };
  protoOf(MutableObservableListWrapper).j = function () {
    return this.cg_1.j();
  };
  protoOf(MutableObservableListWrapper).k = function (index) {
    return this.cg_1.k(index);
  };
  protoOf(MutableObservableListWrapper).l = function () {
    return this.cg_1.l();
  };
  protoOf(MutableObservableListWrapper).g = function () {
    return new ObservableMutableListIterator(this, this.cg_1.w3());
  };
  protoOf(MutableObservableListWrapper).w3 = function () {
    return new ObservableMutableListIterator(this, this.cg_1.w3());
  };
  protoOf(MutableObservableListWrapper).q1 = function (index) {
    return new ObservableMutableListIterator(this, this.cg_1.q1(index));
  };
  protoOf(MutableObservableListWrapper).v = function (fromIndex, toIndex) {
    var observableSubList = asMutableObservableList(this.cg_1.v(fromIndex, toIndex));
    var listener = observableSubList.bg(MutableObservableListWrapper$subList$lambda(this, fromIndex));
    (observableSubList instanceof MutableObservableListWrapper ? observableSubList : THROW_CCE()).dg_1.e(listener);
    return observableSubList;
  };
  protoOf(MutableObservableListWrapper).p1 = function (element) {
    return this.cg_1.p1(element);
  };
  protoOf(MutableObservableListWrapper).o1 = function (element) {
    return this.cg_1.o1(element);
  };
  protoOf(MutableObservableListWrapper).a3 = function () {
    var change = Companion_instance.jf(0, toList(this.cg_1));
    this.cg_1.a3();
    invalidate(this, change);
  };
  protoOf(MutableObservableListWrapper).p = function (elements) {
    var change = Companion_instance.kf(this.cg_1.j(), toList(elements));
    var tmp;
    if (this.cg_1.p(elements)) {
      invalidate(this, change);
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  };
  protoOf(MutableObservableListWrapper).t3 = function (index, element) {
    var change = Companion_instance.kf(index, listOf(element));
    this.cg_1.t3(index, element);
    invalidate(this, change);
  };
  protoOf(MutableObservableListWrapper).e = function (element) {
    var change = Companion_instance.kf(this.cg_1.j(), listOf(element));
    var tmp;
    if (this.cg_1.e(element)) {
      invalidate(this, change);
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  };
  protoOf(MutableObservableListWrapper).f3 = function (index) {
    var result = this.cg_1.f3(index);
    invalidate(this, Companion_instance.jf(index, listOf(result)));
    return result;
  };
  protoOf(MutableObservableListWrapper).w2 = function (index, element) {
    var oldElement = this.cg_1.w2(index, element);
    var change = Companion_instance.lf(index, listOf(element), listOf(oldElement));
    invalidate(this, change);
    return oldElement;
  };
  protoOf(MutableObservableListWrapper).z2 = function (elements) {
    var result = false;
    var _iterator__ex2g4s = elements.g();
    while (_iterator__ex2g4s.h()) {
      var element = _iterator__ex2g4s.i();
      if (this.a2(element)) {
        result = true;
      }
    }
    return result;
  };
  protoOf(MutableObservableListWrapper).a2 = function (element) {
    var index = this.cg_1.p1(element);
    var tmp;
    if (this.cg_1.a2(element)) {
      invalidate(this, Companion_instance.jf(index, listOf(element)));
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  };
  protoOf(MutableObservableListWrapper).toString = function () {
    return toString(this.cg_1);
  };
  function asMutableObservableMap(_this__u8e3s4) {
    return new MutableObservableMapWrapper(_this__u8e3s4);
  }
  function _get_current__qcrdxk($this) {
    var tmp = $this.kg_1;
    if (!(tmp == null))
      return tmp;
    else {
      throwUninitializedPropertyAccessException('current');
    }
  }
  function _get_current__qcrdxk_0($this) {
    var tmp = $this.ng_1;
    if (!(tmp == null))
      return tmp;
    else {
      throwUninitializedPropertyAccessException('current');
    }
  }
  function invalidate_0($this, changes) {
    var _iterator__ex2g4s = $this.qg_1.g();
    while (_iterator__ex2g4s.h()) {
      var l = _iterator__ex2g4s.i();
      l.gg($this);
    }
    var _iterator__ex2g4s_0 = $this.rg_1.g();
    while (_iterator__ex2g4s_0.h()) {
      var l_0 = _iterator__ex2g4s_0.i();
      l_0.sg($this, changes);
    }
  }
  function KeySet($outer) {
    this.ug_1 = $outer;
    this.tg_1 = this.ug_1.pg_1.x1();
  }
  protoOf(KeySet).vg = function (element) {
    throw UnsupportedOperationException_init_$Create$();
  };
  protoOf(KeySet).e = function (element) {
    return this.vg(!(element == null) ? element : THROW_CCE());
  };
  protoOf(KeySet).wg = function (elements) {
    throw UnsupportedOperationException_init_$Create$();
  };
  protoOf(KeySet).p = function (elements) {
    return this.wg(elements);
  };
  protoOf(KeySet).a3 = function () {
    this.ug_1.a3();
  };
  protoOf(KeySet).xg = function (element) {
    var tmp;
    if (this.yg(element)) {
      this.ug_1.xg(element);
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  };
  protoOf(KeySet).a2 = function (element) {
    if (!!(element == null))
      return false;
    return this.xg(!(element == null) ? element : THROW_CCE());
  };
  protoOf(KeySet).zg = function (elements) {
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var destination = ArrayList_init_$Create$();
    var _iterator__ex2g4s = elements.g();
    while (_iterator__ex2g4s.h()) {
      var element = _iterator__ex2g4s.i();
      // Inline function 'uk.co.nickthecoder.glok.collections.KeySet.removeAll.<anonymous>' call
      if (this.yg(element)) {
        destination.e(element);
      }
    }
    // Inline function 'kotlin.collections.map' call
    // Inline function 'kotlin.collections.mapTo' call
    var destination_0 = ArrayList_init_$Create$_0(collectionSizeOrDefault(destination, 10));
    var _iterator__ex2g4s_0 = destination.g();
    while (_iterator__ex2g4s_0.h()) {
      var item = _iterator__ex2g4s_0.i();
      // Inline function 'uk.co.nickthecoder.glok.collections.KeySet.removeAll.<anonymous>' call
      var tmp = Companion_instance_0;
      var tmp_0 = this.ug_1.ah(item);
      var tmp$ret$3 = tmp.uf(item, (tmp_0 == null ? true : !(tmp_0 == null)) ? tmp_0 : THROW_CCE());
      destination_0.e(tmp$ret$3);
    }
    var changes = destination_0;
    this.ug_1.pg_1.x1().z2(toSet(elements));
    invalidate_0(this.ug_1, changes);
    // Inline function 'kotlin.collections.isNotEmpty' call
    return !changes.l();
  };
  protoOf(KeySet).z2 = function (elements) {
    return this.zg(elements);
  };
  protoOf(KeySet).g = function () {
    return new KeysIterator(this.ug_1);
  };
  protoOf(KeySet).l = function () {
    return this.tg_1.l();
  };
  protoOf(KeySet).yg = function (element) {
    return this.tg_1.o1(element);
  };
  protoOf(KeySet).o1 = function (element) {
    if (!!(element == null))
      return false;
    return this.yg(!(element == null) ? element : THROW_CCE());
  };
  protoOf(KeySet).bh = function (elements) {
    return this.tg_1.r1(elements);
  };
  protoOf(KeySet).r1 = function (elements) {
    return this.bh(elements);
  };
  protoOf(KeySet).j = function () {
    return this.tg_1.j();
  };
  function KeysIterator($outer) {
    this.lg_1 = $outer;
    this.jg_1 = this.lg_1.pg_1.x1().g();
  }
  protoOf(KeysIterator).h = function () {
    return this.jg_1.h();
  };
  protoOf(KeysIterator).i = function () {
    var result = this.jg_1.i();
    this.kg_1 = result;
    return result;
  };
  protoOf(KeysIterator).y2 = function () {
    var tmp = this.lg_1.ah(_get_current__qcrdxk(this));
    var value = (tmp == null ? true : !(tmp == null)) ? tmp : THROW_CCE();
    invalidate_0(this.lg_1, listOf(Companion_instance_0.uf(_get_current__qcrdxk(this), value)));
    this.jg_1.y2();
  };
  function EntriesSet($outer) {
    this.ch_1 = $outer;
  }
  protoOf(EntriesSet).dh = function (element) {
    var result = !this.ch_1.eh(element.s1());
    this.ch_1.fh(element.s1(), element.t1());
    return result;
  };
  protoOf(EntriesSet).e = function (element) {
    return this.dh((!(element == null) ? isInterface(element, MutableEntry) : false) ? element : THROW_CCE());
  };
  protoOf(EntriesSet).gh = function (elements) {
    // Inline function 'kotlin.collections.map' call
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(elements, 10));
    var _iterator__ex2g4s = elements.g();
    while (_iterator__ex2g4s.h()) {
      var item = _iterator__ex2g4s.i();
      // Inline function 'uk.co.nickthecoder.glok.collections.EntriesSet.addAll.<anonymous>' call
      var tmp$ret$0 = new Pair(item.s1(), item.t1());
      destination.e(tmp$ret$0);
    }
    putAll(this.ch_1, destination);
    return true;
  };
  protoOf(EntriesSet).p = function (elements) {
    return this.gh(elements);
  };
  protoOf(EntriesSet).j = function () {
    return this.ch_1.j();
  };
  protoOf(EntriesSet).a3 = function () {
    this.ch_1.a3();
  };
  protoOf(EntriesSet).l = function () {
    return this.ch_1.l();
  };
  protoOf(EntriesSet).hh = function (elements) {
    return this.ch_1.pg_1.z1().r1(elements);
  };
  protoOf(EntriesSet).r1 = function (elements) {
    return this.hh(elements);
  };
  protoOf(EntriesSet).ih = function (element) {
    return this.ch_1.pg_1.z1().o1(element);
  };
  protoOf(EntriesSet).o1 = function (element) {
    if (!(!(element == null) ? isInterface(element, MutableEntry) : false))
      return false;
    return this.ih((!(element == null) ? isInterface(element, MutableEntry) : false) ? element : THROW_CCE());
  };
  protoOf(EntriesSet).g = function () {
    return new EntriesIterator(this.ch_1);
  };
  protoOf(EntriesSet).jh = function (elements) {
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var destination = ArrayList_init_$Create$();
    var _iterator__ex2g4s = elements.g();
    while (_iterator__ex2g4s.h()) {
      var element = _iterator__ex2g4s.i();
      // Inline function 'uk.co.nickthecoder.glok.collections.EntriesSet.removeAll.<anonymous>' call
      if (equals(this.ch_1.ah(element.s1()), element.t1())) {
        destination.e(element);
      }
    }
    var toRemove = destination;
    var changed = false;
    var _iterator__ex2g4s_0 = toRemove.g();
    while (_iterator__ex2g4s_0.h()) {
      var element_0 = _iterator__ex2g4s_0.i();
      this.ch_1.xg(element_0.s1());
      changed = true;
    }
    return changed;
  };
  protoOf(EntriesSet).z2 = function (elements) {
    return this.jh(elements);
  };
  protoOf(EntriesSet).kh = function (element) {
    var tmp;
    if (this.ih(element)) {
      this.ch_1.xg(element.s1());
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  };
  protoOf(EntriesSet).a2 = function (element) {
    if (!(!(element == null) ? isInterface(element, MutableEntry) : false))
      return false;
    return this.kh((!(element == null) ? isInterface(element, MutableEntry) : false) ? element : THROW_CCE());
  };
  function EntriesIterator($outer) {
    this.og_1 = $outer;
    this.mg_1 = this.og_1.pg_1.z1().g();
  }
  protoOf(EntriesIterator).h = function () {
    return this.mg_1.h();
  };
  protoOf(EntriesIterator).i = function () {
    this.ng_1 = new EntriesEntry(this.og_1, this.mg_1.i());
    return _get_current__qcrdxk_0(this);
  };
  protoOf(EntriesIterator).y2 = function () {
    invalidate_0(this.og_1, listOf(Companion_instance_0.uf(_get_current__qcrdxk_0(this).s1(), _get_current__qcrdxk_0(this).t1())));
    this.mg_1.y2();
  };
  function EntriesEntry($outer, wrapped) {
    this.mh_1 = $outer;
    this.lh_1 = wrapped;
  }
  protoOf(EntriesEntry).s1 = function () {
    return this.lh_1.s1();
  };
  protoOf(EntriesEntry).t1 = function () {
    return this.lh_1.t1();
  };
  function MutableObservableMapWrapper(actual) {
    this.pg_1 = actual;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.qg_1 = ArrayList_init_$Create$();
    var tmp_0 = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp_0.rg_1 = ArrayList_init_$Create$();
  }
  protoOf(MutableObservableMapWrapper).hf = function (listener) {
    this.qg_1.e(listener);
  };
  protoOf(MutableObservableMapWrapper).z1 = function () {
    return new EntriesSet(this);
  };
  protoOf(MutableObservableMapWrapper).x1 = function () {
    return new KeySet(this);
  };
  protoOf(MutableObservableMapWrapper).y1 = function () {
    return this.pg_1.y1();
  };
  protoOf(MutableObservableMapWrapper).j = function () {
    return this.pg_1.j();
  };
  protoOf(MutableObservableMapWrapper).l = function () {
    return this.pg_1.l();
  };
  protoOf(MutableObservableMapWrapper).a3 = function () {
    // Inline function 'kotlin.collections.map' call
    var this_0 = this.pg_1.z1();
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(collectionSizeOrDefault(this_0, 10));
    var _iterator__ex2g4s = this_0.g();
    while (_iterator__ex2g4s.h()) {
      var item = _iterator__ex2g4s.i();
      // Inline function 'uk.co.nickthecoder.glok.collections.MutableObservableMapWrapper.clear.<anonymous>' call
      var tmp$ret$0 = Companion_instance_0.uf(item.s1(), item.t1());
      destination.e(tmp$ret$0);
    }
    var changes = destination;
    this.pg_1.a3();
    invalidate_0(this, changes);
  };
  protoOf(MutableObservableMapWrapper).xg = function (key) {
    var tmp;
    if (this.pg_1.x1().o1(key)) {
      var removedValue = this.pg_1.h4(key);
      var tmp_0 = Companion_instance_0;
      var change = tmp_0.uf(key, (removedValue == null ? true : !(removedValue == null)) ? removedValue : THROW_CCE());
      invalidate_0(this, listOf(change));
      tmp = removedValue;
    } else {
      tmp = null;
    }
    return tmp;
  };
  protoOf(MutableObservableMapWrapper).h4 = function (key) {
    if (!!(key == null))
      return null;
    return this.xg(!(key == null) ? key : THROW_CCE());
  };
  protoOf(MutableObservableMapWrapper).g4 = function (from) {
    // Inline function 'kotlin.collections.map' call
    // Inline function 'kotlin.collections.mapTo' call
    var destination = ArrayList_init_$Create$_0(from.j());
    // Inline function 'kotlin.collections.iterator' call
    var _iterator__ex2g4s = from.z1().g();
    while (_iterator__ex2g4s.h()) {
      var item = _iterator__ex2g4s.i();
      // Inline function 'uk.co.nickthecoder.glok.collections.MutableObservableMapWrapper.putAll.<anonymous>' call
      var tmp$ret$1 = Companion_instance_0.vf(this, item.s1(), item.t1());
      destination.e(tmp$ret$1);
    }
    var changes = destination;
    this.pg_1.g4(from);
    invalidate_0(this, changes);
  };
  protoOf(MutableObservableMapWrapper).fh = function (key, value) {
    var change = Companion_instance_0.vf(this, key, value);
    var result = this.pg_1.f4(key, value);
    invalidate_0(this, listOf(change));
    return result;
  };
  protoOf(MutableObservableMapWrapper).f4 = function (key, value) {
    var tmp = !(key == null) ? key : THROW_CCE();
    return this.fh(tmp, (value == null ? true : !(value == null)) ? value : THROW_CCE());
  };
  protoOf(MutableObservableMapWrapper).ah = function (key) {
    return this.pg_1.w1(key);
  };
  protoOf(MutableObservableMapWrapper).w1 = function (key) {
    if (!!(key == null))
      return null;
    return this.ah(!(key == null) ? key : THROW_CCE());
  };
  protoOf(MutableObservableMapWrapper).eh = function (key) {
    return this.pg_1.u1(key);
  };
  protoOf(MutableObservableMapWrapper).u1 = function (key) {
    if (!!(key == null))
      return false;
    return this.eh(!(key == null) ? key : THROW_CCE());
  };
  function asMutableObservableSet(_this__u8e3s4) {
    return new MutableObservableSetWrapper(_this__u8e3s4);
  }
  function invalidate_1($this, change) {
    var _iterator__ex2g4s = $this.oh_1.g();
    while (_iterator__ex2g4s.h()) {
      var l = _iterator__ex2g4s.i();
      l.gg($this);
    }
    var _iterator__ex2g4s_0 = $this.ph_1.g();
    while (_iterator__ex2g4s_0.h()) {
      var l_0 = _iterator__ex2g4s_0.i();
      l_0.qh($this, change);
    }
  }
  function ObservableMutableIterator($outer, inner) {
    this.th_1 = $outer;
    this.rh_1 = inner;
    this.sh_1 = null;
  }
  protoOf(ObservableMutableIterator).h = function () {
    return this.rh_1.h();
  };
  protoOf(ObservableMutableIterator).i = function () {
    var result = this.rh_1.i();
    this.sh_1 = result;
    return result;
  };
  protoOf(ObservableMutableIterator).y2 = function () {
    this.rh_1.y2();
    var tmp0_safe_receiver = this.sh_1;
    if (tmp0_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      // Inline function 'uk.co.nickthecoder.glok.collections.ObservableMutableIterator.remove.<anonymous>' call
      invalidate_1(this.th_1, Companion_instance_1.uh(setOf(tmp0_safe_receiver)));
    }
  };
  function MutableObservableSetWrapper(actual) {
    this.nh_1 = actual;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.oh_1 = ArrayList_init_$Create$();
    var tmp_0 = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp_0.ph_1 = ArrayList_init_$Create$();
  }
  protoOf(MutableObservableSetWrapper).hf = function (listener) {
    this.oh_1.e(listener);
  };
  protoOf(MutableObservableSetWrapper).j = function () {
    return this.nh_1.j();
  };
  protoOf(MutableObservableSetWrapper).l = function () {
    return this.nh_1.l();
  };
  protoOf(MutableObservableSetWrapper).g = function () {
    return new ObservableMutableIterator(this, this.nh_1.g());
  };
  protoOf(MutableObservableSetWrapper).r1 = function (elements) {
    return this.nh_1.r1(elements);
  };
  protoOf(MutableObservableSetWrapper).o1 = function (element) {
    return this.nh_1.o1(element);
  };
  protoOf(MutableObservableSetWrapper).a3 = function () {
    var change = Companion_instance_1.vh(toSet(this.nh_1));
    this.nh_1.a3();
    invalidate_1(this, change);
  };
  protoOf(MutableObservableSetWrapper).p = function (elements) {
    var tmp = Companion_instance_1;
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var destination = ArrayList_init_$Create$();
    var _iterator__ex2g4s = elements.g();
    while (_iterator__ex2g4s.h()) {
      var element = _iterator__ex2g4s.i();
      // Inline function 'uk.co.nickthecoder.glok.collections.MutableObservableSetWrapper.addAll.<anonymous>' call
      if (!this.nh_1.o1(element)) {
        destination.e(element);
      }
    }
    var change = tmp.uh(toSet(destination));
    var tmp_0;
    if (this.nh_1.p(elements)) {
      invalidate_1(this, change);
      tmp_0 = true;
    } else {
      tmp_0 = false;
    }
    return tmp_0;
  };
  protoOf(MutableObservableSetWrapper).e = function (element) {
    var tmp;
    if (this.nh_1.e(element)) {
      var change = Companion_instance_1.uh(setOf(element));
      invalidate_1(this, change);
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  };
  protoOf(MutableObservableSetWrapper).z2 = function (elements) {
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var destination = ArrayList_init_$Create$();
    var _iterator__ex2g4s = elements.g();
    while (_iterator__ex2g4s.h()) {
      var element = _iterator__ex2g4s.i();
      // Inline function 'uk.co.nickthecoder.glok.collections.MutableObservableSetWrapper.removeAll.<anonymous>' call
      if (this.nh_1.o1(element)) {
        destination.e(element);
      }
    }
    var willRemove = toSet(destination);
    var tmp;
    if (willRemove.l()) {
      tmp = false;
    } else {
      this.nh_1.z2(willRemove);
      invalidate_1(this, Companion_instance_1.vh(willRemove));
      tmp = true;
    }
    return tmp;
  };
  protoOf(MutableObservableSetWrapper).a2 = function (element) {
    var tmp;
    if (this.nh_1.a2(element)) {
      invalidate_1(this, Companion_instance_1.vh(setOf(element)));
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  };
  protoOf(MutableObservableSetWrapper).toString = function () {
    return toString(this.nh_1);
  };
  function ObservableList() {
  }
  function asReadOnly_2(_this__u8e3s4) {
    // Inline function 'uk.co.nickthecoder.glok.collections.whenNotAlreadyReadOnly' call
    var tmp;
    if (isInterface(_this__u8e3s4, ReadOnly)) {
      tmp = _this__u8e3s4;
    } else {
      // Inline function 'uk.co.nickthecoder.glok.collections.asReadOnly.<anonymous>' call
      var tmp_0;
      if (isInterface(_this__u8e3s4, RandomAccess)) {
        tmp_0 = new ReadOnlyRandomAccessList(_this__u8e3s4);
      } else {
        tmp_0 = new ReadOnlyList(_this__u8e3s4);
      }
      tmp = tmp_0;
    }
    return tmp;
  }
  function ReadOnlyList(delegate) {
    this.xh_1 = delegate;
  }
  protoOf(ReadOnlyList).g = function () {
    return asReadOnly_3(this.xh_1.g());
  };
  protoOf(ReadOnlyList).q1 = function (index) {
    return asReadOnly_4(this.xh_1.q1(index));
  };
  protoOf(ReadOnlyList).v = function (fromIndex, toIndex) {
    return asReadOnly_2(this.xh_1.v(fromIndex, toIndex));
  };
  protoOf(ReadOnlyList).toString = function () {
    return 'ReadOnly: ' + anyToString(this);
  };
  protoOf(ReadOnlyList).equals = function (other) {
    return equals(this.xh_1, other);
  };
  protoOf(ReadOnlyList).hashCode = function () {
    return hashCode(this.xh_1);
  };
  protoOf(ReadOnlyList).l = function () {
    return this.xh_1.l();
  };
  protoOf(ReadOnlyList).fc = function (element) {
    return this.xh_1.o1(element);
  };
  protoOf(ReadOnlyList).o1 = function (element) {
    if (!(element == null ? true : !(element == null)))
      return false;
    return this.fc((element == null ? true : !(element == null)) ? element : THROW_CCE());
  };
  protoOf(ReadOnlyList).k = function (index) {
    return this.xh_1.k(index);
  };
  protoOf(ReadOnlyList).yh = function (element) {
    return this.xh_1.p1(element);
  };
  protoOf(ReadOnlyList).p1 = function (element) {
    if (!(element == null ? true : !(element == null)))
      return -1;
    return this.yh((element == null ? true : !(element == null)) ? element : THROW_CCE());
  };
  protoOf(ReadOnlyList).j = function () {
    return this.xh_1.j();
  };
  function ReadOnlyRandomAccessList(delegate) {
    ReadOnlyList.call(this, delegate);
  }
  protoOf(ReadOnlyRandomAccessList).toString = function () {
    return 'ReadOnly: ' + protoOf(ReadOnlyList).toString.call(this);
  };
  protoOf(ReadOnlyRandomAccessList).equals = function (other) {
    return equals(this.xh_1, other);
  };
  protoOf(ReadOnlyRandomAccessList).hashCode = function () {
    return hashCode(this.xh_1);
  };
  function ReadOnly() {
  }
  function asReadOnly_3(_this__u8e3s4) {
    // Inline function 'uk.co.nickthecoder.glok.collections.whenNotAlreadyReadOnly' call
    var tmp;
    if (isInterface(_this__u8e3s4, ReadOnly)) {
      tmp = _this__u8e3s4;
    } else {
      // Inline function 'uk.co.nickthecoder.glok.collections.asReadOnly.<anonymous>' call
      tmp = new ReadOnlyIterator(_this__u8e3s4);
    }
    return tmp;
  }
  function asReadOnly_4(_this__u8e3s4) {
    // Inline function 'uk.co.nickthecoder.glok.collections.whenNotAlreadyReadOnly' call
    var tmp;
    if (isInterface(_this__u8e3s4, ReadOnly)) {
      tmp = _this__u8e3s4;
    } else {
      // Inline function 'uk.co.nickthecoder.glok.collections.asReadOnly.<anonymous>' call
      tmp = new ReadOnlyListIterator(_this__u8e3s4);
    }
    return tmp;
  }
  function ReadOnlyIterator(delegate) {
    this.zh_1 = delegate;
  }
  protoOf(ReadOnlyIterator).toString = function () {
    return 'ReadOnly: ' + anyToString(this);
  };
  protoOf(ReadOnlyIterator).equals = function (other) {
    return equals(this.zh_1, other);
  };
  protoOf(ReadOnlyIterator).hashCode = function () {
    return hashCode(this.zh_1);
  };
  protoOf(ReadOnlyIterator).i = function () {
    return this.zh_1.i();
  };
  protoOf(ReadOnlyIterator).h = function () {
    return this.zh_1.h();
  };
  function ReadOnlyListIterator(delegate) {
    this.ai_1 = delegate;
  }
  protoOf(ReadOnlyListIterator).toString = function () {
    return 'ReadOnly: ' + anyToString(this);
  };
  protoOf(ReadOnlyListIterator).equals = function (other) {
    return equals(this.ai_1, other);
  };
  protoOf(ReadOnlyListIterator).hashCode = function () {
    return hashCode(this.ai_1);
  };
  protoOf(ReadOnlyListIterator).i = function () {
    return this.ai_1.i();
  };
  protoOf(ReadOnlyListIterator).h = function () {
    return this.ai_1.h();
  };
  protoOf(ReadOnlyListIterator).l3 = function () {
    return this.ai_1.l3();
  };
  protoOf(ReadOnlyListIterator).n3 = function () {
    return this.ai_1.n3();
  };
  function ReadOnlyObservableListWrapper(actual) {
    this.bi_1 = actual;
    var tmp = this;
    var tmp_0 = this.bi_1;
    tmp.ci_1 = asReadOnly_2(isInterface(tmp_0, KtList) ? tmp_0 : THROW_CCE());
  }
  protoOf(ReadOnlyObservableListWrapper).hf = function (listener) {
    this.bi_1.hf(listener);
  };
  protoOf(ReadOnlyObservableListWrapper).if = function (listener) {
    this.bi_1.if(listener);
  };
  protoOf(ReadOnlyObservableListWrapper).j = function () {
    return this.ci_1.j();
  };
  protoOf(ReadOnlyObservableListWrapper).k = function (index) {
    return this.ci_1.k(index);
  };
  protoOf(ReadOnlyObservableListWrapper).l = function () {
    return this.ci_1.l();
  };
  protoOf(ReadOnlyObservableListWrapper).g = function () {
    return this.ci_1.g();
  };
  protoOf(ReadOnlyObservableListWrapper).q1 = function (index) {
    return this.ci_1.q1(index);
  };
  protoOf(ReadOnlyObservableListWrapper).v = function (fromIndex, toIndex) {
    return this.ci_1.v(fromIndex, toIndex);
  };
  protoOf(ReadOnlyObservableListWrapper).p1 = function (element) {
    return this.ci_1.p1(element);
  };
  protoOf(ReadOnlyObservableListWrapper).o1 = function (element) {
    return this.ci_1.o1(element);
  };
  protoOf(ReadOnlyObservableListWrapper).toString = function () {
    return toString(this.ci_1);
  };
  function Companion_1() {
  }
  protoOf(Companion_1).vh = function (removed) {
    return new SetChangeImpl(emptySet(), removed);
  };
  protoOf(Companion_1).uh = function (added) {
    return new SetChangeImpl(added, emptySet());
  };
  var Companion_instance_1;
  function Companion_getInstance_1() {
    return Companion_instance_1;
  }
  function SetChangeImpl(added, removed) {
    this.di_1 = added;
    this.ei_1 = removed;
  }
  function AbstractBidirectionalBind$aListener$lambda$lambda(this$0, $aValue) {
    return function () {
      var propB = this$0.gi_1.li();
      var tmp;
      if (propB == null) {
        this$0.oi();
        tmp = Unit_instance;
      } else {
        propB.ni(this$0.mi($aValue));
        tmp = Unit_instance;
      }
      return Unit_instance;
    };
  }
  function AbstractBidirectionalBind$aListener$lambda(this$0) {
    return function (_unused_var__etf5q3, _unused_var__etf5q3_0, aValue) {
      this$0.hi_1.qi(AbstractBidirectionalBind$aListener$lambda$lambda(this$0, aValue));
      return Unit_instance;
    };
  }
  function AbstractBidirectionalBind$bListener$lambda$lambda(this$0, $bValue) {
    return function () {
      var propA = this$0.fi_1.li();
      var tmp;
      if (propA == null) {
        this$0.oi();
        tmp = Unit_instance;
      } else {
        propA.ni(this$0.ri($bValue));
        tmp = Unit_instance;
      }
      return Unit_instance;
    };
  }
  function AbstractBidirectionalBind$bListener$lambda(this$0) {
    return function (_unused_var__etf5q3, _unused_var__etf5q3_0, bValue) {
      this$0.hi_1.qi(AbstractBidirectionalBind$bListener$lambda$lambda(this$0, bValue));
      return Unit_instance;
    };
  }
  function AbstractBidirectionalBind(propertyA, propertyB) {
    this.fi_1 = new Weak(propertyA);
    this.gi_1 = new Weak(propertyB);
    this.hi_1 = new BidirectionalGuard();
    var tmp = this;
    tmp.ii_1 = propertyA.si(AbstractBidirectionalBind$aListener$lambda(this));
    var tmp_0 = this;
    tmp_0.ji_1 = propertyB.si(AbstractBidirectionalBind$bListener$lambda(this));
  }
  protoOf(AbstractBidirectionalBind).ti = function () {
    return this.fi_1.li();
  };
  protoOf(AbstractBidirectionalBind).ui = function () {
    return this.gi_1.li();
  };
  protoOf(AbstractBidirectionalBind).oi = function () {
    var tmp0_safe_receiver = this.fi_1.li();
    if (tmp0_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      tmp0_safe_receiver.vi(this.gi_1.li());
      return Unit_instance;
    }
    var tmp1_safe_receiver = this.gi_1.li();
    if (tmp1_safe_receiver == null)
      null;
    else {
      tmp1_safe_receiver.vi(this.fi_1.li());
    }
  };
  protoOf(AbstractBidirectionalBind).wi = function () {
    var tmp0_safe_receiver = this.fi_1.li();
    if (tmp0_safe_receiver == null)
      null;
    else {
      tmp0_safe_receiver.xi(this.ii_1);
    }
    var tmp1_safe_receiver = this.gi_1.li();
    if (tmp1_safe_receiver == null)
      null;
    else {
      tmp1_safe_receiver.xi(this.ji_1);
    }
  };
  function SimpleBidirectionalBind(propertyA, propertyB) {
    AbstractBidirectionalBind.call(this, propertyA, propertyB);
  }
  protoOf(SimpleBidirectionalBind).dj = function (a) {
    return a;
  };
  protoOf(SimpleBidirectionalBind).mi = function (a) {
    return this.dj((a == null ? true : !(a == null)) ? a : THROW_CCE());
  };
  protoOf(SimpleBidirectionalBind).ej = function (b) {
    return b;
  };
  protoOf(SimpleBidirectionalBind).ri = function (b) {
    return this.ej((b == null ? true : !(b == null)) ? b : THROW_CCE());
  };
  function BidirectionalGuard() {
    this.pi_1 = false;
  }
  protoOf(BidirectionalGuard).qi = function (block) {
    if (!this.pi_1) {
      this.pi_1 = true;
      try {
        block();
      }finally {
        this.pi_1 = false;
      }
    }
  };
  function BinaryFunction(argA, argB, lambda) {
    LazyObservableValue.call(this, [argA, argB]);
    this.mj_1 = argA;
    this.nj_1 = argB;
    this.oj_1 = lambda;
  }
  protoOf(BinaryFunction).pj = function () {
    return this.oj_1(this.mj_1.t1(), this.nj_1.t1());
  };
  function TernaryFunction(argA, argB, argC, lambda) {
    LazyObservableValue.call(this, [argA, argB, argC]);
    this.qk_1 = argA;
    this.rk_1 = argB;
    this.sk_1 = argC;
    this.tk_1 = lambda;
  }
  protoOf(TernaryFunction).pj = function () {
    return this.tk_1(this.qk_1.t1(), this.rk_1.t1(), this.sk_1.t1());
  };
  protoOf(TernaryFunction).toString = function () {
    return 'TernaryFunction value=' + toString_0(this.t1()) + ' eval=' + toString_0(this.pj());
  };
  function changeListener(lambda) {
    return new changeListener$1(lambda);
  }
  function WeakChangeListener(wraps) {
    this.vk_1 = new Weak(wraps);
  }
  protoOf(WeakChangeListener).wk = function () {
    return this.vk_1.li();
  };
  protoOf(WeakChangeListener).xk = function (observable, oldValue, newValue) {
    var tmp0_safe_receiver = this.vk_1.li();
    if (tmp0_safe_receiver == null)
      null;
    else {
      tmp0_safe_receiver.xk(observable, oldValue, newValue);
    }
  };
  function changeListener$1($lambda) {
    this.yk_1 = $lambda;
  }
  protoOf(changeListener$1).xk = function (observable, oldValue, newValue) {
    this.yk_1(observable, oldValue, newValue);
  };
  function IndirectProperty$listener$lambda(this$0) {
    return function (it) {
      var oldValue = this$0.ll_1;
      var newValue = this$0.t1();
      var tmp;
      if (!equals(oldValue, newValue)) {
        this$0.gk(oldValue, this$0.t1());
        tmp = Unit_instance;
      }
      return Unit_instance;
    };
  }
  function IndirectProperty$parentPropertyListener$lambda(this$0) {
    return function (_unused_var__etf5q3, oldParentValue, parentValue) {
      this$0.kl_1(oldParentValue).fk(this$0.ml_1);
      this$0.kl_1(parentValue).hf(this$0.ml_1);
      return Unit_instance;
    };
  }
  function IndirectProperty(parentProperty, getProperty) {
    PropertyBase.call(this);
    this.jl_1 = parentProperty;
    this.kl_1 = getProperty;
    this.ll_1 = this.t1();
    var tmp = this;
    tmp.ml_1 = invalidationListener(IndirectProperty$listener$lambda(this));
    var tmp_0 = this;
    tmp_0.nl_1 = this.jl_1.hk(IndirectProperty$parentPropertyListener$lambda(this));
    this.jl_1.hf(this.ml_1);
    this.kl_1(this.jl_1.t1()).hf(this.ml_1);
  }
  protoOf(IndirectProperty).ni = function (v) {
    var parentValue = this.jl_1.t1();
    this.kl_1(parentValue).ni(v);
  };
  protoOf(IndirectProperty).t1 = function () {
    var parentValue = this.jl_1.t1();
    this.ll_1 = this.kl_1(parentValue).t1();
    return this.ll_1;
  };
  function invalidationListener(lambda) {
    return new invalidationListener$1(lambda);
  }
  function WeakInvalidationListener(wraps) {
    this.dm_1 = new Weak(wraps);
  }
  protoOf(WeakInvalidationListener).wk = function () {
    return this.dm_1.li();
  };
  protoOf(WeakInvalidationListener).gg = function (observable) {
    var tmp0_safe_receiver = this.dm_1.li();
    if (tmp0_safe_receiver == null)
      null;
    else {
      tmp0_safe_receiver.gg(observable);
    }
  };
  function invalidationListener$1($lambda) {
    this.em_1 = $lambda;
  }
  protoOf(invalidationListener$1).gg = function (observable) {
    this.em_1(observable);
  };
  function CachedValue(value) {
    this.fm_1 = value;
  }
  function LazyObservableValue$strongListener$lambda(this$0) {
    return function (it) {
      this$0.xj();
      return Unit_instance;
    };
  }
  function LazyObservableValue(dependsOn) {
    ObservableValueBase.call(this);
    this.uj_1 = null;
    var tmp = this;
    tmp.vj_1 = invalidationListener(LazyObservableValue$strongListener$lambda(this));
    this.wj_1 = new WeakInvalidationListener(this.vj_1);
    var inductionVariable = 0;
    var last = dependsOn.length;
    while (inductionVariable < last) {
      var d = dependsOn[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      d.ek(this.wj_1);
    }
  }
  protoOf(LazyObservableValue).xj = function () {
    var oldCache = this.uj_1;
    var newValue = this.pj();
    this.uj_1 = new CachedValue(newValue);
    if (!(oldCache == null)) {
      this.gk(oldCache.fm_1, newValue);
    }
  };
  protoOf(LazyObservableValue).t1 = function () {
    var cached = this.uj_1;
    var tmp;
    if (!(cached == null)) {
      tmp = cached.fm_1;
    } else {
      var result = this.pj();
      this.uj_1 = new CachedValue(result);
      tmp = result;
    }
    return tmp;
  };
  protoOf(LazyObservableValue).yj = function (listener) {
    this.t1();
    protoOf(ObservableValueBase).yj.call(this, listener);
  };
  protoOf(LazyObservableValue).zj = function (listener) {
    this.t1();
    protoOf(ObservableValueBase).zj.call(this, listener);
  };
  protoOf(LazyObservableValue).uk = function (d) {
    d.ek(this.wj_1);
  };
  function Observable() {
  }
  function ObservableValue$sameInstance$lambda($other) {
    return function (a) {
      return a === $other;
    };
  }
  function ObservableValue() {
  }
  function ObservableValueBase() {
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.ak_1 = ArrayList_init_$Create$();
    var tmp_0 = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp_0.bk_1 = ArrayList_init_$Create$();
    var tmp_1 = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp_1.ck_1 = ArrayList_init_$Create$();
    var tmp_2 = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp_2.dk_1 = ArrayList_init_$Create$();
  }
  protoOf(ObservableValueBase).hf = function (listener) {
    this.ck_1.e(listener);
  };
  protoOf(ObservableValueBase).ek = function (listener) {
    this.ak_1.e(listener);
  };
  protoOf(ObservableValueBase).fk = function (listener) {
    this.ck_1.a2(listener);
    this.ak_1.a2(listener);
    if (listener instanceof WeakInvalidationListener) {
      var tmp0_safe_receiver = listener.wk();
      if (tmp0_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'uk.co.nickthecoder.glok.property.ObservableValueBase.removeListener.<anonymous>' call
        this.ck_1.a2(tmp0_safe_receiver);
        this.ak_1.a2(tmp0_safe_receiver);
      }
    }
  };
  protoOf(ObservableValueBase).yj = function (listener) {
    this.dk_1.e(listener);
  };
  protoOf(ObservableValueBase).zj = function (listener) {
    this.bk_1.e(listener);
  };
  protoOf(ObservableValueBase).xi = function (listener) {
    this.dk_1.a2(listener);
    this.bk_1.a2(listener);
    if (listener instanceof WeakChangeListener) {
      var tmp0_safe_receiver = listener.wk();
      if (tmp0_safe_receiver == null)
        null;
      else {
        // Inline function 'kotlin.let' call
        // Inline function 'uk.co.nickthecoder.glok.property.ObservableValueBase.removeChangeListener.<anonymous>' call
        this.dk_1.a2(tmp0_safe_receiver);
        this.bk_1.a2(tmp0_safe_receiver);
      }
    }
  };
  protoOf(ObservableValueBase).gk = function (old, new_0) {
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.bk_1.l()) {
      var _iterator__ex2g4s = toList(this.bk_1).g();
      while (_iterator__ex2g4s.h()) {
        var l = _iterator__ex2g4s.i();
        l.xk(this, old, new_0);
      }
    }
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.ak_1.l()) {
      var _iterator__ex2g4s_0 = toList(this.ak_1).g();
      while (_iterator__ex2g4s_0.h()) {
        var l_0 = _iterator__ex2g4s_0.i();
        l_0.gg(this);
      }
    }
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.dk_1.l()) {
      var _iterator__ex2g4s_1 = toList(this.dk_1).g();
      while (_iterator__ex2g4s_1.h()) {
        var l_1 = _iterator__ex2g4s_1.i();
        l_1.xk(this, old, new_0);
      }
    }
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.ck_1.l()) {
      var _iterator__ex2g4s_2 = toList(this.ck_1).g();
      while (_iterator__ex2g4s_2.h()) {
        var l_2 = _iterator__ex2g4s_2.i();
        l_2.gg(this);
      }
    }
  };
  function Property() {
  }
  function property(initialValue) {
    return new PropertyDelegate(initialValue, property$lambda);
  }
  function asReadOnly_5(_this__u8e3s4) {
    return new ReadOnlyPropertyWrapper(_this__u8e3s4);
  }
  function property$lambda(bean, name, value) {
    return new SimpleProperty(value, bean, name);
  }
  function PropertyBase$bindTo$lambda(this$0) {
    return function (_unused_var__etf5q3, old, new_0) {
      this$0.am(old, new_0);
      return Unit_instance;
    };
  }
  function PropertyBase$bidirectionalUnbind$lambda(it) {
    return it.ti() == null || it.ui() == null;
  }
  function PropertyBase(bean, beanName) {
    bean = bean === VOID ? null : bean;
    beanName = beanName === VOID ? null : beanName;
    ObservableValueBase.call(this);
    this.sl_1 = bean;
    this.tl_1 = beanName;
    this.ul_1 = null;
    this.vl_1 = null;
    this.wl_1 = false;
    var tmp = this;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp.xl_1 = ArrayList_init_$Create$();
  }
  protoOf(PropertyBase).yl = function () {
    return this.sl_1;
  };
  protoOf(PropertyBase).zl = function () {
    return this.tl_1;
  };
  protoOf(PropertyBase).lm = function (block) {
    if (this.wl_1) {
      block();
      return Unit_instance;
    }
    if (!(this.ul_1 == null)) {
      throw new PropertyException(this, 'Cannot set a bound property : ' + this.toString());
    }
    var oldValue = this.t1();
    var newValue = block();
    if (!equals(oldValue, newValue)) {
      this.gk(oldValue, newValue);
    }
  };
  protoOf(PropertyBase).am = function (old, new_0) {
    this.gk(old, new_0);
  };
  protoOf(PropertyBase).bm = function () {
    return !(this.ul_1 == null);
  };
  protoOf(PropertyBase).jm = function (to) {
    if (this.bm()) {
      throw new PropertyException(this, 'Property is already bound : ' + this.toString());
    }
    var oldValue = this.t1();
    var newValue = to.t1();
    this.ul_1 = to;
    var listener = this.vl_1;
    if (listener == null) {
      var tmp = this;
      tmp.vl_1 = to.si(PropertyBase$bindTo$lambda(this));
    } else {
      to.zj(listener);
    }
    if (!equals(newValue, oldValue)) {
      this.am(oldValue, newValue);
    }
  };
  protoOf(PropertyBase).oi = function () {
    var tmp0_safe_receiver = this.ul_1;
    if (tmp0_safe_receiver == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      // Inline function 'uk.co.nickthecoder.glok.property.PropertyBase.unbind.<anonymous>' call
      this.wl_1 = true;
      try {
        this.ul_1 = null;
        var tmp0_safe_receiver_0 = this.vl_1;
        if (tmp0_safe_receiver_0 == null)
          null;
        else {
          // Inline function 'kotlin.let' call
          // Inline function 'uk.co.nickthecoder.glok.property.PropertyBase.unbind.<anonymous>.<anonymous>' call
          tmp0_safe_receiver.xi(tmp0_safe_receiver_0);
        }
        if (!equals(tmp0_safe_receiver.t1(), this.t1())) {
          this.ni(tmp0_safe_receiver.t1());
        }
      }finally {
        this.wl_1 = false;
      }
    }
  };
  protoOf(PropertyBase).km = function (other) {
    var tmp0 = this.xl_1;
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlin.collections.firstOrNull' call
      var _iterator__ex2g4s = tmp0.g();
      while (_iterator__ex2g4s.h()) {
        var element = _iterator__ex2g4s.i();
        // Inline function 'uk.co.nickthecoder.glok.property.PropertyBase.bidirectionalBind.<anonymous>' call
        if (element.ti() === this && element.ui() === other || (element.ui() === this && element.ti() === other)) {
          tmp$ret$1 = element;
          break $l$block;
        }
      }
      tmp$ret$1 = null;
    }
    if (tmp$ret$1 == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      throw new PropertyException(this, 'A bidirectional bind already exists between these two properties');
    }
    this.ni(other.t1());
    var bind = new SimpleBidirectionalBind(this, other);
    this.xl_1.e(bind);
    return bind;
  };
  protoOf(PropertyBase).vi = function (other) {
    removeAll(this.xl_1, PropertyBase$bidirectionalUnbind$lambda);
    // Inline function 'kotlin.collections.filter' call
    var tmp0 = this.xl_1;
    // Inline function 'kotlin.collections.filterTo' call
    var destination = ArrayList_init_$Create$();
    var _iterator__ex2g4s = tmp0.g();
    while (_iterator__ex2g4s.h()) {
      var element = _iterator__ex2g4s.i();
      // Inline function 'uk.co.nickthecoder.glok.property.PropertyBase.bidirectionalUnbind.<anonymous>' call
      var propA = element.ti();
      var propB = element.ui();
      if (propA == null || propB == null || (propA === this && propB === other) || (propB === this && propA === other)) {
        destination.e(element);
      }
    }
    // Inline function 'kotlin.collections.forEach' call
    var _iterator__ex2g4s_0 = destination.g();
    while (_iterator__ex2g4s_0.h()) {
      var element_0 = _iterator__ex2g4s_0.i();
      // Inline function 'uk.co.nickthecoder.glok.property.PropertyBase.bidirectionalUnbind.<anonymous>' call
      this.xl_1.a2(element_0);
      element_0.wi();
    }
  };
  protoOf(PropertyBase).toString = function () {
    var bean = this.yl();
    var beanName = this.zl();
    var tmp;
    if (bean == null || beanName == null) {
      tmp = '' + getKClassFromExpression(this).r9() + ' = ' + toString_0(this.t1());
    } else {
      tmp = '' + getKClassFromExpression(this).r9() + ' ' + getKClassFromExpression(bean).r9() + '.' + beanName + ' = ' + toString_0(this.t1());
    }
    return tmp;
  };
  function getValue$createProperty($kProperty, $thisRef, this$0) {
    var propName = $kProperty.callableName;
    if (endsWith(propName, 'Property')) {
      // Inline function 'kotlin.text.substring' call
      var endIndex = propName.length - 8 | 0;
      // Inline function 'kotlin.js.asDynamic' call
      var beanName = propName.substring(0, endIndex);
      if (!beanExists($thisRef, beanName)) {
        if (startsWith(beanName, '_')) {
          // Inline function 'kotlin.text.substring' call
          // Inline function 'kotlin.js.asDynamic' call
          var alternate = beanName.substring(1);
          if (beanExists($thisRef, alternate)) {
            beanName = alternate;
          }
        } else if (startsWith(beanName, 'mutable')) {
          // Inline function 'kotlin.text.substring' call
          // Inline function 'kotlin.js.asDynamic' call
          // Inline function 'kotlin.text.lowercase' call
          // Inline function 'kotlin.js.asDynamic' call
          var tmp = beanName.substring(7, 8).toLowerCase();
          // Inline function 'kotlin.text.substring' call
          // Inline function 'kotlin.js.asDynamic' call
          var alternate_0 = tmp + beanName.substring(8);
          if (beanExists($thisRef, alternate_0)) {
            beanName = alternate_0;
          }
        } else if (startsWith(beanName, 'private')) {
          // Inline function 'kotlin.text.substring' call
          // Inline function 'kotlin.js.asDynamic' call
          // Inline function 'kotlin.text.lowercase' call
          // Inline function 'kotlin.js.asDynamic' call
          var tmp_0 = beanName.substring(7, 8).toLowerCase();
          // Inline function 'kotlin.text.substring' call
          // Inline function 'kotlin.js.asDynamic' call
          var alternate_1 = tmp_0 + beanName.substring(8);
          if (beanExists($thisRef, alternate_1)) {
            beanName = alternate_1;
          }
        }
      }
      var result = this$0.nm_1($thisRef, beanName, this$0.mm_1);
      this$0.om_1 = result;
      return result;
    } else {
      throw Exception_init_$Create$('Properties must end with `Property`');
    }
  }
  function PropertyDelegate(initialValue, propertyFactory) {
    this.mm_1 = initialValue;
    this.nm_1 = propertyFactory;
    this.om_1 = null;
  }
  protoOf(PropertyDelegate).ik = function (thisRef, kProperty) {
    var tmp0_elvis_lhs = this.om_1;
    return tmp0_elvis_lhs == null ? getValue$createProperty(kProperty, thisRef, this) : tmp0_elvis_lhs;
  };
  function PropertyException(property, message) {
    Exception_init_$Init$(message, this);
    captureStack(this, PropertyException);
    this.pm_1 = property;
  }
  function ReadOnlyPropertyWrapper(wraps) {
    this.qm_1 = wraps;
  }
  protoOf(ReadOnlyPropertyWrapper).yl = function () {
    return this.qm_1.yl();
  };
  protoOf(ReadOnlyPropertyWrapper).zl = function () {
    return this.qm_1.zl();
  };
  protoOf(ReadOnlyPropertyWrapper).t1 = function () {
    return this.qm_1.t1();
  };
  protoOf(ReadOnlyPropertyWrapper).hf = function (listener) {
    this.qm_1.hf(listener);
  };
  protoOf(ReadOnlyPropertyWrapper).ek = function (listener) {
    this.qm_1.ek(listener);
  };
  protoOf(ReadOnlyPropertyWrapper).fk = function (listener) {
    this.qm_1.fk(listener);
  };
  protoOf(ReadOnlyPropertyWrapper).yj = function (listener) {
    this.qm_1.yj(listener);
  };
  protoOf(ReadOnlyPropertyWrapper).zj = function (listener) {
    this.qm_1.zj(listener);
  };
  protoOf(ReadOnlyPropertyWrapper).xi = function (listener) {
    this.qm_1.xi(listener);
  };
  protoOf(ReadOnlyPropertyWrapper).toString = function () {
    var bean = this.yl();
    var beanName = this.zl();
    var tmp;
    if (bean == null || beanName == null) {
      tmp = 'ReadOnlyWrapper of anonymous property = ' + toString_0(this.t1());
    } else {
      tmp = 'ReadOnlyWrapper: ' + getKClassFromExpression(bean).r9() + ' ' + beanName + ' = ' + toString_0(this.t1());
    }
    return tmp;
  };
  function SimpleProperty$_set_value_$lambda_h5xz7w(this$0, $v) {
    return function () {
      this$0.bn_1 = $v;
      return this$0.bn_1;
    };
  }
  function SimpleProperty(initialValue, bean, beanName) {
    bean = bean === VOID ? null : bean;
    beanName = beanName === VOID ? null : beanName;
    PropertyBase.call(this, bean, beanName);
    this.bn_1 = initialValue;
  }
  protoOf(SimpleProperty).ni = function (v) {
    this.lm(SimpleProperty$_set_value_$lambda_h5xz7w(this, v));
  };
  protoOf(SimpleProperty).t1 = function () {
    var tmp0_safe_receiver = this.ul_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.t1();
    return tmp1_elvis_lhs == null ? this.bn_1 : tmp1_elvis_lhs;
  };
  function UnaryFunction(argA, lambda) {
    LazyObservableValue.call(this, [argA]);
    this.jn_1 = argA;
    this.kn_1 = lambda;
  }
  protoOf(UnaryFunction).pj = function () {
    return this.kn_1(this.jn_1.t1());
  };
  function BooleanBinaryFunction(argA, argB, lambda) {
    BinaryFunction.call(this, argA, argB, lambda);
  }
  function BooleanUnaryFunction(argA, lambda) {
    UnaryFunction.call(this, argA, lambda);
  }
  function BooleanProperty() {
  }
  function booleanProperty(initialValue) {
    return new PropertyDelegate(initialValue, booleanProperty$lambda);
  }
  function SimpleBooleanProperty(initialValue, bean, beanName) {
    bean = bean === VOID ? null : bean;
    beanName = beanName === VOID ? null : beanName;
    SimpleProperty.call(this, initialValue, bean, beanName);
  }
  function ReadOnlyBooleanPropertyWrapper(wraps) {
    ReadOnlyPropertyWrapper.call(this, wraps);
  }
  function booleanProperty$lambda(bean, name, value) {
    return new SimpleBooleanProperty(value, bean, name);
  }
  function doubleProperty(initialValue) {
    return new PropertyDelegate(initialValue, doubleProperty$lambda);
  }
  function SimpleDoubleProperty(initialValue, bean, beanName) {
    bean = bean === VOID ? null : bean;
    beanName = beanName === VOID ? null : beanName;
    SimpleProperty.call(this, initialValue, bean, beanName);
  }
  function doubleProperty$lambda(bean, name, value) {
    return new SimpleDoubleProperty(value, bean, name);
  }
  function FloatProperty() {
  }
  function floatProperty(initialValue) {
    return new PropertyDelegate(initialValue, floatProperty$lambda);
  }
  function FloatUnaryFunction(argA, lambda) {
    UnaryFunction.call(this, argA, lambda);
  }
  function ReadOnlyFloatPropertyWrapper(wraps) {
    ReadOnlyPropertyWrapper.call(this, wraps);
  }
  function SimpleFloatProperty(initialValue, bean, beanName) {
    bean = bean === VOID ? null : bean;
    beanName = beanName === VOID ? null : beanName;
    SimpleProperty.call(this, initialValue, bean, beanName);
  }
  function FloatBinaryFunction(argA, argB, lambda) {
    BinaryFunction.call(this, argA, argB, lambda);
  }
  function floatProperty$lambda(bean, name, value) {
    return new SimpleFloatProperty(value, bean, name);
  }
  function IntProperty() {
  }
  function intProperty(initialValue) {
    return new PropertyDelegate(initialValue, intProperty$lambda);
  }
  function SimpleIntProperty(initialValue, bean, beanName) {
    bean = bean === VOID ? null : bean;
    beanName = beanName === VOID ? null : beanName;
    SimpleProperty.call(this, initialValue, bean, beanName);
  }
  function intProperty$lambda(bean, name, value) {
    return new SimpleIntProperty(value, bean, name);
  }
  function StringProperty() {
  }
  function stringProperty(initialValue) {
    return new PropertyDelegate(initialValue, stringProperty$lambda);
  }
  function SimpleStringProperty(initialValue, bean, beanName) {
    bean = bean === VOID ? null : bean;
    beanName = beanName === VOID ? null : beanName;
    SimpleProperty.call(this, initialValue, bean, beanName);
  }
  function stringProperty$lambda(bean, name, value) {
    return new SimpleStringProperty(value, bean, name);
  }
  var observableFalse;
  var observableTrue;
  function and(_this__u8e3s4, other) {
    _init_properties_ObservableBooleanFunctions_kt__tno4tm();
    return new BooleanBinaryFunction(_this__u8e3s4, other, and$lambda);
  }
  function observableFalse$1() {
    LazyObservableValue.call(this, []);
  }
  protoOf(observableFalse$1).pj = function () {
    return false;
  };
  function observableTrue$1() {
    LazyObservableValue.call(this, []);
  }
  protoOf(observableTrue$1).pj = function () {
    return true;
  };
  function and$lambda(a, b) {
    _init_properties_ObservableBooleanFunctions_kt__tno4tm();
    return a && b;
  }
  var properties_initialized_ObservableBooleanFunctions_kt_4xrblk;
  function _init_properties_ObservableBooleanFunctions_kt__tno4tm() {
    if (!properties_initialized_ObservableBooleanFunctions_kt_4xrblk) {
      properties_initialized_ObservableBooleanFunctions_kt_4xrblk = true;
      observableFalse = new observableFalse$1();
      observableTrue = new observableTrue$1();
    }
  }
  function times(_this__u8e3s4, other) {
    return new FloatBinaryFunction(_this__u8e3s4, other, times$lambda);
  }
  function min(oa, ob) {
    return new FloatBinaryFunction(oa, ob, min$lambda);
  }
  function times$lambda(a, b) {
    return a * b;
  }
  function min$lambda(a, b) {
    return a < b ? a : b;
  }
  function beanExists(thisRef, beanName) {
    return true;
  }
  function currentTimeMillis() {
    return (new Date()).getTime();
  }
  function Weak(value) {
    this.ki_1 = value;
  }
  protoOf(Weak).li = function () {
    return this.ki_1;
  };
  protoOf(Weak).equals = function (other) {
    var tmp;
    if (other instanceof Weak) {
      tmp = equals(other.li(), this.li());
    } else {
      tmp = false;
    }
    return tmp;
  };
  //region block: post-declaration
  protoOf(MutableObservableListWrapper).ag = asReadOnly;
  protoOf(MutableObservableListWrapper).bg = addChangeListener;
  protoOf(MutableObservableSetWrapper).wh = addListener;
  protoOf(ObservableValueBase).hm = addChangeListener_0;
  protoOf(ObservableValueBase).si = addBindChangeListener;
  protoOf(ObservableValueBase).hk = addWeakChangeListener;
  protoOf(ObservableValueBase).ik = getValue;
  protoOf(ObservableValueBase).im = sameInstance;
  protoOf(ObservableValueBase).wh = addListener;
  protoOf(ObservableValueBase).gm = addWeakListener;
  protoOf(PropertyBase).cm = setValue;
  protoOf(ReadOnlyPropertyWrapper).hm = addChangeListener_0;
  protoOf(ReadOnlyPropertyWrapper).si = addBindChangeListener;
  protoOf(ReadOnlyPropertyWrapper).hk = addWeakChangeListener;
  protoOf(ReadOnlyPropertyWrapper).ik = getValue;
  protoOf(SimpleBooleanProperty).ag = asReadOnly_0;
  protoOf(SimpleFloatProperty).ag = asReadOnly_1;
  //endregion
  //region block: init
  Companion_instance = new Companion();
  Companion_instance_0 = new Companion_0();
  Companion_instance_1 = new Companion_1();
  //endregion
  //region block: exports
  _.$_$ = _.$_$ || {};
  _.$_$.a = asMutableObservableList;
  _.$_$.b = asMutableObservableMap;
  _.$_$.c = asMutableObservableSet;
  _.$_$.d = emptyObservableList_0;
  _.$_$.e = asReadOnly_0;
  _.$_$.f = BooleanProperty;
  _.$_$.g = BooleanUnaryFunction;
  _.$_$.h = asReadOnly_1;
  _.$_$.i = FloatProperty;
  _.$_$.j = FloatUnaryFunction;
  _.$_$.k = IntProperty;
  _.$_$.l = StringProperty;
  _.$_$.m = booleanProperty;
  _.$_$.n = doubleProperty;
  _.$_$.o = floatProperty;
  _.$_$.p = intProperty;
  _.$_$.q = stringProperty;
  _.$_$.r = and;
  _.$_$.s = min;
  _.$_$.t = times;
  _.$_$.u = BinaryFunction;
  _.$_$.v = IndirectProperty;
  _.$_$.w = LazyObservableValue;
  _.$_$.x = ObservableValue;
  _.$_$.y = PropertyDelegate;
  _.$_$.z = Property;
  _.$_$.a1 = ReadOnlyPropertyWrapper;
  _.$_$.b1 = SimpleProperty;
  _.$_$.c1 = TernaryFunction;
  _.$_$.d1 = UnaryFunction;
  _.$_$.e1 = asReadOnly_5;
  _.$_$.f1 = changeListener;
  _.$_$.g1 = invalidationListener;
  _.$_$.h1 = property;
  _.$_$.i1 = currentTimeMillis;
  //endregion
  return _;
}));

//# sourceMappingURL=glok-glok-model.js.map