UNPKG

kotlin-uom

Version:

1,531 lines (1,530 loc) 1.79 MB
(function (root, factory) { if (typeof define === 'function' && define.amd) { define('kotlin', ['exports'], factory); } else if (typeof exports === 'object') { factory(module.exports); } else { root.kotlin = {}; factory(root.kotlin); } }(this, function (Kotlin) { var _ = Kotlin; Kotlin.isBooleanArray = function (a) { return (Array.isArray(a) || a instanceof Int8Array) && a.$type$ === 'BooleanArray'; }; Kotlin.isByteArray = function (a) { return a instanceof Int8Array && a.$type$ !== 'BooleanArray'; }; Kotlin.isShortArray = function (a) { return a instanceof Int16Array; }; Kotlin.isCharArray = function (a) { return a instanceof Uint16Array && a.$type$ === 'CharArray'; }; Kotlin.isIntArray = function (a) { return a instanceof Int32Array; }; Kotlin.isFloatArray = function (a) { return a instanceof Float32Array; }; Kotlin.isDoubleArray = function (a) { return a instanceof Float64Array; }; Kotlin.isLongArray = function (a) { return Array.isArray(a) && a.$type$ === 'LongArray'; }; Kotlin.isArray = function (a) { return Array.isArray(a) && !a.$type$; }; Kotlin.isArrayish = function (a) { return Array.isArray(a) || ArrayBuffer.isView(a); }; Kotlin.arrayToString = function (a) { var toString = Kotlin.isCharArray(a) ? String.fromCharCode : Kotlin.toString; return '[' + Array.prototype.map.call(a, function (e) { return toString(e); }).join(', ') + ']'; }; Kotlin.arrayDeepToString = function (arr) { return Kotlin.kotlin.collections.contentDeepToStringImpl(arr); }; Kotlin.arrayEquals = function (a, b) { if (a === b) { return true; } if (!Kotlin.isArrayish(b) || a.length !== b.length) { return false; } for (var i = 0, n = a.length; i < n; i++) { if (!Kotlin.equals(a[i], b[i])) { return false; } } return true; }; Kotlin.arrayDeepEquals = function (a, b) { return Kotlin.kotlin.collections.contentDeepEqualsImpl(a, b); }; Kotlin.arrayHashCode = function (arr) { var result = 1; for (var i = 0, n = arr.length; i < n; i++) { result = (31 * result | 0) + Kotlin.hashCode(arr[i]) | 0; } return result; }; Kotlin.arrayDeepHashCode = function (arr) { return Kotlin.kotlin.collections.contentDeepHashCodeImpl(arr); }; Kotlin.primitiveArraySort = function (array) { array.sort(Kotlin.doubleCompareTo); }; Kotlin.getCallableRef = function (name, f) { f.callableName = name; return f; }; Kotlin.getPropertyCallableRef = function (name, paramCount, getter, setter) { getter.get = getter; getter.set = setter; getter.callableName = name; return getPropertyRefClass(getter, setter, propertyRefClassMetadataCache[paramCount]); }; function getPropertyRefClass(obj, setter, cache) { obj.$metadata$ = getPropertyRefMetadata(typeof setter === 'function' ? cache.mutable : cache.immutable); obj.constructor = obj; return obj; } var propertyRefClassMetadataCache = [{mutable: {value: null, implementedInterface: function () { return Kotlin.kotlin.reflect.KMutableProperty0; }}, immutable: {value: null, implementedInterface: function () { return Kotlin.kotlin.reflect.KProperty0; }}}, {mutable: {value: null, implementedInterface: function () { return Kotlin.kotlin.reflect.KMutableProperty1; }}, immutable: {value: null, implementedInterface: function () { return Kotlin.kotlin.reflect.KProperty1; }}}]; function getPropertyRefMetadata(cache) { if (cache.value === null) { cache.value = {interfaces: [cache.implementedInterface()], baseClass: null, functions: {}, properties: {}, types: {}, staticMembers: {}}; } return cache.value; } Kotlin.toShort = function (a) { return (a & 65535) << 16 >> 16; }; Kotlin.toByte = function (a) { return (a & 255) << 24 >> 24; }; Kotlin.toChar = function (a) { return a & 65535; }; Kotlin.numberToLong = function (a) { return a instanceof Kotlin.Long ? a : Kotlin.Long.fromNumber(a); }; Kotlin.numberToInt = function (a) { return a instanceof Kotlin.Long ? a.toInt() : Kotlin.doubleToInt(a); }; Kotlin.numberToShort = function (a) { return Kotlin.toShort(Kotlin.numberToInt(a)); }; Kotlin.numberToByte = function (a) { return Kotlin.toByte(Kotlin.numberToInt(a)); }; Kotlin.numberToDouble = function (a) { return +a; }; Kotlin.numberToChar = function (a) { return Kotlin.toChar(Kotlin.numberToInt(a)); }; Kotlin.doubleToInt = function (a) { if (a > 2147483647) return 2147483647; if (a < -2147483648) return -2147483648; return a | 0; }; Kotlin.toBoxedChar = function (a) { if (a == null) return a; if (a instanceof Kotlin.BoxedChar) return a; return new Kotlin.BoxedChar(a); }; Kotlin.unboxChar = function (a) { if (a == null) return a; return Kotlin.toChar(a); }; Kotlin.equals = function (obj1, obj2) { if (obj1 == null) { return obj2 == null; } if (obj2 == null) { return false; } if (obj1 !== obj1) { return obj2 !== obj2; } if (typeof obj1 === 'object' && typeof obj1.equals === 'function') { return obj1.equals(obj2); } if (typeof obj1 === 'number' && typeof obj2 === 'number') { return obj1 === obj2 && (obj1 !== 0 || 1 / obj1 === 1 / obj2); } return obj1 === obj2; }; Kotlin.hashCode = function (obj) { if (obj == null) { return 0; } var objType = typeof obj; if ('object' === objType) { return 'function' === typeof obj.hashCode ? obj.hashCode() : getObjectHashCode(obj); } if ('function' === objType) { return getObjectHashCode(obj); } if ('number' === objType) { return Kotlin.numberHashCode(obj); } if ('boolean' === objType) { return Number(obj); } var str = String(obj); return getStringHashCode(str); }; Kotlin.toString = function (o) { if (o == null) { return 'null'; } else if (Kotlin.isArrayish(o)) { return '[...]'; } else { return o.toString(); } }; var POW_2_32 = 4.294967296E9; var OBJECT_HASH_CODE_PROPERTY_NAME = 'kotlinHashCodeValue$'; function getObjectHashCode(obj) { if (!(OBJECT_HASH_CODE_PROPERTY_NAME in obj)) { var hash = Math.random() * POW_2_32 | 0; Object.defineProperty(obj, OBJECT_HASH_CODE_PROPERTY_NAME, {value: hash, enumerable: false}); } return obj[OBJECT_HASH_CODE_PROPERTY_NAME]; } function getStringHashCode(str) { var hash = 0; for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); hash = hash * 31 + code | 0; } return hash; } Kotlin.identityHashCode = getObjectHashCode; Kotlin.Long = function (low, high) { this.low_ = low | 0; this.high_ = high | 0; }; Kotlin.Long.$metadata$ = {kind: 'class', simpleName: 'Long', interfaces: []}; Kotlin.Long.IntCache_ = {}; Kotlin.Long.fromInt = function (value) { if (-128 <= value && value < 128) { var cachedObj = Kotlin.Long.IntCache_[value]; if (cachedObj) { return cachedObj; } } var obj = new Kotlin.Long(value | 0, value < 0 ? -1 : 0); if (-128 <= value && value < 128) { Kotlin.Long.IntCache_[value] = obj; } return obj; }; Kotlin.Long.fromNumber = function (value) { if (isNaN(value) || !isFinite(value)) { return Kotlin.Long.ZERO; } else if (value <= -Kotlin.Long.TWO_PWR_63_DBL_) { return Kotlin.Long.MIN_VALUE; } else if (value + 1 >= Kotlin.Long.TWO_PWR_63_DBL_) { return Kotlin.Long.MAX_VALUE; } else if (value < 0) { return Kotlin.Long.fromNumber(-value).negate(); } else { return new Kotlin.Long(value % Kotlin.Long.TWO_PWR_32_DBL_ | 0, value / Kotlin.Long.TWO_PWR_32_DBL_ | 0); } }; Kotlin.Long.fromBits = function (lowBits, highBits) { return new Kotlin.Long(lowBits, highBits); }; Kotlin.Long.fromString = function (str, opt_radix) { if (str.length == 0) { throw Error('number format error: empty string'); } var radix = opt_radix || 10; if (radix < 2 || 36 < radix) { throw Error('radix out of range: ' + radix); } if (str.charAt(0) == '-') { return Kotlin.Long.fromString(str.substring(1), radix).negate(); } else if (str.indexOf('-') >= 0) { throw Error('number format error: interior "-" character: ' + str); } var radixToPower = Kotlin.Long.fromNumber(Math.pow(radix, 8)); var result = Kotlin.Long.ZERO; for (var i = 0; i < str.length; i += 8) { var size = Math.min(8, str.length - i); var value = parseInt(str.substring(i, i + size), radix); if (size < 8) { var power = Kotlin.Long.fromNumber(Math.pow(radix, size)); result = result.multiply(power).add(Kotlin.Long.fromNumber(value)); } else { result = result.multiply(radixToPower); result = result.add(Kotlin.Long.fromNumber(value)); } } return result; }; Kotlin.Long.TWO_PWR_16_DBL_ = 1 << 16; Kotlin.Long.TWO_PWR_24_DBL_ = 1 << 24; Kotlin.Long.TWO_PWR_32_DBL_ = Kotlin.Long.TWO_PWR_16_DBL_ * Kotlin.Long.TWO_PWR_16_DBL_; Kotlin.Long.TWO_PWR_31_DBL_ = Kotlin.Long.TWO_PWR_32_DBL_ / 2; Kotlin.Long.TWO_PWR_48_DBL_ = Kotlin.Long.TWO_PWR_32_DBL_ * Kotlin.Long.TWO_PWR_16_DBL_; Kotlin.Long.TWO_PWR_64_DBL_ = Kotlin.Long.TWO_PWR_32_DBL_ * Kotlin.Long.TWO_PWR_32_DBL_; Kotlin.Long.TWO_PWR_63_DBL_ = Kotlin.Long.TWO_PWR_64_DBL_ / 2; Kotlin.Long.ZERO = Kotlin.Long.fromInt(0); Kotlin.Long.ONE = Kotlin.Long.fromInt(1); Kotlin.Long.NEG_ONE = Kotlin.Long.fromInt(-1); Kotlin.Long.MAX_VALUE = Kotlin.Long.fromBits(4.294967295E9 | 0, 2147483647 | 0); Kotlin.Long.MIN_VALUE = Kotlin.Long.fromBits(0, 2.147483648E9 | 0); Kotlin.Long.TWO_PWR_24_ = Kotlin.Long.fromInt(1 << 24); Kotlin.Long.prototype.toInt = function () { return this.low_; }; Kotlin.Long.prototype.toNumber = function () { return this.high_ * Kotlin.Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); }; Kotlin.Long.prototype.hashCode = function () { return this.high_ ^ this.low_; }; Kotlin.Long.prototype.toString = function (opt_radix) { var radix = opt_radix || 10; if (radix < 2 || 36 < radix) { throw Error('radix out of range: ' + radix); } if (this.isZero()) { return '0'; } if (this.isNegative()) { if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { var radixLong = Kotlin.Long.fromNumber(radix); var div = this.div(radixLong); var rem = div.multiply(radixLong).subtract(this); return div.toString(radix) + rem.toInt().toString(radix); } else { return '-' + this.negate().toString(radix); } } var radixToPower = Kotlin.Long.fromNumber(Math.pow(radix, 6)); var rem = this; var result = ''; while (true) { var remDiv = rem.div(radixToPower); var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); var digits = intval.toString(radix); rem = remDiv; if (rem.isZero()) { return digits + result; } else { while (digits.length < 6) { digits = '0' + digits; } result = '' + digits + result; } } }; Kotlin.Long.prototype.getHighBits = function () { return this.high_; }; Kotlin.Long.prototype.getLowBits = function () { return this.low_; }; Kotlin.Long.prototype.getLowBitsUnsigned = function () { return this.low_ >= 0 ? this.low_ : Kotlin.Long.TWO_PWR_32_DBL_ + this.low_; }; Kotlin.Long.prototype.getNumBitsAbs = function () { if (this.isNegative()) { if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { return 64; } else { return this.negate().getNumBitsAbs(); } } else { var val = this.high_ != 0 ? this.high_ : this.low_; for (var bit = 31; bit > 0; bit--) { if ((val & 1 << bit) != 0) { break; } } return this.high_ != 0 ? bit + 33 : bit + 1; } }; Kotlin.Long.prototype.isZero = function () { return this.high_ == 0 && this.low_ == 0; }; Kotlin.Long.prototype.isNegative = function () { return this.high_ < 0; }; Kotlin.Long.prototype.isOdd = function () { return (this.low_ & 1) == 1; }; Kotlin.Long.prototype.equalsLong = function (other) { return this.high_ == other.high_ && this.low_ == other.low_; }; Kotlin.Long.prototype.notEqualsLong = function (other) { return this.high_ != other.high_ || this.low_ != other.low_; }; Kotlin.Long.prototype.lessThan = function (other) { return this.compare(other) < 0; }; Kotlin.Long.prototype.lessThanOrEqual = function (other) { return this.compare(other) <= 0; }; Kotlin.Long.prototype.greaterThan = function (other) { return this.compare(other) > 0; }; Kotlin.Long.prototype.greaterThanOrEqual = function (other) { return this.compare(other) >= 0; }; Kotlin.Long.prototype.compare = function (other) { if (this.equalsLong(other)) { return 0; } var thisNeg = this.isNegative(); var otherNeg = other.isNegative(); if (thisNeg && !otherNeg) { return -1; } if (!thisNeg && otherNeg) { return 1; } if (this.subtract(other).isNegative()) { return -1; } else { return 1; } }; Kotlin.Long.prototype.negate = function () { if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { return Kotlin.Long.MIN_VALUE; } else { return this.not().add(Kotlin.Long.ONE); } }; Kotlin.Long.prototype.add = function (other) { var a48 = this.high_ >>> 16; var a32 = this.high_ & 65535; var a16 = this.low_ >>> 16; var a00 = this.low_ & 65535; var b48 = other.high_ >>> 16; var b32 = other.high_ & 65535; var b16 = other.low_ >>> 16; var b00 = other.low_ & 65535; var c48 = 0, c32 = 0, c16 = 0, c00 = 0; c00 += a00 + b00; c16 += c00 >>> 16; c00 &= 65535; c16 += a16 + b16; c32 += c16 >>> 16; c16 &= 65535; c32 += a32 + b32; c48 += c32 >>> 16; c32 &= 65535; c48 += a48 + b48; c48 &= 65535; return Kotlin.Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); }; Kotlin.Long.prototype.subtract = function (other) { return this.add(other.negate()); }; Kotlin.Long.prototype.multiply = function (other) { if (this.isZero()) { return Kotlin.Long.ZERO; } else if (other.isZero()) { return Kotlin.Long.ZERO; } if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { return other.isOdd() ? Kotlin.Long.MIN_VALUE : Kotlin.Long.ZERO; } else if (other.equalsLong(Kotlin.Long.MIN_VALUE)) { return this.isOdd() ? Kotlin.Long.MIN_VALUE : Kotlin.Long.ZERO; } if (this.isNegative()) { if (other.isNegative()) { return this.negate().multiply(other.negate()); } else { return this.negate().multiply(other).negate(); } } else if (other.isNegative()) { return this.multiply(other.negate()).negate(); } if (this.lessThan(Kotlin.Long.TWO_PWR_24_) && other.lessThan(Kotlin.Long.TWO_PWR_24_)) { return Kotlin.Long.fromNumber(this.toNumber() * other.toNumber()); } var a48 = this.high_ >>> 16; var a32 = this.high_ & 65535; var a16 = this.low_ >>> 16; var a00 = this.low_ & 65535; var b48 = other.high_ >>> 16; var b32 = other.high_ & 65535; var b16 = other.low_ >>> 16; var b00 = other.low_ & 65535; var c48 = 0, c32 = 0, c16 = 0, c00 = 0; c00 += a00 * b00; c16 += c00 >>> 16; c00 &= 65535; c16 += a16 * b00; c32 += c16 >>> 16; c16 &= 65535; c16 += a00 * b16; c32 += c16 >>> 16; c16 &= 65535; c32 += a32 * b00; c48 += c32 >>> 16; c32 &= 65535; c32 += a16 * b16; c48 += c32 >>> 16; c32 &= 65535; c32 += a00 * b32; c48 += c32 >>> 16; c32 &= 65535; c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; c48 &= 65535; return Kotlin.Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); }; Kotlin.Long.prototype.div = function (other) { if (other.isZero()) { throw Error('division by zero'); } else if (this.isZero()) { return Kotlin.Long.ZERO; } if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { if (other.equalsLong(Kotlin.Long.ONE) || other.equalsLong(Kotlin.Long.NEG_ONE)) { return Kotlin.Long.MIN_VALUE; } else if (other.equalsLong(Kotlin.Long.MIN_VALUE)) { return Kotlin.Long.ONE; } else { var halfThis = this.shiftRight(1); var approx = halfThis.div(other).shiftLeft(1); if (approx.equalsLong(Kotlin.Long.ZERO)) { return other.isNegative() ? Kotlin.Long.ONE : Kotlin.Long.NEG_ONE; } else { var rem = this.subtract(other.multiply(approx)); var result = approx.add(rem.div(other)); return result; } } } else if (other.equalsLong(Kotlin.Long.MIN_VALUE)) { return Kotlin.Long.ZERO; } if (this.isNegative()) { if (other.isNegative()) { return this.negate().div(other.negate()); } else { return this.negate().div(other).negate(); } } else if (other.isNegative()) { return this.div(other.negate()).negate(); } var res = Kotlin.Long.ZERO; var rem = this; while (rem.greaterThanOrEqual(other)) { var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); var log2 = Math.ceil(Math.log(approx) / Math.LN2); var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); var approxRes = Kotlin.Long.fromNumber(approx); var approxRem = approxRes.multiply(other); while (approxRem.isNegative() || approxRem.greaterThan(rem)) { approx -= delta; approxRes = Kotlin.Long.fromNumber(approx); approxRem = approxRes.multiply(other); } if (approxRes.isZero()) { approxRes = Kotlin.Long.ONE; } res = res.add(approxRes); rem = rem.subtract(approxRem); } return res; }; Kotlin.Long.prototype.modulo = function (other) { return this.subtract(this.div(other).multiply(other)); }; Kotlin.Long.prototype.not = function () { return Kotlin.Long.fromBits(~this.low_, ~this.high_); }; Kotlin.Long.prototype.and = function (other) { return Kotlin.Long.fromBits(this.low_ & other.low_, this.high_ & other.high_); }; Kotlin.Long.prototype.or = function (other) { return Kotlin.Long.fromBits(this.low_ | other.low_, this.high_ | other.high_); }; Kotlin.Long.prototype.xor = function (other) { return Kotlin.Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); }; Kotlin.Long.prototype.shiftLeft = function (numBits) { numBits &= 63; if (numBits == 0) { return this; } else { var low = this.low_; if (numBits < 32) { var high = this.high_; return Kotlin.Long.fromBits(low << numBits, high << numBits | low >>> 32 - numBits); } else { return Kotlin.Long.fromBits(0, low << numBits - 32); } } }; Kotlin.Long.prototype.shiftRight = function (numBits) { numBits &= 63; if (numBits == 0) { return this; } else { var high = this.high_; if (numBits < 32) { var low = this.low_; return Kotlin.Long.fromBits(low >>> numBits | high << 32 - numBits, high >> numBits); } else { return Kotlin.Long.fromBits(high >> numBits - 32, high >= 0 ? 0 : -1); } } }; Kotlin.Long.prototype.shiftRightUnsigned = function (numBits) { numBits &= 63; if (numBits == 0) { return this; } else { var high = this.high_; if (numBits < 32) { var low = this.low_; return Kotlin.Long.fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits); } else if (numBits == 32) { return Kotlin.Long.fromBits(high, 0); } else { return Kotlin.Long.fromBits(high >>> numBits - 32, 0); } } }; Kotlin.Long.prototype.equals = function (other) { return other instanceof Kotlin.Long && this.equalsLong(other); }; Kotlin.Long.prototype.compareTo_11rb$ = Kotlin.Long.prototype.compare; Kotlin.Long.prototype.inc = function () { return this.add(Kotlin.Long.ONE); }; Kotlin.Long.prototype.dec = function () { return this.add(Kotlin.Long.NEG_ONE); }; Kotlin.Long.prototype.valueOf = function () { return this.toNumber(); }; Kotlin.Long.prototype.unaryPlus = function () { return this; }; Kotlin.Long.prototype.unaryMinus = Kotlin.Long.prototype.negate; Kotlin.Long.prototype.inv = Kotlin.Long.prototype.not; Kotlin.Long.prototype.rangeTo = function (other) { return new Kotlin.kotlin.ranges.LongRange(this, other); }; Kotlin.defineModule = function (id, declaration) { }; Kotlin.defineInlineFunction = function (tag, fun) { return fun; }; Kotlin.wrapFunction = function (fun) { var f = function () { f = fun(); return f.apply(this, arguments); }; return function () { return f.apply(this, arguments); }; }; Kotlin.isTypeOf = function (type) { return function (object) { return typeof object === type; }; }; Kotlin.isInstanceOf = function (klass) { return function (object) { return Kotlin.isType(object, klass); }; }; Kotlin.orNull = function (fn) { return function (object) { return object == null || fn(object); }; }; Kotlin.andPredicate = function (a, b) { return function (object) { return a(object) && b(object); }; }; Kotlin.kotlinModuleMetadata = function (abiVersion, moduleName, data) { }; Kotlin.suspendCall = function (value) { return value; }; Kotlin.coroutineResult = function (qualifier) { throwMarkerError(); }; Kotlin.coroutineController = function (qualifier) { throwMarkerError(); }; Kotlin.coroutineReceiver = function (qualifier) { throwMarkerError(); }; Kotlin.setCoroutineResult = function (value, qualifier) { throwMarkerError(); }; function throwMarkerError() { throw new Error('This marker function should never been called. ' + 'Looks like compiler did not eliminate it properly. ' + 'Please, report an issue if you caught this exception.'); } Kotlin.getFunctionById = function (id, defaultValue) { return function () { return defaultValue; }; }; Kotlin.compareTo = function (a, b) { var typeA = typeof a; if (typeA === 'number') { if (typeof b === 'number') { return Kotlin.doubleCompareTo(a, b); } return Kotlin.primitiveCompareTo(a, b); } if (typeA === 'string' || typeA === 'boolean') { return Kotlin.primitiveCompareTo(a, b); } return a.compareTo_11rb$(b); }; Kotlin.primitiveCompareTo = function (a, b) { return a < b ? -1 : a > b ? 1 : 0; }; Kotlin.doubleCompareTo = function (a, b) { if (a < b) return -1; if (a > b) return 1; if (a === b) { if (a !== 0) return 0; var ia = 1 / a; return ia === 1 / b ? 0 : ia < 0 ? -1 : 1; } return a !== a ? b !== b ? 0 : 1 : -1; }; Kotlin.charInc = function (value) { return Kotlin.toChar(value + 1); }; Kotlin.charDec = function (value) { return Kotlin.toChar(value - 1); }; Kotlin.imul = Math.imul || imul; Kotlin.imulEmulated = imul; function imul(a, b) { return (a & 4.29490176E9) * (b & 65535) + (a & 65535) * (b | 0) | 0; } (function () { var buf = new ArrayBuffer(8); var bufFloat64 = new Float64Array(buf); var bufFloat32 = new Float32Array(buf); var bufInt32 = new Int32Array(buf); var lowIndex = 0; var highIndex = 1; bufFloat64[0] = -1; if (bufInt32[lowIndex] !== 0) { lowIndex = 1; highIndex = 0; } Kotlin.doubleToBits = function (value) { return Kotlin.doubleToRawBits(isNaN(value) ? NaN : value); }; Kotlin.doubleToRawBits = function (value) { bufFloat64[0] = value; return Kotlin.Long.fromBits(bufInt32[lowIndex], bufInt32[highIndex]); }; Kotlin.doubleFromBits = function (value) { bufInt32[lowIndex] = value.low_; bufInt32[highIndex] = value.high_; return bufFloat64[0]; }; Kotlin.floatToBits = function (value) { return Kotlin.floatToRawBits(isNaN(value) ? NaN : value); }; Kotlin.floatToRawBits = function (value) { bufFloat32[0] = value; return bufInt32[0]; }; Kotlin.floatFromBits = function (value) { bufInt32[0] = value; return bufFloat32[0]; }; Kotlin.doubleSignBit = function (value) { bufFloat64[0] = value; return bufInt32[highIndex] & 2.147483648E9; }; Kotlin.numberHashCode = function (obj) { if ((obj | 0) === obj) { return obj | 0; } else { bufFloat64[0] = obj; return (bufInt32[highIndex] * 31 | 0) + bufInt32[lowIndex] | 0; } }; }()); Kotlin.ensureNotNull = function (x) { return x != null ? x : Kotlin.throwNPE(); }; if (typeof String.prototype.startsWith === 'undefined') { String.prototype.startsWith = function (searchString, position) { position = position || 0; return this.lastIndexOf(searchString, position) === position; }; } if (typeof String.prototype.endsWith === 'undefined') { String.prototype.endsWith = function (searchString, position) { var subjectString = this.toString(); if (position === undefined || position > subjectString.length) { position = subjectString.length; } position -= searchString.length; var lastIndex = subjectString.indexOf(searchString, position); return lastIndex !== -1 && lastIndex === position; }; } if (typeof Math.sign === 'undefined') { Math.sign = function (x) { x = +x; if (x === 0 || isNaN(x)) { return Number(x); } return x > 0 ? 1 : -1; }; } if (typeof Math.trunc === 'undefined') { Math.trunc = function (x) { if (isNaN(x)) { return NaN; } if (x > 0) { return Math.floor(x); } return Math.ceil(x); }; } (function () { var epsilon = 2.220446049250313E-16; var taylor_2_bound = Math.sqrt(epsilon); var taylor_n_bound = Math.sqrt(taylor_2_bound); var upper_taylor_2_bound = 1 / taylor_2_bound; var upper_taylor_n_bound = 1 / taylor_n_bound; if (typeof Math.sinh === 'undefined') { Math.sinh = function (x) { if (Math.abs(x) < taylor_n_bound) { var result = x; if (Math.abs(x) > taylor_2_bound) { result += x * x * x / 6; } return result; } else { var y = Math.exp(x); var y1 = 1 / y; if (!isFinite(y)) return Math.exp(x - Math.LN2); if (!isFinite(y1)) return -Math.exp(-x - Math.LN2); return (y - y1) / 2; } }; } if (typeof Math.cosh === 'undefined') { Math.cosh = function (x) { var y = Math.exp(x); var y1 = 1 / y; if (!isFinite(y) || !isFinite(y1)) return Math.exp(Math.abs(x) - Math.LN2); return (y + y1) / 2; }; } if (typeof Math.tanh === 'undefined') { Math.tanh = function (x) { if (Math.abs(x) < taylor_n_bound) { var result = x; if (Math.abs(x) > taylor_2_bound) { result -= x * x * x / 3; } return result; } else { var a = Math.exp(+x), b = Math.exp(-x); return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (a + b); } }; } if (typeof Math.asinh === 'undefined') { var asinh = function (x) { if (x >= +taylor_n_bound) { if (x > upper_taylor_n_bound) { if (x > upper_taylor_2_bound) { return Math.log(x) + Math.LN2; } else { return Math.log(x * 2 + 1 / (x * 2)); } } else { return Math.log(x + Math.sqrt(x * x + 1)); } } else if (x <= -taylor_n_bound) { return -asinh(-x); } else { var result = x; if (Math.abs(x) >= taylor_2_bound) { var x3 = x * x * x; result -= x3 / 6; } return result; } }; Math.asinh = asinh; } if (typeof Math.acosh === 'undefined') { Math.acosh = function (x) { if (x < 1) { return NaN; } else if (x - 1 >= taylor_n_bound) { if (x > upper_taylor_2_bound) { return Math.log(x) + Math.LN2; } else { return Math.log(x + Math.sqrt(x * x - 1)); } } else { var y = Math.sqrt(x - 1); var result = y; if (y >= taylor_2_bound) { var y3 = y * y * y; result -= y3 / 12; } return Math.sqrt(2) * result; } }; } if (typeof Math.atanh === 'undefined') { Math.atanh = function (x) { if (Math.abs(x) < taylor_n_bound) { var result = x; if (Math.abs(x) > taylor_2_bound) { result += x * x * x / 3; } return result; } return Math.log((1 + x) / (1 - x)) / 2; }; } if (typeof Math.log1p === 'undefined') { Math.log1p = function (x) { if (Math.abs(x) < taylor_n_bound) { var x2 = x * x; var x3 = x2 * x; var x4 = x3 * x; return -x4 / 4 + x3 / 3 - x2 / 2 + x; } return Math.log(x + 1); }; } if (typeof Math.expm1 === 'undefined') { Math.expm1 = function (x) { if (Math.abs(x) < taylor_n_bound) { var x2 = x * x; var x3 = x2 * x; var x4 = x3 * x; return x4 / 24 + x3 / 6 + x2 / 2 + x; } return Math.exp(x) - 1; }; } }()); if (typeof Math.hypot === 'undefined') { Math.hypot = function () { var y = 0; var length = arguments.length; for (var i = 0; i < length; i++) { if (arguments[i] === Infinity || arguments[i] === -Infinity) { return Infinity; } y += arguments[i] * arguments[i]; } return Math.sqrt(y); }; } if (typeof Math.log10 === 'undefined') { Math.log10 = function (x) { return Math.log(x) * Math.LOG10E; }; } if (typeof Math.log2 === 'undefined') { Math.log2 = function (x) { return Math.log(x) * Math.LOG2E; }; } if (typeof ArrayBuffer.isView === 'undefined') { ArrayBuffer.isView = function (a) { return a != null && a.__proto__ != null && a.__proto__.__proto__ === Int8Array.prototype.__proto__; }; } (function () { function normalizeOffset(offset, length) { if (offset < 0) return Math.max(0, offset + length); return Math.min(offset, length); } function typedArraySlice(begin, end) { if (typeof end === 'undefined') { end = this.length; } begin = normalizeOffset(begin || 0, this.length); end = Math.max(begin, normalizeOffset(end, this.length)); return new this.constructor(this.subarray(begin, end)); } var arrays = [Int8Array, Int16Array, Uint16Array, Int32Array, Float32Array, Float64Array]; for (var i = 0; i < arrays.length; ++i) { var TypedArray = arrays[i]; if (typeof TypedArray.prototype.slice === 'undefined') { Object.defineProperty(TypedArray.prototype, 'slice', {value: typedArraySlice}); } } try { (function () { }.apply(null, new Int32Array(0))); } catch (e) { var apply = Function.prototype.apply; Object.defineProperty(Function.prototype, 'apply', {value: function (self, array) { return apply.call(this, self, [].slice.call(array)); }}); } for (var i = 0; i < arrays.length; ++i) { var TypedArray = arrays[i]; if (typeof TypedArray.prototype.map === 'undefined') { Object.defineProperty(TypedArray.prototype, 'map', {value: function (callback, self) { return [].slice.call(this).map(callback, self); }}); } } var totalOrderComparator = function (a, b) { if (a < b) return -1; if (a > b) return 1; if (a === b) { if (a !== 0) return 0; var ia = 1 / a; return ia === 1 / b ? 0 : ia < 0 ? -1 : 1; } return a !== a ? b !== b ? 0 : 1 : -1; }; for (var i = 0; i < arrays.length; ++i) { var TypedArray = arrays[i]; if (typeof TypedArray.prototype.sort === 'undefined') { Object.defineProperty(TypedArray.prototype, 'sort', {value: function (compareFunction) { return Array.prototype.sort.call(this, compareFunction || totalOrderComparator); }}); } } }()); Kotlin.Kind = {CLASS: 'class', INTERFACE: 'interface', OBJECT: 'object'}; Kotlin.callGetter = function (thisObject, klass, propertyName) { var propertyDescriptor = Object.getOwnPropertyDescriptor(klass, propertyName); if (propertyDescriptor != null && propertyDescriptor.get != null) { return propertyDescriptor.get.call(thisObject); } propertyDescriptor = Object.getOwnPropertyDescriptor(thisObject, propertyName); if (propertyDescriptor != null && 'value' in propertyDescriptor) { return thisObject[propertyName]; } return Kotlin.callGetter(thisObject, Object.getPrototypeOf(klass), propertyName); }; Kotlin.callSetter = function (thisObject, klass, propertyName, value) { var propertyDescriptor = Object.getOwnPropertyDescriptor(klass, propertyName); if (propertyDescriptor != null && propertyDescriptor.set != null) { propertyDescriptor.set.call(thisObject, value); return; } propertyDescriptor = Object.getOwnPropertyDescriptor(thisObject, propertyName); if (propertyDescriptor != null && 'value' in propertyDescriptor) { thisObject[propertyName] = value; return; } Kotlin.callSetter(thisObject, Object.getPrototypeOf(klass), propertyName, value); }; function isInheritanceFromInterface(ctor, iface) { if (ctor === iface) return true; var metadata = ctor.$metadata$; if (metadata != null) { var interfaces = metadata.interfaces; for (var i = 0; i < interfaces.length; i++) { if (isInheritanceFromInterface(interfaces[i], iface)) { return true; } } } var superPrototype = ctor.prototype != null ? Object.getPrototypeOf(ctor.prototype) : null; var superConstructor = superPrototype != null ? superPrototype.constructor : null; return superConstructor != null && isInheritanceFromInterface(superConstructor, iface); } Kotlin.isType = function (object, klass) { if (klass === Object) { switch (typeof object) { case 'string': case 'number': case 'boolean': case 'function': return true; default:return object instanceof Object; } } if (object == null || klass == null || (typeof object !== 'object' && typeof object !== 'function')) { return false; } if (typeof klass === 'function' && object instanceof klass) { return true; } var proto = Object.getPrototypeOf(klass); var constructor = proto != null ? proto.constructor : null; if (constructor != null && '$metadata$' in constructor) { var metadata = constructor.$metadata$; if (metadata.kind === Kotlin.Kind.OBJECT) { return object === klass; } } var klassMetadata = klass.$metadata$; if (klassMetadata == null) { return object instanceof klass; } if (klassMetadata.kind === Kotlin.Kind.INTERFACE && object.constructor != null) { return isInheritanceFromInterface(object.constructor, klass); } return false; }; Kotlin.isNumber = function (a) { return typeof a == 'number' || a instanceof Kotlin.Long; }; Kotlin.isChar = function (value) { return value instanceof Kotlin.BoxedChar; }; Kotlin.isComparable = function (value) { var type = typeof value; return type === 'string' || type === 'boolean' || Kotlin.isNumber(value) || Kotlin.isType(value, Kotlin.kotlin.Comparable); }; Kotlin.isCharSequence = function (value) { return typeof value === 'string' || Kotlin.isType(value, Kotlin.kotlin.CharSequence); }; (function() { 'use strict'; var Kind_INTERFACE = Kotlin.Kind.INTERFACE; var Kind_OBJECT = Kotlin.Kind.OBJECT; var Kind_CLASS = Kotlin.Kind.CLASS; var defineInlineFunction = Kotlin.defineInlineFunction; var wrapFunction = Kotlin.wrapFunction; var equals = Kotlin.equals; var L0 = Kotlin.Long.ZERO; function Comparable() { } Comparable.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Comparable', interfaces: []}; function Enum() { Enum$Companion_getInstance(); this.name$ = ''; this.ordinal$ = 0; } Object.defineProperty(Enum.prototype, 'name', {get: function () { return this.name$; }}); Object.defineProperty(Enum.prototype, 'ordinal', {get: function () { return this.ordinal$; }}); Enum.prototype.compareTo_11rb$ = function (other) { return Kotlin.primitiveCompareTo(this.ordinal, other.ordinal); }; Enum.prototype.equals = function (other) { return this === other; }; Enum.prototype.hashCode = function () { return Kotlin.identityHashCode(this); }; Enum.prototype.toString = function () { return this.name; }; function Enum$Companion() { Enum$Companion_instance = this; } Enum$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; var Enum$Companion_instance = null; function Enum$Companion_getInstance() { if (Enum$Companion_instance === null) { new Enum$Companion(); } return Enum$Companion_instance; } Enum.$metadata$ = {kind: Kind_CLASS, simpleName: 'Enum', interfaces: [Comparable]}; function newArray(size, initValue) { return fillArrayVal(Array(size), initValue); } var arrayWithFun = defineInlineFunction('kotlin.newArrayF', wrapFunction(function () { var Array_0 = Array; return function (size, init) { var array = Array_0(size); var tmp$; tmp$ = array.length - 1 | 0; for (var i = 0; i <= tmp$; i++) { array[i] = init(i); } return array; }; })); var fillArrayFun = defineInlineFunction('kotlin.fillArray', function (array, init) { var tmp$; tmp$ = array.length - 1 | 0; for (var i = 0; i <= tmp$; i++) { array[i] = init(i); } return array; }); function booleanArray(size, init) { var tmp$; var result = Array(size); result.$type$ = 'BooleanArray'; if (init == null || equals(init, true)) tmp$ = fillArrayVal(result, false); else if (equals(init, false)) tmp$ = result; else { var tmp$_0; tmp$_0 = result.length - 1 | 0; for (var i = 0; i <= tmp$_0; i++) { result[i] = init(i); } tmp$ = result; } return tmp$; } var booleanArrayWithFun = defineInlineFunction('kotlin.booleanArrayF', wrapFunction(function () { var booleanArray = _.booleanArray; return function (size, init) { var array = booleanArray(size, false); var tmp$; tmp$ = array.length - 1 | 0; for (var i = 0; i <= tmp$; i++) { array[i] = init(i); } return array; }; })); function charArray(size, init) { var tmp$; var result = new Uint16Array(size); result.$type$ = 'CharArray'; if (init == null || equals(init, true) || equals(init, false)) tmp$ = result; else { var tmp$_0; tmp$_0 = result.length - 1 | 0; for (var i = 0; i <= tmp$_0; i++) { result[i] = init(i); } tmp$ = result; } return tmp$; } var charArrayWithFun = defineInlineFunction('kotlin.charArrayF', wrapFunction(function () { var charArray = _.charArray; var unboxChar = Kotlin.unboxChar; return function (size, init) { var tmp$; var array = charArray(size, null); tmp$ = array.length - 1 | 0; for (var i = 0; i <= tmp$; i++) { var value = unboxChar(init(i)); array[i] = value; } return array; }; })); var untypedCharArrayWithFun = defineInlineFunction('kotlin.untypedCharArrayF', wrapFunction(function () { var Array_0 = Array; var unboxChar = Kotlin.unboxChar; return function (size, init) { var tmp$; var array = Array_0(size); tmp$ = array.length - 1 | 0; for (var i = 0; i <= tmp$; i++) { var value = unboxChar(init(i)); array[i] = value; } return array; }; })); function longArray(size, init) { var tmp$; var result = Array(size); result.$type$ = 'LongArray'; if (init == null || equals(init, true)) tmp$ = fillArrayVal(result, L0); else if (equals(init, false)) tmp$ = result; else { var tmp$_0; tmp$_0 = result.length - 1 | 0; for (var i = 0; i <= tmp$_0; i++) { result[i] = init(i); } tmp$ = result; } return tmp$; } var longArrayWithFun = defineInlineFunction('kotlin.longArrayF', wrapFunction(function () { var longArray = _.longArray; return function (size, init) { var array = longArray(size, false); var tmp$; tmp$ = array.length - 1 | 0; for (var i = 0; i <= tmp$; i++) { array[i] = init(i); } return array; }; })); function fillArrayVal(array, initValue) { var tmp$; tmp$ = array.length - 1 | 0; for (var i = 0; i <= tmp$; i++) { array[i] = initValue; } return array; } function DoubleCompanionObject() { DoubleCompanionObject_instance = this; this.MIN_VALUE = Number.MIN_VALUE; this.MAX_VALUE = Number.MAX_VALUE; this.POSITIVE_INFINITY = Number.POSITIVE_INFINITY; this.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY; this.NaN = Number.NaN; } DoubleCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'DoubleCompanionObject', interfaces: []}; var DoubleCompanionObject_instance = null; function DoubleCompanionObject_getInstance() { if (DoubleCompanionObject_instance === null) { new DoubleCompanionObject(); } return DoubleCompanionObject_instance; } function FloatCompanionObject() { FloatCompanionObject_instance = this; this.MIN_VALUE = Number.MIN_VALUE; this.MAX_VALUE = Number.MAX_VALUE; this.POSITIVE_INFINITY = Number.POSITIVE_INFINITY; this.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY; this.NaN = Number.NaN; } FloatCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'FloatCompanionObject', interfaces: []}; var FloatCompanionObject_instance = null; function FloatCompanionObject_getInstance() { if (FloatCompanionObject_instance === null) { new FloatCompanionObject(); } return FloatCompanionObject_instance; } function IntCompanionObject() { IntCompanionObject_instance = this; this.MIN_VALUE = -2147483648; this.MAX_VALUE = 2147483647; this.SIZE_BYTES = 4; this.SIZE_BITS = 32; } IntCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'IntCompanionObject', interfaces: []}; var IntCompanionObject_instance = null; function IntCompanionObject_getInstance() { if (IntCompanionObject_instance === null) { new IntCompanionObject(); } return IntCompanionObject_instance; } function LongCompanionObject() { LongCompanionObject_instance = this; this.MIN_VALUE = Kotlin.Long.MIN_VALUE; this.MAX_VALUE = Kotlin.Long.MAX_VALUE; this.SIZE_BYTES = 8; this.SIZE_BITS = 64; } LongCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'LongCompanionObject', interfaces: []}; var LongCompanionObject_instance = null; function LongCompanionObject_getInstance() { if (LongCompanionObject_instance === null) { new LongCompanionObject(); } return LongCompanionObject_instance; } function ShortCompanionObject() { ShortCompanionObject_instance = this; this.MIN_VALUE = -32768 | 0; this.MAX_VALUE = 32767; this.SIZE_BYTES = 2; this.SIZE_BITS = 16; } ShortCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'ShortCompanionObject', interfaces: []}; var ShortCompanionObject_instance = null; function ShortCompanionObject_getInstance() { if (ShortCompanionObject_instance === null) { new ShortCompanionObject(); } return ShortCompanionObject_instance; } function ByteCompanionObject() { ByteCompanionObject_instance = this; this.MIN_VALUE = -128 | 0; this.MAX_VALUE = 127; this.SIZE_BYTES = 1; this.SIZE_BITS = 8; } ByteCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'ByteCompanionObject', interfaces: []}; var ByteCompanionObject_instance = null; function ByteCompanionObject_getInstance() { if (ByteCompanionObject_instance === null) { new ByteCompanionObject(); } return ByteCompanionObject_instance; } function CharCompanionObject() { CharCompanionObject_instance = this; this.MIN_VALUE = 0; this.MAX_VALUE = 65535; this.MIN_HIGH_SURROGATE = 55296; this.MAX_HIGH_SURROGATE = 56319; this.MIN_LOW_SURROGATE = 56320; this.MAX_LOW_SURROGATE = 57343; this.MIN_SURROGATE = this.MIN_HIGH_SURROGATE; this.MAX_SURROGATE = this.MAX_LOW_SURROGATE; this.SIZE_BYTES = 2; this.SIZE_BITS = 16; } CharCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'CharCompanionObject', interfaces: []}; var CharCompanionObject_instance = null; function CharCompanionObject_getInstance() { if (CharCompanionObject_instance === null) { new CharCompanionObject(); } return CharCompanionObject_instance; } function StringCompanionObject() { StringCompanionObject_instance = this; } StringCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'StringCompanionObject', interfaces: []}; var StringCompanionObject_instance = null; function StringCompanionObject_getInstance() { if (StringCompanionObject_instance === null) { new StringCompanionObject(); } return StringCompanionObject_instance; } function BooleanCompanionObject() { BooleanCompanionObject_instance = this; } BooleanCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'BooleanCompanionObject', interfaces: []}; var BooleanCompanionObject_instance = null; function BooleanCompanionObject_getInstance() { if (BooleanCompanionObject_instance === null) { new BooleanCompanionObject(); } return BooleanCompanionObject_instance; } var package$kotlin = _.kotlin || (_.kotlin = {}); package$kotlin.Comparable = Comparable; Object.defineProperty(Enum, 'Companion', {get: Enum$Companion_getInstance}); package$kotlin.Enum = Enum; _.newArray = newArray; _.fillArray = fillArrayFun; _.newArrayF = arrayWithFun; _.booleanArray = booleanArray; _.booleanArrayF = booleanArrayWithFun; _.charArray = charArray; _.charArrayF = charArrayWithFun; _.untypedCharArrayF = untypedCharArrayWithFun; _.longArray = longArray; _.longArrayF = longArrayWithFun; var package$js = package$kotlin.js || (package$kotlin.js = {}); var package$internal = package$js.internal || (package$js.internal = {}); Object.defineProperty(package$internal, 'DoubleCompanionObject', {get: DoubleCompanionObject_getInstance}); Object.defineProperty(package$internal, 'FloatCompanionObject', {get: FloatCompanionObject_getInstance}); Object.defineProperty(package$internal, 'IntCompanionObject', {get: IntCompanionObject_getInstance}); Object.defineProperty(package$internal, 'LongCompanionObject', {get: LongCompanionObject_getInstance}); Object.defineProperty(package$internal, 'ShortCompanionObject', {get: ShortCompanionObject_getInstance}); Object.defineProperty(package$internal, 'ByteCompanionObject', {get: ByteCompanionObject_getInstance}); Object.defineProperty(package$internal, 'CharCompanionObject', {get: CharCompanionObject_getInstance}); Kotlin.defineModule('kotlin', _); }()); (function() { 'use strict'; var defineInlineFunction = Kotlin.defineInlineFunction; var wrapFunction = Kotlin.wrapFunction; var equals = Kotlin.equals; var Any = Object; var toBoxedChar = Kotlin.toBoxedChar; var unboxChar = Kotlin.unboxChar; var sort = Kotlin.primitiveArraySort; var kotlin_js_internal_DoubleCompanionObject = Kotlin.kotlin.js.internal.DoubleCompanionObject; var L0 = Kotlin.Long.ZERO; var toChar = Kotlin.toChar; var L_1 = Kotlin.Long.NEG_ONE; var toByte = Kotlin.toByte; var L_128 = Kotlin.Long.fromInt(-128); var L127 = Kotlin.Lon