// Metro module 13270 (f13271). let c9205_1, c9205_2, Decimal2, c9205_4, c9205_5, c9205_6, c9205_7, c9205_8, c9205_9, c9205_10, c9205_11, c9205_12, floor2, pow2, c9205_15, c9205_16, c9205_17, c9205_18, c9205_19, c9205_20, c9205_21, prototype, checkRoundingDigits, convertBase, c9205_26, finalise, finiteToString, intPow, naturalExponential, naturalLogarithm, parseDecimal, taylorSeries, toLessThanHalfPi, toStringBinary, abs, acos, acosh, add, asin, asinh, atan, atanh, atan2, cbrt, ceil, clamp, config, cos, cosh, div, exp, floor, hypot, isDecimalInstance, ln, log, log2, log10, max, min, mod, mul, pow, random, round, sign, sin, sinh, sqrt, sub, sum, tan, tanh, trunc, clone; const _this = this; const digitsToString = function digitsToString(a0) { "use strict"; let r11, r22, r27, r36, r42; const r8 = a0.length - 1; const r12 = a0[0]; if (0 < r8) { let r15 = "" + r12; let r5 = 1; let r24 = r15; let r4 = 1; while (r4 < r8) { const r18 = "" + a0[r5]; const r3 = 7 - r18.length; const r20 = r15; const r7 = r5; let r26 = r20; if (r3) { let r0 = r3 - 1; let r21 = ""; let r19 = ""; if (r3) { do { r21 = r21 + "0"; const r1 = r0 - 1; r27 = r0; r0 = r1; r19 = r21; } while (r27); } r26 = r20 + r19; } r15 = r26 + r18; r5 = r7 + 1; r24 = r15; r4 = r5; } const r28 = a0[r4]; const r31 = 7 - ("" + r28).length; r22 = r28; r11 = r24; if (r31) { let r32 = r31 - 1; let r33 = ""; let r34 = ""; if (r31) { do { r33 = r33 + "0"; const r35 = r32 - 1; r36 = r32; r32 = r35; r34 = r33; } while (r36); } r11 = r24 + r34; r22 = r28; } } else { r11 = ""; r22 = r12; if (r22 === 0) { return "0"; } } const r38 = r22 % 10; let r39 = r22; let r40 = r39; if (r38 === 0) { do { const r41 = r39 / 10; r42 = r41 % 10; r39 = r41; r40 = r39; } while (r42 === 0); } return r11 + r40; }; checkRoundingDigits = function checkRoundingDigits(a0, precision, rounding, a3) { "use strict"; let r5, r25, r34; let r14 = precision; let r15 = a0[0]; let r13 = precision; if (r15 >= 10) { do { r14 = r14 - 1; r15 = r15 / 10; r13 = r14; } while (10 <= r15); } const r19 = r13 - 1; if (r19 < 0) { r5 = r19 + 7; r25 = 0; } else { r25 = Math.ceil((r19 + 1) / 7); r5 = r19 % 7; } const r31 = pow2(10, 7 - r5); const r4 = a0[r25] % r31 | 0; if (a3 == null) { if (r5 < 3) { const r95 = r5 === 0 ? r4 / 100 | 0 : r5 === 1 ? r4 / 10 | 0 : r4; r34 = rounding < 4 && r95 === 99999 || rounding > 3 && r95 === 49999 || r95 === 50000 || r95 === 0; } else { let r65 = (rounding < 4 && r4 + 1 == r31 || rounding > 3 && r4 + 1 === r31 / 2) && (a0[r25 + 1] / r31 / 100 | 0) === pow2(10, r5 - 2) - 1; if (!r65) { const r85 = r31 / 2; r65 = (r4 !== r85 ? r4 === 0 : r4 === r85) && !(a0[r25 + 1] / r31 / 100 | 0); } r34 = r65; } } else if (r5 < 4) { const r53 = r5 === 0 ? r4 / 1000 | 0 : r5 === 1 ? r4 / 100 | 0 : r5 === 2 ? r4 / 10 | 0 : r4; r34 = (a3 ? a3 : rounding < 4) && r53 === 9999 || (a3 ? !a3 : rounding > 3) && r53 === 4999; } else { r34 = ((a3 ? a3 : rounding < 4) && r4 + 1 == r31 || (a3 ? !a3 : rounding > 3) && r4 + 1 === r31 / 2) && (a0[r25 + 1] / r31 / 1000 | 0) === pow2(10, r5 - 3) - 1; } return r34; }; convertBase = function convertBase(a0, a1, a2) { "use strict"; let r22; const r14 = [0]; const length = a0.length; const r11 = 0 < length; const r9 = a2 - 1; let r6 = 0; if (r11) { do { const r20 = +r14.length; let r18 = r20 - 1; const r7 = r6; if (r20) { do { r14[r18] = r14[r18] * a1; r22 = +r18; r18 = r22 - 1; } while (r22); } r14[0] = r14[0] + "0123456789abcdef".indexOf(a0.charAt(r7)); const r29 = 0 < r14.length; let r30 = 0; if (r29) { do { const r31 = r14[r30]; const r1 = r30; if (r31 > r9) { const r3 = r1 + 1; if (r14[r3] === void 0) { r14[r3] = 0; } r14[r3] = r14[r3] + (r14[r1] / a2 | 0); r14[r1] = r14[r1] % a2; } r30 = r1 + 1; } while (r30 < r14.length); } r6 = r7 + 1; } while (r6 < length); } return r14.reverse(); }; finalise = function finalise(a0, a1, rounding, a3) { "use strict"; let r23, r24, r37, r38, r39, r50, r74, r96, r105, constructor, length2; L75: { constructor = a0.constructor; if (a1 != null) { const r15 = a0.d; if (r15) { let r16 = r15[0]; const r10 = r16 >= 10; let r2 = 1; let r0 = 1; if (r10) { do { r2 = r2 + 1; r16 = r16 / 10; r0 = r2; } while (10 <= r16); } let r22 = a3; const r7 = a1 - r0; if (r7 < 0) { r38 = r7 + 7; const r54 = r15[0]; r39 = r54 / pow2(10, r0 - a1 - 1) % 10 | 0; length2 = 0; r24 = r54; r23 = a1; r37 = r0; } else { const r34 = Math.ceil((r7 + 1) / 7); const length = r15.length; if (r34 >= length) { if (!a3) { break L75; } const r47 = +length; let r25 = r47 + 1; if (r47 <= r34) { do { r15.push(0); r50 = +r25; r25 = r50 + 1; } while (r50 <= r34); } const r51 = r7 % 7; r23 = r51 - 7 + 1; length2 = r34; r24 = 0; r39 = 0; r38 = r51; r37 = 1; } else { r24 = r15[r34]; const r35 = r24 >= 10; let r36 = r24; let r1 = 1; r37 = 1; if (r35) { do { r1 = r1 + 1; r36 = r36 / 10; r37 = r1; } while (10 <= r36); } r38 = r7 % 7; r23 = r38 - 7 + r37; r39 = r23 < 0 ? 0 : r24 / pow2(10, r37 - r23 - 1) % 10 | 0; length2 = r34; } } if (!a3) { r22 = a1 < 0; } if (!r22) { r22 = r15[length2 + 1] !== void 0; } if (!r22) { r22 = r23 < 0 ? r24 : r24 % pow2(10, r37 - r23 - 1); } if (rounding < 4) { if (!r39) { r39 = r22; } if (r39) { r39 = rounding == 0 || rounding == (a0.s < 0 ? 3 : 2); } r74 = r39; } else { r74 = r39 > 5; if (!(5 < r39)) { r74 = r39 === 5 ? rounding == 4 || r22 || rounding == 6 && (0 < r38 ? r23 > 0 ? r24 / pow2(10, r37 - r23) : 0 : r15[length2 - 1]) % 10 & 1 || rounding == (a0.s < 0 ? 8 : 7) : r39 === 5; } } if (!(a1 < 1) && r15[0]) { if (r38 === 0) { r15.length = length2; r105 = length2 - 1; r96 = 1; } else { r15.length = length2 + 1; r96 = pow2(10, 7 - r38); r15[length2] = r23 > 0 ? (r24 / pow2(10, r37 - r23) % pow2(10, r23) | 0) * r96 : 0; r105 = length2; } if (r74) { while (true) { const r106 = r105; const r107 = r96; if (r106 == 0) { let r113 = r15[0]; const r114 = r113 >= 10; let r115 = 1; let r116 = 1; if (r114) { do { r115 = r115 + 1; r113 = r113 / 10; r116 = r115; } while (10 <= r113); } let r118 = r15[0] + r107; r15[0] = r118; let r119 = 1; let r120 = 1; if (r118 >= 10) { do { r119 = r119 + 1; r118 = r118 / 10; r120 = r119; } while (10 <= r118); } if (r116 === r120) { break; } a0.e = a0.e + 1; if (r15[0] != c9205_19) { break; } r15[0] = 1; break; } r15[r106] = r15[r106] + r107; if (r15[r106] != c9205_19) { break; } const r112 = +r106; r105 = r112 - 1; r15[r112] = 0; r96 = 1; } } let r126 = r15.length - 1; if (r15[r126] !== 0) { break L75; } while (true) { r15.pop(); const r130 = r126 - 1; const r131 = r15[r130]; r126 = r130; if (r131 !== 0) { break L75; } } } r15.length = 0; if (r74) { const r142 = a1 - (a0.e + 1); r15[0] = pow2(10, (7 - r142 % 7) % 7); a0.e = -r142 || 0; } else { a0.e = 0; r15[0] = 0; } return a0; } return a0; } } if (c9205_8) { if (a0.e > constructor.maxE) { a0.d = null; a0.e = NaN; } else if (a0.e < constructor.minE) { a0.e = 0; a0.d = [0]; } } return a0; }; finiteToString = function finiteToString(a0, a1, a2) { "use strict"; let r40, r46, r53, r63, r77, r90, r93, r113; if (a0.isFinite()) { const r28 = a0.e; const r13 = digitsToString(a0.d); const length = r13.length; if (a1) { if (a2) { const r91 = a2 - length; if (r91 > 0) { const r107 = r13.charAt(0) + "." + r13.slice(1); const r108 = +r91; let r109 = r108 - 1; let r110 = ""; let r112 = ""; if (r108) { do { r110 = r110 + "0"; r113 = +r109; r109 = r113 - 1; r112 = r110; } while (r113); } r93 = r107 + r112; } else { r93 = length > 1 ? r13.charAt(0) + "." + r13.slice(1) : r13; } } else { r93 = length > 1 ? r13.charAt(0) + "." + r13.slice(1) : r13; } r40 = r93 + (a0.e < 0 ? "e" : "e+") + a0.e; } else if (r28 < 0) { const r70 = -r28 - 1; let r71 = r70 - 1; let r74 = ""; let r75 = ""; if (r70) { do { r74 = r74 + "0"; const r76 = r71 - 1; r77 = r71; r71 = r76; r75 = r74; } while (r77); } const r82 = `0.${r75}${r13}`; let r83 = void 0; let r84 = a2; if (a2) { const r85 = a2 - length; r84 = r85 > 0; r83 = r85; } r40 = r82; if (r84) { const r86 = +r83; let r87 = r86 - 1; let r88 = ""; let r89 = ""; if (r86) { do { r88 = r88 + "0"; r90 = +r87; r87 = r90 - 1; r89 = r88; } while (r90); } r40 = r82 + r89; } } else if (r28 >= length) { const r1 = r28 + 1 - length; let r0 = r1 - 1; let r51 = ""; let r52 = ""; if (r1) { do { r51 = r51 + "0"; const r2 = r0 - 1; r53 = r0; r0 = r2; r52 = r51; } while (r53); } let r54 = a2; let r55 = void 0; if (a2) { const r57 = a2 - r28 - 1; r54 = r57 > 0; r55 = r57; } const r58 = r13 + r52; r40 = r58; if (r54) { const r59 = +r55; let r60 = r59 - 1; let r61 = ""; let r62 = ""; if (r59) { do { r61 = r61 + "0"; r63 = +r60; r60 = r63 - 1; r62 = r61; } while (r63); } r40 = HermesInternal.concat.call(r58, ".", r62); } } else { const r32 = r28 + 1; const r16 = r32 < length ? r13.slice(0, r32) + "." + r13.slice(r32) : r13; let r37 = a2; let r38 = r32; if (a2) { const r39 = a2 - length; r37 = r39 > 0; r38 = r39; } r40 = r16; if (r37) { const r41 = r28 + 1 === length ? r16 + "." : r16; const r43 = +r38; let r18 = r43 - 1; let r44 = ""; let r45 = ""; if (r43) { do { r44 = r44 + "0"; r46 = +r18; r18 = r46 - 1; r45 = r44; } while (r46); } r40 = r41 + r45; } } return r40; } return String(a0.s * a0.s / 0); }; intPow = function intPow(constructor, r16, r15, precision) { "use strict"; let r14 = new constructor(1); const length2 = Math.ceil(precision / 7 + 4); c9205_8 = false; let r6 = void 0; while (true) { let r5 = r15 % 2; const r20 = r14; let r4 = r6; const r18 = r15; const r19 = r16; let r34 = r20; if (r5) { const r36 = r20.times(r19); const r37 = r36.d; const r10 = r37.length > length2; let r7 = void 0; if (r10) { r37.length = length2; r7 = true; } r5 = r7; r34 = r36; } if (r5) { r4 = true; } const r39 = floor2(r18 / 2); if (r39 === 0) { const r46 = r34.d.length - 1; if (r4) { r4 = r34.d[r46] === 0; } if (r4) { const r49 = r34.d; r49[r46] = r49[r46] + 1; } c9205_8 = true; return r34; } const r41 = r19.times(r19); const r42 = r41.d; const length = r42.length; r14 = r34; r6 = r4; r15 = r39; r16 = r41; if (length > length2) { r42.length = length2; r14 = r34; r6 = r4; r15 = r39; r16 = r41; } } }; naturalExponential = function naturalExponential(a0, a1) { "use strict"; let r4, r8, r30, r31, r54, r87, r95, r96; const constructor = a0.constructor; const { rounding, precision } = constructor; if (a0.d && a0.d[0] && !(a0.e > 17)) { let r48 = a1; if (a1 == null) { c9205_8 = false; r48 = precision; } const r24 = new constructor(0.03125); const r50 = a0.e > -2; let r3 = 0; let r51 = a0; let r52 = 0; let r26 = a0; if (r50) { do { const r25 = r51.times(r24); r3 = r3 + 5; r54 = r25.e; r51 = r25; r52 = r3; r26 = r51; } while (r54 > -2); } const r12 = Math.log(pow2(2, r52)) / Math.LN10 * 2 + 5 | 0; let precision2 = r48 + r12; let r73 = new constructor(1); constructor.precision = precision2; const r74 = r52 - 1; const r75 = r52; let r76 = 0; let r77 = 0; let r78 = r73; let r79 = r78; while (true) { L16: { r31 = r78.times(r26); finalise(r31, precision2, 1); const times = r79.times; const r5 = r76 + 1; r30 = times.call(r79, r5); r87 = r73.plus(c9205_26(r31, r30, precision2, 1)); const r37 = digitsToString(r87.d).slice(0, precision2); const r36 = digitsToString(r73.d).slice(0, precision2); const r9 = r77; const r93 = precision2; const r94 = r73; r8 = r5; r95 = r9; r96 = r93; if (r37 === r36) { let r97 = r94; let r0 = r74; let r98 = r97; if (r75) { do { const r100 = r97.times(r97); finalise(r100, r93, 1); const r2 = r0 - 1; r4 = r0; r97 = r100; r0 = r2; r98 = r97; } while (r4); } if (a1 != null) { constructor.precision = precision; return r98; } if (r9 < 3 && checkRoundingDigits(r98.d, r93 - r12, rounding, r9)) { const precision3 = r93 + 10; constructor.precision = precision3; r87 = new constructor(1); r95 = r9 + 1; r8 = 0; r96 = precision3; r31 = r87; r30 = r31; break L16; } constructor.precision = precision; c9205_8 = true; return finalise(r98, precision, rounding, true); } } r76 = r8; r77 = r95; precision2 = r96; r73 = r87; r78 = r31; r79 = r30; } } return new constructor(a0.d ? a0.d[0] ? a0.s < 0 ? 0 : Infinity : 1 : a0.s ? a0.s < 0 ? 0 : a0 : NaN); }; naturalLogarithm = function naturalLogarithm(a0, a1) { "use strict"; let r0, r5, r20, r95, r98, r99, r100, r125, r126, constructor; L41: { r20 = a0.d; constructor = a0.constructor; const { rounding, precision } = constructor; if (!(a0.s < 0) && r20 && r20[0]) { if (!a0.e && r20[0] == 1 && r20.length == 1) { break L41; } const r10 = a1 == null; let r16 = a1; if (r10) { c9205_8 = false; r16 = precision; } const precision2 = r16 + 10; constructor.precision = precision2; const r23 = digitsToString(r20); const r27 = r23.charAt(0); const r25 = Math; const r21 = a0.e; if (!(r25.abs(r21) < 1500000000000000)) { const r58 = precision2 + 2; if (r58 > c9205_20) { c9205_8 = true; if (precision) { constructor.precision = precision; } throw Error(c9205_10); } const r61 = new constructor(c9205_5); finalise(r61, r58, 1, true); const r68 = r61.times("" + r21); const r82 = naturalLogarithm(new constructor(r27 + "." + r23.slice(1)), precision2 - 10).plus(r68); constructor.precision = precision; if (r10) { c9205_8 = true; finalise(r82, precision, rounding, true); } return r82; } L24: { L20: { if (r27 < 7) { r0 = 1; const r94 = r27 != 1; r95 = a0; if (r94) { break L20; } } const r97 = r27 == 1; r98 = a0; r5 = 1; r99 = r27; r100 = r23; if (!r97) { break L24; } const r103 = r23.charAt(1) > 3; r95 = a0; r0 = 1; r98 = a0; r5 = 1; r99 = r27; r100 = r23; if (!r103) { break L24; } } while (true) { const r31 = r95.times(a0); const r107 = digitsToString(r31.d); const r109 = r107.charAt(0); const r111 = r0 + 1; if (r109 < 7) { r95 = r31; r0 = r111; if (r109 != 1) { continue; } } r98 = r31; r5 = r111; r99 = r109; r100 = r107; if (r109 != 1) { break; } const r113 = r107.charAt(1); r95 = r31; r0 = r111; r98 = r95; r5 = r0; r99 = r109; r100 = r107; if (!(r113 > 3)) { break; } } } const r115 = r98.e; if (r99 > 1) { r125 = new constructor("0." + r100); r126 = r115 + 1; } else { r125 = new constructor(r99 + "." + r100.slice(1)); r126 = r115; } const r142 = c9205_26(r125.minus(1), r125.plus(1), precision2, 1); const r145 = r142.times(r142); finalise(r145, precision2, 1); let r147 = 3; const r150 = r125; let r151 = r145; let r152 = precision2; let r153 = r142; let r154 = void 0; let r155 = r153; while (true) { let r157 = r155.times(r151); finalise(r157, r152, 1); let r169 = r153.plus(c9205_26(r157, new constructor(r147), r152, 1)); const r36 = digitsToString(r169.d).slice(0, r152); const r176 = digitsToString(r153.d).slice(0, r152); let r177 = r151; const r34 = r152; const r35 = r153; const r11 = r154; let r178 = r147; let r179 = r34; let r9 = r11; if (r36 === r176) { const r39 = r35.times(2); let r181 = r39; if (r126 !== 0) { const r183 = r34 + 2; if (r183 > c9205_20) { c9205_8 = true; if (precision) { constructor.precision = precision; } throw Error(c9205_10); } const r186 = new constructor(c9205_5); finalise(r186, r183, 1, true); r181 = r39.plus(r186.times("" + r126)); } const r205 = c9205_26(r181, new constructor(r5), r34, 1); if (a1 != null) { constructor.precision = precision; return r205; } if (!checkRoundingDigits(r205.d, r34 - 10, rounding, r11)) { constructor.precision = precision; c9205_8 = true; finalise(r205, precision, rounding, true); return r205; } const precision3 = r34 + 10; constructor.precision = precision3; const r228 = c9205_26(r150.minus(1), r150.plus(1), precision3, 1); const r230 = r228.times(r228); finalise(r230, precision3, 1); r177 = r230; r179 = precision3; r169 = r228; r9 = 1; r157 = r169; r178 = 1; } r147 = r178 + 2; r151 = r177; r152 = r179; r153 = r169; r154 = r9; r155 = r157; } } } return new constructor(r20 ? r20[0] ? a0.s != 1 ? NaN : r20 ? 0 : a0 : -Infinity : a0.s != 1 ? NaN : r20 ? 0 : a0); }; parseDecimal = function parseDecimal(a0, a1) { "use strict"; let r23, r24, r35, r45, r57, r58, r81; const r13 = a1.indexOf("."); const r17 = r13 > -1 ? a1.replace(".", "") : a1; const r20 = r17.search(/e/i); if (r20 > 0) { r24 = (r13 < 0 ? r20 : r13) + +r17.slice(r20 + 1); r23 = r17.substring(0, r20); } else { r23 = r17; r24 = r13; if (r24 < 0) { r24 = r17.length; r23 = r17; } } const r31 = r23.charCodeAt(0); const r32 = r23; let r0 = 0; let r33 = 0; if (r31 === 48) { do { const r1 = r0 + 1; r35 = r32.charCodeAt(r1); r0 = r1; r33 = r0; } while (r35 === 48); } const length = r32.length; const r39 = r32.charCodeAt(length - 1); let r40 = length; let r41 = r40; if (r39 === 48) { do { const r42 = r40 - 1; r45 = r32.charCodeAt(r42 - 1); r40 = r42; r41 = r40; } while (r45 === 48); } const r48 = r32.slice(r33, r41); if (r48) { const r50 = r41 - r33; const r8 = r24 - r33 - 1; a0.e = r8; a0.d = []; const r55 = (r8 + 1) % 7; const r56 = r8 < 0 ? r55 + 7 : r55; if (r56 < r50) { if (r56) { a0.d.push(+r48.slice(0, r56)); } const r65 = r50 - 7; let r66 = r56; let r67 = r66; while (r67 < r65) { const r68 = a0.d; const r5 = r66 + 7; r68.push(+r48.slice(r66, r5)); r66 = r5; r67 = r66; } const r74 = r48.slice(r67); r57 = 7 - r74.length; r58 = r74; } else { r57 = r56 - r50; r58 = r48; } let r76 = r57 - 1; let r78 = r58; let r79 = r78; if (r57) { do { r78 = r78 + "0"; const r80 = r76 - 1; r81 = r76; r76 = r80; r79 = r78; } while (r81); } a0.d.push(+r79); if (c9205_8) { if (a0.e > a0.constructor.maxE) { a0.d = null; a0.e = NaN; } else if (a0.e < a0.constructor.minE) { a0.e = 0; a0.d = [0]; } } } else { a0.e = 0; a0.d = [0]; } return a0; }; taylorSeries = function taylorSeries(constructor, r0, a2, a3, a4) { "use strict"; let r75; const precision = constructor.precision; const r30 = Math.ceil(precision / 7); c9205_8 = false; const r14 = a2.times(a2); let r13 = new constructor(a3); let r36 = a3; while (true) { const r38 = r13.times(r14); const r3 = r0 + 1; const r44 = c9205_26(r38, new constructor(r0 * r3), precision, 1); const r19 = r36; const r46 = a4 ? r19.plus(r44) : r19.minus(r44); const r4 = r3 + 1; const r49 = r44.times(r14); const r1 = r4 + 1; const r50 = r1 + 1; const r60 = c9205_26(r49, new constructor(r4 * r1), precision, 1); const r62 = r46.plus(r60); const r64 = r62.d[r30]; r13 = r60; r36 = r62; r0 = r50; if (r64 !== void 0) { const r66 = r62.d[r30]; const r68 = r46.d[r30]; let r69 = r30; if (r66 === r68) { const r70 = +r30; let r71 = r70 - 1; r69 = r71; if (r70) { do { const r22 = r62.d[r71]; const r21 = r46.d[r71]; const r74 = r71; r69 = r74; if (r22 !== r21) { break; } r75 = +r74; r71 = r75 - 1; r69 = r71; } while (r75); } } r13 = r60; r36 = r62; r0 = r50; if (r69 == -1) { c9205_8 = true; r62.d.length = r30 + 1; return r62; } } } }; toLessThanHalfPi = function toLessThanHalfPi(constructor, a1) { "use strict"; let r47; const r5 = a1.s < 0; const precision = constructor.precision; if (precision > c9205_21) { throw Error(c9205_10); } const r20 = new constructor(c9205_6); let r21 = 1; finalise(r20, precision, 1, true); const r26 = r20.times(0.5); const r28 = a1.abs(); if (r28.lte(r26)) { if (r5) { r21 = 4; } c9205_4 = r21; return r28; } const r32 = r28.divToInt(r20); if (r32.isZero()) { c9205_4 = r5 ? 3 : 2; r47 = r28; } else { const r38 = r28.minus(r32.times(r20)); const r40 = r38.lte(r26); const r46 = 1 & r32.d[r32.d.length - 1]; if (r40) { c9205_4 = r46 ? r5 ? 2 : 3 : r5 ? 4 : 1; return r38; } c9205_4 = r46 ? r5 ? 1 : 4 : r5 ? 3 : 2; r47 = r38; } return r47.minus(r20).abs(); }; toStringBinary = function toStringBinary(a0, a1, a2, a3) { "use strict"; let r7, r13, r17, r58, r59, r92, r94, r95, r104, r105, r106, r113, r139, r148, r168, r174, r188, r198, constructor, rounding; L11: { constructor = a0.constructor; r13 = a2 !== void 0; if (r13) { if (a2 === ~~a2 && !(a2 < 1) && !(a2 > 1000000000)) { if (a3 === void 0) { rounding = constructor.rounding; r17 = a2; break L11; } if (a3 === ~~a3 && !(a3 < 0)) { r17 = a2; rounding = a3; if (!(a3 > 8)) { break L11; } } throw Error(c9205_9 + a3); } throw Error(c9205_9 + a2); } r17 = constructor.precision; rounding = constructor.rounding; } if (a0.isFinite()) { let r1 = a1; let length4 = r17; if (r13) { if (a1 === 16) { length4 = 4 * r17 - 3; r1 = 2; } else { r1 = 2; length4 = r17; if (a1 === 8) { length4 = 3 * r17 - 2; r1 = 2; } } } const r29 = finiteToString(a0); const r25 = r29.indexOf("."); const r10 = r25 >= 0; let r26 = void 0; let r69 = r29; if (r10) { const r71 = r29.replace(".", ""); const r74 = new constructor(1); r74.e = r71.length - r25; r74.d = convertBase(finiteToString(r74), 10, r1); r74.e = r74.d.length; r26 = r74; r69 = r71; } const r85 = convertBase(r69, 10, r1); const length = r85.length; let r87 = length - 1; if (r85[r87] == 0) { do { r85.pop(); const r91 = r87 - 1; r92 = r85[r91]; r87 = r91; } while (r92 == 0); } if (r85[0]) { if (r25 < 0) { r106 = length - 1; r105 = r85; r7 = void 0; r104 = a0; } else { const r100 = new constructor(a0); r100.d = r85; r100.e = length; r104 = c9205_26(r100, r26, length4, rounding, 0, r1); r105 = r104.d; r106 = r104.e; r7 = c9205_2; } const r107 = r105[length4]; if (!r7) { r7 = r105[length4 + 1] !== void 0; } if (rounding < 4) { r113 = (r107 !== void 0 || r7) && (rounding === 0 || rounding === (r104.s < 0 ? 3 : 2)); } else { const r112 = r1 / 2; r113 = r107 > r112 || r107 === r112 && (rounding === 4 || r7 || rounding === 6 && 1 & r105[length4 - 1] || rounding === (r104.s < 0 ? 8 : 7)); } r105.length = length4; let r125 = r106; if (r113) { let r126 = length4 - 1; const r128 = r105[r126] + 1; r105[r126] = r128; const r130 = r1 - 1; let r131 = r106; r125 = r131; if (r128 > r130) { do { r105[r126] = 0; const r132 = r131; const r133 = r126; let r134 = r132; if (!r133) { r134 = r132 + 1; r105.unshift(1); } const r137 = r133 - 1; r139 = r105[r137] + 1; r105[r137] = r139; r131 = r134; r126 = r137; r125 = r131; } while (r139 > r130); } } const length2 = r105.length; const r143 = r105[length2 - 1]; let r144 = length2; let r145 = r144; if (!r143) { do { const r146 = r144 - 1; r148 = r105[r146 - 1]; r144 = r146; r145 = r144; } while (!r148); } const r149 = 0 < r145; let r150 = ""; let r152 = 0; let r153 = ""; if (r149) { do { r150 = r150 + "0123456789abcdef".charAt(r105[r152]); r152 = r152 + 1; r153 = r150; } while (r152 < r145); } if (r13) { L88: { r174 = r153; if (r145 > 1) { if (a1 !== 16 && a1 !== 8) { r174 = r153.charAt(0) + "." + r153.slice(1); break L88; } const r181 = a1 === 16 ? 4 : 3; let r182 = r145 - 1; const r183 = r182 % r181; let r185 = r153; let r186 = r185; if (r183) { do { r185 = r185 + "0"; const r187 = r182 + 1; r188 = r187 % r181; r182 = r187; r186 = r185; } while (r188); } const r190 = convertBase(r186, r1, a1); const length3 = r190.length; const r193 = r190[length3 - 1]; let r194 = length3; let r195 = r194; if (!r193) { do { const r196 = r194 - 1; r198 = r190[r196 - 1]; r194 = r196; r195 = r194; } while (!r198); } const r199 = 1 < r195; let r200 = "1."; let r201 = 1; r174 = "1."; if (r199) { do { r200 = r200 + "0123456789abcdef".charAt(r190[r201]); r201 = r201 + 1; r174 = r200; } while (r201 < r195); } } } r94 = r174 + (r125 < 0 ? "p" : "p+") + r125; r95 = r104; } else if (r125 < 0) { let r169 = r125 + 1; let r171 = r153; let r172 = r171; while (r169) { r171 = "0" + r171; r169 = r169 + 1; r172 = r171; } r94 = "0." + r172; r95 = r104; } else { const r157 = r125 + 1; if (r157 > r145) { const r164 = +(r157 - r145); let r165 = r164 - 1; let r167 = r153; r94 = r167; r95 = r104; if (r164) { do { r167 = r167 + "0"; r168 = +r165; r165 = r168 - 1; r94 = r167; r95 = r104; } while (r168); } } else { r94 = r153; r95 = r104; if (r157 < r145) { r94 = r153.slice(0, r157) + "." + r153.slice(r157); r95 = r104; } } } } else { r94 = r13 ? "0p+0" : "0"; r95 = a0; } r58 = (a1 !== 16 ? a1 !== 2 ? a1 === 8 ? "0o" : "" : "0b" : "0x") + r94; r59 = r95; } else { r58 = String(a0.s * a0.s / 0); r59 = a0; } return r59.s < 0 ? "-" + r58 : r58; }; abs = function abs(a0) { "use strict"; return new this(a0).abs(); }; acos = function acos(a0) { "use strict"; return new this(a0).acos(); }; acosh = function acosh(a0) { "use strict"; return new this(a0).acosh(); }; add = function add(a0, a1) { "use strict"; return new this(a0).plus(a1); }; asin = function asin(a0) { "use strict"; return new this(a0).asin(); }; asinh = function asinh(a0) { "use strict"; return new this(a0).asinh(); }; atan = function atan(a0) { "use strict"; return new this(a0).atan(); }; atanh = function atanh(a0) { "use strict"; return new this(a0).atanh(); }; atan2 = function atan2(a0, a1) { "use strict"; let r31, r126; L30: { const r7 = new this(a0); const r21 = Object.create(this.prototype); const r24 = new this(a1); const precision = this.precision; const rounding = this.rounding; const precision2 = precision + 4; if (r7.s) { if (r24.s) { if (!r7.d && !r24.d) { if (precision2 > c9205_21) { throw Error(c9205_10); } const r37 = new this(c9205_6); finalise(r37, precision2, 1, true); const r46 = r37.times(r24.s > 0 ? 0.25 : 0.75); r46.s = r7.s; r31 = r46; break L30; } if (r24.d && !r7.isZero()) { if (r7.d && !r24.isZero()) { if (r24.s < 0) { this.precision = precision2; this.rounding = 1; const r15 = this.atan(c9205_26(r7, r24, precision2, 1)); if (precision2 > c9205_21) { throw Error(c9205_10); } const r83 = new this(c9205_6); finalise(r83, precision2, 1, true); this.precision = precision; this.rounding = rounding; r31 = r7.s < 0 ? r15.minus(r83) : r15.plus(r83); break L30; } r31 = this.atan(c9205_26(r7, r24, precision2, 1)); break L30; } if (precision2 > c9205_21) { throw Error(c9205_10); } const r104 = new this(c9205_6); finalise(r104, precision2, 1, true); const r113 = r104.times(0.5); r113.s = r7.s; r31 = r113; break L30; } if (r24.s < 0) { if (precision > c9205_21) { throw Error(c9205_10); } const r133 = new this(c9205_6); finalise(r133, precision, rounding, true); r126 = r133; } else { r126 = new this(0); } r126.s = r7.s; r31 = r126; } else { r31 = new this(NaN); } } else { r31 = new this(NaN); } } return r31; }; cbrt = function cbrt(a0) { "use strict"; return new this(a0).cbrt(); }; ceil = function ceil(a0) { "use strict"; const r11 = new this(a0); finalise(r11, r11.e + 1, 2); return r11; }; clamp = function clamp(a0, a1, a2) { "use strict"; return new this(a0).clamp(a1, a2); }; config = function config(a0) { "use strict"; if (a0 && typeof a0 === "object") { const r8 = a0.defaults === true; const r15 = ["precision", 1, 1000000000, "rounding", 0, 8, "toExpNeg", -9000000000000000, 0, "toExpPos", 0, 9000000000000000, "maxE", 0, 9000000000000000, "minE", -9000000000000000, 0, "modulo", 0, 9]; const r10 = 0 < r15.length; let r31 = 0; if (r10) { do { const r16 = r15[r31]; const r2 = r31; if (r8) { this[r16] = c9205_7[r16]; } L11: { const r34 = a0[r16]; if (r34 !== void 0) { if (floor2(r34) === r34 && r34 >= r15[r2 + 1] && r34 <= r15[r2 + 2]) { this[r16] = r34; break L11; } throw Error(c9205_9 + r16 + ": " + r34); } } r31 = r2 + 3; } while (r31 < r15.length); } if (r8) { this.crypto = c9205_7.crypto; } L26: { const crypto2 = a0.crypto; if (crypto2 !== void 0) { if (crypto2 !== true && crypto2 !== false && crypto2 !== 0 && crypto2 !== 1) { throw Error(c9205_9 + "crypto: " + crypto2); } if (crypto2) { L27: { if (typeof globalThis.crypto !== "undefined" && crypto) { if (!crypto.getRandomValues && !crypto.randomBytes) { break L27; } this.crypto = true; break L26; } } throw Error(c9205_11); } this.crypto = false; } } return this; } throw Error("[DecimalError] Object expected"); }; cos = function cos(a0) { "use strict"; return new this(a0).cos(); }; cosh = function cosh(a0) { "use strict"; return new this(a0).cosh(); }; div = function div(a0, a1) { "use strict"; return new this(a0).div(a1); }; exp = function exp(a0) { "use strict"; return new this(a0).exp(); }; floor = function floor(a0) { "use strict"; const r11 = new this(a0); finalise(r11, r11.e + 1, 3); return r11; }; hypot = function hypot() { "use strict"; let r26, length; let r0 = 0; let r8 = new this(0); c9205_8 = false; const r19 = 0 < arguments.length; let r20 = r8; if (r19) { do { const r14 = new this(arguments[r0]); const r24 = r14.d; const r13 = r8; const r1 = r0; if (r24) { r26 = r13.d ? r13.plus(r14.times(r14)) : r13; } else { const r25 = r14.s; r26 = r14; if (r25) { c9205_8 = true; return new this(Infinity); } } r0 = r1 + 1; length = arguments.length; r8 = r26; r20 = r8; } while (r0 < length); } c9205_8 = true; return r20.sqrt(); }; isDecimalInstance = function isDecimalInstance(a0) { "use strict"; return a0 instanceof c9205_1 || (a0 ? a0.toStringTag === c9205_12 : a0) || false; }; ln = function ln(a0) { "use strict"; return new this(a0).ln(); }; log = function log(a0, a1) { "use strict"; return new this(a0).log(a1); }; log2 = function log2(a0) { "use strict"; return new this(a0).log(2); }; log10 = function log10(a0) { "use strict"; return new this(a0).log(10); }; max = function max() { "use strict"; let length; let r10 = new this(arguments[0]); const r5 = 1 < arguments.length; let r0 = 1; let r19 = r10; if (r5) { do { const r23 = new this(arguments[r0]); const r14 = r23.s; const r2 = r0; let r24 = r10; r19 = r23; if (!r14) { break; } const r26 = r24.cmp(r23); if (r26 === -1 || r26 === 0 && r24.s === -1) { r24 = r23; } r0 = r2 + 1; length = arguments.length; r10 = r24; r19 = r10; } while (r0 < length); } return r19; }; min = function min() { "use strict"; let length; let r9 = new this(arguments[0]); const r4 = 1 < arguments.length; let r0 = 1; let r18 = r9; if (r4) { do { const r22 = new this(arguments[r0]); const r13 = r22.s; const r2 = r0; let r23 = r9; r18 = r22; if (!r13) { break; } const r25 = r23.cmp(r22); if (r25 === 1 || r25 === 0 && r23.s === 1) { r23 = r22; } r0 = r2 + 1; length = arguments.length; r9 = r23; r18 = r9; } while (r0 < length); } return r18; }; mod = function mod(a0, a1) { "use strict"; return new this(a0).mod(a1); }; mul = function mul(a0, a1) { "use strict"; return new this(a0).mul(a1); }; pow = function pow(a0, a1) { "use strict"; return new this(a0).pow(a1); }; random = function random(a0) { "use strict"; let r18, r22, r44, r77, r98, r127, r133, r139, r140; L6: { const r20 = Object.create(this.prototype); r18 = new this(1); if (a0 !== void 0) { if (a0 === ~~a0 && !(a0 < 1)) { r22 = a0; if (!(a0 > 1000000000)) { break L6; } } throw Error(c9205_9 + a0); } r22 = this.precision; } const r38 = []; const r42 = Math.ceil(r22 / 7); if (this.crypto) { const getRandomValues = crypto.getRandomValues; const r27 = crypto; if (getRandomValues) { const randomValues = r27.getRandomValues(new Uint32Array(r42)); const r92 = 0 < r42; let r95 = 0; r44 = 0; if (r92) { do { const r96 = randomValues[r95]; const r97 = r95; if (r96 >= 4290000000) { randomValues[r97] = crypto.getRandomValues(new Uint32Array(1))[0]; r98 = r97; } else { r98 = r97 + 1; r38[r97] = r96 % 10000000; } r95 = r98; r44 = r95; } while (r44 < r42); } } else { if (!r27.randomBytes) { throw Error(c9205_11); } const r55 = crypto; const r58 = r42 * 4; const r59 = r55.randomBytes(r58); let r5 = 0; while (r5 < r58) { const r72 = r59[r5] + (r59[r5 + 1] << 8) + (r59[r5 + 2] << 16) + ((127 & r59[r5 + 3]) << 24); const r73 = r5; if (r72 >= 2140000000) { crypto.randomBytes(4).copy(r59, r73); r77 = r73; } else { r38.push(r72 % 10000000); r77 = r73 + 4; } r5 = r77; } r44 = r58 / 4; } } else { r44 = 0; const r17 = 0 < r42; let r2 = 0; if (r17) { do { const r6 = r2 + 1; r38[r2] = 10000000 * Math.random() | 0; r2 = r6; r44 = r2; } while (r44 < r42); } } const r109 = r22 % 7; const r110 = r44 - 1; const r111 = r38[r110]; if (r111 && r109) { const r116 = pow2(10, 7 - r109); r38[r110] = (r111 / r116 | 0) * r116; } const r120 = r38[r110]; let r122 = r110; let r123 = r122; if (r120 === 0) { do { r38.pop(); const r126 = r122 - 1; r127 = r38[r126]; r122 = r126; r123 = r122; } while (r127 === 0); } if (r123 < 0) { r139 = [0]; r140 = 0; } else { const r128 = r38[0]; let r129 = -1; let r130 = -1; if (r128 === 0) { do { r38.shift(); r129 = r129 - 7; r133 = r38[0]; r130 = r129; } while (r133 === 0); } let r134 = r38[0]; const r136 = r134 >= 10; let r137 = 1; let r138 = 1; if (r136) { do { r137 = r137 + 1; r134 = r134 / 10; r138 = r137; } while (10 <= r134); } r139 = r38; r140 = r130; if (r138 < 7) { r140 = r130 - (7 - r138); r139 = r38; } } const r142 = r18; r142.e = r140; r142.d = r139; return r142; }; round = function round(a0) { "use strict"; const r11 = new this(a0); finalise(r11, r11.e + 1, this.rounding); return r11; }; sign = function sign(a0) { "use strict"; let r8; const r6 = new this(a0); if (r6.d) { const r10 = r6.d[0]; const r11 = r6.s; r8 = r10 ? r11 : 0 * r11; } else { r8 = r6.s || NaN; } return r8; }; sin = function sin(a0) { "use strict"; return new this(a0).sin(); }; sinh = function sinh(a0) { "use strict"; return new this(a0).sinh(); }; sqrt = function sqrt(a0) { "use strict"; return new this(a0).sqrt(); }; sub = function sub(a0, a1) { "use strict"; return new this(a0).sub(a1); }; sum = function sum() { "use strict"; let length; const r16 = new this(arguments[0]); c9205_8 = false; const r9 = r16.s; let r17 = r16; if (r9) { const r20 = 1 < arguments.length; let r21 = r16; let r22 = 1; r17 = r21; if (r20) { do { const r24 = r21.plus(arguments[r22]); const r25 = r24.s; const r1 = r22; r17 = r24; if (!r25) { break; } r22 = r1 + 1; length = arguments.length; r21 = r24; r17 = r21; } while (r22 < length); } } c9205_8 = true; finalise(r17, this.precision, this.rounding); return r17; }; tan = function tan(a0) { "use strict"; return new this(a0).tan(); }; tanh = function tanh(a0) { "use strict"; return new this(a0).tanh(); }; trunc = function trunc(a0) { "use strict"; const r11 = new this(a0); finalise(r11, r11.e + 1, 1); return r11; }; const r10 = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058"; c9205_5 = r10; const r7 = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789"; c9205_6 = r7; c9205_7 = { precision: 20, rounding: 4, modulo: 1, toExpNeg: -7, toExpPos: 21, minE: -9000000000000000, maxE: 9000000000000000, crypto: false }; c9205_8 = true; c9205_9 = "[DecimalError] Invalid argument: "; c9205_10 = "[DecimalError] Precision limit exceeded"; c9205_11 = "[DecimalError] crypto unavailable"; c9205_12 = "[object Decimal]"; floor2 = Math.floor; pow2 = Math.pow; c9205_15 = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i; c9205_16 = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i; c9205_17 = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i; c9205_18 = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i; c9205_19 = 10000000; c9205_20 = r10.length - 1; c9205_21 = r7.length - 1; prototype = { toStringTag: "[object Decimal]" }; const abs2 = function() { "use strict"; const constructor = new this.constructor(this); if (constructor.s < 0) { constructor.s = 1; } finalise(constructor); return constructor; }; prototype.abs = abs2; prototype.absoluteValue = abs2; prototype.ceil = function() { "use strict"; const constructor = new this.constructor(this); finalise(constructor, this.e + 1, 2); return constructor; }; const clamp2 = function(a0, a1) { "use strict"; const constructor = this.constructor; let r10 = new constructor(a0); const r13 = new constructor(a1); if (r10.s) { if (r13.s) { if (r10.gt(r13)) { throw Error(c9205_9 + r13); } if (!(this.cmp(r10) < 0)) { r10 = this.cmp(r13) > 0 ? r13 : new constructor(this); } return r10; } } return new constructor(NaN); }; prototype.clamp = clamp2; prototype.clampedTo = clamp2; const cmp = function(a0) { "use strict"; const r12 = this.d; const constructor = new this.constructor(a0); const r21 = constructor.d; const r22 = this.s; const r13 = constructor.s; if (r12 && r21) { if (r12[0] && r21[0]) { if (r22 !== r13) { return r22; } if (this.e !== constructor.e) { return this.e > constructor.e ^ r22 < 0 ? 1 : -1; } const length = r12.length; const length2 = r21.length; let r34 = length2; if (length < r34) { r34 = length; } const r36 = 0 < r34; let r0 = 0; if (r36) { do { const r17 = r12[r0]; const r38 = r21[r0]; const r39 = r0; if (r17 !== r38) { return r12[r39] > r21[r39] ^ r22 < 0 ? 1 : -1; } r0 = r39 + 1; } while (r0 < r34); } return length !== length2 ? length > length2 ^ r22 < 0 ? 1 : -1 : 0; } return r12[0] ? r22 : r21[0] ? -r13 : 0; } return r22 ? r13 ? r22 === r13 ? r12 !== r21 ? !r12 ^ r22 < 0 ? 1 : -1 : 0 : r22 : NaN : NaN; }; prototype.cmp = cmp; prototype.comparedTo = cmp; const cos2 = function() { "use strict"; let r28, r34, r81; const constructor = this.constructor; if (this.d) { if (this.d[0]) { const { precision, rounding } = constructor; constructor.precision = precision + Math.max(this.e, this.sd()) + 7; constructor.rounding = 1; const r42 = toLessThanHalfPi(constructor, this); const isZero = r42.isZero(); let r45 = r42; if (!isZero) { const length = r42.d.length; const r6 = length < 32; let r47 = "2.3283064365386962890625e-10"; let r48 = 16; if (r6) { const r53 = Math.ceil(length / 3); let r54 = r53 - 1; let r0 = 4; let r55 = 4; while (r54) { r0 = r0 * 4; r54 = r54 - 1; r55 = r0; } r47 = (1 / r55).toString(); r48 = r53; } constructor.precision = constructor.precision + r48; let r68 = taylorSeries(constructor, 1, r42.times(r47), new constructor(1)); const r69 = +r48; let r70 = r69 - 1; let r72 = r68; if (r69) { do { const r21 = r68.times(r68); r68 = r21.times(r21).minus(r21).times(8).plus(1); r81 = +r70; r70 = r81 - 1; r72 = r68; } while (r81); } constructor.precision = constructor.precision - r48; r45 = r72; } constructor.precision = precision; constructor.rounding = rounding; const r88 = c9205_4 != 2 ? c9205_4 == 3 ? r45.neg() : r45 : r45.neg(); finalise(r88, precision, rounding, true); r34 = r88; } else { r34 = new constructor(1); } r28 = r34; } else { r28 = new constructor(NaN); } return r28; }; prototype.cos = cos2; prototype.cosine = cos2; const cbrt2 = function() { "use strict"; let r21, r67, r122; const constructor = this.constructor; if (this.isFinite() && !this.isZero()) { c9205_8 = false; const r36 = this.s * pow2(this.s * this, 0.3333333333333333); if (r36 && Math.abs(r36) != Infinity) { r21 = new constructor(r36.toString()); } else { const r19 = digitsToString(this.d); const r42 = this.e; const r2 = (r42 - r19.length + 1) % 3; const r48 = pow2(r2 ? r19 + (r2 !== 1 ? r2 === -2 ? "0" : "00" : "0") : r19, 0.3333333333333333); const r57 = floor2((r42 + 1) / 3) - (r42 % 3 === (r42 < 0 ? -1 : 2)); if (r48 == Infinity) { r67 = "5e" + r57; } else { const r60 = r48.toExponential(); r67 = r60.slice(0, r60.indexOf("e") + 1) + r57; } r21 = new constructor(r67); r21.s = this.s; } const precision = constructor.precision; let r20 = precision + 3; let r6 = void 0; while (true) { const r23 = r21.times(r21).times(r21); const r89 = r23.plus(this); const r97 = c9205_26(r89.plus(this).times(r21), r89.plus(r23), r20 + 2, 1); const r102 = digitsToString(r21.d).slice(0, r20); const r24 = digitsToString(r97.d); const r105 = r24.slice(0, r20); const r106 = r20; const r107 = r6; let r108 = r21; r20 = r106; r6 = r107; r21 = r97; if (r102 === r105) { L30: { L21: { const r112 = r24.slice(r106 - 3, r106 + 1); if (r112 != "9999") { if (!r107 && r112 == "4999") { break L21; } const r123 = +r112 && (+r112.slice(1) || r112.charAt(0) != "5"); r108 = r97; r122 = void 0; if (r123) { break L30; } finalise(r97, precision + 1, 1); r122 = !r97.times(r97).times(r97).eq(this); r108 = r97; break L30; } } if (!r107) { finalise(r108, precision + 1, 0); const r121 = r108.times(r108).times(r108).eq(this); r122 = void 0; if (r121) { break L30; } } r20 = r106 + 4; r6 = 1; r21 = r97; continue; } c9205_8 = true; finalise(r108, precision, constructor.rounding, r122); return r108; } } } return new constructor(this); }; prototype.cbrt = cbrt2; prototype.cubeRoot = cbrt2; const dp = function() { "use strict"; let r22; const r10 = this.d; let r6 = NaN; if (r10) { const r4 = r10.length - 1; const r7 = 7 * (r4 - floor2(this.e / 7)); let r18 = r10[r4]; let r19 = r7; if (r18) { const r20 = r18 % 10; let r21 = r7; r19 = r21; if (r20 === 0) { do { r21 = r21 - 1; const r1 = r18 / 10; r22 = r1 % 10; r18 = r1; r19 = r21; } while (r22 === 0); } } r6 = r19; if (r6 < 0) { r6 = 0; } } return r6; }; prototype.dp = dp; prototype.decimalPlaces = dp; const div2 = function(a0) { "use strict"; return c9205_26(this, new this.constructor(a0)); }; prototype.div = div2; prototype.dividedBy = div2; const divToInt = function(a0) { "use strict"; const constructor = this.constructor; const r18 = c9205_26(this, new constructor(a0), 0, 1, 1); finalise(r18, constructor.precision, constructor.rounding); return r18; }; prototype.divToInt = divToInt; prototype.dividedToIntegerBy = divToInt; const eq = function(a0) { "use strict"; return this.cmp(a0) === 0; }; prototype.eq = eq; prototype.equals = eq; prototype.floor = function() { "use strict"; const constructor = new this.constructor(this); finalise(constructor, this.e + 1, 3); return constructor; }; const gt = function(a0) { "use strict"; return this.cmp(a0) > 0; }; prototype.gt = gt; prototype.greaterThan = gt; const gte = function(a0) { "use strict"; const r6 = this.cmp(a0); return r6 == 1 || r6 === 0; }; prototype.gte = gte; prototype.greaterThanOrEqualTo = gte; const cosh2 = function() { "use strict"; let r81; const constructor = this.constructor; const r7 = new constructor(1); if (this.isFinite()) { if (this.isZero()) { return r7; } const { precision, rounding } = constructor; constructor.precision = precision + Math.max(this.e, this.sd()) + 4; constructor.rounding = 1; const length = this.d.length; const r6 = length < 32; let r46 = "2.3283064365386962890625e-10"; let r47 = 16; if (r6) { const r52 = Math.ceil(length / 3); let r53 = r52 - 1; let r0 = 4; let r54 = 4; while (r53) { r0 = r0 * 4; r53 = r53 - 1; r54 = r0; } r46 = (1 / r54).toString(); r47 = r52; } const r66 = taylorSeries(constructor, 1, this.times(r46), new constructor(1), true); const r71 = new constructor(8); const r72 = +r47; let r73 = r72 - 1; let r74 = r66; let r75 = r74; if (r72) { do { const r19 = r74.times(r74); r74 = r7.minus(r19.times(r71.minus(r19.times(r71)))); r81 = +r73; r73 = r81 - 1; r75 = r74; } while (r81); } constructor.precision = precision; constructor.rounding = rounding; finalise(r75, precision, rounding, true); return r75; } return new constructor(this.s ? Infinity : NaN); }; prototype.cosh = cosh2; prototype.hyperbolicCosine = cosh2; const sinh2 = function() { "use strict"; let r72, r79; const constructor = this.constructor; if (this.isFinite() && !this.isZero()) { const { precision, rounding } = constructor; constructor.precision = precision + Math.max(this.e, this.sd()) + 4; constructor.rounding = 1; const length = this.d.length; if (length < 3) { r72 = taylorSeries(constructor, 2, this, this, true); } else { const r0 = 1.4 * Math.sqrt(length); const r49 = 16 < r0 ? 16 : r0 | 0; const times = this.times; let r52 = r49 - 1; let r1 = 5; let r2 = r52; let r6 = 5; while (r2) { r1 = r1 * 5; r2 = r2 - 1; r6 = r1; } const r54 = times.call(this, 1 / r6); const r55 = taylorSeries(constructor, 2, r54, r54, true); const r60 = new constructor(5); const r65 = new constructor(16); const r70 = new constructor(20); let r71 = r55; r72 = r71; if (r49) { do { const r26 = r71.times(r71); r71 = r71.times(r60.plus(r26.times(r65.times(r26).plus(r70)))); const r78 = r52 - 1; r79 = r52; r52 = r78; r72 = r71; } while (r79); } } constructor.precision = precision; constructor.rounding = rounding; finalise(r72, precision, rounding, true); return r72; } return new constructor(this); }; prototype.sinh = sinh2; prototype.hyperbolicSine = sinh2; const tanh2 = function() { "use strict"; let r17, r26; const constructor = this.constructor; if (this.isFinite()) { if (this.isZero()) { r26 = new constructor(this); } else { const { precision, rounding } = constructor; constructor.precision = precision + 7; constructor.rounding = 1; const r23 = this.sinh(); const r12 = this.cosh(); constructor.precision = precision; constructor.rounding = rounding; r26 = c9205_26(r23, r12, precision, rounding); } r17 = r26; } else { r17 = new constructor(this.s); } return r17; }; prototype.tanh = tanh2; prototype.hyperbolicTangent = tanh2; const acos2 = function() { "use strict"; let r39, r61, r68; const constructor = this.constructor; const r21 = this.abs().cmp(1); const { precision, rounding } = constructor; if (r21 !== -1) { if (r21 === 0) { if (this.isNeg()) { if (precision > c9205_21) { throw Error(c9205_10); } const r75 = new constructor(c9205_6); finalise(r75, precision, rounding, true); r68 = r75; } else { r68 = new constructor(0); } r61 = r68; } else { r61 = new constructor(NaN); } r39 = r61; } else if (this.isZero()) { const r12 = precision + 4; if (r12 > c9205_21) { throw Error(c9205_10); } const r45 = new constructor(c9205_6); finalise(r45, r12, rounding, true); r39 = r45.times(0.5); } else { constructor.precision = precision + 6; constructor.rounding = 1; const r36 = new constructor(1).minus(this).div(this.plus(1)).sqrt().atan(); constructor.precision = precision; constructor.rounding = rounding; r39 = r36.times(2); } return r39; }; prototype.acos = acos2; prototype.inverseCosine = acos2; const acosh2 = function() { "use strict"; let r21; const constructor = this.constructor; if (this.lte(1)) { r21 = new constructor(this.eq(1) ? 0 : NaN); } else if (this.isFinite()) { const { precision, rounding } = constructor; constructor.precision = precision + Math.max(Math.abs(this.e), this.sd()) + 4; constructor.rounding = 1; c9205_8 = false; const r37 = this.times(this).minus(1).sqrt().plus(this); c9205_8 = true; constructor.precision = precision; constructor.rounding = rounding; r21 = r37.ln(); } else { r21 = new constructor(this); } return r21; }; prototype.acosh = acosh2; prototype.inverseHyperbolicCosine = acosh2; const asinh2 = function() { "use strict"; let r39; const constructor = this.constructor; if (this.isFinite() && !this.isZero()) { const { precision, rounding } = constructor; constructor.precision = precision + 2 * Math.max(Math.abs(this.e), this.sd()) + 6; constructor.rounding = 1; c9205_8 = false; const r36 = this.times(this).plus(1).sqrt().plus(this); c9205_8 = true; constructor.precision = precision; constructor.rounding = rounding; r39 = r36.ln(); } else { r39 = new constructor(this); } return r39; }; prototype.asinh = asinh2; prototype.inverseHyperbolicSine = asinh2; const atanh2 = function() { "use strict"; let r23, r51; const constructor = this.constructor; if (this.isFinite()) { if (this.e >= 0) { r51 = new constructor(this.abs().eq(1) ? this.s / 0 : this.isZero() ? this : NaN); } else { const { precision, rounding } = constructor; const r10 = this.sd(); if (Math.max(r10, precision) < 2 * -this.e - 1) { const r57 = new constructor(this); finalise(r57, precision, rounding, true); r51 = r57; } else { const precision2 = r10 - this.e; constructor.precision = precision2; const r44 = c9205_26(this.plus(1), new constructor(1).minus(this), precision2 + precision, 1); constructor.precision = precision + 4; constructor.rounding = 1; const r48 = r44.ln(); constructor.precision = precision; constructor.rounding = rounding; r51 = r48.times(0.5); } } r23 = r51; } else { r23 = new constructor(NaN); } return r23; }; prototype.atanh = atanh2; prototype.inverseHyperbolicTangent = atanh2; const asin2 = function() { "use strict"; let r39, r45; const constructor = this.constructor; if (this.isZero()) { r39 = new constructor(this); } else { const r22 = this.abs().cmp(1); const { precision, rounding } = constructor; if (r22 !== -1) { if (r22 === 0) { const r48 = precision + 4; if (r48 > c9205_21) { throw Error(c9205_10); } const r53 = new constructor(c9205_6); finalise(r53, r48, rounding, true); const r59 = r53.times(0.5); r59.s = this.s; r45 = r59; } else { r45 = new constructor(NaN); } r39 = r45; } else { constructor.precision = precision + 6; constructor.rounding = 1; const r36 = this.div(new constructor(1).minus(this.times(this)).sqrt().plus(1)).atan(); constructor.precision = precision; constructor.rounding = rounding; r39 = r36.times(2); } } return r39; }; prototype.asin = asin2; prototype.inverseSine = asin2; const atan3 = function() { "use strict"; let r119; const constructor = this.constructor; const { precision, rounding } = constructor; if (this.isFinite()) { if (this.isZero()) { return new constructor(this); } if (this.abs().eq(1) && precision + 4 <= c9205_21) { const r132 = precision + 4; if (r132 > c9205_21) { throw Error(c9205_10); } const r138 = new constructor(c9205_6); finalise(r138, r132, rounding, true); const r147 = r138.times(0.25); r147.s = this.s; return r147; } } else { if (!this.s) { return new constructor(NaN); } if (precision + 4 <= c9205_21) { const r16 = precision + 4; if (r16 > c9205_21) { throw Error(c9205_10); } const r43 = new constructor(c9205_6); finalise(r43, r16, rounding, true); const r49 = r43.times(0.5); r49.s = this.s; return r49; } } const precision2 = precision + 10; constructor.precision = precision2; constructor.rounding = 1; const r69 = Math; const r1 = precision2 / 7; const r73 = r69.min(28, r1 + 2 | 0); let r18 = this; let r74 = r73; let r75 = this; let r20 = r74; while (r20) { r18 = r18.div(r18.times(r18).plus(1).sqrt().plus(1)); r74 = r74 - 1; r75 = r18; r20 = r74; } c9205_8 = false; const r84 = Math.ceil(r1); const r86 = r75.times(r75); const r91 = new constructor(r75); let r93 = r75; let r94 = r91; let r95 = 1; let r96 = r94; while (r20 !== -1) { const r98 = r93.times(r86); const minus = r94.minus; const r100 = r95 + 2; const r26 = minus.call(r94, r98.div(r100)); const r103 = r98.times(r86); const r106 = r100 + 2; const r108 = r26.plus(r103.div(r106)); const r24 = r108.d[r84]; let r110 = r20; if (r24 !== void 0) { const r25 = r108.d[r84]; const r113 = r26.d[r84]; r110 = r84; if (r25 === r113) { const r114 = +r84; let r115 = r114 - 1; r110 = r115; if (r114) { do { const r28 = r108.d[r115]; const r27 = r26.d[r115]; const r118 = r115; r110 = r118; if (r28 !== r27) { break; } r119 = +r118; r115 = r119 - 1; r110 = r115; } while (r119); } } } r20 = r110; r94 = r108; r93 = r103; r95 = r106; r96 = r94; } const r120 = r73 ? r96.times(2 << r73 - 1) : r96; c9205_8 = true; constructor.precision = precision; constructor.rounding = rounding; finalise(r120, precision, rounding, true); return r120; }; prototype.atan = atan3; prototype.inverseTangent = atan3; prototype.isFinite = function() { "use strict"; return !!this.d; }; const isInt = function() { "use strict"; return !!this.d && floor2(this.e / 7) > this.d.length - 2; }; prototype.isInt = isInt; prototype.isInteger = isInt; prototype.isNaN = function() { "use strict"; return !this.s; }; const isNeg = function() { "use strict"; return this.s < 0; }; prototype.isNeg = isNeg; prototype.isNegative = isNeg; const isPos = function() { "use strict"; return this.s > 0; }; prototype.isPos = isPos; prototype.isPositive = isPos; prototype.isZero = function() { "use strict"; return !!this.d && this.d[0] === 0; }; const lt = function(a0) { "use strict"; return this.cmp(a0) < 0; }; prototype.lt = lt; prototype.lessThan = lt; const lte = function(a0) { "use strict"; return this.cmp(a0) < 1; }; prototype.lte = lte; prototype.lessThanOrEqualTo = lte; const log3 = function(a0) { "use strict"; let r17, r18, r19, r62, r92, r128, constructor, precision, rounding; L8: { constructor = this.constructor; precision = constructor.precision; rounding = constructor.rounding; if (a0 != null) { const r34 = new constructor(a0); const r35 = r34.d; if (!(r34.s < 0) && r35 && r35[0] && !r34.eq(1)) { r19 = r34.eq(10); r18 = r34; break L8; } return new constructor(NaN); } r18 = new constructor(10); r19 = true; } const r51 = this.d; if (!(this.s < 0) && r51 && r51[0] && !this.eq(1)) { let r8 = void 0; if (r19) { const r7 = r51.length > 1; r8 = true; if (!r7) { const r58 = r51[0]; const r59 = r58 % 10; let r60 = r58; let r61 = r60; if (r59 === 0) { do { const r4 = r60 / 10; r62 = r4 % 10; r60 = r4; r61 = r60; } while (r62 === 0); } r8 = r61 !== 1; } } c9205_8 = false; const r14 = precision + 5; const r21 = naturalLogarithm(this, r14); if (r19) { const r22 = r14 + 10; if (r22 > c9205_20) { c9205_8 = true; throw Error(c9205_10); } const r72 = new constructor(c9205_5); finalise(r72, r22, 1, true); r17 = r72; } else { r17 = naturalLogarithm(r18, r14); } let r83 = c9205_26(r21, r17, r14, 1); const r6 = checkRoundingDigits(r83.d, precision, rounding); let r87 = r14; let r88 = precision; if (r6) { do { const r90 = r87 + 10; const r24 = naturalLogarithm(this, r90); const r91 = r88; if (r19) { const r26 = r90 + 10; if (r26 > c9205_20) { c9205_8 = true; throw Error(c9205_10); } const r97 = new constructor(c9205_5); finalise(r97, r26, 1, true); r92 = r97; } else { r92 = naturalLogarithm(r18, r90); } const r110 = c9205_26(r24, r92, r90, 1); if (!r8) { const r120 = +digitsToString(r110.d).slice(r91 + 1, r91 + 15) + 1; r83 = r110; if (r120 !== 100000000000000) { break; } finalise(r110, precision + 1, 0); r83 = r110; break; } const r126 = r110.d; const r127 = r91 + 10; r128 = checkRoundingDigits(r126, r127, rounding); r87 = r90; r88 = r127; r83 = r110; } while (r128); } c9205_8 = true; finalise(r83, precision, rounding); return r83; } return new constructor(r51 ? r51[0] ? this.s != 1 ? NaN : r51 ? 0 : Infinity : -Infinity : this.s != 1 ? NaN : r51 ? 0 : Infinity); }; prototype.log = log3; prototype.logarithm = log3; const sub2 = function(a0) { "use strict"; let r6, r40, r68, r89, r90, r93, r94, r110, r126, r135, r149, r155, r164, length2; const constructor = this.constructor; const r32 = new constructor(a0); if (this.d && r32.d) { if (this.s != r32.s) { r32.s = -r32.s; return this.plus(r32); } const r19 = this.d; const r18 = r32.d; const { precision, rounding } = constructor; if (r19[0] && r18[0]) { const r21 = floor2(r32.e / 7); let r81 = floor2(this.e / 7); const r83 = r19.slice(); const r24 = r81 - r21; if (r24) { const r92 = r24 < 0; if (r92) { r93 = -r24; length2 = r18.length; r81 = r21; r94 = r83; } else { length2 = r83.length; r93 = r24; r94 = r18; } const r102 = Math.max(Math.ceil(precision / 7), length2) + 2; if (r93 > r102) { r94.length = 1; r93 = r102; } r94.reverse(); const r106 = +r93; let r107 = r106 - 1; if (r106) { do { r94.push(0); r110 = +r107; r107 = r110 - 1; } while (r110); } r94.reverse(); r6 = r92; r89 = r93; r90 = r81; } else { const length = r83.length; let length3 = r18.length; const r7 = length < length3; if (r7) { length3 = length; } const r9 = 0 < length3; let r1 = 0; r6 = r7; if (r9) { do { const r23 = r83[r1]; const r85 = r18[r1]; const r86 = r1; if (r23 != r85) { r6 = r83[r86] < r18[r86]; break; } r1 = r86 + 1; r6 = r7; } while (r1 < length3); } r89 = 0; r90 = r21; } let r113 = r18; let r114 = r83; if (r6) { r32.s = -r32.s; r113 = r83; r114 = r18; } const length4 = r114.length; let r119 = r113.length - length4; let r121 = length4; let r122 = r121; while (r119 > 0) { const r123 = +r121; r121 = r123 + 1; r114[r123] = 0; r119 = r119 - 1; r122 = r121; } let length5 = r113.length; if (length5 > r89) { do { r126 = length5 - 1; if (r114[r126] < r113[r126]) { let r129 = r126; if (r129) { const r130 = r126 - 1; const r131 = r114[r130]; let r132 = r130; r129 = r132; if (r131 === 0) { do { r114[r132] = 9999999; const r133 = r132; r129 = r133; if (!r129) { break; } const r134 = r133 - 1; r135 = r114[r134]; r132 = r134; r129 = r132; } while (r135 === 0); } } r114[r129] = r114[r129] - 1; r114[r126] = r114[r126] + c9205_19; } r114[r126] = r114[r126] - r113[r126]; length5 = r126; } while (r126 > r89); } let r144 = r122 - 1; if (r114[r144] === 0) { do { r114.pop(); const r148 = r144 - 1; r149 = r114[r148]; r144 = r148; } while (r149 === 0); } const r150 = r114[0]; let r151 = r90; let r152 = r151; if (r150 === 0) { do { r151 = r151 - 1; r114.shift(); r155 = r114[0]; r152 = r151; } while (r155 === 0); } if (r114[0]) { r32.d = r114; let r165 = r114[0]; let r166 = r152 * 7; let r169 = r166; if (r165 >= 10) { do { r166 = r166 + 1; r165 = r165 / 10; r169 = r166; } while (10 <= r165); } r32.e = r169; r164 = r32; if (c9205_8) { finalise(r32, precision, rounding); r164 = r32; } } else { rounding !== 3; r164 = new constructor(0); } return r164; } if (r18[0]) { r32.s = -r32.s; r68 = r32; } else { if (!r19[0]) { rounding !== 3; return new constructor(0); } r68 = new constructor(this); } if (c9205_8) { finalise(r68, precision, rounding); } return r68; } L11: { if (this.s && r32.s) { if (this.d) { r32.s = -r32.s; r40 = r32; break L11; } r40 = new constructor(r32.d ? this : this.s !== r32.s ? this : NaN); } else { r40 = new constructor(NaN); } } return r40; }; prototype.sub = sub2; prototype.minus = sub2; const mod2 = function(a0) { "use strict"; let r27, r36, r44, constructor; L14: { L4: { constructor = this.constructor; const r4 = new constructor(a0); if (this.d) { if (r4.s) { if (r4.d && !r4.d[0]) { break L4; } L13: { L8: { if (r4.d) { if (this.d && !this.d[0]) { break L8; } c9205_8 = false; if (constructor.modulo == 9) { const r53 = c9205_26(this, r4.abs(), 0, 3, 1); r53.s = r53.s * r4.s; r44 = r53; } else { r44 = c9205_26(this, r4, 0, constructor.modulo, 1); } const r58 = r44.times(r4); c9205_8 = true; r36 = this.minus(r58); break L13; } } r36 = new constructor(this); finalise(r36, constructor.precision, constructor.rounding); } r27 = r36; break L14; } } } r27 = new constructor(NaN); } return r27; }; prototype.mod = mod2; prototype.modulo = mod2; const exp2 = function() { "use strict"; return naturalExponential(this); }; prototype.exp = exp2; prototype.naturalExponential = exp2; const ln2 = function() { "use strict"; return naturalLogarithm(this); }; prototype.ln = ln2; prototype.naturalLogarithm = ln2; const neg = function() { "use strict"; const constructor = new this.constructor(this); constructor.s = -constructor.s; finalise(constructor); return constructor; }; prototype.neg = neg; prototype.negated = neg; const add2 = function(a0) { "use strict"; let r35, r67, r68, r83, r108, length; const constructor = this.constructor; const r27 = new constructor(a0); if (this.d && r27.d) { if (this.s != r27.s) { r27.s = -r27.s; return this.minus(r27); } const r15 = this.d; const r18 = r27.d; const { precision, rounding } = constructor; if (r15[0] && r18[0]) { let r61 = floor2(this.e / 7); const r20 = floor2(r27.e / 7); const r19 = r15.slice(); const r21 = r61 - r20; let r65 = r20; if (r21) { if (r21 < 0) { r67 = -r21; length = r18.length; r61 = r20; r68 = r19; } else { length = r19.length; r67 = r21; r68 = r18; } const r72 = Math.ceil(precision / 7); const r74 = r72 > length ? r72 + 1 : length + 1; if (r67 > r74) { r68.length = 1; r67 = r74; } r68.reverse(); const r79 = +r67; let r80 = r79 - 1; if (r79) { do { r68.push(0); r83 = +r80; r80 = r83 - 1; } while (r83); } r68.reverse(); r65 = r61; } const length2 = r19.length; let length3 = r18.length; const r88 = length2 - length3; let r90 = r18; let r91 = r19; if (r88 < 0) { r90 = r19; r91 = r18; length3 = length2; } let r1 = 0; let r92 = 0; while (length3) { const r93 = length3 - 1; const r97 = r91[r93] + r90[r93] + r1; r91[r93] = r97; r1 = r97 / c9205_19 | 0; r91[r93] = r91[r93] % c9205_19; r92 = r1; length3 = r93; } let r99 = r65; if (r92) { r91.unshift(r92); r99 = r65 + 1; } let r103 = r91.length - 1; if (r91[r103] == 0) { do { r91.pop(); const r107 = r103 - 1; r108 = r91[r107]; r103 = r107; } while (r108 == 0); } r27.d = r91; let r109 = r91[0]; let r110 = r99 * 7; let r113 = r110; if (r109 >= 10) { do { r110 = r110 + 1; r109 = r109 / 10; r113 = r110; } while (10 <= r109); } r27.e = r113; if (c9205_8) { finalise(r27, precision, rounding); } return r27; } const r50 = r18[0] ? r27 : new constructor(this); if (c9205_8) { finalise(r50, precision, rounding); } return r50; } L10: { if (this.s && r27.s) { const r36 = this.d; r35 = r27; if (r36) { break L10; } r35 = new constructor(r27.d ? this : this.s === r27.s ? this : NaN); } else { r35 = new constructor(NaN); } } return r35; }; prototype.add = add2; prototype.plus = add2; const sd = function(a0) { "use strict"; let r25; if (a0 !== void 0 && a0 !== !!a0 && a0 !== 1 && a0 !== 0) { throw Error(c9205_9 + a0); } const r14 = this.d; let r11 = NaN; if (r14) { const r18 = this.d; const r5 = r18.length - 1; const r6 = 7 * r5 + 1; let r21 = r18[r5]; let r22 = r6; if (r21) { const r23 = r21 % 10; let r1 = r6; let r24 = r1; if (r23 === 0) { do { r1 = r1 - 1; const r3 = r21 / 10; r25 = r3 % 10; r21 = r3; r24 = r1; } while (r25 === 0); } let r26 = r18[0]; let r27 = r24; r22 = r27; if (r26 >= 10) { do { r27 = r27 + 1; r26 = r26 / 10; r22 = r27; } while (10 <= r26); } } r11 = (a0 ? this.e + 1 > r22 : a0) ? this.e + 1 : r22; } return r11; }; prototype.sd = sd; prototype.precision = sd; prototype.round = function() { "use strict"; const constructor = this.constructor; const r12 = new constructor(this); finalise(r12, this.e + 1, constructor.rounding); return r12; }; const sin2 = function() { "use strict"; let r38, r79, r86, r98; const constructor = this.constructor; if (this.isFinite()) { if (this.isZero()) { r98 = new constructor(this); } else { const { precision, rounding } = constructor; constructor.precision = precision + Math.max(this.e, this.sd()) + 7; constructor.rounding = 1; const r47 = toLessThanHalfPi(constructor, this); const length = r47.d.length; if (length < 3) { r79 = r47.isZero() ? r47 : taylorSeries(constructor, 2, r47, r47); } else { const r0 = 1.4 * Math.sqrt(length); const r55 = 16 < r0 ? 16 : r0 | 0; let r57 = r55 - 1; let r1 = 5; let r2 = r57; let r6 = 5; while (r2) { r1 = r1 * 5; r2 = r2 - 1; r6 = r1; } const r59 = r47.times(1 / r6); const r63 = taylorSeries(constructor, 2, r59, r59); const r24 = new constructor(5); const r72 = new constructor(16); const r77 = new constructor(20); let r78 = r63; r79 = r78; if (r55) { do { const r29 = r78.times(r78); r78 = r78.times(r24.plus(r29.times(r72.times(r29).minus(r77)))); const r85 = r57 - 1; r86 = r57; r57 = r85; r79 = r78; } while (r86); } } constructor.precision = precision; constructor.rounding = rounding; r98 = c9205_4 > 2 ? r79.neg() : r79; finalise(r98, precision, rounding, true); } r38 = r98; } else { r38 = new constructor(NaN); } return r38; }; prototype.sin = sin2; prototype.sine = sin2; const sqrt2 = function() { "use strict"; let r24, r64, r101, r124; const r16 = this.d; const r19 = this.e; const r13 = this.s; const constructor = this.constructor; if (r13 === 1 && r16 && r16[0]) { c9205_8 = false; const r34 = Math.sqrt(+this); if (r34 != 0 && r34 != Infinity) { r24 = new constructor(r34.toString()); } else { const r21 = digitsToString(r16); const r47 = Math.sqrt((r21.length + r19) % 2 === 0 ? r21 + "0" : r21); const r54 = floor2((r19 + 1) / 2) - (r19 < 0 || r19 % 2); if (r47 == Infinity) { r64 = "5e" + r54; } else { const r57 = r47.toExponential(); r64 = r57.slice(0, r57.indexOf("e") + 1) + r54; } r24 = new constructor(r64); } const precision = constructor.precision; let r23 = precision + 3; let r7 = void 0; while (true) { const r81 = r24.plus(c9205_26(this, r24, r23 + 2, 1)).times(0.5); const r26 = digitsToString(r24.d).slice(0, r23); const r27 = digitsToString(r81.d); const r87 = r27.slice(0, r23); const r88 = r7; let r89 = r24; const r90 = r23; r7 = r88; r24 = r81; r23 = r90; if (r26 === r87) { L28: { L19: { const r93 = r27.slice(r90 - 3, r90 + 1); if (r93 != "9999") { if (!r88 && r93 == "4999") { break L19; } const r102 = +r93 && (+r93.slice(1) || r93.charAt(0) != "5"); r89 = r81; r101 = void 0; if (r102) { break L28; } finalise(r81, precision + 1, 1); r101 = !r81.times(r81).eq(this); r89 = r81; break L28; } } if (!r88) { finalise(r89, precision + 1, 0); const r100 = r89.times(r89).eq(this); r101 = void 0; if (r100) { break L28; } } r23 = r90 + 4; r7 = 1; r24 = r81; continue; } c9205_8 = true; finalise(r89, precision, constructor.rounding, r101); return r89; } } } L36: { r124 = NaN; if (r13) { if (r13 < 0) { r124 = NaN; if (!r16) { break L36; } const r126 = r16[0]; r124 = NaN; if (r126) { break L36; } } r124 = r16 ? this : Infinity; } } return new constructor(r124); }; prototype.sqrt = sqrt2; prototype.squareRoot = sqrt2; const tan2 = function() { "use strict"; let r22, r41; const constructor = this.constructor; if (this.isFinite()) { if (this.isZero()) { r41 = new constructor(this); } else { const { precision, rounding } = constructor; constructor.precision = precision + 10; constructor.rounding = 1; const r13 = this.sin(); r13.s = 1; const r37 = c9205_26(r13, new constructor(1).minus(r13.times(r13)).sqrt(), precision + 10, 0); constructor.precision = precision; constructor.rounding = rounding; r41 = c9205_4 != 2 ? c9205_4 == 4 ? r37.neg() : r37 : r37.neg(); finalise(r41, precision, rounding, true); } r22 = r41; } else { r22 = new constructor(NaN); } return r22; }; prototype.tan = tan2; prototype.tangent = tan2; const mul2 = function(a0) { "use strict"; let r5, r64, r87, r90; const constructor = this.constructor; const r20 = this.d; const r29 = new constructor(a0); const r19 = r29.d; r29.s = r29.s * this.s; if (r20 && r20[0] && r19 && r19[0]) { const r54 = floor2(this.e / 7) + floor2(r29.e / 7); const length = r20.length; const length2 = r19.length; let r18 = r19; let r17 = r20; let r15 = length2; let r16 = length; if (r16 < length2) { r18 = r20; r17 = r19; r15 = length; r16 = length2; } const r57 = []; const r58 = r16 + r15; const r59 = +r58; let r60 = r59 - 1; if (r59) { do { r57.push(0); r64 = +r60; r60 = r64 - 1; } while (r64); } let r65 = r15 - 1; let r7 = void 0; while (r65 >= 0) { let r21 = r16 + r65; const r66 = r65; let r1 = 0; let r67 = 0; let r68 = r21; while (r68 > r66) { const r72 = r57[r21] + r18[r66] * r17[r21 - r66 - 1] + r1; const r73 = +r21; r21 = r73 - 1; r57[r73] = r72 % c9205_19 | 0; r1 = r72 / c9205_19 | 0; r67 = r1; r68 = r21; } r57[r68] = (r57[r68] + r67) % c9205_19 | 0; r65 = r66 - 1; r7 = r67; } let r82 = r58 - 1; if (!r57[r82]) { do { r57.pop(); const r86 = r82 - 1; r87 = r57[r86]; r82 = r86; } while (!r87); } if (r7) { r90 = r54 + 1; } else { r57.shift(); r90 = r54; } r29.d = r57; let r91 = r57[0]; let r92 = r90 * 7; let r94 = r92; if (r91 >= 10) { do { r92 = r92 + 1; r91 = r91 / 10; r94 = r92; } while (10 <= r91); } r29.e = r94; if (c9205_8) { finalise(r29, constructor.precision, constructor.rounding); } return r29; } L16: { const r34 = r29.s; const r4 = NaN; r5 = NaN; if (r34) { if (r20 && !r20[0]) { r5 = NaN; if (!r19) { break L16; } } if (r19 && !r19[0]) { r5 = r4; if (!r20) { break L16; } } r5 = r20 && r19 ? 0 * r29.s : r29.s / 0; } } return new constructor(r5); }; prototype.mul = mul2; prototype.times = mul2; prototype.toBinary = function(a0, a1) { "use strict"; return toStringBinary(this, 2, a0, a1); }; const toDP = function(a0, a1) { "use strict"; let r8, r16; L12: { const constructor = this.constructor; r16 = new constructor(this); if (a0 !== void 0) { if (a0 === ~~a0 && !(a0 < 0) && !(a0 > 1000000000)) { L10: { if (a1 !== void 0) { if (a1 === ~~a1 && !(a1 < 0)) { r8 = a1; if (!(a1 > 8)) { break L10; } } throw Error(c9205_9 + a1); } r8 = constructor.rounding; } finalise(r16, a0 + r16.e + 1, r8); break L12; } throw Error(c9205_9 + a0); } } return r16; }; prototype.toDP = toDP; prototype.toDecimalPlaces = toDP; prototype.toExponential = function(a0, a1) { "use strict"; let r11, r28, r33; L13: { const constructor = this.constructor; if (a0 !== void 0) { if (a0 === ~~a0 && !(a0 < 0) && !(a0 > 1000000000)) { L10: { if (a1 !== void 0) { if (a1 === ~~a1 && !(a1 < 0)) { r11 = a1; if (!(a1 > 8)) { break L10; } } throw Error(c9205_9 + a1); } r11 = constructor.rounding; } r28 = new constructor(this); finalise(r28, a0 + 1, r11); r33 = finiteToString(r28, true, a0 + 1); break L13; } throw Error(c9205_9 + a0); } r33 = finiteToString(this, true); r28 = this; } return r28.isNeg() ? r28.isZero() ? r33 : "-" + r33 : r33; }; prototype.toFixed = function(a0, a1) { "use strict"; let r11, r37; L13: { const constructor = this.constructor; if (a0 !== void 0) { if (a0 === ~~a0 && !(a0 < 0) && !(a0 > 1000000000)) { L10: { if (a1 !== void 0) { if (a1 === ~~a1 && !(a1 < 0)) { r11 = a1; if (!(a1 > 8)) { break L10; } } throw Error(c9205_9 + a1); } r11 = constructor.rounding; } const r28 = new constructor(this); finalise(r28, a0 + this.e + 1, r11); r37 = finiteToString(r28, false, a0 + r28.e + 1); break L13; } throw Error(c9205_9 + a0); } r37 = finiteToString(this); } return this.isNeg() ? this.isZero() ? r37 : "-" + r37 : r37; }; prototype.toFraction = function(a0) { "use strict"; let r59, r70, r84, r133; const r12 = this.d; const constructor = this.constructor; if (r12) { const r20 = new constructor(1); const r17 = new constructor(0); const r53 = new constructor(r17); const r5 = r12.length - 1; const r6 = 7 * r5 + 1; let r55 = r12[r5]; let r56 = r6; if (r55) { const r57 = r55 % 10; let r1 = r6; let r58 = r1; if (r57 === 0) { do { r1 = r1 - 1; const r4 = r55 / 10; r59 = r4 % 10; r55 = r4; r58 = r1; } while (r59 === 0); } let r60 = r12[0]; let r61 = r58; r56 = r61; if (r60 >= 10) { do { r61 = r61 + 1; r60 = r60 / 10; r56 = r61; } while (10 <= r60); } } const r65 = r56 - this.e - 1; r53.e = r65; const r66 = r65 % 7; const r19 = r53.d; let r68 = r66; if (r68 < 0) { r68 = 7 + r66; } L21: { r70 = r20; r19[0] = pow2(10, r68); if (a0 != null) { const r77 = new constructor(a0); if (r77.isInt() && !r77.lt(r70)) { const r83 = r77.gt(r53); r84 = r77; if (!r83) { break L21; } r84 = 0 < r65 ? r53 : r70; break L21; } throw Error(c9205_9 + r77); } r84 = 0 < r65 ? r53 : r70; } c9205_8 = false; const r22 = new constructor(digitsToString(r12)); const precision = constructor.precision; const precision2 = 7 * r12.length * 2; constructor.precision = precision2; const r24 = c9205_26(r22, r53, 0, 1, 1); const r109 = r70.plus(r24.times(r17)); const r111 = r109.cmp(r84); let r29 = r24; let r28 = r70; let r27 = r17; let r26 = r22; let r25 = r109; let r112 = r27; let r113 = r53; let r114 = r28; let r115 = r112; let r116 = r115; let r117 = r114; if (r111 != 1) { do { const r34 = r27.plus(r29.times(r28)); const r35 = r26.minus(r29.times(r113)); const r38 = c9205_26(r113, r35, 0, 1, 1); const r36 = r112.plus(r38.times(r25)); r133 = r36.cmp(r84); r27 = r28; const r32 = r25; r117 = r112; r26 = r113; r29 = r38; r28 = r34; r25 = r36; r112 = r32; r113 = r35; r114 = r28; r115 = r27; r116 = r112; } while (r133 != 1); } const r142 = c9205_26(r84.minus(r117), r116, 0, 1, 1); const r146 = r115.plus(r142.times(r114)); const r150 = r117.plus(r142.times(r116)); const r151 = this.s; r114.s = r151; r146.s = r151; const r172 = c9205_26(r114, r116, precision2, 1).minus(this).abs().cmp(c9205_26(r146, r150, precision2, 1).minus(this).abs()) < 1 ? [r114, r116] : [r146, r150]; constructor.precision = precision; c9205_8 = true; return r172; } return new constructor(this); }; const toHex = function(a0, a1) { "use strict"; return toStringBinary(this, 16, a0, a1); }; prototype.toHex = toHex; prototype.toHexadecimal = toHex; prototype.toNearest = function(a0, a1) { "use strict"; let r23, r37, r48, rounding; const constructor = this.constructor; const r9 = new constructor(this); if (a0 == null) { if (!r9.d) { return r9; } r37 = new constructor(1); rounding = constructor.rounding; } else { L7: { r23 = new constructor(a0); if (a1 !== void 0) { if (a1 === ~~a1 && !(a1 < 0)) { rounding = a1; if (!(a1 > 8)) { break L7; } } throw Error(c9205_9 + a1); } rounding = constructor.rounding; } const r32 = r23; if (!r9.d) { return r32.s ? r9 : r32; } const r36 = r32.d; r37 = r32; if (!r36) { if (r32.s) { r32.s = r9.s; } return r32; } } if (r37.d[0]) { c9205_8 = false; const r56 = c9205_26(r9, r37, 0, rounding, 1).times(r37); c9205_8 = true; finalise(r56); r48 = r56; } else { r37.s = r9.s; r48 = r37; } return r48; }; prototype.toNumber = function() { "use strict"; return +this; }; prototype.toOctal = function(a0, a1) { "use strict"; return toStringBinary(this, 8, a0, a1); }; const pow3 = function(a0) { "use strict"; let r111, r163; const constructor = this.constructor; const r12 = new constructor(a0); const r0 = +r12; if (this.d && r12.d && this.d[0] && r12.d[0]) { const r46 = new constructor(this); if (r46.eq(1)) { return r46; } const { precision, rounding } = constructor; if (r12.eq(1)) { finalise(r46, precision, rounding); return r46; } const r18 = floor2(r12.e / 7); if (r18 >= r12.d.length - 1) { let r3 = r0; if (r3 < 0) { r3 = -r0; } if (r3 <= 9007199254740991) { const r159 = intPow(constructor, r46, r3, precision); if (r12.s < 0) { r163 = new constructor(1).div(r159); } else { finalise(r159, precision, rounding); r163 = r159; } return r163; } } let r60 = r46.s; let r16 = r60; if (r16 < 0) { if (r18 < r12.d.length - 1) { return new constructor(NaN); } if (!(1 & r12.d[r18])) { r60 = 1; } const r66 = r46.e; r16 = r60; if (r66 == 0) { const r68 = r46.d[0]; r16 = r60; if (r68 == 1) { const length = r46.d.length; r16 = r60; if (length == 1) { r46.s = r60; return r46; } } } } const r73 = pow2(+r46, r0); const r89 = r73 != 0 && isFinite(r73) ? new constructor("" + r73).e : floor2(r0 * (Math.log("0." + digitsToString(r46.d)) / Math.LN10 + r46.e + 1)); if (!(r89 > constructor.maxE + 1) && !(r89 < constructor.minE - 1)) { c9205_8 = false; r46.s = 1; constructor.rounding = 1; const r105 = Math.min(12, ("" + r89).length); r111 = naturalExponential(r12.times(naturalLogarithm(r46, precision + r105)), precision); let r112 = r111.d; if (r112) { finalise(r111, precision + 5, 1); r112 = checkRoundingDigits(r111.d, precision, rounding); } if (r112) { const r119 = precision + 10; const r126 = naturalExponential(r12.times(naturalLogarithm(r46, r119 + r105)), r119); finalise(r126, r119 + 5, 1); const r138 = +digitsToString(r126.d).slice(precision + 1, precision + 15) + 1; r111 = r126; if (r138 === 100000000000000) { finalise(r126, precision + 1, 0); r111 = r126; } } r111.s = r16; c9205_8 = true; constructor.rounding = rounding; finalise(r111, precision, rounding); } else { r111 = new constructor(r89 > 0 ? r16 / 0 : 0); } return r111; } return new constructor(pow2(+this, r0)); }; prototype.pow = pow3; prototype.toPower = pow3; prototype.toPrecision = function(a0, a1) { "use strict"; let r10, r30, r36; L17: { const constructor = this.constructor; if (a0 !== void 0) { if (a0 === ~~a0 && !(a0 < 1) && !(a0 > 1000000000)) { L10: { if (a1 !== void 0) { if (a1 === ~~a1 && !(a1 < 0)) { r10 = a1; if (!(a1 > 8)) { break L10; } } throw Error(c9205_9 + a1); } r10 = constructor.rounding; } r30 = new constructor(this); finalise(r30, a0, r10); r36 = finiteToString(r30, a0 <= r30.e || r30.e <= constructor.toExpNeg, a0); break L17; } throw Error(c9205_9 + a0); } r36 = finiteToString(this, this.e <= constructor.toExpNeg || this.e >= constructor.toExpPos); r30 = this; } return r30.isNeg() ? r30.isZero() ? r36 : "-" + r36 : r36; }; const toSD = function(a0, a1) { "use strict"; let r5, constructor, rounding; L12: { constructor = this.constructor; if (a0 !== void 0) { if (a0 === ~~a0 && !(a0 < 1) && !(a0 > 1000000000)) { if (a1 === void 0) { rounding = constructor.rounding; r5 = a0; break L12; } if (a1 === ~~a1 && !(a1 < 0)) { r5 = a0; rounding = a1; if (!(a1 > 8)) { break L12; } } throw Error(c9205_9 + a1); } throw Error(c9205_9 + a0); } r5 = constructor.precision; rounding = constructor.rounding; } const r33 = new constructor(this); finalise(r33, r5, rounding); return r33; }; prototype.toSD = toSD; prototype.toSignificantDigits = toSD; prototype.toString = function() { "use strict"; const constructor = this.constructor; const r11 = finiteToString(this, this.e <= constructor.toExpNeg || this.e >= constructor.toExpPos); return this.isNeg() ? this.isZero() ? r11 : "-" + r11 : r11; }; const trunc2 = function() { "use strict"; const constructor = new this.constructor(this); finalise(constructor, this.e + 1, 1); return constructor; }; prototype.trunc = trunc2; prototype.truncated = trunc2; const toJSON = function() { "use strict"; const constructor = this.constructor; const r11 = finiteToString(this, this.e <= constructor.toExpNeg || this.e >= constructor.toExpPos); return this.isNeg() ? "-" + r11 : r11; }; prototype.toJSON = toJSON; prototype.valueOf = toJSON; c9205_26 = function(a0, a1, a2, a3, a4, a5) { "use strict"; let r8, r9, r27, r30, r77, r97, r98, r127, r142, r171, r179, r180, r181, r186, r195, r202, r205, r226, r252, r262, r267, r291, r301, r302, r308, r319, r328, length11, length14, length6, precision, rounding; const constructor = a0.constructor; const r6 = a0.s == a1.s ? 1 : -1; const r31 = a0.d; const r29 = a1.d; if (r31 && r31[0] && r29 && r29[0]) { if (a5) { r27 = a0.e - a1.e; r77 = 1; r30 = a5; } else { r30 = c9205_19; const r24 = a0.e; r77 = 7; r27 = floor2(r24 / 7) - floor2(a1.e / 7); } let length = r29.length; const length2 = r31.length; const r90 = new constructor(r6); const r91 = []; r90.d = r91; const r93 = r29[0] == (r31[0] || 0); let r95 = 0; let r96 = 0; if (r93) { do { const r12 = r95 + 1; r97 = r29[r12]; r98 = r31[r12] || 0; r95 = r12; r96 = r95; } while (r97 == r98); } const r100 = r29[r96] > (r31[r96] || 0) ? r27 - 1 : r27; let r101 = a2; if (a2 == null) { precision = constructor.precision; rounding = constructor.rounding; r101 = precision; } else { precision = a4 ? a2 + (a0.e - a1.e) + 1 : a2; rounding = a3; } if (precision < 0) { r91.push(1); r328 = true; } else { const r113 = precision / r77 + 2 | 0; if (length == 1) { const r309 = r29[0]; const r310 = 0 < length2; let r311 = 0; let r312 = 0; if (r310) { const r313 = r113 + 1; let r314 = r313 - 1; let r315 = 0; let r316 = 0; r311 = 0; r312 = 0; if (r313) { do { const r317 = r315 * r30; let r318 = r31[r316]; r319 = r314; const r320 = r316; if (!r318) { r318 = 0; } const r321 = r317 + r318; r91[r320] = r321 / r309 | 0; const r325 = r321 % r309 | 0; const r326 = r320 + 1; if (!(r326 < length2)) { r311 = r325; r312 = r326; if (!r325) { break; } } r314 = r319 - 1; r315 = r325; r316 = r326; r311 = r315; r312 = r316; } while (r319); } } if (!r311) { r311 = r312 < length2; } r308 = r311; } else { const r16 = r30 / (r29[0] + 1) | 0; let r41 = r29; let r117 = r31; let r40 = length2; if (1 < r16) { const length3 = r29.length; const r37 = r29.slice(); const r120 = +length3; let r121 = r120 - 1; let r11 = 0; let r122 = 0; if (r120) { do { const r124 = r37[r121] * r16 + r11; r37[r121] = r124 % r30 | 0; r11 = r124 / r30 | 0; r127 = +r121; r121 = r127 - 1; r122 = r11; } while (r127); } if (r122) { r37.unshift(r122); } const length4 = r31.length; const r36 = r31.slice(); const r132 = +length4; let r133 = r132 - 1; let r134 = 0; let r135 = 0; if (r132) { do { const r138 = r36[r133] * r16 + r134; r36[r133] = r138 % r30 | 0; r134 = r138 / r30 | 0; r142 = +r133; r133 = r142 - 1; r135 = r134; } while (r142); } if (r135) { r36.unshift(r135); } length = r37.length; r40 = r36.length; r41 = r37; r117 = r36; } const r146 = r117.slice(0, length); const length5 = r146.length; const r39 = r117; let r148 = length5; let r42 = r148; while (r42 < length) { const r149 = +r148; r148 = r149 + 1; r146[r149] = 0; r42 = r148; } const r151 = r41.slice(); r151.unshift(0); const r43 = r41[0]; const r18 = r41[1] >= r30 / 2; let r157 = r43; let r158 = length; let r159 = r113; let r160 = r42; let r161 = r146; let r162 = 0; if (r18) { r157 = r43 + 1; r158 = length; r159 = r113; r160 = r42; r161 = r146; r162 = 0; } while (true) { const r44 = r157; const r163 = r158; const r164 = r159; let r165 = r160; const r166 = r161; const r167 = r162; if (length != r165) { r8 = length > r165 ? 1 : -1; } else { const r168 = 0 < length; let r169 = 0; r8 = 0; if (r168) { do { const r46 = r41[r169]; const r45 = r166[r169]; const r170 = r169; if (r46 != r45) { r8 = r41[r170] > r166[r170] ? 1 : -1; break; } const r3 = r170 + 1; r171 = r3 < length; r169 = r3; r8 = 0; } while (r171); } } if (r8 < 0) { const r48 = r166[0]; let r184 = (length != r165 ? r48 * r30 + (r166[1] || 0) : r48) / r44 | 0; if (1 < r184) { if (r184 >= r30) { r184 = r30 - 1; } const length7 = r41.length; const r50 = r41.slice(); const r189 = +length7; let r190 = r189 - 1; let r0 = 0; let r2 = 0; if (r189) { do { const r192 = r50[r190] * r184 + r0; r50[r190] = r192 % r30 | 0; r0 = r192 / r30 | 0; r195 = +r190; r190 = r195 - 1; r2 = r0; } while (r195); } if (r2) { r50.unshift(r2); } const length8 = r50.length; const length9 = r166.length; if (length8 != length9) { r202 = length8 > length9 ? 1 : -1; } else { const r200 = 0 < length8; let r201 = 0; r202 = 0; if (r200) { do { const r52 = r50[r201]; const r51 = r166[r201]; const r203 = r201; if (r52 != r51) { r202 = r50[r203] > r166[r203] ? 1 : -1; break; } const r204 = r203 + 1; r205 = r204 < length8; r201 = r204; r202 = 0; } while (r205); } } r165 = length9; r186 = r50; r9 = r184; r8 = r202; if (r202 === 1) { const r212 = length < length8 ? r151 : r41; const r213 = +length8; let r214 = r213 - 1; let r215 = 0; if (r213) { do { r50[r214] = r50[r214] - r215; const r219 = r50[r214] < r212[r214]; const r220 = r214; const r221 = r219 ? 1 : 0; r50[r220] = r221 * r30 + r50[r220] - r212[r220]; r226 = +r220; r214 = r226 - 1; r215 = r221; } while (r226); } const r227 = r184 - 1; const r228 = r50[0]; r165 = length9; r186 = r50; r9 = r227; r8 = r202; if (!r228) { const length10 = r50.length; r165 = length9; r186 = r50; r9 = r227; r8 = r202; if (length10 > 1) { do { r50.shift(); const r232 = r50[0]; r165 = length9; r186 = r50; r9 = r227; r8 = r202; if (r232) { break; } length11 = r50.length; r165 = length9; r186 = r50; r9 = r227; r8 = r202; } while (length11 > 1); } } } } else { r9 = r184; if (r184 === 0) { r9 = 1; r8 = 1; } r186 = r41.slice(); } if (r186.length < r165) { r186.unshift(0); } const r237 = +r165; let r238 = r237 - 1; let r239 = 0; if (r237) { do { r166[r238] = r166[r238] - r239; const r244 = r166[r238] < r186[r238]; const r245 = r238; const r246 = r244 ? 1 : 0; r166[r245] = r246 * r30 + r166[r245] - r186[r245]; r252 = +r245; r238 = r252 - 1; r239 = r246; } while (r252); } if (!r166[0]) { while (r166.length > 1) { r166.shift(); if (r166[0]) { break; } } } let r259 = r8 === -1; if (r8 === -1) { const length12 = r166.length; if (length != length12) { r262 = length > length12 ? 1 : -1; } else { const r19 = 0 < length; let r261 = 0; r262 = 0; if (r19) { do { const r263 = r41[r261]; const r264 = r166[r261]; const r265 = r261; if (r263 != r264) { r262 = r41[r265] > r166[r265] ? 1 : -1; break; } const r266 = r265 + 1; r267 = r266 < length; r261 = r266; r262 = 0; } while (r267); } } r259 = r262 < 1; r8 = r262; r165 = length12; } let r274 = r9; if (r259) { const r275 = length < r165 ? r151 : r41; const r276 = +r165; let r277 = r276 - 1; let r278 = 0; if (r276) { do { r166[r277] = r166[r277] - r278; const r283 = r166[r277] < r275[r277]; const r284 = r277; const r285 = r283 ? 1 : 0; r166[r284] = r285 * r30 + r166[r284] - r275[r284]; r291 = +r284; r277 = r291 - 1; r278 = r285; } while (r291); } const r292 = r9 + 1; const r293 = r166[0]; r274 = r292; if (!r293) { const length13 = r166.length; r274 = r292; if (length13 > 1) { do { r166.shift(); const r297 = r166[0]; r274 = r292; if (r297) { break; } length14 = r166.length; r274 = r292; } while (length14 > 1); } } } length6 = r166.length; r180 = r274; r179 = r166; r181 = r8; } else { length6 = r165; r179 = r166; r180 = 0; r181 = r8; if (r8 === 0) { r179 = [0]; length6 = r165; r180 = 1; r181 = r8; } } r91[r167] = r180; if (r181 && r179[0]) { const r303 = +length6; const r304 = r39[r163] || 0; r302 = r303 + 1; r179[r303] = r304; r301 = r179; } else { r301 = [r39[r163]]; r302 = 1; } const r305 = +r163; if (!(!(r305 < r40) && r301[0] === void 0)) { r162 = r167 + 1; r158 = r305 + 1; r159 = r164 - 1; r157 = r44; r160 = r302; r161 = r301; if (r164) { continue; } } r308 = r301[0] !== void 0; break; } } const r327 = r91[0]; r328 = r308; if (!r327) { r91.shift(); r328 = r308; } } if (r77 === 1) { r90.e = r100; c9205_2 = r328; } else { let r333 = r91[0]; const r335 = r333 >= 10; let r336 = 1; let r337 = 1; if (r335) { do { r336 = r336 + 1; r333 = r333 / 10; r337 = r336; } while (10 <= r333); } r90.e = r337 + r100 * r77 - 1; finalise(r90, a4 ? r101 + r90.e + 1 : r101, rounding, r328); } return r90; } return new constructor(a0.s ? a1.s ? (r31 ? r29 ? r31[0] != r29[0] : !r29 : r29) ? !(r31 && r31[0] == 0) && r29 ? r6 / 0 : 0 * r6 : NaN : NaN : NaN); }; clone = function clone(a0) { "use strict"; let r6 = a0; const Decimal3 = function Decimal(a0) { let r8, r20, r45, r56, r76, r89, r90, r106, r135, r146, r171, r181, r196, r221; if (this instanceof Decimal3) { this.constructor = Decimal3; if (a0 instanceof c9205_1 || (a0 ? a0.toStringTag === c9205_12 : a0) || false) { L99: { this.s = a0.s; if (c9205_8) { if (a0.d && !(a0.e > Decimal3.maxE)) { if (a0.e < Decimal3.minE) { this.e = 0; const r223 = [0]; this.d = r223; r221 = r223; break L99; } this.e = a0.e; r221 = a0.d.slice(); this.d = r221; break L99; } this.e = NaN; this.d = null; r221 = null; } else { this.e = a0.e; const { d: r209, d: r210 } = a0; this.d = r209 ? r210.slice() : r210; } } return void 0; } if (typeof a0 === "number") { if (a0 === 0) { this.s = 1 / a0 < 0 ? -1 : 1; this.e = 0; this.d = [0]; return void 0; } if (a0 < 0) { r171 = -a0; this.s = -1; } else { this.s = 1; r171 = a0; } if (r171 === ~~r171 && r171 < 10000000) { const r186 = r171 >= 10; let r188 = r171; let r189 = 0; let r190 = 0; if (r186) { do { r189 = r189 + 1; r188 = r188 / 10; r190 = r189; } while (10 <= r188); } if (c9205_8) { if (r190 > Decimal3.maxE) { this.e = NaN; this.d = null; r196 = null; } else if (r190 < Decimal3.minE) { this.e = 0; const r197 = [0]; this.d = r197; r196 = r197; } else { this.e = r190; r196 = [r171]; this.d = r196; } } else { this.e = r190; this.d = [r171]; } return void 0; } if (0 * r171 !== 0) { if (!r171) { this.s = NaN; } this.e = NaN; this.d = null; r181 = void 0; } else { parseDecimal(this, r171.toString()); r181 = this; } return r181; } if (typeof a0 === "string") { const r53 = a0.charCodeAt(0); if (r53 === 45) { r56 = a0.slice(1); this.s = -1; } else { r56 = r53 === 43 ? a0.slice(1) : a0; this.s = 1; } L58: { const r64 = c9205_18.test(r56); const r65 = r56; if (r64) { parseDecimal(this, r65); r76 = this; } else { L30: { if (!(r65.indexOf("_") > -1)) { if (r65 !== "Infinity") { r20 = r65; if (r20 !== "NaN") { break L30; } } if (!+r65) { this.s = NaN; } this.e = NaN; this.d = null; r76 = this; break L58; } const r79 = r65.replace(/(\d)_(?=\d)/g, "$1"); const r81 = c9205_18.test(r79); r20 = r79; if (r81) { parseDecimal(this, r79); r76 = this; break L58; } } const r84 = c9205_16.test(r20); const r85 = r20; if (r84) { r90 = r85.toLowerCase(); r89 = 16; } else { const r88 = c9205_15.test(r85); r89 = 2; r90 = r85; if (!r88) { const r93 = c9205_17.test(r85); r89 = 8; r90 = r85; if (!r93) { throw Error(c9205_9 + r85); } } } const r103 = r90.search(/p/i); const r104 = r90; if (r103 > 0) { r8 = +r104.slice(r103 + 1); r106 = r104.substring(2, r103); } else { r106 = r104.slice(2); r8 = void 0; } const r24 = r106.indexOf("."); const r10 = r24 >= 0; const constructor = this.constructor; const r26 = r106; let r114 = void 0; let r115 = void 0; let r116 = r26; if (r10) { const r118 = r26.replace(".", ""); const length = r118.length; const r120 = length - r24; r115 = intPow(constructor, new constructor(r89), r120, 2 * r120); r114 = length; r116 = r118; } const r127 = convertBase(r116, r89, c9205_19); const r129 = r127.length - 1; const r130 = r127[r129]; let r131 = r129; let r132 = r131; if (r130 === 0) { do { r127.pop(); const r4 = r131 - 1; r135 = r127[r4]; r131 = r4; r132 = r131; } while (r135 === 0); } if (r132 < 0) { r146 = new constructor(0 * this.s); } else { let r136 = r127[0]; let r138 = r129 * 7; let r140 = r138; if (r136 >= 10) { do { r138 = r138 + 1; r136 = r136 / 10; r140 = r138; } while (10 <= r136); } this.e = r140; this.d = r127; c9205_8 = false; const r142 = r10 ? c9205_26(this, r115, 4 * r114) : this; r146 = r8 ? r142.times.call(r142, Math.abs(r8) < 54 ? pow2(2, r8) : c9205_1.pow(2, r8)) : r142; c9205_8 = true; } r76 = r146; } } return r76; } if (typeof a0 === "bigint") { if (a0 < 0) { r45 = -a0; this.s = -1; } else { this.s = 1; r45 = a0; } parseDecimal(this, r45.toString()); return this; } throw Error(c9205_9 + a0); } const r15 = { __proto__: Decimal3.prototype }; const r34 = Decimal3.call(r15, a0); return r34 instanceof Object ? r34 : r15; }; Decimal3.prototype = prototype; Decimal3.ROUND_UP = 0; Decimal3.ROUND_DOWN = 1; Decimal3.ROUND_CEIL = 2; Decimal3.ROUND_FLOOR = 3; Decimal3.ROUND_HALF_UP = 4; Decimal3.ROUND_HALF_DOWN = 5; Decimal3.ROUND_HALF_EVEN = 6; Decimal3.ROUND_HALF_CEIL = 7; Decimal3.ROUND_HALF_FLOOR = 8; Decimal3.EUCLID = 9; Decimal3.set = config; Decimal3.config = config; Decimal3.clone = clone; Decimal3.isDecimal = isDecimalInstance; Decimal3.abs = abs; Decimal3.acos = acos; Decimal3.acosh = acosh; Decimal3.add = add; Decimal3.asin = asin; Decimal3.asinh = asinh; Decimal3.atan = atan; Decimal3.atanh = atanh; Decimal3.atan2 = atan2; Decimal3.cbrt = cbrt; Decimal3.ceil = ceil; Decimal3.clamp = clamp; Decimal3.cos = cos; Decimal3.cosh = cosh; Decimal3.div = div; Decimal3.exp = exp; Decimal3.floor = floor; Decimal3.hypot = hypot; Decimal3.ln = ln; Decimal3.log = log; Decimal3.log10 = log10; Decimal3.log2 = log2; Decimal3.max = max; Decimal3.min = min; Decimal3.mod = mod; Decimal3.mul = mul; Decimal3.pow = pow; Decimal3.random = random; Decimal3.round = round; Decimal3.sign = sign; Decimal3.sin = sin; Decimal3.sinh = sinh; Decimal3.sqrt = sqrt; Decimal3.sub = sub; Decimal3.sum = sum; Decimal3.tan = tan; Decimal3.tanh = tanh; Decimal3.trunc = trunc; if (a0 === void 0) { r6 = {}; } if (r6 && r6.defaults !== true) { const r61 = ["precision", "rounding", "toExpNeg", "toExpPos", "maxE", "minE", "modulo", "crypto"]; const r63 = 0 < r61.length; let r64 = 0; if (r63) { do { const hasOwnProperty = r6.hasOwnProperty; const r9 = r61[r64]; const r66 = hasOwnProperty.call(r6, r9); const r67 = r64; if (!r66) { r6[r9] = this[r9]; } r64 = r67 + 1; } while (r64 < r61.length); } } Decimal3.config(r6); return Decimal3; }; c9205_1 = clone(c9205_7); c9205_1.prototype.constructor = c9205_1; c9205_1.Decimal = c9205_1; c9205_1.default = c9205_1; c9205_5 = new c9205_1(r10); c9205_6 = new c9205_1(r7); if (typeof globalThis.define === "function" && define.amd) { define(function() { "use strict"; return c9205_1; }); } else if (module !== void 0 && module.exports) { const Symbol2 = globalThis.Symbol; if (typeof Symbol2 === "function" ? typeof Symbol.iterator === "symbol" : typeof Symbol2 === "function") { prototype[Symbol.for("nodejs.util.inspect.custom")] = prototype.toString; prototype[Symbol.toStringTag] = "Decimal"; } module.exports = c9205_1; } else { Decimal2 = this.Decimal; c9205_1.noConflict = function() { "use strict"; _this.Decimal = Decimal2; return c9205_1; }; this.Decimal = c9205_1; }