From fb37ca6bde56676d6d5a98df2bf8721e8fa81085 Mon Sep 17 00:00:00 2001 From: Michael Mclaughlin Date: Thu, 30 Jun 2016 19:27:50 +0100 Subject: [PATCH] v6.0.0 --- .travis.yml | 5 +- CHANGELOG.md | 5 + README.md | 1 - bower.json | 2 +- decimal.js | 239 ++--------------------------------- decimal.min.js | 5 +- doc/API.html | 57 +-------- doc/decimal.js.map | 2 +- package.json | 4 +- test/modules/fromJSON.js | 43 ------- test/modules/immutability.js | 1 - test/modules/toJSON.js | 90 ------------- test/test.html | 1 - test/test.js | 1 - 14 files changed, 26 insertions(+), 430 deletions(-) delete mode 100644 test/modules/fromJSON.js delete mode 100644 test/modules/toJSON.js diff --git a/.travis.yml b/.travis.yml index 0ff5101..0b91a8b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,9 @@ language: node_js node_js: + - "node" + - "6" + - "5" - "4" - - "4.1" - - "4.0" - "0.12" - "0.11" - "0.10" diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a1d034..06caa80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +####6.0.0 +* 30/06/2016 +* Removed base-88 serialization format. +* Amended `toJSON` and removed `Decimal.fromJSON` accordingly. + ####5.0.8 * 09/03/2016 * Add newline to single test results. diff --git a/README.md b/README.md index 2f6f9c3..e1c9742 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ continues to be supported, or see [decimal.js-light](https://github.com/MikeMcl/ - Simple but full-featured API - Replicates many of the methods of JavaScript's `Number.prototype` and `Math` objects - Also handles hexadecimal, binary and octal values - - Supports serialization of Decimals to a compact base-88 format for transmission or persistence - Faster, smaller, and perhaps easier to use than JavaScript versions of Java's BigDecimal - No dependencies - Wide platform compatibility: uses JavaScript 1.5 (ECMAScript 3) features only diff --git a/bower.json b/bower.json index aff3257..6891ea9 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "decimal.js", "main": "decimal.js", - "version": "5.0.8", + "version": "6.0.0", "homepage": "https://github.com/MikeMcl/decimal.js", "authors": [ "Michael Mclaughlin " diff --git a/decimal.js b/decimal.js index eb3f5ee..e8cc702 100644 --- a/decimal.js +++ b/decimal.js @@ -1,10 +1,10 @@ -/*! decimal.js v5.0.8 https://github.com/MikeMcl/decimal.js/LICENCE */ +/*! decimal.js v6.0.0 https://github.com/MikeMcl/decimal.js/LICENCE */ ;(function (globalScope) { 'use strict'; /* - * decimal.js v5.0.8 + * decimal.js v6.0.0 * An arbitrary-precision Decimal type for JavaScript. * https://github.com/MikeMcl/decimal.js * Copyright (c) 2016 Michael Mclaughlin @@ -23,9 +23,8 @@ // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`. MAX_DIGITS = 1e9, // 0 to 1e9 - // The base 88 alphabet used by `toJSON` and `fromJSON`. - // 7 printable ASCII characters omitted (space) \ " & ' < > - NUMERALS = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%()*+,-./:;=?@[]^_`{|}~', + // Base conversion alphabet. + NUMERALS = '0123456789abcdef', // The natural logarithm of 10 (1025 digits). LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058', @@ -38,7 +37,7 @@ Decimal = { // These values must be integers within the stated ranges (inclusive). - // Most of these values can be changed during run-time using `Decimal.config`. + // Most of these values can be changed at run-time using `Decimal.config`. // The maximum number of significant digits of the result of a calculation or base conversion. // E.g. `Decimal.config({ precision: 20 });` @@ -181,7 +180,6 @@ * toFixed * toFraction * toHexadecimal toHex - * toJSON * toNearest * toNumber * toOctal @@ -190,7 +188,7 @@ * toSignificantDigits toSD * toString * truncated trunc - * valueOf + * valueOf toJSON */ @@ -2117,142 +2115,6 @@ }; - /* - * Return a string representing the exact value of this Decimal in a compact base-88 based format. - * - * The number of characters of the string will always be equal to or less than the number of - * characters returned by `toString` or `toExponential` - usually just over half as many. - * - * The original Decimal value can be recreated by passing the string to `Decimal.fromJSON`. - * - * Base 88 alphabet: - * 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%()*+,-./:;=?@[]^_`{|}~ - * - * The following 7 printable ASCII characters are not used - * (space) \ " & ' < > - * so the return value is safe for strings, HTML, JSON, and XML. - * - * 0 0 g 16 w 32 M 48 $ 64 ] 80 - * 1 1 h 17 x 33 N 49 % 65 ^ 81 - * 2 2 i 18 y 34 O 50 ( 66 _ 82 - * 3 3 j 19 z 35 P 51 ) 67 ` 83 - * 4 4 k 20 A 36 Q 52 * 68 { 84 - * 5 5 l 21 B 37 R 53 + 69 | 85 - * 6 6 m 22 C 38 S 54 , 70 } 86 - * 7 7 n 23 D 39 T 55 - 71 ~ 87 - * 8 8 o 24 E 40 U 56 . 72 - * 9 9 p 25 F 41 V 57 / 73 - * a 10 q 26 G 42 W 58 : 74 - * b 11 r 27 H 43 X 59 ; 75 - * c 12 s 28 I 44 Y 60 = 76 - * d 13 t 29 J 45 Z 61 ? 77 - * e 14 u 30 K 46 ! 62 @ 78 - * f 15 v 31 L 47 # 63 [ 79 - * - * If the return value is just one character, it represents: - * 0-81 [[0, 40][-0, -40]] - * 82 -Infinity - * 83 +Infinity - * 84 NaN - * 85-87 free - * - * 64 32 16 8 4 2 1 - * 1 0 1 0 1 1 1 = 87 - * - */ - P.toJSON = function () { - var arr, e, i, k, len, n, r, str, - x = this, - isNeg = x.s < 0; - - // -Infinity/Infinity/NaN. - if (!x.d) return NUMERALS.charAt(x.s ? isNeg ? 82 : 83 : 84); - e = x.e; - - // Small integer. - if (x.d.length === 1 && e < 4 && e >= 0) { - n = x.d[0]; - - if (n < 2857) { - - // One character. - // [[0, 40][-0, -40]] - if (n < 41) return NUMERALS.charAt(isNeg ? n + 41 : n); - - // Two characters. High bit of first character unset. - // 0XXXXXX - // 63*88 + 87 = 5631 = 5632 values, 5632/2 = 2816 - // [[0, 2815][2816, 5631]] (2816 * 2 = 5632 values) - // [[0, 2815][-0, -2815]] - // [[41, 2856][-41, -2856]] - n -= 41; - if (isNeg) n += 2816; - k = n / 88 | 0; - - return NUMERALS.charAt(k) + NUMERALS.charAt(n - k * 88); - } - } - - str = digitsToString(x.d); - r = ''; - - // Values with a small exponent. Set high bit. - // Positive value: 100XXXX - // 1 0 0 {exponent [0, 15] -> [-7, 8]} - if (!isNeg && e <= 8 && e >= -7) { - k = 64 + e + 7; - - // Negative value: 1010XXX - // 1 0 1 0 {exponent [0, 7] -> [-3, 4]} - } else if (isNeg && e <= 4 && e >= -3) { - k = 64 + 16 + e + 3; - - // Integer without trailing zeros: 0X00000 - // 0 {is negative} 0 0 0 0 0 - } else if (str.length === e + 1) { - k = 32 * isNeg; - - // All remaining values: 0XXXXXX - // Result will have at least 3 characters. - // 0 {is negative} {is exponent negative} {exponent character count [1, 15]} - } else { - k = 32 * isNeg + 16 * (e < 0); - e = Math.abs(e); - - // One character to represent the exponent. - if (e < 88) { - k += 1; - r = NUMERALS.charAt(e); - - // Two characters to represent the exponent. - // 87*88 + 87 = 7743 - } else if (e < 7744) { - k += 2; - n = e / 88 | 0; - r = NUMERALS.charAt(n) + NUMERALS.charAt(e - n * 88); - - // More than two characters to represent the exponent. - } else { - arr = convertBase(String(e), 10, 88); - len = arr.length; - k += len; - for (i = 0; i < len; i++) r += NUMERALS.charAt(arr[i]); - } - } - - // At this point r contains the characters in base 88 representing the exponent value. - // Prepend the first character, which describes the sign, the exponent sign, and the number of - // characters that follow which represent the exponent value. - r = NUMERALS.charAt(k) + r; - arr = convertBase(str, 10, 88); - len = arr.length; - - // Add the base 88 characters that represent the significand. - for (i = 0; i < len; i++) r += NUMERALS.charAt(arr[i]); - - return r; - }; - /* * Returns a new Decimal whose value is the nearest multiple of the magnitude of `y` to the value @@ -2569,7 +2431,7 @@ * Unlike `toString`, negative zero will include the minus sign. * */ - P.valueOf = function () { + P.valueOf = P.toJSON = function () { var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); @@ -2594,12 +2456,12 @@ /* - * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toJSON, - * P.toPower, finiteToString, naturalExponential, naturalLogarithm + * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower, + * finiteToString, naturalExponential, naturalLogarithm * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest, * P.toPrecision, P.toSignificantDigits, toStringBinary, random * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm - * convertBase P.toJSON, toStringBinary, fromJSON, parseOther + * convertBase toStringBinary, parseOther * cos P.cos * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy, * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction, @@ -2635,7 +2497,7 @@ * truncate intPow * * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi, - * naturalLogarithm, config, fromJSON, parseOther, random, Decimal * + * naturalLogarithm, config, parseOther, random, Decimal */ @@ -4062,7 +3924,6 @@ * div * exp * floor - * fromJSON * hypot * ln * log @@ -4464,7 +4325,6 @@ Decimal.div = div; Decimal.exp = exp; Decimal.floor = floor; - Decimal.fromJSON = fromJSON; Decimal.hypot = hypot; // ES6 Decimal.ln = ln; Decimal.log = log; @@ -4534,83 +4394,6 @@ } - /* - * Return a new Decimal from `str`, a string value created by `toJSON`. - * - * Base 88 alphabet: - * 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%()*+,-./:;=?@[]^_`{|}~ - * - * If `str` is just one character: - * 0-81 [[0, 40][-0, -40]] - * 82 -Infinity - * 83 +Infinity - * 84 NaN - * - * 64 32 16 8 4 2 1 - * 1 0 1 0 1 1 1 = 87 - * - */ - function fromJSON(str) { - var e, isNeg, k, n; - - if (typeof str !== 'string' || !str) throw Error(invalidArgument + str); - k = str.length; - n = NUMERALS.indexOf(str.charAt(0)); - - // [0, 81] -> [[0, 40][-0, -40]] - if (k === 1) { - return new this(n > 81 ? [-1 / 0, 1 / 0, 0 / 0][n - 82] : n > 40 ? -(n - 41) : n); - } else if (n & 64) { - isNeg = n & 16; - - // e = isNeg ? [-3, 4] : [-7, 8] - e = isNeg ? (n & 7) - 3 : (n & 15) - 7; - k = 1; - } else if (k === 2) { - n = n * 88 + NUMERALS.indexOf(str.charAt(1)); - - // [0, 5631] -> [[0, 2815][-0, -2815]] -> [[41, 2856][-41, -2856]] - return new this(n >= 2816 ? -(n - 2816) - 41 : n + 41); - } else { - - // 0XXXXXX - // 0 {is negative} {is exponent negative} {exponent digit count [0, 15]} - isNeg = n & 32; - - // Has an exponent been specified? - if (n & 31) { - e = n & 15; // Exponent character count [1, 15] - k = e + 1; // Index of first character of the significand. - - if (e === 1) { - e = NUMERALS.indexOf(str.charAt(1)); - } else if (e === 2) { - e = NUMERALS.indexOf(str.charAt(1)) * 88 + - NUMERALS.indexOf(str.charAt(2)); - } else { - e = +convertBase(str.slice(1, k), 88, 10).join(''); - } - - // Negative exponent? - if (n & 16) e = -e; - } else { - - // Integer without trailing zeros. - // 0X00000 - // 0 {is negative} 0 0 0 0 0 - str = convertBase(str.slice(1), 88, 10).join(''); - return new this(isNeg ? '-' + str : str); - } - } - - str = convertBase(str.slice(k), 88, 10).join(''); - e = e - str.length + 1; - str = str + 'e' + e; - - return new this(isNeg ? '-' + str : str); - } - - /* * Return a new Decimal whose value is the square root of the sum of the squares of the arguments, * rounded to `precision` significant digits using rounding mode `rounding`. diff --git a/decimal.min.js b/decimal.min.js index 462af7c..c57950f 100644 --- a/decimal.min.js +++ b/decimal.min.js @@ -1,4 +1,3 @@ -/* decimal.js v5.0.8 https://github.com/MikeMcl/decimal.js/LICENCE */ -!function(n){"use strict";function e(n){var e,i,t,r=n.length-1,s="",o=n[0];if(r>0){for(s+=o,e=1;r>e;e++)t=n[e]+"",i=Sn-t.length,i&&(s+=l(i)),s+=t;o=n[e],t=o+"",i=Sn-t.length,i&&(s+=l(i))}else if(0===o)return"0";for(;o%10===0;)o/=10;return s+o}function i(n,e,i){if(n!==~~n||e>n||n>i)throw Error(yn+n)}function t(n,e,i,t){var r,s,o,u;for(s=n[0];s>=10;s/=10)--e;return--e<0?(e+=Sn,r=0):(r=Math.ceil((e+1)/Sn),e%=Sn),s=qn(10,Sn-e),u=n[r]%s|0,null==t?3>e?(0==e?u=u/100|0:1==e&&(u=u/10|0),o=4>i&&99999==u||i>3&&49999==u||5e4==u||0==u):o=(4>i&&u+1==s||i>3&&u+1==s/2)&&(n[r+1]/s/100|0)==qn(10,e-2)-1||(u==s/2||0==u)&&0==(n[r+1]/s/100|0):4>e?(0==e?u=u/1e3|0:1==e?u=u/100|0:2==e&&(u=u/10|0),o=(t||4>i)&&9999==u||!t&&i>3&&4999==u):o=((t||4>i)&&u+1==s||!t&&i>3&&u+1==s/2)&&(n[r+1]/s/1e3|0)==qn(10,e-3)-1,o}function r(n,e,i){for(var t,r,s=[0],o=0,u=n.length;u>o;){for(r=s.length;r--;)s[r]*=e;for(s[0]+=mn.indexOf(n.charAt(o++)),t=0;ti-1&&(void 0===s[t+1]&&(s[t+1]=0),s[t+1]+=s[t]/i|0,s[t]%=i)}return s.reverse()}function s(n,e){var i,t,r=e.d.length;32>r?(i=Math.ceil(r/3),t=Math.pow(4,-i).toString()):(i=16,t="2.3283064365386962890625e-10"),n.precision+=i,e=E(n,1,e.times(t),new n(1));for(var s=i;s--;){var o=e.times(e);e=o.times(o).minus(o).times(8).plus(1)}return n.precision-=i,e}function o(n,e,i,t){var r,s,o,u,c,f,h,a,l,d=n.constructor;n:if(null!=e){if(a=n.d,!a)return n;for(r=1,u=a[0];u>=10;u/=10)r++;if(s=e-r,0>s)s+=Sn,o=e,h=a[l=0],c=h/qn(10,r-o-1)%10|0;else if(l=Math.ceil((s+1)/Sn),u=a.length,l>=u){if(!t)break n;for(;u++<=l;)a.push(0);h=c=0,r=1,s%=Sn,o=s-Sn+1}else{for(h=u=a[l],r=1;u>=10;u/=10)r++;s%=Sn,o=s-Sn+r,c=0>o?0:h/qn(10,r-o-1)%10|0}if(t=t||0>e||void 0!==a[l+1]||(0>o?h:h%qn(10,r-o-1)),f=4>i?(c||t)&&(0==i||i==(n.s<0?3:2)):c>5||5==c&&(4==i||t||6==i&&(s>0?o>0?h/qn(10,r-o):0:a[l-1])%10&1||i==(n.s<0?8:7)),1>e||!a[0])return a.length=0,f?(e-=n.e+1,a[0]=qn(10,(Sn-e%Sn)%Sn),n.e=-e||0):a[0]=n.e=0,n;if(0==s?(a.length=l,u=1,l--):(a.length=l+1,u=qn(10,Sn-s),a[l]=o>0?(h/qn(10,r-o)%qn(10,o)|0)*u:0),f)for(;;){if(0==l){for(s=1,o=a[0];o>=10;o/=10)s++;for(o=a[0]+=u,u=1;o>=10;o/=10)u++;s!=u&&(n.e++,a[0]==Rn&&(a[0]=1));break}if(a[l]+=u,a[l]!=Rn)break;a[l--]=0,u=1}for(s=a.length;0===a[--s];)a.pop()}return En&&(n.e>d.maxE?(n.d=null,n.e=NaN):n.e0?o=o.charAt(0)+"."+o.slice(1)+l(r):u>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):0>s?(o="0."+l(-s-1)+o,t&&(r=t-u)>0&&(o+=l(r))):s>=u?(o+=l(s+1-u),t&&(r=t-s-1)>0&&(o=o+"."+l(r))):((r=s+1)0&&(s+1===u&&(o+="."),o+=l(r))),o}function c(n,e){for(var i=1,t=n[0];t>=10;t/=10)i++;return i+e*Sn-1}function f(n,e,i){if(e>Un)throw En=!0,i&&(n.precision=i),Error(An);return o(new n(vn),e,1,!0)}function h(n,e,i){if(e>_n)throw Error(An);return o(new n(Nn),e,i,!0)}function a(n){var e=n.length-1,i=e*Sn+1;if(e=n[e]){for(;e%10==0;e/=10)i--;for(e=n[0];e>=10;e/=10)i++}return i}function l(n){for(var e="";n--;)e+="0";return e}function d(n,e,i,t){var r,s=new n(1),o=Math.ceil(t/Sn+4);for(En=!1;;){if(i%2&&(s=s.times(e),A(s.d,o)&&(r=!0)),i=On(i/2),0===i){i=s.d.length-1,r&&0===s.d[i]&&++s.d[i];break}e=e.times(e),A(e.d,o)}return En=!0,s}function g(n){return 1&n.d[n.d.length-1]}function p(n,e,i){for(var t,r=new n(e[0]),s=0;++s17)return new p(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:NaN);for(null==i?(En=!1,a=m):a=i,h=new p(.03125);n.e>-2;)n=n.times(h),g+=5;for(s=Math.log(qn(2,g))/Math.LN10*2+5|0,a+=s,r=c=f=new p(1),p.precision=a;;){if(c=o(c.times(n),a,1),r=r.times(++d),h=f.plus(Tn(c,r,a,1)),e(h.d).slice(0,a)===e(f.d).slice(0,a)){for(u=g;u--;)f=o(f.times(f),a,1);if(null!=i)return p.precision=m,f;if(!(3>l&&t(f.d,a-s,w,l)))return o(f,p.precision=m,w,En=!0);p.precision=a+=10,r=c=h=new p(1),d=0,l++}f=h}}function m(n,i){var r,s,u,c,h,a,l,d,g,p,w,v=1,N=10,x=n,b=x.d,E=x.constructor,M=E.rounding,y=E.precision;if(x.s<0||!b||!b[0]||!x.e&&1==b[0]&&1==b.length)return new E(b&&!b[0]?-1/0:1!=x.s?NaN:b?0:x);if(null==i?(En=!1,g=y):g=i,E.precision=g+=N,r=e(b),s=r.charAt(0),!(Math.abs(c=x.e)<15e14))return d=f(E,g+2,y).times(c+""),x=m(new E(s+"."+r.slice(1)),g-N).plus(d),E.precision=y,null==i?o(x,y,M,En=!0):x;for(;7>s&&1!=s||1==s&&r.charAt(1)>3;)x=x.times(n),r=e(x.d),s=r.charAt(0),v++;for(c=x.e,s>1?(x=new E("0."+r),c++):x=new E(s+"."+r.slice(1)),p=x,l=h=x=Tn(x.minus(1),x.plus(1),g,1),w=o(x.times(x),g,1),u=3;;){if(h=o(h.times(w),g,1),d=l.plus(Tn(h,new E(u),g,1)),e(d.d).slice(0,g)===e(l.d).slice(0,g)){if(l=l.times(2),0!==c&&(l=l.plus(f(E,g+2,y).times(c+""))),l=Tn(l,new E(v),g,1),null!=i)return E.precision=y,l;if(!t(l.d,g-N,M,a))return o(l,E.precision=y,M,En=!0);E.precision=g+=N,d=h=x=Tn(p.minus(1),p.plus(1),g,1),w=o(x.times(x),g,1),u=a=1}l=d,u+=2}}function v(n){return String(n.s*n.s/0)}function N(n,e){var i,t,r;for((i=e.indexOf("."))>-1&&(e=e.replace(".","")),(t=e.search(/e/i))>0?(0>i&&(i=t),i+=+e.slice(t+1),e=e.substring(0,t)):0>i&&(i=e.length),t=0;48===e.charCodeAt(t);t++);for(r=e.length;48===e.charCodeAt(r-1);--r);if(e=e.slice(t,r)){if(r-=t,n.e=i=i-t-1,n.d=[],t=(i+1)%Sn,0>i&&(t+=Sn),r>t){for(t&&n.d.push(+e.slice(0,t)),r-=Sn;r>t;)n.d.push(+e.slice(t,t+=Sn));e=e.slice(t),t=Sn-e.length}else t-=r;for(;t--;)e+="0";n.d.push(+e),En&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e0?(h=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),u=o>=0,t=n.constructor,u&&(e=e.replace(".",""),f=e.length,o=f-o,s=d(t,new t(i),o,2*o)),a=r(e,i,Rn),l=a.length-1,o=l;0===a[o];--o)a.pop();return 0>o?new t(0*n.s):(n.e=c(a,l),n.d=a,En=!1,u&&(n=Tn(n,s,4*f)),h&&(n=n.times(Math.abs(h)<54?Math.pow(2,h):xn.pow(2,h))),En=!0,n)}function b(n,e){var i,t=e.d.length;if(3>t)return E(n,2,e,e);i=1.4*Math.sqrt(t),i=i>16?16:0|i,e=e.times(Math.pow(5,-i)),e=E(n,2,e,e);for(var r,s=new n(5),o=new n(16),u=new n(20);i--;)r=e.times(e),e=e.times(s.plus(r.times(o.times(r).minus(u))));return e}function E(n,e,i,t,r){var s,o,u,c,f=1,h=n.precision,a=Math.ceil(h/Sn);for(En=!1,c=i.times(i),u=new n(t);;){if(o=Tn(u.times(c),new n(e++*e++),h,1),u=r?t.plus(o):t.minus(o),t=Tn(o.times(c),new n(e++*e++),h,1),o=u.plus(t),void 0!==o.d[a]){for(s=a;o.d[s]===u.d[s]&&s--;);if(-1==s)break}s=u,u=t,t=o,o=s,f++}return En=!0,o.d.length=a+1,o}function M(n,e){var i,t=e.s<0,r=h(n,n.precision,1),s=r.times(.5);if(e=e.abs(),e.lte(s))return gn=t?4:1,e;if(i=e.divToInt(r),i.isZero())gn=t?3:2;else{if(e=e.minus(i.times(r)),e.lte(s))return gn=g(i)?t?2:3:t?4:1,e;gn=g(i)?t?1:4:t?3:2}return e.minus(r).abs()}function y(n,e,t,s){var o,c,f,h,a,l,d,g,p,w=n.constructor,m=void 0!==t;if(m?(i(t,1,wn),void 0===s?s=w.rounding:i(s,0,8)):(t=w.precision,s=w.rounding),n.isFinite()){for(d=u(n),f=d.indexOf("."),m?(o=2,16==e?t=4*t-3:8==e&&(t=3*t-2)):o=e,f>=0&&(d=d.replace(".",""),p=new w(1),p.e=d.length-f,p.d=r(u(p),10,o),p.e=p.d.length),g=r(d,10,o),c=a=g.length;0==g[--a];)g.pop();if(g[0]){if(0>f?c--:(n=new w(n),n.d=g,n.e=c,n=Tn(n,p,t,s,0,o),g=n.d,c=n.e,l=ln),f=g[t],h=o/2,l=l||void 0!==g[t+1],l=4>s?(void 0!==f||l)&&(0===s||s===(n.s<0?3:2)):f>h||f===h&&(4===s||l||6===s&&1&g[t-1]||s===(n.s<0?8:7)),g.length=t,l)for(;++g[--t]>o-1;)g[t]=0,t||(++c,g.unshift(1));for(a=g.length;!g[a-1];--a);for(f=0,d="";a>f;f++)d+=mn.charAt(g[f]);if(m){if(a>1)if(16==e||8==e){for(f=16==e?4:3,--a;a%f;a++)d+="0";for(g=r(d,o,e),a=g.length;!g[a-1];--a);for(f=1,d="1.";a>f;f++)d+=mn.charAt(g[f])}else d=d.charAt(0)+"."+d.slice(1);d=d+(0>c?"p":"p+")+c}else if(0>c){for(;++c;)d="0"+d;d="0."+d}else if(++c>a)for(c-=a;c--;)d+="0";else a>c&&(d=d.slice(0,c)+"."+d.slice(c))}else d=m?"0p+0":"0";d=(16==e?"0x":2==e?"0b":8==e?"0o":"")+d}else d=v(n);return n.s<0?"-"+d:d}function A(n,e){return n.length>e?(n.length=e,!0):void 0}function O(n){return new this(n).abs()}function q(n){return new this(n).acos()}function F(n){return new this(n).acosh()}function D(n,e){return new this(n).plus(e)}function Z(n){return new this(n).asin()}function P(n){return new this(n).asinh()}function R(n){return new this(n).atan()}function S(n){return new this(n).atanh()}function L(n,e){n=new this(n),e=new this(e);var i,t=this.precision,r=this.rounding,s=t+4;return n.s&&e.s?n.d||e.d?!e.d||n.isZero()?(i=e.s<0?h(this,t,r):new this(0),i.s=n.s):!n.d||e.isZero()?(i=h(this,s,1).times(.5),i.s=n.s):e.s<0?(this.precision=s,this.rounding=1,i=this.atan(Tn(n,e,s,1)),e=h(this,s,1),this.precision=t,this.rounding=r,i=n.s<0?i.minus(e):i.plus(e)):i=this.atan(Tn(n,e,s,1)):(i=h(this,s,1).times(e.s>0?.25:.75),i.s=n.s):i=new this(NaN),i}function U(n){return new this(n).cbrt()}function _(n){return o(n=new this(n),n.e+1,2)}function k(n){if(!n||"object"!=typeof n)throw Error(Mn+"Object expected");var e,i,t,r=["precision",1,wn,"rounding",0,8,"toExpNeg",-pn,0,"toExpPos",0,pn,"maxE",0,pn,"minE",-pn,0,"modulo",0,9];for(e=0;e=r[e+1]&&t<=r[e+2]))throw Error(yn+i+": "+t);this[i]=t}if(n.hasOwnProperty(i="crypto"))if(void 0===(t=n[i]))this[i]=t;else{if(t!==!0&&t!==!1&&0!==t&&1!==t)throw Error(yn+i+": "+t);this[i]=!(!t||!bn||!bn.getRandomValues&&!bn.randomBytes)}return this}function T(n){return new this(n).cos()}function C(n){return new this(n).cosh()}function I(n){function e(n){var i,t,r,s=this;if(!(s instanceof e))return new e(n);if(s.constructor=e,n instanceof e)return s.s=n.s,s.e=n.e,void(s.d=(n=n.d)?n.slice():n);if(r=typeof n,"number"===r){if(0===n)return s.s=0>1/n?-1:1,s.e=0,void(s.d=[0]);if(0>n?(n=-n,s.s=-1):s.s=1,n===~~n&&1e7>n){for(i=0,t=n;t>=10;t/=10)i++;return s.e=i,void(s.d=[n])}return 0*n!==0?(n||(s.s=NaN),s.e=NaN,void(s.d=null)):N(s,n.toString())}if("string"!==r)throw Error(yn+n);return 45===n.charCodeAt(0)?(n=n.slice(1),s.s=-1):s.s=1,Pn.test(n)?N(s,n):x(s,n)}var i,t,r;if(e.prototype=kn,e.ROUND_UP=0,e.ROUND_DOWN=1,e.ROUND_CEIL=2,e.ROUND_FLOOR=3,e.ROUND_HALF_UP=4,e.ROUND_HALF_DOWN=5,e.ROUND_HALF_EVEN=6,e.ROUND_HALF_CEIL=7,e.ROUND_HALF_FLOOR=8,e.EUCLID=9,e.config=k,e.clone=I,e.abs=O,e.acos=q,e.acosh=F,e.add=D,e.asin=Z,e.asinh=P,e.atan=R,e.atanh=S,e.atan2=L,e.cbrt=U,e.ceil=_,e.cos=T,e.cosh=C,e.div=H,e.exp=B,e.floor=V,e.fromJSON=j,e.hypot=$,e.ln=J,e.log=W,e.log10=G,e.log2=z,e.max=K,e.min=Q,e.mod=X,e.mul=Y,e.pow=nn,e.random=en,e.round=tn,e.sign=rn,e.sin=sn,e.sinh=on,e.sqrt=un,e.sub=cn,e.tan=fn,e.tanh=hn,e.trunc=an,void 0===n&&(n={}),n)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],i=0;i81?[-1/0,1/0,NaN][s-82]:s>40?-(s-41):s);if(64&s)i=16&s,e=i?(7&s)-3:(15&s)-7,t=1;else{if(2===t)return s=88*s+mn.indexOf(n.charAt(1)),new this(s>=2816?-(s-2816)-41:s+41);if(i=32&s,!(31&s))return n=r(n.slice(1),88,10).join(""),new this(i?"-"+n:n);e=15&s,t=e+1,e=1===e?mn.indexOf(n.charAt(1)):2===e?88*mn.indexOf(n.charAt(1))+mn.indexOf(n.charAt(2)):+r(n.slice(1,t),88,10).join(""),16&s&&(e=-e)}return n=r(n.slice(t),88,10).join(""),e=e-n.length+1,n=n+"e"+e,new this(i?"-"+n:n)}function $(){var n,e,i=new this(0);for(En=!1,n=0;no;)c[o++]=1e7*Math.random()|0;else if(bn&&bn.getRandomValues)for(e=bn.getRandomValues(new Uint32Array(r));r>o;)s=e[o],s>=429e7?e[o]=bn.getRandomValues(new Uint32Array(1))[0]:c[o++]=s%1e7;else if(bn&&bn.randomBytes){for(e=bn.randomBytes(r*=4);r>o;)s=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((127&e[o+3])<<24),s>=214e7?bn.randomBytes(4).copy(e,o):(c.push(s%1e7),o+=4);o=r/4}else{if(this.crypto)throw Error(Mn+"crypto unavailable");for(;r>o;)c[o++]=1e7*Math.random()|0}for(r=c[--o],n%=Sn,r&&n&&(s=qn(10,Sn-n),c[o]=(r/s|0)*s);0===c[o];o--)c.pop();if(0>o)t=0,c=[0];else{for(t=-1;0===c[0];t-=Sn)c.shift();for(r=1,s=c[0];s>=10;s/=10)r++;Sn>r&&(t-=Sn-r)}return u.e=t,u.d=c,u}function tn(n){return o(n=new this(n),n.e+1,this.rounding)}function rn(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function sn(n){return new this(n).sin()}function on(n){return new this(n).sinh()}function un(n){return new this(n).sqrt()}function cn(n,e){return new this(n).sub(e)}function fn(n){return new this(n).tan()}function hn(n){return new this(n).tanh()}function an(n){return o(n=new this(n),n.e+1,1)}var ln,dn,gn,pn=9e15,wn=1e9,mn="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%()*+,-./:;=?@[]^_`{|}~",vn="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Nn="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",xn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-pn,maxE:pn,crypto:void 0},bn="undefined"!=typeof crypto?crypto:null,En=!0,Mn="[DecimalError] ",yn=Mn+"Invalid argument: ",An=Mn+"Precision limit exceeded",On=Math.floor,qn=Math.pow,Fn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Dn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Zn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Pn=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Rn=1e7,Sn=7,Ln=9007199254740991,Un=vn.length-1,_n=Nn.length-1,kn={};kn.absoluteValue=kn.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),o(n)},kn.ceil=function(){return o(new this.constructor(this),this.e+1,2)},kn.comparedTo=kn.cmp=function(n){var e,i,t,r,s=this,o=s.d,u=(n=new s.constructor(n)).d,c=s.s,f=n.s;if(!o||!u)return c&&f?c!==f?c:o===u?0:!o^0>c?1:-1:NaN;if(!o[0]||!u[0])return o[0]?c:u[0]?-f:0;if(c!==f)return c;if(s.e!==n.e)return s.e>n.e^0>c?1:-1;for(t=o.length,r=u.length,e=0,i=r>t?t:r;i>e;++e)if(o[e]!==u[e])return o[e]>u[e]^0>c?1:-1;return t===r?0:t>r^0>c?1:-1},kn.cosine=kn.cos=function(){var n,e,i=this,t=i.constructor;return i.d?i.d[0]?(n=t.precision,e=t.rounding,t.precision=n+Math.max(i.e,i.sd())+Sn,t.rounding=1,i=s(t,M(t,i)),t.precision=n,t.rounding=e,o(2==gn||3==gn?i.neg():i,n,e,!0)):new t(1):new t(NaN)},kn.cubeRoot=kn.cbrt=function(){var n,i,t,r,s,u,c,f,h,a,l=this,d=l.constructor;if(!l.isFinite()||l.isZero())return new d(l);for(En=!1,u=l.s*Math.pow(l.s*l,1/3),u&&Math.abs(u)!=1/0?r=new d(u.toString()):(t=e(l.d),n=l.e,(u=(n-t.length+1)%3)&&(t+=1==u||-2==u?"0":"00"),u=Math.pow(t,1/3),n=On((n+1)/3)-(n%3==(0>n?-1:2)),u==1/0?t="5e"+n:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),r=new d(t),r.s=l.s),c=(n=d.precision)+3;;)if(f=r,h=f.times(f).times(f),a=h.plus(l),r=Tn(a.plus(l).times(f),a.plus(h),c+2,1),e(f.d).slice(0,c)===(t=e(r.d)).slice(0,c)){if(t=t.slice(c-3,c+1),"9999"!=t&&(s||"4999"!=t)){(!+t||!+t.slice(1)&&"5"==t.charAt(0))&&(o(r,n+1,1),i=!r.times(r).times(r).eq(l));break}if(!s&&(o(f,n+1,0),f.times(f).times(f).eq(l))){r=f;break}c+=4,s=1}return En=!0,o(r,n,d.rounding,i)},kn.decimalPlaces=kn.dp=function(){var n,e=this.d,i=NaN;if(e){if(n=e.length-1,i=(n-On(this.e/Sn))*Sn,n=e[n])for(;n%10==0;n/=10)i--;0>i&&(i=0)}return i},kn.dividedBy=kn.div=function(n){return Tn(this,new this.constructor(n))},kn.dividedToIntegerBy=kn.divToInt=function(n){var e=this,i=e.constructor;return o(Tn(e,new i(n),0,1,1),i.precision,i.rounding)},kn.equals=kn.eq=function(n){return 0===this.cmp(n)},kn.floor=function(){return o(new this.constructor(this),this.e+1,3)},kn.greaterThan=kn.gt=function(n){return this.cmp(n)>0},kn.greaterThanOrEqualTo=kn.gte=function(n){var e=this.cmp(n);return 1==e||0===e},kn.hyperbolicCosine=kn.cosh=function(){var n,e,i,t,r,s=this,u=s.constructor,c=new u(1);if(!s.isFinite())return new u(s.s?1/0:NaN);if(s.isZero())return c;i=u.precision,t=u.rounding,u.precision=i+Math.max(s.e,s.sd())+4,u.rounding=1,r=s.d.length,32>r?(n=Math.ceil(r/3),e=Math.pow(4,-n).toString()):(n=16,e="2.3283064365386962890625e-10"),s=E(u,1,s.times(e),new u(1),!0);for(var f,h=n,a=new u(8);h--;)f=s.times(s),s=c.minus(f.times(a.minus(f.times(a))));return o(s,u.precision=i,u.rounding=t,!0)},kn.hyperbolicSine=kn.sinh=function(){var n,e,i,t,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(e=s.precision,i=s.rounding,s.precision=e+Math.max(r.e,r.sd())+4,s.rounding=1,t=r.d.length,3>t)r=E(s,2,r,r,!0);else{n=1.4*Math.sqrt(t),n=n>16?16:0|n,r=r.times(Math.pow(5,-n)),r=E(s,2,r,r,!0);for(var u,c=new s(5),f=new s(16),h=new s(20);n--;)u=r.times(r),r=r.times(c.plus(u.times(f.times(u).plus(h))))}return s.precision=e,s.rounding=i,o(r,e,i,!0)},kn.hyperbolicTangent=kn.tanh=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+7,t.rounding=1,Tn(i.sinh(),i.cosh(),t.precision=n,t.rounding=e)):new t(i.s)},kn.inverseCosine=kn.acos=function(){var n,e=this,i=e.constructor,t=e.abs().cmp(1),r=i.precision,s=i.rounding;return-1!==t?0===t?e.isNeg()?h(i,r,s):new i(0):new i(NaN):e.isZero()?h(i,r+4,s).times(.5):(i.precision=r+6,i.rounding=1,e=e.asin(),n=h(i,r+4,s).times(.5),i.precision=r,i.rounding=s,n.minus(e))},kn.inverseHyperbolicCosine=kn.acosh=function(){var n,e,i=this,t=i.constructor;return i.lte(1)?new t(i.eq(1)?0:NaN):i.isFinite()?(n=t.precision,e=t.rounding,t.precision=n+Math.max(Math.abs(i.e),i.sd())+4,t.rounding=1,En=!1,i=i.times(i).minus(1).sqrt().plus(i),En=!0,t.precision=n,t.rounding=e,i.ln()):new t(i)},kn.inverseHyperbolicSine=kn.asinh=function(){var n,e,i=this,t=i.constructor;return!i.isFinite()||i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+2*Math.max(Math.abs(i.e),i.sd())+6,t.rounding=1,En=!1,i=i.times(i).plus(1).sqrt().plus(i),En=!0,t.precision=n,t.rounding=e,i.ln())},kn.inverseHyperbolicTangent=kn.atanh=function(){var n,e,i,t,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(n=s.precision,e=s.rounding,t=r.sd(),Math.max(t,n)<2*-r.e-1?o(new s(r),n,e,!0):(s.precision=i=t-r.e,r=Tn(r.plus(1),new s(1).minus(r),i+n,1),s.precision=n+4,s.rounding=1,r=r.ln(),s.precision=n,s.rounding=e,r.times(.5))):new s(NaN)},kn.inverseSine=kn.asin=function(){var n,e,i,t,r=this,s=r.constructor;return r.isZero()?new s(r):(e=r.abs().cmp(1),i=s.precision,t=s.rounding,-1!==e?0===e?(n=h(s,i+4,t).times(.5),n.s=r.s,n):new s(NaN):(s.precision=i+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=i,s.rounding=t,r.times(2)))},kn.inverseTangent=kn.atan=function(){var n,e,i,t,r,s,u,c,f,a=this,l=a.constructor,d=l.precision,g=l.rounding;if(a.isFinite()){if(a.isZero())return new l(a);if(a.abs().eq(1)&&_n>=d+4)return u=h(l,d+4,g).times(.25),u.s=a.s,u}else{if(!a.s)return new l(NaN);if(_n>=d+4)return u=h(l,d+4,g).times(.5),u.s=a.s,u}for(l.precision=c=d+10,l.rounding=1,i=Math.min(28,c/Sn+2|0),n=i;n;--n)a=a.div(a.times(a).plus(1).sqrt().plus(1));for(En=!1,e=Math.ceil(c/Sn),t=1,f=a.times(a),u=new l(a),r=a;-1!==n;)if(r=r.times(f),s=u.minus(r.div(t+=2)),r=r.times(f),u=s.plus(r.div(t+=2)),void 0!==u.d[e])for(n=e;u.d[n]===s.d[n]&&n--;);return i&&(u=u.times(2<this.d.length-2},kn.isNaN=function(){return!this.s},kn.isNegative=kn.isNeg=function(){return this.s<0},kn.isPositive=kn.isPos=function(){return this.s>0},kn.isZero=function(){return!!this.d&&0===this.d[0]},kn.lessThan=kn.lt=function(n){return this.cmp(n)<0},kn.lessThanOrEqualTo=kn.lte=function(n){return this.cmp(n)<1},kn.logarithm=kn.log=function(n){var i,r,s,u,c,h,a,l,d=this,g=d.constructor,p=g.precision,w=g.rounding,v=5;if(null==n)n=new g(10),i=!0;else{if(n=new g(n),r=n.d,n.s<0||!r||!r[0]||n.eq(1))return new g(NaN);i=n.eq(10)}if(r=d.d,d.s<0||!r||!r[0]||d.eq(1))return new g(r&&!r[0]?-1/0:1!=d.s?NaN:r?0:1/0);if(i)if(r.length>1)c=!0;else{for(u=r[0];u%10===0;)u/=10;c=1!==u}if(En=!1,a=p+v,h=m(d,a),s=i?f(g,a+10):m(n,a),l=Tn(h,s,a,1),t(l.d,u=p,w))do if(a+=10,h=m(d,a),s=i?f(g,a+10):m(n,a),l=Tn(h,s,a,1),!c){+e(l.d).slice(u+1,u+15)+1==1e14&&(l=o(l,p+1,0));break}while(t(l.d,u+=10,w));return En=!0,o(l,p,w)},kn.minus=kn.sub=function(n){var e,i,t,r,s,u,f,h,a,l,d,g,p=this,w=p.constructor;if(n=new w(n),!p.d||!n.d)return p.s&&n.s?p.d?n.s=-n.s:n=new w(n.d||p.s!==n.s?p:NaN):n=new w(NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(a=p.d,g=n.d,f=w.precision,h=w.rounding,!a[0]||!g[0]){if(g[0])n.s=-n.s;else{if(!a[0])return new w(3===h?-0:0);n=new w(p)}return En?o(n,f,h):n}if(i=On(n.e/Sn),l=On(p.e/Sn),a=a.slice(),s=l-i){for(d=0>s,d?(e=a,s=-s,u=g.length):(e=g,i=l,u=a.length),t=Math.max(Math.ceil(f/Sn),u)+2,s>t&&(s=t,e.length=1),e.reverse(),t=s;t--;)e.push(0);e.reverse()}else{for(t=a.length,u=g.length,d=u>t,d&&(u=t),t=0;u>t;t++)if(a[t]!=g[t]){d=a[t]0;--t)a[u++]=0;for(t=g.length;t>s;){if(a[--t]r?(i=a,r=-r,u=l.length):(i=l,t=s,u=a.length),s=Math.ceil(f/Sn),u=s>u?s+1:u+1,r>u&&(r=u,i.length=1),i.reverse();r--;)i.push(0);i.reverse()}for(u=a.length,r=l.length,0>u-r&&(r=u,i=l,l=a,a=i),e=0;r;)e=(a[--r]=a[r]+l[r]+e)/Rn|0,a[r]%=Rn;for(e&&(a.unshift(e),++t),u=a.length;0==a[--u];)a.pop();return n.d=a,n.e=c(a,t),En?o(n,f,h):n},kn.precision=kn.sd=function(n){var e,i=this;if(void 0!==n&&n!==!!n&&1!==n&&0!==n)throw Error(yn+n);return i.d?(e=a(i.d),n&&i.e+1>e&&(e=i.e+1)):e=NaN,e},kn.round=function(){var n=this,e=n.constructor;return o(new e(n),n.e+1,e.rounding)},kn.sine=kn.sin=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+Math.max(i.e,i.sd())+Sn,t.rounding=1,i=b(t,M(t,i)),t.precision=n,t.rounding=e,o(gn>2?i.neg():i,n,e,!0)):new t(NaN)},kn.squareRoot=kn.sqrt=function(){var n,i,t,r,s,u,c=this,f=c.d,h=c.e,a=c.s,l=c.constructor;if(1!==a||!f||!f[0])return new l(!a||0>a&&(!f||f[0])?NaN:f?c:1/0);for(En=!1,a=Math.sqrt(+c),0==a||a==1/0?(i=e(f),(i.length+h)%2==0&&(i+="0"),a=Math.sqrt(i),h=On((h+1)/2)-(0>h||h%2),a==1/0?i="1e"+h:(i=a.toExponential(),i=i.slice(0,i.indexOf("e")+1)+h),r=new l(i)):r=new l(a.toString()),t=(h=l.precision)+3;;)if(u=r,r=u.plus(Tn(c,u,t+2,1)).times(.5),e(u.d).slice(0,t)===(i=e(r.d)).slice(0,t)){if(i=i.slice(t-3,t+1),"9999"!=i&&(s||"4999"!=i)){(!+i||!+i.slice(1)&&"5"==i.charAt(0))&&(o(r,h+1,1),n=!r.times(r).eq(c));break}if(!s&&(o(u,h+1,0),u.times(u).eq(c))){r=u;break}t+=4,s=1}return En=!0,o(r,h,l.rounding,n)},kn.tangent=kn.tan=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+10,t.rounding=1,i=i.sin(),i.s=1,i=Tn(i,new t(1).minus(i.times(i)).sqrt(),n+10,0),t.precision=n,t.rounding=e,o(2==gn||4==gn?i.neg():i,n,e,!0)):new t(NaN)},kn.times=kn.mul=function(n){var e,i,t,r,s,u,f,h,a,l=this,d=l.constructor,g=l.d,p=(n=new d(n)).d;if(n.s*=l.s,!(g&&g[0]&&p&&p[0]))return new d(!n.s||g&&!g[0]&&!p||p&&!p[0]&&!g?NaN:g&&p?0*n.s:n.s/0);for(i=On(l.e/Sn)+On(n.e/Sn),h=g.length,a=p.length,a>h&&(s=g,g=p,p=s,u=h,h=a,a=u),s=[],u=h+a,t=u;t--;)s.push(0);for(t=a;--t>=0;){for(e=0,r=h+t;r>t;)f=s[r]+p[t]*g[r-t-1]+e,s[r--]=f%Rn|0,e=f/Rn|0;s[r]=(s[r]+e)%Rn|0}for(;!s[--u];)s.pop();for(e?++i:s.shift(),t=s.length;!s[--t];)s.pop();return n.d=s,n.e=c(s,i),En?o(n,d.precision,d.rounding):n},kn.toBinary=function(n,e){return y(this,2,n,e)},kn.toDecimalPlaces=kn.toDP=function(n,e){var t=this,r=t.constructor;return t=new r(t),void 0===n?t:(i(n,0,wn),void 0===e?e=r.rounding:i(e,0,8),o(t,n+t.e+1,e))},kn.toExponential=function(n,e){var t,r=this,s=r.constructor;return void 0===n?t=u(r,!0):(i(n,0,wn),void 0===e?e=s.rounding:i(e,0,8),r=o(new s(r),n+1,e),t=u(r,!0,n+1)),r.isNeg()&&!r.isZero()?"-"+t:t},kn.toFixed=function(n,e){var t,r,s=this,c=s.constructor;return void 0===n?t=u(s):(i(n,0,wn),void 0===e?e=c.rounding:i(e,0,8),r=o(new c(s),n+s.e+1,e),t=u(r,!1,n+r.e+1)),s.isNeg()&&!s.isZero()?"-"+t:t},kn.toFraction=function(n){var i,t,r,s,o,u,c,f,h,l,d,g,p=this,w=p.d,m=p.constructor;if(!w)return new m(p);if(h=t=new m(1),r=f=new m(0),i=new m(r),o=i.e=a(w)-p.e-1,u=o%Sn,i.d[0]=qn(10,0>u?Sn+u:u),null==n)n=o>0?i:h;else{if(c=new m(n),!c.isInt()||c.lt(h))throw Error(yn+c);n=c.gt(i)?o>0?i:h:c}for(En=!1,c=new m(e(w)),l=m.precision,m.precision=o=w.length*Sn*2;d=Tn(c,i,0,1,1),s=t.plus(d.times(r)),1!=s.cmp(n);)t=r,r=s,s=h,h=f.plus(d.times(s)),f=s,s=i,i=c.minus(d.times(s)),c=s;return s=Tn(n.minus(t),r,0,1,1),f=f.plus(s.times(h)),t=t.plus(s.times(r)),f.s=h.s=p.s,g=Tn(h,r,o,1).minus(p).abs().cmp(Tn(f,t,o,1).minus(p).abs())<1?[h,r]:[f,t],m.precision=l,En=!0,g},kn.toHexadecimal=kn.toHex=function(n,e){return y(this,16,n,e)},kn.toJSON=function(){var n,i,t,s,o,u,c,f,h=this,a=h.s<0;if(!h.d)return mn.charAt(h.s?a?82:83:84);if(i=h.e,1===h.d.length&&4>i&&i>=0&&(u=h.d[0],2857>u))return 41>u?mn.charAt(a?u+41:u):(u-=41,a&&(u+=2816),s=u/88|0,mn.charAt(s)+mn.charAt(u-88*s));if(f=e(h.d),c="",!a&&8>=i&&i>=-7)s=64+i+7;else if(a&&4>=i&&i>=-3)s=80+i+3;else if(f.length===i+1)s=32*a;else if(s=32*a+16*(0>i),i=Math.abs(i),88>i)s+=1,c=mn.charAt(i);else if(7744>i)s+=2,u=i/88|0,c=mn.charAt(u)+mn.charAt(i-88*u);else for(n=r(String(i),10,88),o=n.length,s+=o,t=0;o>t;t++)c+=mn.charAt(n[t]);for(c=mn.charAt(s)+c,n=r(f,10,88),o=n.length,t=0;o>t;t++)c+=mn.charAt(n[t]);return c},kn.toNearest=function(n,e){var t=this,r=t.constructor;if(t=new r(t),null==n){if(!t.d)return t;n=new r(1),e=r.rounding}else{if(n=new r(n),void 0!==e&&i(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(En=!1,4>e&&(e=[4,5,7,8][e]),t=Tn(t,n,0,e,1).times(n),En=!0,o(t)):(n.s=t.s,t=n),t},kn.toNumber=function(){return+this},kn.toOctal=function(n,e){return y(this,8,n,e)},kn.toPower=kn.pow=function(n){var i,r,s,u,c,f,h,a=this,l=a.constructor,g=+(n=new l(n));if(!(a.d&&n.d&&a.d[0]&&n.d[0]))return new l(qn(+a,g));if(a=new l(a),a.eq(1))return a;if(s=l.precision,c=l.rounding,n.eq(1))return o(a,s,c);if(i=On(n.e/Sn),r=n.d.length-1,h=i>=r,f=a.s,h){if((r=0>g?-g:g)<=Ln)return u=d(l,a,r,s),n.s<0?new l(1).div(u):o(u,s,c)}else if(0>f)return new l(NaN);return f=0>f&&1&n.d[Math.max(i,r)]?-1:1,r=qn(+a,g),i=0!=r&&isFinite(r)?new l(r+"").e:On(g*(Math.log("0."+e(a.d))/Math.LN10+a.e+1)),i>l.maxE+1||i0?f/0:0):(En=!1,l.rounding=a.s=1,r=Math.min(12,(i+"").length),u=w(n.times(m(a,s+r)),s),u=o(u,s+5,1),t(u.d,s,c)&&(i=s+10,u=o(w(n.times(m(a,i+r)),i),i+5,1),+e(u.d).slice(s+1,s+15)+1==1e14&&(u=o(u,s+1,0))),u.s=f,En=!0,l.rounding=c,o(u,s,c))},kn.toPrecision=function(n,e){var t,r=this,s=r.constructor;return void 0===n?t=u(r,r.e<=s.toExpNeg||r.e>=s.toExpPos):(i(n,1,wn),void 0===e?e=s.rounding:i(e,0,8),r=o(new s(r),n,e),t=u(r,n<=r.e||r.e<=s.toExpNeg,n)),r.isNeg()&&!r.isZero()?"-"+t:t},kn.toSignificantDigits=kn.toSD=function(n,e){var t=this,r=t.constructor;return void 0===n?(n=r.precision,e=r.rounding):(i(n,1,wn),void 0===e?e=r.rounding:i(e,0,8)),o(new r(t),n,e)},kn.toString=function(){var n=this,e=n.constructor,i=u(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+i:i},kn.truncated=kn.trunc=function(){return o(new this.constructor(this),this.e+1,1)},kn.valueOf=function(){var n=this,e=n.constructor,i=u(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+i:i};var Tn=function(){function n(n,e,i){var t,r=0,s=n.length;for(n=n.slice();s--;)t=n[s]*e+r,n[s]=t%i|0,r=t/i|0;return r&&n.unshift(r),n}function e(n,e,i,t){var r,s;if(i!=t)s=i>t?1:-1;else for(r=s=0;i>r;r++)if(n[r]!=e[r]){s=n[r]>e[r]?1:-1;break}return s}function i(n,e,i,t){for(var r=0;i--;)n[i]-=r,r=n[i]1;)n.shift()}return function(t,r,s,u,c,f){var h,a,l,d,g,p,w,m,v,N,x,b,E,M,y,A,O,q,F,D,Z=t.constructor,P=t.s==r.s?1:-1,R=t.d,S=r.d;if(!(R&&R[0]&&S&&S[0]))return new Z(t.s&&r.s&&(R?!S||R[0]!=S[0]:S)?R&&0==R[0]||!S?0*P:P/0:NaN);for(f?(g=1,a=t.e-r.e):(f=Rn,g=Sn,a=On(t.e/g)-On(r.e/g)),F=S.length,O=R.length,v=new Z(P),N=v.d=[],l=0;S[l]==(R[l]||0);l++);if(S[l]>(R[l]||0)&&a--,null==s?(M=s=Z.precision,u=Z.rounding):M=c?s+(t.e-r.e)+1:s,0>M)N.push(1),p=!0;else{if(M=M/g+2|0,l=0,1==F){for(d=0,S=S[0],M++;(O>l||d)&&M--;l++)y=d*f+(R[l]||0),N[l]=y/S|0,d=y%S|0;p=d||O>l}else{for(d=f/(S[0]+1)|0,d>1&&(S=n(S,d,f),R=n(R,d,f),F=S.length,O=R.length),A=F,x=R.slice(0,F),b=x.length;F>b;)x[b++]=0;D=S.slice(),D.unshift(0),q=S[0],S[1]>=f/2&&++q;do d=0,h=e(S,x,F,b),0>h?(E=x[0],F!=b&&(E=E*f+(x[1]||0)),d=E/q|0,d>1?(d>=f&&(d=f-1),w=n(S,d,f),m=w.length,b=x.length,h=e(w,x,m,b),1==h&&(d--,i(w,m>F?D:S,m,f))):(0==d&&(h=d=1), -w=S.slice()),m=w.length,b>m&&w.unshift(0),i(x,w,b,f),-1==h&&(b=x.length,h=e(S,x,F,b),1>h&&(d++,i(x,b>F?D:S,b,f))),b=x.length):0===h&&(d++,x=[0]),N[l++]=d,h&&x[0]?x[b++]=R[A]||0:(x=[R[A]],b=1);while((A++=10;d/=10)l++;v.e=l+a*g-1,o(v,c?s+v.e+1:s,u,p)}return v}}();if(xn=I(xn),vn=new xn(vn),Nn=new xn(Nn),"function"==typeof define&&define.amd)define(function(){return xn});else if("undefined"!=typeof module&&module.exports){if(module.exports=xn,!bn)try{bn=require("crypto")}catch(Cn){}}else n||(n="undefined"!=typeof self&&self&&self.self==self?self:Function("return this")()),dn=n.Decimal,xn.noConflict=function(){return n.Decimal=dn,xn},n.Decimal=xn}(this); +/* decimal.js v6.0.0 https://github.com/MikeMcl/decimal.js/LICENCE */ +!function(n){"use strict";function e(n){var e,i,t,r=n.length-1,s="",o=n[0];if(r>0){for(s+=o,e=1;r>e;e++)t=n[e]+"",i=Rn-t.length,i&&(s+=l(i)),s+=t;o=n[e],t=o+"",i=Rn-t.length,i&&(s+=l(i))}else if(0===o)return"0";for(;o%10===0;)o/=10;return s+o}function i(n,e,i){if(n!==~~n||e>n||n>i)throw Error(Mn+n)}function t(n,e,i,t){var r,s,o,u;for(s=n[0];s>=10;s/=10)--e;return--e<0?(e+=Rn,r=0):(r=Math.ceil((e+1)/Rn),e%=Rn),s=On(10,Rn-e),u=n[r]%s|0,null==t?3>e?(0==e?u=u/100|0:1==e&&(u=u/10|0),o=4>i&&99999==u||i>3&&49999==u||5e4==u||0==u):o=(4>i&&u+1==s||i>3&&u+1==s/2)&&(n[r+1]/s/100|0)==On(10,e-2)-1||(u==s/2||0==u)&&0==(n[r+1]/s/100|0):4>e?(0==e?u=u/1e3|0:1==e?u=u/100|0:2==e&&(u=u/10|0),o=(t||4>i)&&9999==u||!t&&i>3&&4999==u):o=((t||4>i)&&u+1==s||!t&&i>3&&u+1==s/2)&&(n[r+1]/s/1e3|0)==On(10,e-3)-1,o}function r(n,e,i){for(var t,r,s=[0],o=0,u=n.length;u>o;){for(r=s.length;r--;)s[r]*=e;for(s[0]+=wn.indexOf(n.charAt(o++)),t=0;ti-1&&(void 0===s[t+1]&&(s[t+1]=0),s[t+1]+=s[t]/i|0,s[t]%=i)}return s.reverse()}function s(n,e){var i,t,r=e.d.length;32>r?(i=Math.ceil(r/3),t=Math.pow(4,-i).toString()):(i=16,t="2.3283064365386962890625e-10"),n.precision+=i,e=E(n,1,e.times(t),new n(1));for(var s=i;s--;){var o=e.times(e);e=o.times(o).minus(o).times(8).plus(1)}return n.precision-=i,e}function o(n,e,i,t){var r,s,o,u,c,f,a,h,l,d=n.constructor;n:if(null!=e){if(h=n.d,!h)return n;for(r=1,u=h[0];u>=10;u/=10)r++;if(s=e-r,0>s)s+=Rn,o=e,a=h[l=0],c=a/On(10,r-o-1)%10|0;else if(l=Math.ceil((s+1)/Rn),u=h.length,l>=u){if(!t)break n;for(;u++<=l;)h.push(0);a=c=0,r=1,s%=Rn,o=s-Rn+1}else{for(a=u=h[l],r=1;u>=10;u/=10)r++;s%=Rn,o=s-Rn+r,c=0>o?0:a/On(10,r-o-1)%10|0}if(t=t||0>e||void 0!==h[l+1]||(0>o?a:a%On(10,r-o-1)),f=4>i?(c||t)&&(0==i||i==(n.s<0?3:2)):c>5||5==c&&(4==i||t||6==i&&(s>0?o>0?a/On(10,r-o):0:h[l-1])%10&1||i==(n.s<0?8:7)),1>e||!h[0])return h.length=0,f?(e-=n.e+1,h[0]=On(10,(Rn-e%Rn)%Rn),n.e=-e||0):h[0]=n.e=0,n;if(0==s?(h.length=l,u=1,l--):(h.length=l+1,u=On(10,Rn-s),h[l]=o>0?(a/On(10,r-o)%On(10,o)|0)*u:0),f)for(;;){if(0==l){for(s=1,o=h[0];o>=10;o/=10)s++;for(o=h[0]+=u,u=1;o>=10;o/=10)u++;s!=u&&(n.e++,h[0]==Pn&&(h[0]=1));break}if(h[l]+=u,h[l]!=Pn)break;h[l--]=0,u=1}for(s=h.length;0===h[--s];)h.pop()}return xn&&(n.e>d.maxE?(n.d=null,n.e=NaN):n.e0?o=o.charAt(0)+"."+o.slice(1)+l(r):u>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):0>s?(o="0."+l(-s-1)+o,t&&(r=t-u)>0&&(o+=l(r))):s>=u?(o+=l(s+1-u),t&&(r=t-s-1)>0&&(o=o+"."+l(r))):((r=s+1)0&&(s+1===u&&(o+="."),o+=l(r))),o}function c(n,e){for(var i=1,t=n[0];t>=10;t/=10)i++;return i+e*Rn-1}function f(n,e,i){if(e>Un)throw xn=!0,i&&(n.precision=i),Error(yn);return o(new n(mn),e,1,!0)}function a(n,e,i){if(e>_n)throw Error(yn);return o(new n(vn),e,i,!0)}function h(n){var e=n.length-1,i=e*Rn+1;if(e=n[e]){for(;e%10==0;e/=10)i--;for(e=n[0];e>=10;e/=10)i++}return i}function l(n){for(var e="";n--;)e+="0";return e}function d(n,e,i,t){var r,s=new n(1),o=Math.ceil(t/Rn+4);for(xn=!1;;){if(i%2&&(s=s.times(e),q(s.d,o)&&(r=!0)),i=qn(i/2),0===i){i=s.d.length-1,r&&0===s.d[i]&&++s.d[i];break}e=e.times(e),q(e.d,o)}return xn=!0,s}function p(n){return 1&n.d[n.d.length-1]}function g(n,e,i){for(var t,r=new n(e[0]),s=0;++s17)return new g(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:NaN);for(null==i?(xn=!1,h=m):h=i,a=new g(.03125);n.e>-2;)n=n.times(a),p+=5;for(s=Math.log(On(2,p))/Math.LN10*2+5|0,h+=s,r=c=f=new g(1),g.precision=h;;){if(c=o(c.times(n),h,1),r=r.times(++d),a=f.plus(Sn(c,r,h,1)),e(a.d).slice(0,h)===e(f.d).slice(0,h)){for(u=p;u--;)f=o(f.times(f),h,1);if(null!=i)return g.precision=m,f;if(!(3>l&&t(f.d,h-s,w,l)))return o(f,g.precision=m,w,xn=!0);g.precision=h+=10,r=c=a=new g(1),d=0,l++}f=a}}function m(n,i){var r,s,u,c,a,h,l,d,p,g,w,v=1,N=10,b=n,x=b.d,E=b.constructor,M=E.rounding,y=E.precision;if(b.s<0||!x||!x[0]||!b.e&&1==x[0]&&1==x.length)return new E(x&&!x[0]?-1/0:1!=b.s?NaN:x?0:b);if(null==i?(xn=!1,p=y):p=i,E.precision=p+=N,r=e(x),s=r.charAt(0),!(Math.abs(c=b.e)<15e14))return d=f(E,p+2,y).times(c+""),b=m(new E(s+"."+r.slice(1)),p-N).plus(d),E.precision=y,null==i?o(b,y,M,xn=!0):b;for(;7>s&&1!=s||1==s&&r.charAt(1)>3;)b=b.times(n),r=e(b.d),s=r.charAt(0),v++;for(c=b.e,s>1?(b=new E("0."+r),c++):b=new E(s+"."+r.slice(1)),g=b,l=a=b=Sn(b.minus(1),b.plus(1),p,1),w=o(b.times(b),p,1),u=3;;){if(a=o(a.times(w),p,1),d=l.plus(Sn(a,new E(u),p,1)),e(d.d).slice(0,p)===e(l.d).slice(0,p)){if(l=l.times(2),0!==c&&(l=l.plus(f(E,p+2,y).times(c+""))),l=Sn(l,new E(v),p,1),null!=i)return E.precision=y,l;if(!t(l.d,p-N,M,h))return o(l,E.precision=y,M,xn=!0);E.precision=p+=N,d=a=b=Sn(g.minus(1),g.plus(1),p,1),w=o(b.times(b),p,1),u=h=1}l=d,u+=2}}function v(n){return String(n.s*n.s/0)}function N(n,e){var i,t,r;for((i=e.indexOf("."))>-1&&(e=e.replace(".","")),(t=e.search(/e/i))>0?(0>i&&(i=t),i+=+e.slice(t+1),e=e.substring(0,t)):0>i&&(i=e.length),t=0;48===e.charCodeAt(t);t++);for(r=e.length;48===e.charCodeAt(r-1);--r);if(e=e.slice(t,r)){if(r-=t,n.e=i=i-t-1,n.d=[],t=(i+1)%Rn,0>i&&(t+=Rn),r>t){for(t&&n.d.push(+e.slice(0,t)),r-=Rn;r>t;)n.d.push(+e.slice(t,t+=Rn));e=e.slice(t),t=Rn-e.length}else t-=r;for(;t--;)e+="0";n.d.push(+e),xn&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e0?(a=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),u=o>=0,t=n.constructor,u&&(e=e.replace(".",""),f=e.length,o=f-o,s=d(t,new t(i),o,2*o)),h=r(e,i,Pn),l=h.length-1,o=l;0===h[o];--o)h.pop();return 0>o?new t(0*n.s):(n.e=c(h,l),n.d=h,xn=!1,u&&(n=Sn(n,s,4*f)),a&&(n=n.times(Math.abs(a)<54?Math.pow(2,a):Nn.pow(2,a))),xn=!0,n)}function x(n,e){var i,t=e.d.length;if(3>t)return E(n,2,e,e);i=1.4*Math.sqrt(t),i=i>16?16:0|i,e=e.times(Math.pow(5,-i)),e=E(n,2,e,e);for(var r,s=new n(5),o=new n(16),u=new n(20);i--;)r=e.times(e),e=e.times(s.plus(r.times(o.times(r).minus(u))));return e}function E(n,e,i,t,r){var s,o,u,c,f=1,a=n.precision,h=Math.ceil(a/Rn);for(xn=!1,c=i.times(i),u=new n(t);;){if(o=Sn(u.times(c),new n(e++*e++),a,1),u=r?t.plus(o):t.minus(o),t=Sn(o.times(c),new n(e++*e++),a,1),o=u.plus(t),void 0!==o.d[h]){for(s=h;o.d[s]===u.d[s]&&s--;);if(-1==s)break}s=u,u=t,t=o,o=s,f++}return xn=!0,o.d.length=h+1,o}function M(n,e){var i,t=e.s<0,r=a(n,n.precision,1),s=r.times(.5);if(e=e.abs(),e.lte(s))return dn=t?4:1,e;if(i=e.divToInt(r),i.isZero())dn=t?3:2;else{if(e=e.minus(i.times(r)),e.lte(s))return dn=p(i)?t?2:3:t?4:1,e;dn=p(i)?t?1:4:t?3:2}return e.minus(r).abs()}function y(n,e,t,s){var o,c,f,a,h,l,d,p,g,w=n.constructor,m=void 0!==t;if(m?(i(t,1,gn),void 0===s?s=w.rounding:i(s,0,8)):(t=w.precision,s=w.rounding),n.isFinite()){for(d=u(n),f=d.indexOf("."),m?(o=2,16==e?t=4*t-3:8==e&&(t=3*t-2)):o=e,f>=0&&(d=d.replace(".",""),g=new w(1),g.e=d.length-f,g.d=r(u(g),10,o),g.e=g.d.length),p=r(d,10,o),c=h=p.length;0==p[--h];)p.pop();if(p[0]){if(0>f?c--:(n=new w(n),n.d=p,n.e=c,n=Sn(n,g,t,s,0,o),p=n.d,c=n.e,l=hn),f=p[t],a=o/2,l=l||void 0!==p[t+1],l=4>s?(void 0!==f||l)&&(0===s||s===(n.s<0?3:2)):f>a||f===a&&(4===s||l||6===s&&1&p[t-1]||s===(n.s<0?8:7)),p.length=t,l)for(;++p[--t]>o-1;)p[t]=0,t||(++c,p.unshift(1));for(h=p.length;!p[h-1];--h);for(f=0,d="";h>f;f++)d+=wn.charAt(p[f]);if(m){if(h>1)if(16==e||8==e){for(f=16==e?4:3,--h;h%f;h++)d+="0";for(p=r(d,o,e),h=p.length;!p[h-1];--h);for(f=1,d="1.";h>f;f++)d+=wn.charAt(p[f])}else d=d.charAt(0)+"."+d.slice(1);d=d+(0>c?"p":"p+")+c}else if(0>c){for(;++c;)d="0"+d;d="0."+d}else if(++c>h)for(c-=h;c--;)d+="0";else h>c&&(d=d.slice(0,c)+"."+d.slice(c))}else d=m?"0p+0":"0";d=(16==e?"0x":2==e?"0b":8==e?"0o":"")+d}else d=v(n);return n.s<0?"-"+d:d}function q(n,e){return n.length>e?(n.length=e,!0):void 0}function O(n){return new this(n).abs()}function F(n){return new this(n).acos()}function A(n){return new this(n).acosh()}function D(n,e){return new this(n).plus(e)}function Z(n){return new this(n).asin()}function P(n){return new this(n).asinh()}function R(n){return new this(n).atan()}function L(n){return new this(n).atanh()}function U(n,e){n=new this(n),e=new this(e);var i,t=this.precision,r=this.rounding,s=t+4;return n.s&&e.s?n.d||e.d?!e.d||n.isZero()?(i=e.s<0?a(this,t,r):new this(0),i.s=n.s):!n.d||e.isZero()?(i=a(this,s,1).times(.5),i.s=n.s):e.s<0?(this.precision=s,this.rounding=1,i=this.atan(Sn(n,e,s,1)),e=a(this,s,1),this.precision=t,this.rounding=r,i=n.s<0?i.minus(e):i.plus(e)):i=this.atan(Sn(n,e,s,1)):(i=a(this,s,1).times(e.s>0?.25:.75),i.s=n.s):i=new this(NaN),i}function _(n){return new this(n).cbrt()}function k(n){return o(n=new this(n),n.e+1,2)}function S(n){if(!n||"object"!=typeof n)throw Error(En+"Object expected");var e,i,t,r=["precision",1,gn,"rounding",0,8,"toExpNeg",-pn,0,"toExpPos",0,pn,"maxE",0,pn,"minE",-pn,0,"modulo",0,9];for(e=0;e=r[e+1]&&t<=r[e+2]))throw Error(Mn+i+": "+t);this[i]=t}if(n.hasOwnProperty(i="crypto"))if(void 0===(t=n[i]))this[i]=t;else{if(t!==!0&&t!==!1&&0!==t&&1!==t)throw Error(Mn+i+": "+t);this[i]=!(!t||!bn||!bn.getRandomValues&&!bn.randomBytes)}return this}function T(n){return new this(n).cos()}function C(n){return new this(n).cosh()}function I(n){function e(n){var i,t,r,s=this;if(!(s instanceof e))return new e(n);if(s.constructor=e,n instanceof e)return s.s=n.s,s.e=n.e,void(s.d=(n=n.d)?n.slice():n);if(r=typeof n,"number"===r){if(0===n)return s.s=0>1/n?-1:1,s.e=0,void(s.d=[0]);if(0>n?(n=-n,s.s=-1):s.s=1,n===~~n&&1e7>n){for(i=0,t=n;t>=10;t/=10)i++;return s.e=i,void(s.d=[n])}return 0*n!==0?(n||(s.s=NaN),s.e=NaN,void(s.d=null)):N(s,n.toString())}if("string"!==r)throw Error(Mn+n);return 45===n.charCodeAt(0)?(n=n.slice(1),s.s=-1):s.s=1,Zn.test(n)?N(s,n):b(s,n)}var i,t,r;if(e.prototype=kn,e.ROUND_UP=0,e.ROUND_DOWN=1,e.ROUND_CEIL=2,e.ROUND_FLOOR=3,e.ROUND_HALF_UP=4,e.ROUND_HALF_DOWN=5,e.ROUND_HALF_EVEN=6,e.ROUND_HALF_CEIL=7,e.ROUND_HALF_FLOOR=8,e.EUCLID=9,e.config=S,e.clone=I,e.abs=O,e.acos=F,e.acosh=A,e.add=D,e.asin=Z,e.asinh=P,e.atan=R,e.atanh=L,e.atan2=U,e.cbrt=_,e.ceil=k,e.cos=T,e.cosh=C,e.div=H,e.exp=B,e.floor=V,e.hypot=$,e.ln=j,e.log=W,e.log10=z,e.log2=J,e.max=G,e.min=K,e.mod=Q,e.mul=X,e.pow=Y,e.random=nn,e.round=en,e.sign=tn,e.sin=rn,e.sinh=sn,e.sqrt=on,e.sub=un,e.tan=cn,e.tanh=fn,e.trunc=an,void 0===n&&(n={}),n)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],i=0;io;)c[o++]=1e7*Math.random()|0;else if(bn&&bn.getRandomValues)for(e=bn.getRandomValues(new Uint32Array(r));r>o;)s=e[o],s>=429e7?e[o]=bn.getRandomValues(new Uint32Array(1))[0]:c[o++]=s%1e7;else if(bn&&bn.randomBytes){for(e=bn.randomBytes(r*=4);r>o;)s=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((127&e[o+3])<<24),s>=214e7?bn.randomBytes(4).copy(e,o):(c.push(s%1e7),o+=4);o=r/4}else{if(this.crypto)throw Error(En+"crypto unavailable");for(;r>o;)c[o++]=1e7*Math.random()|0}for(r=c[--o],n%=Rn,r&&n&&(s=On(10,Rn-n),c[o]=(r/s|0)*s);0===c[o];o--)c.pop();if(0>o)t=0,c=[0];else{for(t=-1;0===c[0];t-=Rn)c.shift();for(r=1,s=c[0];s>=10;s/=10)r++;Rn>r&&(t-=Rn-r)}return u.e=t,u.d=c,u}function en(n){return o(n=new this(n),n.e+1,this.rounding)}function tn(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function rn(n){return new this(n).sin()}function sn(n){return new this(n).sinh()}function on(n){return new this(n).sqrt()}function un(n,e){return new this(n).sub(e)}function cn(n){return new this(n).tan()}function fn(n){return new this(n).tanh()}function an(n){return o(n=new this(n),n.e+1,1)}var hn,ln,dn,pn=9e15,gn=1e9,wn="0123456789abcdef",mn="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",vn="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Nn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-pn,maxE:pn,crypto:void 0},bn="undefined"!=typeof crypto?crypto:null,xn=!0,En="[DecimalError] ",Mn=En+"Invalid argument: ",yn=En+"Precision limit exceeded",qn=Math.floor,On=Math.pow,Fn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,An=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Dn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Zn=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Pn=1e7,Rn=7,Ln=9007199254740991,Un=mn.length-1,_n=vn.length-1,kn={};kn.absoluteValue=kn.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),o(n)},kn.ceil=function(){return o(new this.constructor(this),this.e+1,2)},kn.comparedTo=kn.cmp=function(n){var e,i,t,r,s=this,o=s.d,u=(n=new s.constructor(n)).d,c=s.s,f=n.s;if(!o||!u)return c&&f?c!==f?c:o===u?0:!o^0>c?1:-1:NaN;if(!o[0]||!u[0])return o[0]?c:u[0]?-f:0;if(c!==f)return c;if(s.e!==n.e)return s.e>n.e^0>c?1:-1;for(t=o.length,r=u.length,e=0,i=r>t?t:r;i>e;++e)if(o[e]!==u[e])return o[e]>u[e]^0>c?1:-1;return t===r?0:t>r^0>c?1:-1},kn.cosine=kn.cos=function(){var n,e,i=this,t=i.constructor;return i.d?i.d[0]?(n=t.precision,e=t.rounding,t.precision=n+Math.max(i.e,i.sd())+Rn,t.rounding=1,i=s(t,M(t,i)),t.precision=n,t.rounding=e,o(2==dn||3==dn?i.neg():i,n,e,!0)):new t(1):new t(NaN)},kn.cubeRoot=kn.cbrt=function(){var n,i,t,r,s,u,c,f,a,h,l=this,d=l.constructor;if(!l.isFinite()||l.isZero())return new d(l);for(xn=!1,u=l.s*Math.pow(l.s*l,1/3),u&&Math.abs(u)!=1/0?r=new d(u.toString()):(t=e(l.d),n=l.e,(u=(n-t.length+1)%3)&&(t+=1==u||-2==u?"0":"00"),u=Math.pow(t,1/3),n=qn((n+1)/3)-(n%3==(0>n?-1:2)),u==1/0?t="5e"+n:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),r=new d(t),r.s=l.s),c=(n=d.precision)+3;;)if(f=r,a=f.times(f).times(f),h=a.plus(l),r=Sn(h.plus(l).times(f),h.plus(a),c+2,1),e(f.d).slice(0,c)===(t=e(r.d)).slice(0,c)){if(t=t.slice(c-3,c+1),"9999"!=t&&(s||"4999"!=t)){(!+t||!+t.slice(1)&&"5"==t.charAt(0))&&(o(r,n+1,1),i=!r.times(r).times(r).eq(l));break}if(!s&&(o(f,n+1,0),f.times(f).times(f).eq(l))){r=f;break}c+=4,s=1}return xn=!0,o(r,n,d.rounding,i)},kn.decimalPlaces=kn.dp=function(){var n,e=this.d,i=NaN;if(e){if(n=e.length-1,i=(n-qn(this.e/Rn))*Rn,n=e[n])for(;n%10==0;n/=10)i--;0>i&&(i=0)}return i},kn.dividedBy=kn.div=function(n){return Sn(this,new this.constructor(n))},kn.dividedToIntegerBy=kn.divToInt=function(n){var e=this,i=e.constructor;return o(Sn(e,new i(n),0,1,1),i.precision,i.rounding)},kn.equals=kn.eq=function(n){return 0===this.cmp(n)},kn.floor=function(){return o(new this.constructor(this),this.e+1,3)},kn.greaterThan=kn.gt=function(n){return this.cmp(n)>0},kn.greaterThanOrEqualTo=kn.gte=function(n){var e=this.cmp(n);return 1==e||0===e},kn.hyperbolicCosine=kn.cosh=function(){var n,e,i,t,r,s=this,u=s.constructor,c=new u(1);if(!s.isFinite())return new u(s.s?1/0:NaN);if(s.isZero())return c;i=u.precision,t=u.rounding,u.precision=i+Math.max(s.e,s.sd())+4,u.rounding=1,r=s.d.length,32>r?(n=Math.ceil(r/3),e=Math.pow(4,-n).toString()):(n=16,e="2.3283064365386962890625e-10"),s=E(u,1,s.times(e),new u(1),!0);for(var f,a=n,h=new u(8);a--;)f=s.times(s),s=c.minus(f.times(h.minus(f.times(h))));return o(s,u.precision=i,u.rounding=t,!0)},kn.hyperbolicSine=kn.sinh=function(){var n,e,i,t,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(e=s.precision,i=s.rounding,s.precision=e+Math.max(r.e,r.sd())+4,s.rounding=1,t=r.d.length,3>t)r=E(s,2,r,r,!0);else{n=1.4*Math.sqrt(t),n=n>16?16:0|n,r=r.times(Math.pow(5,-n)),r=E(s,2,r,r,!0);for(var u,c=new s(5),f=new s(16),a=new s(20);n--;)u=r.times(r),r=r.times(c.plus(u.times(f.times(u).plus(a))))}return s.precision=e,s.rounding=i,o(r,e,i,!0)},kn.hyperbolicTangent=kn.tanh=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+7,t.rounding=1,Sn(i.sinh(),i.cosh(),t.precision=n,t.rounding=e)):new t(i.s)},kn.inverseCosine=kn.acos=function(){var n,e=this,i=e.constructor,t=e.abs().cmp(1),r=i.precision,s=i.rounding;return-1!==t?0===t?e.isNeg()?a(i,r,s):new i(0):new i(NaN):e.isZero()?a(i,r+4,s).times(.5):(i.precision=r+6,i.rounding=1,e=e.asin(),n=a(i,r+4,s).times(.5),i.precision=r,i.rounding=s,n.minus(e))},kn.inverseHyperbolicCosine=kn.acosh=function(){var n,e,i=this,t=i.constructor;return i.lte(1)?new t(i.eq(1)?0:NaN):i.isFinite()?(n=t.precision,e=t.rounding,t.precision=n+Math.max(Math.abs(i.e),i.sd())+4,t.rounding=1,xn=!1,i=i.times(i).minus(1).sqrt().plus(i),xn=!0,t.precision=n,t.rounding=e,i.ln()):new t(i)},kn.inverseHyperbolicSine=kn.asinh=function(){var n,e,i=this,t=i.constructor;return!i.isFinite()||i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+2*Math.max(Math.abs(i.e),i.sd())+6,t.rounding=1,xn=!1,i=i.times(i).plus(1).sqrt().plus(i),xn=!0,t.precision=n,t.rounding=e,i.ln())},kn.inverseHyperbolicTangent=kn.atanh=function(){var n,e,i,t,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(n=s.precision,e=s.rounding,t=r.sd(),Math.max(t,n)<2*-r.e-1?o(new s(r),n,e,!0):(s.precision=i=t-r.e,r=Sn(r.plus(1),new s(1).minus(r),i+n,1),s.precision=n+4,s.rounding=1,r=r.ln(),s.precision=n,s.rounding=e,r.times(.5))):new s(NaN)},kn.inverseSine=kn.asin=function(){var n,e,i,t,r=this,s=r.constructor;return r.isZero()?new s(r):(e=r.abs().cmp(1),i=s.precision,t=s.rounding,-1!==e?0===e?(n=a(s,i+4,t).times(.5),n.s=r.s,n):new s(NaN):(s.precision=i+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=i,s.rounding=t,r.times(2)))},kn.inverseTangent=kn.atan=function(){var n,e,i,t,r,s,u,c,f,h=this,l=h.constructor,d=l.precision,p=l.rounding;if(h.isFinite()){if(h.isZero())return new l(h);if(h.abs().eq(1)&&_n>=d+4)return u=a(l,d+4,p).times(.25),u.s=h.s,u}else{if(!h.s)return new l(NaN);if(_n>=d+4)return u=a(l,d+4,p).times(.5),u.s=h.s,u}for(l.precision=c=d+10,l.rounding=1,i=Math.min(28,c/Rn+2|0),n=i;n;--n)h=h.div(h.times(h).plus(1).sqrt().plus(1));for(xn=!1,e=Math.ceil(c/Rn),t=1,f=h.times(h),u=new l(h),r=h;-1!==n;)if(r=r.times(f),s=u.minus(r.div(t+=2)),r=r.times(f),u=s.plus(r.div(t+=2)),void 0!==u.d[e])for(n=e;u.d[n]===s.d[n]&&n--;);return i&&(u=u.times(2<this.d.length-2},kn.isNaN=function(){return!this.s},kn.isNegative=kn.isNeg=function(){return this.s<0},kn.isPositive=kn.isPos=function(){return this.s>0},kn.isZero=function(){return!!this.d&&0===this.d[0]},kn.lessThan=kn.lt=function(n){return this.cmp(n)<0},kn.lessThanOrEqualTo=kn.lte=function(n){return this.cmp(n)<1},kn.logarithm=kn.log=function(n){var i,r,s,u,c,a,h,l,d=this,p=d.constructor,g=p.precision,w=p.rounding,v=5;if(null==n)n=new p(10),i=!0;else{if(n=new p(n),r=n.d,n.s<0||!r||!r[0]||n.eq(1))return new p(NaN);i=n.eq(10)}if(r=d.d,d.s<0||!r||!r[0]||d.eq(1))return new p(r&&!r[0]?-1/0:1!=d.s?NaN:r?0:1/0);if(i)if(r.length>1)c=!0;else{for(u=r[0];u%10===0;)u/=10;c=1!==u}if(xn=!1,h=g+v,a=m(d,h),s=i?f(p,h+10):m(n,h),l=Sn(a,s,h,1),t(l.d,u=g,w))do if(h+=10,a=m(d,h),s=i?f(p,h+10):m(n,h),l=Sn(a,s,h,1),!c){+e(l.d).slice(u+1,u+15)+1==1e14&&(l=o(l,g+1,0));break}while(t(l.d,u+=10,w));return xn=!0,o(l,g,w)},kn.minus=kn.sub=function(n){var e,i,t,r,s,u,f,a,h,l,d,p,g=this,w=g.constructor;if(n=new w(n),!g.d||!n.d)return g.s&&n.s?g.d?n.s=-n.s:n=new w(n.d||g.s!==n.s?g:NaN):n=new w(NaN),n;if(g.s!=n.s)return n.s=-n.s,g.plus(n);if(h=g.d,p=n.d,f=w.precision,a=w.rounding,!h[0]||!p[0]){if(p[0])n.s=-n.s;else{if(!h[0])return new w(3===a?-0:0);n=new w(g)}return xn?o(n,f,a):n}if(i=qn(n.e/Rn),l=qn(g.e/Rn),h=h.slice(),s=l-i){for(d=0>s,d?(e=h,s=-s,u=p.length):(e=p,i=l,u=h.length),t=Math.max(Math.ceil(f/Rn),u)+2,s>t&&(s=t,e.length=1),e.reverse(),t=s;t--;)e.push(0);e.reverse()}else{for(t=h.length,u=p.length,d=u>t,d&&(u=t),t=0;u>t;t++)if(h[t]!=p[t]){d=h[t]0;--t)h[u++]=0;for(t=p.length;t>s;){if(h[--t]r?(i=h,r=-r,u=l.length):(i=l,t=s,u=h.length),s=Math.ceil(f/Rn),u=s>u?s+1:u+1,r>u&&(r=u,i.length=1),i.reverse();r--;)i.push(0);i.reverse()}for(u=h.length,r=l.length,0>u-r&&(r=u,i=l,l=h,h=i),e=0;r;)e=(h[--r]=h[r]+l[r]+e)/Pn|0,h[r]%=Pn;for(e&&(h.unshift(e),++t),u=h.length;0==h[--u];)h.pop();return n.d=h,n.e=c(h,t),xn?o(n,f,a):n},kn.precision=kn.sd=function(n){var e,i=this;if(void 0!==n&&n!==!!n&&1!==n&&0!==n)throw Error(Mn+n);return i.d?(e=h(i.d),n&&i.e+1>e&&(e=i.e+1)):e=NaN,e},kn.round=function(){var n=this,e=n.constructor;return o(new e(n),n.e+1,e.rounding)},kn.sine=kn.sin=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+Math.max(i.e,i.sd())+Rn,t.rounding=1,i=x(t,M(t,i)),t.precision=n,t.rounding=e,o(dn>2?i.neg():i,n,e,!0)):new t(NaN)},kn.squareRoot=kn.sqrt=function(){var n,i,t,r,s,u,c=this,f=c.d,a=c.e,h=c.s,l=c.constructor;if(1!==h||!f||!f[0])return new l(!h||0>h&&(!f||f[0])?NaN:f?c:1/0);for(xn=!1,h=Math.sqrt(+c),0==h||h==1/0?(i=e(f),(i.length+a)%2==0&&(i+="0"),h=Math.sqrt(i),a=qn((a+1)/2)-(0>a||a%2),h==1/0?i="1e"+a:(i=h.toExponential(),i=i.slice(0,i.indexOf("e")+1)+a),r=new l(i)):r=new l(h.toString()),t=(a=l.precision)+3;;)if(u=r,r=u.plus(Sn(c,u,t+2,1)).times(.5),e(u.d).slice(0,t)===(i=e(r.d)).slice(0,t)){if(i=i.slice(t-3,t+1),"9999"!=i&&(s||"4999"!=i)){(!+i||!+i.slice(1)&&"5"==i.charAt(0))&&(o(r,a+1,1),n=!r.times(r).eq(c));break}if(!s&&(o(u,a+1,0),u.times(u).eq(c))){r=u;break}t+=4,s=1}return xn=!0,o(r,a,l.rounding,n)},kn.tangent=kn.tan=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+10,t.rounding=1,i=i.sin(),i.s=1,i=Sn(i,new t(1).minus(i.times(i)).sqrt(),n+10,0),t.precision=n,t.rounding=e,o(2==dn||4==dn?i.neg():i,n,e,!0)):new t(NaN)},kn.times=kn.mul=function(n){var e,i,t,r,s,u,f,a,h,l=this,d=l.constructor,p=l.d,g=(n=new d(n)).d;if(n.s*=l.s,!(p&&p[0]&&g&&g[0]))return new d(!n.s||p&&!p[0]&&!g||g&&!g[0]&&!p?NaN:p&&g?0*n.s:n.s/0);for(i=qn(l.e/Rn)+qn(n.e/Rn),a=p.length,h=g.length,h>a&&(s=p,p=g,g=s,u=a,a=h,h=u),s=[],u=a+h,t=u;t--;)s.push(0);for(t=h;--t>=0;){for(e=0,r=a+t;r>t;)f=s[r]+g[t]*p[r-t-1]+e,s[r--]=f%Pn|0,e=f/Pn|0;s[r]=(s[r]+e)%Pn|0}for(;!s[--u];)s.pop();for(e?++i:s.shift(),t=s.length;!s[--t];)s.pop();return n.d=s,n.e=c(s,i),xn?o(n,d.precision,d.rounding):n},kn.toBinary=function(n,e){return y(this,2,n,e)},kn.toDecimalPlaces=kn.toDP=function(n,e){var t=this,r=t.constructor;return t=new r(t),void 0===n?t:(i(n,0,gn),void 0===e?e=r.rounding:i(e,0,8),o(t,n+t.e+1,e))},kn.toExponential=function(n,e){var t,r=this,s=r.constructor;return void 0===n?t=u(r,!0):(i(n,0,gn),void 0===e?e=s.rounding:i(e,0,8),r=o(new s(r),n+1,e),t=u(r,!0,n+1)),r.isNeg()&&!r.isZero()?"-"+t:t},kn.toFixed=function(n,e){var t,r,s=this,c=s.constructor;return void 0===n?t=u(s):(i(n,0,gn),void 0===e?e=c.rounding:i(e,0,8),r=o(new c(s),n+s.e+1,e),t=u(r,!1,n+r.e+1)),s.isNeg()&&!s.isZero()?"-"+t:t},kn.toFraction=function(n){var i,t,r,s,o,u,c,f,a,l,d,p,g=this,w=g.d,m=g.constructor;if(!w)return new m(g);if(a=t=new m(1),r=f=new m(0),i=new m(r),o=i.e=h(w)-g.e-1,u=o%Rn,i.d[0]=On(10,0>u?Rn+u:u),null==n)n=o>0?i:a;else{if(c=new m(n),!c.isInt()||c.lt(a))throw Error(Mn+c);n=c.gt(i)?o>0?i:a:c}for(xn=!1,c=new m(e(w)),l=m.precision,m.precision=o=w.length*Rn*2;d=Sn(c,i,0,1,1),s=t.plus(d.times(r)),1!=s.cmp(n);)t=r,r=s,s=a,a=f.plus(d.times(s)),f=s,s=i,i=c.minus(d.times(s)),c=s;return s=Sn(n.minus(t),r,0,1,1),f=f.plus(s.times(a)),t=t.plus(s.times(r)),f.s=a.s=g.s,p=Sn(a,r,o,1).minus(g).abs().cmp(Sn(f,t,o,1).minus(g).abs())<1?[a,r]:[f,t],m.precision=l,xn=!0,p},kn.toHexadecimal=kn.toHex=function(n,e){return y(this,16,n,e)},kn.toNearest=function(n,e){var t=this,r=t.constructor;if(t=new r(t),null==n){if(!t.d)return t;n=new r(1),e=r.rounding}else{if(n=new r(n),void 0!==e&&i(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(xn=!1,4>e&&(e=[4,5,7,8][e]),t=Sn(t,n,0,e,1).times(n),xn=!0,o(t)):(n.s=t.s,t=n),t},kn.toNumber=function(){return+this},kn.toOctal=function(n,e){return y(this,8,n,e)},kn.toPower=kn.pow=function(n){var i,r,s,u,c,f,a,h=this,l=h.constructor,p=+(n=new l(n));if(!(h.d&&n.d&&h.d[0]&&n.d[0]))return new l(On(+h,p));if(h=new l(h),h.eq(1))return h;if(s=l.precision,c=l.rounding,n.eq(1))return o(h,s,c);if(i=qn(n.e/Rn),r=n.d.length-1,a=i>=r,f=h.s,a){if((r=0>p?-p:p)<=Ln)return u=d(l,h,r,s),n.s<0?new l(1).div(u):o(u,s,c)}else if(0>f)return new l(NaN);return f=0>f&&1&n.d[Math.max(i,r)]?-1:1,r=On(+h,p),i=0!=r&&isFinite(r)?new l(r+"").e:qn(p*(Math.log("0."+e(h.d))/Math.LN10+h.e+1)),i>l.maxE+1||i0?f/0:0):(xn=!1,l.rounding=h.s=1,r=Math.min(12,(i+"").length),u=w(n.times(m(h,s+r)),s),u=o(u,s+5,1),t(u.d,s,c)&&(i=s+10,u=o(w(n.times(m(h,i+r)),i),i+5,1),+e(u.d).slice(s+1,s+15)+1==1e14&&(u=o(u,s+1,0))),u.s=f,xn=!0,l.rounding=c,o(u,s,c))},kn.toPrecision=function(n,e){var t,r=this,s=r.constructor;return void 0===n?t=u(r,r.e<=s.toExpNeg||r.e>=s.toExpPos):(i(n,1,gn),void 0===e?e=s.rounding:i(e,0,8),r=o(new s(r),n,e),t=u(r,n<=r.e||r.e<=s.toExpNeg,n)),r.isNeg()&&!r.isZero()?"-"+t:t},kn.toSignificantDigits=kn.toSD=function(n,e){var t=this,r=t.constructor;return void 0===n?(n=r.precision,e=r.rounding):(i(n,1,gn),void 0===e?e=r.rounding:i(e,0,8)),o(new r(t),n,e)},kn.toString=function(){var n=this,e=n.constructor,i=u(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+i:i},kn.truncated=kn.trunc=function(){return o(new this.constructor(this),this.e+1,1)},kn.valueOf=kn.toJSON=function(){var n=this,e=n.constructor,i=u(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+i:i};var Sn=function(){function n(n,e,i){var t,r=0,s=n.length;for(n=n.slice();s--;)t=n[s]*e+r,n[s]=t%i|0,r=t/i|0;return r&&n.unshift(r),n}function e(n,e,i,t){var r,s;if(i!=t)s=i>t?1:-1;else for(r=s=0;i>r;r++)if(n[r]!=e[r]){s=n[r]>e[r]?1:-1;break}return s}function i(n,e,i,t){for(var r=0;i--;)n[i]-=r,r=n[i]1;)n.shift()}return function(t,r,s,u,c,f){var a,h,l,d,p,g,w,m,v,N,b,x,E,M,y,q,O,F,A,D,Z=t.constructor,P=t.s==r.s?1:-1,R=t.d,L=r.d;if(!(R&&R[0]&&L&&L[0]))return new Z(t.s&&r.s&&(R?!L||R[0]!=L[0]:L)?R&&0==R[0]||!L?0*P:P/0:NaN);for(f?(p=1,h=t.e-r.e):(f=Pn,p=Rn,h=qn(t.e/p)-qn(r.e/p)),A=L.length,O=R.length,v=new Z(P),N=v.d=[],l=0;L[l]==(R[l]||0);l++);if(L[l]>(R[l]||0)&&h--,null==s?(M=s=Z.precision,u=Z.rounding):M=c?s+(t.e-r.e)+1:s,0>M)N.push(1),g=!0;else{if(M=M/p+2|0,l=0,1==A){for(d=0,L=L[0],M++;(O>l||d)&&M--;l++)y=d*f+(R[l]||0),N[l]=y/L|0,d=y%L|0;g=d||O>l}else{for(d=f/(L[0]+1)|0,d>1&&(L=n(L,d,f),R=n(R,d,f),A=L.length,O=R.length),q=A,b=R.slice(0,A),x=b.length;A>x;)b[x++]=0;D=L.slice(),D.unshift(0),F=L[0],L[1]>=f/2&&++F;do d=0,a=e(L,b,A,x),0>a?(E=b[0],A!=x&&(E=E*f+(b[1]||0)),d=E/F|0,d>1?(d>=f&&(d=f-1),w=n(L,d,f),m=w.length,x=b.length,a=e(w,b,m,x),1==a&&(d--,i(w,m>A?D:L,m,f))):(0==d&&(a=d=1),w=L.slice()),m=w.length,x>m&&w.unshift(0),i(b,w,x,f),-1==a&&(x=b.length,a=e(L,b,A,x),1>a&&(d++,i(b,x>A?D:L,x,f))),x=b.length):0===a&&(d++,b=[0]),N[l++]=d,a&&b[0]?b[x++]=R[q]||0:(b=[R[q]],x=1);while((q++=10;d/=10)l++;v.e=l+h*p-1,o(v,c?s+v.e+1:s,u,g)}return v}}();if(Nn=I(Nn),mn=new Nn(mn),vn=new Nn(vn),"function"==typeof define&&define.amd)define(function(){return Nn});else if("undefined"!=typeof module&&module.exports){if(module.exports=Nn,!bn)try{bn=require("crypto")}catch(Tn){}}else n||(n="undefined"!=typeof self&&self&&self.self==self?self:Function("return this")()),ln=n.Decimal,Nn.noConflict=function(){return n.Decimal=ln,Nn},n.Decimal=Nn}(this); //# sourceMappingURL=doc/decimal.js.map \ No newline at end of file diff --git a/doc/API.html b/doc/API.html index 49dd918..096ed3c 100644 --- a/doc/API.html +++ b/doc/API.html @@ -83,7 +83,6 @@ li span{float:right;margin-right:10px;color:#c0c0c0}
  • div
  • exp
  • floor
  • -
  • fromJSON
  • hypot
  • ln
  • log
  • @@ -552,21 +551,6 @@ a.equals(b) // true -
    fromJSON.fromJSON(s) ⇒ Decimal
    -

    s: string

    -

    - Returns a new Decimal whose value is the same as the value of the Decimal that created string - s from a toJSON call. -

    -

    See toJSON.

    -
    -a = new Decimal(x)
    -s = a.toJSON()
    -b = Decimal.fromJSON(s)
    -a.equals(b)                    // true
    - - -
    hypot.hypot([x [, y, ...]]) ⇒ Decimal
    @@ -2183,46 +2167,7 @@ x.toHex(1) // '0x1p+8'
    toJSON.toJSON() ⇒ string
    -

    - Returns a string representing the exact value of this Decimal in a compact base-88 based - format. -

    -

    - A Decimal instance with the same value as this Decimal can be created by passing the return - value to the fromJSON method of a Decimal constructor. -

    -

    - The number of characters of the return value will always be equal to or less than the number - of characters returned by toString - usually just over - half as many. -

    -

    - The 7 printable ASCII characters, (space) \ " & ' < >, are not used in - the return value, so it should be safe for inclusion in HTML, JSON and XML. -

    -
    -x = new Decimal('177.7e+457')
    -x.toJSON()                               // '25jkh'
    -y = new Decimal(235.4325)
    -y.toJSON()                               // '/3E1Z'
    -z = new Decimal('0.0098074')
    -z.toJSON()                               // '*cWG'
    -
    -// Serialize an array of three Decimals
    -str = JSON.stringify( [x, y, z] )        // "["25jkh","/3E1Z","*cWG"]"
    -
    -// Return an array of three Decimals
    -JSON.parse(str, function (key, val) {
    -    return key === '' ? val : Decimal.fromJSON(val)
    -})
    -

    If the toJSON method was not present, deserialization would be difficult as the - array would be serialized as:

    -
    -/*
    -"[{"s":1,"e":459,"c":[17770]},
    -  {"s":1,"e":2,"c":[235,4325000]},
    -  {"s":1,"e":-3,"c":[98074]}]"
    -*/
    +

    As valueOf.

    diff --git a/doc/decimal.js.map b/doc/decimal.js.map index 27400e4..0e5d23c 100644 --- a/doc/decimal.js.map +++ b/doc/decimal.js.map @@ -1 +1 @@ -{"version":3,"file":"decimal.min.js","sources":["decimal.js"],"names":["globalScope","digitsToString","d","i","k","ws","indexOfLastWord","length","str","w","LOG_BASE","getZeroString","checkInt32","min","max","Error","invalidArgument","checkRoundingDigits","rm","repeating","di","r","rd","Math","ceil","mathpow","convertBase","baseIn","baseOut","j","arrL","arr","strL","NUMERALS","indexOf","charAt","reverse","cosine","Ctor","x","y","len","pow","toString","precision","taylorSeries","times","cos2x","minus","plus","finalise","sd","isTruncated","digits","roundUp","xd","xdi","constructor","out","push","s","e","BASE","pop","external","maxE","NaN","minE","finiteToString","isExp","isFinite","nonFiniteToString","slice","getBase10Exponent","getLn10","pr","LN10_PRECISION","precisionLimitExceeded","LN10","getPi","PI_PRECISION","PI","getPrecision","zs","intPow","n","truncate","mathfloor","isOdd","maxOrMin","args","ltgt","naturalExponential","denominator","guard","sum","t","wpr","rep","rounding","log","divide","naturalLogarithm","c","c0","numerator","x1","x2","abs","String","parseDecimal","replace","search","substring","charCodeAt","parseOther","base","divisor","isFloat","p","xe","isHex","test","toLowerCase","isBinary","isOctal","Decimal","sine","sqrt","sin2_x","d5","d16","d20","isHyperbolic","u","toLessThanHalfPi","isNeg","pi","halfPi","lte","quadrant","divToInt","isZero","toStringBinary","MAX_DIGITS","inexact","unshift","this","acos","acosh","add","asin","asinh","atan","atanh","atan2","cbrt","config","obj","decimalError","v","ps","EXP_LIMIT","hasOwnProperty","cryptoObject","getRandomValues","randomBytes","cos","cosh","clone","isDecimal","prototype","P","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","div","exp","floor","fromJSON","hypot","ln","log10","log2","mod","mul","random","round","sign","sin","sinh","sub","tan","tanh","trunc","join","arguments","crypto","Uint32Array","copy","shift","noConflict","modulo","toExpNeg","toExpPos","MAX_SAFE_INTEGER","absoluteValue","comparedTo","cmp","xdL","ydL","yd","xs","ys","neg","cubeRoot","m","t3","t3plusx","toExponential","eq","decimalPlaces","dp","dividedBy","dividedToIntegerBy","equals","greaterThan","gt","greaterThanOrEqualTo","gte","hyperbolicCosine","one","cosh2_x","d8","hyperbolicSine","sinh2_x","hyperbolicTangent","inverseCosine","inverseHyperbolicCosine","inverseHyperbolicSine","inverseHyperbolicTangent","xsd","inverseSine","inverseTangent","px","isInteger","isInt","isNaN","isNegative","isPositive","isPos","lessThan","lt","lessThanOrEqualTo","logarithm","isBase10","inf","num","arg","xLTy","q","negated","carry","z","squareRoot","tangent","rL","toBinary","toDecimalPlaces","toDP","toFixed","toFraction","maxD","d0","d1","d2","n0","n1","toHexadecimal","toHex","toJSON","toNearest","toNumber","toOctal","toPower","yIsInt","yn","toPrecision","toSignificantDigits","toSD","truncated","valueOf","multiplyInteger","temp","compare","a","b","aL","bL","subtract","logBase","more","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","define","amd","module","exports","require","self","Function"],"mappings":";CACC,SAAWA,GACV,YA+kFA,SAASC,GAAeC,GACtB,GAAIC,GAAGC,EAAGC,EACRC,EAAkBJ,EAAEK,OAAS,EAC7BC,EAAM,GACNC,EAAIP,EAAE,EAER,IAAII,EAAkB,EAAG,CAEvB,IADAE,GAAOC,EACFN,EAAI,EAAOG,EAAJH,EAAqBA,IAC/BE,EAAKH,EAAEC,GAAK,GACZC,EAAIM,GAAWL,EAAGE,OACdH,IAAGI,GAAOG,EAAcP,IAC5BI,GAAOH,CAGTI,GAAIP,EAAEC,GACNE,EAAKI,EAAI,GACTL,EAAIM,GAAWL,EAAGE,OACdH,IAAGI,GAAOG,EAAcP,QACvB,IAAU,IAANK,EACT,MAAO,GAIT,MAAOA,EAAI,KAAO,GAAIA,GAAK,EAE3B,OAAOD,GAAMC,EAIf,QAASG,GAAWT,EAAGU,EAAKC,GAC1B,GAAIX,MAAQA,GAASU,EAAJV,GAAWA,EAAIW,EAC9B,KAAMC,OAAMC,GAAkBb,GAUlC,QAASc,GAAoBf,EAAGC,EAAGe,EAAIC,GACrC,GAAIC,GAAIhB,EAAGiB,EAAGC,CAGd,KAAKlB,EAAIF,EAAE,GAAIE,GAAK,GAAIA,GAAK,KAAMD,CAwCnC,SArCMA,EAAI,GACRA,GAAKO,GACLU,EAAK,IAELA,EAAKG,KAAKC,MAAMrB,EAAI,GAAKO,IACzBP,GAAKO,IAMPN,EAAIqB,GAAQ,GAAIf,GAAWP,GAC3BmB,EAAKpB,EAAEkB,GAAMhB,EAAI,EAEA,MAAbe,EACM,EAAJhB,GACO,GAALA,EAAQmB,EAAKA,EAAK,IAAM,EACd,GAALnB,IAAQmB,EAAKA,EAAK,GAAK,GAChCD,EAAS,EAALH,GAAgB,OAANI,GAAeJ,EAAK,GAAW,OAANI,GAAqB,KAANA,GAAqB,GAANA,GAErED,GAAU,EAALH,GAAUI,EAAK,GAAKlB,GAAKc,EAAK,GAAKI,EAAK,GAAKlB,EAAI,KACnDF,EAAEkB,EAAK,GAAKhB,EAAI,IAAM,IAAMqB,GAAQ,GAAItB,EAAI,GAAK,IAC/CmB,GAAMlB,EAAI,GAAW,GAANkB,IAAyC,IAA5BpB,EAAEkB,EAAK,GAAKhB,EAAI,IAAM,GAGjD,EAAJD,GACO,GAALA,EAAQmB,EAAKA,EAAK,IAAO,EACf,GAALnB,EAAQmB,EAAKA,EAAK,IAAM,EACnB,GAALnB,IAAQmB,EAAKA,EAAK,GAAK,GAChCD,GAAKF,GAAkB,EAALD,IAAiB,MAANI,IAAeH,GAAaD,EAAK,GAAW,MAANI,GAEnED,IAAMF,GAAkB,EAALD,IAAWI,EAAK,GAAKlB,IACtCe,GAAaD,EAAK,GAAMI,EAAK,GAAKlB,EAAI,KACrCF,EAAEkB,EAAK,GAAKhB,EAAI,IAAO,IAAMqB,GAAQ,GAAItB,EAAI,GAAK,EAIlDkB,EAOT,QAASK,GAAYlB,EAAKmB,EAAQC,GAOhC,IANA,GAAIC,GAEFC,EADAC,GAAO,GAEP5B,EAAI,EACJ6B,EAAOxB,EAAID,OAEFyB,EAAJ7B,GAAW,CAChB,IAAK2B,EAAOC,EAAIxB,OAAQuB,KAASC,EAAID,IAASH,CAE9C,KADAI,EAAI,IAAME,GAASC,QAAQ1B,EAAI2B,OAAOhC,MACjC0B,EAAI,EAAGA,EAAIE,EAAIxB,OAAQsB,IACtBE,EAAIF,GAAKD,EAAU,IACF,SAAfG,EAAIF,EAAI,KAAeE,EAAIF,EAAI,GAAK,GACxCE,EAAIF,EAAI,IAAME,EAAIF,GAAKD,EAAU,EACjCG,EAAIF,IAAMD,GAKhB,MAAOG,GAAIK,UASb,QAASC,GAAOC,EAAMC,GACpB,GAAInC,GAAGoC,EACLC,EAAMF,EAAErC,EAAEK,MAMF,IAANkC,GACFrC,EAAImB,KAAKC,KAAKiB,EAAM,GACpBD,EAAIjB,KAAKmB,IAAI,GAAItC,GAAGuC,aAEpBvC,EAAI,GACJoC,EAAI,gCAGNF,EAAKM,WAAaxC,EAElBmC,EAAIM,EAAaP,EAAM,EAAGC,EAAEO,MAAMN,GAAI,GAAIF,GAAK,GAG/C,KAAK,GAAInC,GAAIC,EAAGD,KAAM,CACpB,GAAI4C,GAAQR,EAAEO,MAAMP,EACpBA,GAAIQ,EAAMD,MAAMC,GAAOC,MAAMD,GAAOD,MAAM,GAAGG,KAAK,GAKpD,MAFAX,GAAKM,WAAaxC,EAEXmC,EAmRR,QAASW,GAASX,EAAGY,EAAIjC,EAAIkC,GAC5B,GAAIC,GAAQlD,EAAG0B,EAAGzB,EAAGkB,EAAIgC,EAAS7C,EAAG8C,EAAIC,EACvClB,EAAOC,EAAEkB,WAGXC,GAAK,GAAU,MAANP,EAAY,CAInB,GAHAI,EAAKhB,EAAErC,GAGFqD,EAAI,MAAOhB,EAWhB,KAAKc,EAAS,EAAGjD,EAAImD,EAAG,GAAInD,GAAK,GAAIA,GAAK,GAAIiD,GAI9C,IAHAlD,EAAIgD,EAAKE,EAGD,EAAJlD,EACFA,GAAKO,GACLmB,EAAIsB,EACJ1C,EAAI8C,EAAGC,EAAM,GAGblC,EAAKb,EAAIgB,GAAQ,GAAI4B,EAASxB,EAAI,GAAK,GAAK,MAI5C,IAFA2B,EAAMjC,KAAKC,MAAMrB,EAAI,GAAKO,IAC1BN,EAAImD,EAAGhD,OACHiD,GAAOpD,EAAG,CACZ,IAAIgD,EASF,KAAMM,EANN,MAAOtD,KAAOoD,GAAMD,EAAGI,KAAK,EAC5BlD,GAAIa,EAAK,EACT+B,EAAS,EACTlD,GAAKO,GACLmB,EAAI1B,EAAIO,GAAW,MAIhB,CAIL,IAHAD,EAAIL,EAAImD,EAAGC,GAGNH,EAAS,EAAGjD,GAAK,GAAIA,GAAK,GAAIiD,GAGnClD,IAAKO,GAILmB,EAAI1B,EAAIO,GAAW2C,EAGnB/B,EAAS,EAAJO,EAAQ,EAAIpB,EAAIgB,GAAQ,GAAI4B,EAASxB,EAAI,GAAK,GAAK,EAoB5D,GAfAuB,EAAcA,GAAoB,EAALD,GACX,SAAhBI,EAAGC,EAAM,KAAsB,EAAJ3B,EAAQpB,EAAIA,EAAIgB,GAAQ,GAAI4B,EAASxB,EAAI,IAMtEyB,EAAe,EAALpC,GACLI,GAAM8B,KAAuB,GAANlC,GAAWA,IAAOqB,EAAEqB,EAAI,EAAI,EAAI,IACxDtC,EAAK,GAAW,GAANA,IAAkB,GAANJ,GAAWkC,GAAqB,GAANlC,IAG9Cf,EAAI,EAAI0B,EAAI,EAAIpB,EAAIgB,GAAQ,GAAI4B,EAASxB,GAAK,EAAI0B,EAAGC,EAAM,IAAM,GAAM,GACvEtC,IAAOqB,EAAEqB,EAAI,EAAI,EAAI,IAElB,EAALT,IAAWI,EAAG,GAgBhB,MAfAA,GAAGhD,OAAS,EACR+C,GAGFH,GAAMZ,EAAEsB,EAAI,EAGZN,EAAG,GAAK9B,GAAQ,IAAKf,GAAWyC,EAAKzC,IAAYA,IACjD6B,EAAEsB,GAAKV,GAAM,GAIbI,EAAG,GAAKhB,EAAEsB,EAAI,EAGTtB,CAiBT,IAbS,GAALpC,GACFoD,EAAGhD,OAASiD,EACZpD,EAAI,EACJoD,MAEAD,EAAGhD,OAASiD,EAAM,EAClBpD,EAAIqB,GAAQ,GAAIf,GAAWP,GAI3BoD,EAAGC,GAAO3B,EAAI,GAAKpB,EAAIgB,GAAQ,GAAI4B,EAASxB,GAAKJ,GAAQ,GAAII,GAAK,GAAKzB,EAAI,GAGzEkD,EACF,OAAS,CAGP,GAAW,GAAPE,EAAU,CAGZ,IAAKrD,EAAI,EAAG0B,EAAI0B,EAAG,GAAI1B,GAAK,GAAIA,GAAK,GAAI1B,GAEzC,KADA0B,EAAI0B,EAAG,IAAMnD,EACRA,EAAI,EAAGyB,GAAK,GAAIA,GAAK,GAAIzB,GAG1BD,IAAKC,IACPmC,EAAEsB,IACEN,EAAG,IAAMO,KAAMP,EAAG,GAAK,GAG7B,OAGA,GADAA,EAAGC,IAAQpD,EACPmD,EAAGC,IAAQM,GAAM,KACrBP,GAAGC,KAAS,EACZpD,EAAI,EAMV,IAAKD,EAAIoD,EAAGhD,OAAoB,IAAZgD,IAAKpD,IAAWoD,EAAGQ,MAsBzC,MAnBIC,MAGEzB,EAAEsB,EAAIvB,EAAK2B,MAGb1B,EAAErC,EAAI,KACNqC,EAAEsB,EAAIK,KAGG3B,EAAEsB,EAAIvB,EAAK6B,OAGpB5B,EAAEsB,EAAI,EACNtB,EAAErC,GAAK,KAKJqC,EAIT,QAAS6B,GAAe7B,EAAG8B,EAAOlB,GAChC,IAAKZ,EAAE+B,WAAY,MAAOC,GAAkBhC,EAC5C,IAAInC,GACFyD,EAAItB,EAAEsB,EACNrD,EAAMP,EAAesC,EAAErC,GACvBuC,EAAMjC,EAAID,MAwBZ,OAtBI8D,IACElB,IAAO/C,EAAI+C,EAAKV,GAAO,EACzBjC,EAAMA,EAAI2B,OAAO,GAAK,IAAM3B,EAAIgE,MAAM,GAAK7D,EAAcP,GAChDqC,EAAM,IACfjC,EAAMA,EAAI2B,OAAO,GAAK,IAAM3B,EAAIgE,MAAM,IAGxChE,EAAMA,GAAO+B,EAAEsB,EAAI,EAAI,IAAM,MAAQtB,EAAEsB,GAC1B,EAAJA,GACTrD,EAAM,KAAOG,GAAekD,EAAI,GAAKrD,EACjC2C,IAAO/C,EAAI+C,EAAKV,GAAO,IAAGjC,GAAOG,EAAcP,KAC1CyD,GAAKpB,GACdjC,GAAOG,EAAckD,EAAI,EAAIpB,GACzBU,IAAO/C,EAAI+C,EAAKU,EAAI,GAAK,IAAGrD,EAAMA,EAAM,IAAMG,EAAcP,OAE3DA,EAAIyD,EAAI,GAAKpB,IAAKjC,EAAMA,EAAIgE,MAAM,EAAGpE,GAAK,IAAMI,EAAIgE,MAAMpE,IAC3D+C,IAAO/C,EAAI+C,EAAKV,GAAO,IACrBoB,EAAI,IAAMpB,IAAKjC,GAAO,KAC1BA,GAAOG,EAAcP,KAIlBI,EAKT,QAASiE,GAAkBpB,EAAQQ,GAGjC,IAAK,GAAI1D,GAAI,EAAGM,EAAI4C,EAAO,GAAI5C,GAAK,GAAIA,GAAK,GAAIN,GACjD,OAAOA,GAAI0D,EAAInD,GAAW,EAI3B,QAASgE,GAAQpC,EAAMa,EAAIwB,GAC1B,GAAIxB,EAAKyB,GAKP,KAFAZ,KAAW,EACPW,IAAIrC,EAAKM,UAAY+B,GACnB5D,MAAM8D,GAEd,OAAO3B,GAAS,GAAIZ,GAAKwC,IAAO3B,EAAI,GAAG,GAIzC,QAAS4B,GAAMzC,EAAMa,EAAIjC,GACvB,GAAIiC,EAAK6B,GAAc,KAAMjE,OAAM8D,GACnC,OAAO3B,GAAS,GAAIZ,GAAK2C,IAAK9B,EAAIjC,GAAI,GAIxC,QAASgE,GAAa7B,GACpB,GAAI5C,GAAI4C,EAAO9C,OAAS,EACtBkC,EAAMhC,EAAIC,GAAW,CAKvB,IAHAD,EAAI4C,EAAO5C,GAGJ,CAGL,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIgC,GAG7B,KAAKhC,EAAI4C,EAAO,GAAI5C,GAAK,GAAIA,GAAK,GAAIgC,IAGxC,MAAOA,GAIT,QAAS9B,GAAcP,GAErB,IADA,GAAI+E,GAAK,GACF/E,KAAM+E,GAAM,GACnB,OAAOA,GAWT,QAASC,GAAO9C,EAAMC,EAAG8C,EAAGV,GAC1B,GAAIvB,GACF/B,EAAI,GAAIiB,GAAK,GAIblC,EAAImB,KAAKC,KAAKmD,EAAKjE,GAAW,EAIhC,KAFAsD,IAAW,IAEF,CAOP,GANIqB,EAAI,IACNhE,EAAIA,EAAEyB,MAAMP,GACR+C,EAASjE,EAAEnB,EAAGE,KAAIgD,GAAc,IAGtCiC,EAAIE,GAAUF,EAAI,GACR,IAANA,EAAS,CAGXA,EAAIhE,EAAEnB,EAAEK,OAAS,EACb6C,GAA0B,IAAX/B,EAAEnB,EAAEmF,MAAYhE,EAAEnB,EAAEmF,EACvC,OAGF9C,EAAIA,EAAEO,MAAMP,GACZ+C,EAAS/C,EAAErC,EAAGE,GAKhB,MAFA4D,KAAW,EAEJ3C,EAIT,QAASmE,GAAMH,GACb,MAA6B,GAAtBA,EAAEnF,EAAEmF,EAAEnF,EAAEK,OAAS,GAO1B,QAASkF,GAASnD,EAAMoD,EAAMC,GAK5B,IAJA,GAAInD,GACFD,EAAI,GAAID,GAAKoD,EAAK,IAClBvF,EAAI,IAEGA,EAAIuF,EAAKnF,QAAS,CAEzB,GADAiC,EAAI,GAAIF,GAAKoD,EAAKvF,KACbqC,EAAEoB,EAAG,CACRrB,EAAIC,CACJ,OACSD,EAAEoD,GAAMnD,KACjBD,EAAIC,GAIR,MAAOD,GAmCT,QAASqD,GAAmBrD,EAAGY,GAC7B,GAAI0C,GAAaC,EAAOjE,EAAGa,EAAKqD,EAAKC,EAAGC,EACtCC,EAAM,EACN/F,EAAI,EACJC,EAAI,EACJkC,EAAOC,EAAEkB,YACTvC,EAAKoB,EAAK6D,SACVxB,EAAKrC,EAAKM,SAGZ,KAAKL,EAAErC,IAAMqC,EAAErC,EAAE,IAAMqC,EAAEsB,EAAI,GAE3B,MAAO,IAAIvB,GAAKC,EAAErC,EACbqC,EAAErC,EAAE,GAASqC,EAAEqB,EAAI,EAAI,EAAI,EAAI,EAAtB,EACVrB,EAAEqB,EAAIrB,EAAEqB,EAAI,EAAI,EAAIrB,EAAI,IAa9B,KAVU,MAANY,GACFa,IAAW,EACXiC,EAAMtB,GAENsB,EAAM9C,EAGR6C,EAAI,GAAI1D,GAAK,QAGNC,EAAEsB,EAAI,IAGXtB,EAAIA,EAAEO,MAAMkD,GACZ5F,GAAK,CAUP,KALA0F,EAAQvE,KAAK6E,IAAI3E,GAAQ,EAAGrB,IAAMmB,KAAKuD,KAAO,EAAI,EAAI,EACtDmB,GAAOH,EACPD,EAAcnD,EAAMqD,EAAM,GAAIzD,GAAK,GACnCA,EAAKM,UAAYqD,IAER,CAKP,GAJAvD,EAAMQ,EAASR,EAAII,MAAMP,GAAI0D,EAAK,GAClCJ,EAAcA,EAAY/C,QAAQ3C,GAClC6F,EAAID,EAAI9C,KAAKoD,GAAO3D,EAAKmD,EAAaI,EAAK,IAEvChG,EAAe+F,EAAE9F,GAAGsE,MAAM,EAAGyB,KAAShG,EAAe8F,EAAI7F,GAAGsE,MAAM,EAAGyB,GAAM,CAE7E,IADApE,EAAIzB,EACGyB,KAAKkE,EAAM7C,EAAS6C,EAAIjD,MAAMiD,GAAME,EAAK,EAOhD,IAAU,MAAN9C,EAYF,MADAb,GAAKM,UAAY+B,EACVoB,CAVP,MAAU,EAANG,GAAWjF,EAAoB8E,EAAI7F,EAAG+F,EAAMH,EAAO5E,EAAIgF,IAMzD,MAAOhD,GAAS6C,EAAKzD,EAAKM,UAAY+B,EAAIzD,EAAI8C,IAAW,EALzD1B,GAAKM,UAAYqD,GAAO,GACxBJ,EAAcnD,EAAMsD,EAAI,GAAI1D,GAAK,GACjCnC,EAAI,EACJ+F,IAUNH,EAAMC,GAoBV,QAASM,GAAiB9D,EAAGW,GAC3B,GAAIoD,GAAGC,EAAIX,EAAahC,EAAG4C,EAAWP,EAAKH,EAAKC,EAAGC,EAAKS,EAAIC,EAC1DtB,EAAI,EACJS,EAAQ,GACRvD,EAAIC,EACJe,EAAKhB,EAAErC,EACPoC,EAAOC,EAAEkB,YACTvC,EAAKoB,EAAK6D,SACVxB,EAAKrC,EAAKM,SAGZ,IAAIL,EAAEqB,EAAI,IAAML,IAAOA,EAAG,KAAOhB,EAAEsB,GAAc,GAATN,EAAG,IAAwB,GAAbA,EAAGhD,OACvD,MAAO,IAAI+B,GAAKiB,IAAOA,EAAG,GAAK,GAAK,EAAW,GAAPhB,EAAEqB,EAASM,IAAMX,EAAK,EAAIhB,EAcpE,IAXU,MAANY,GACFa,IAAW,EACXiC,EAAMtB,GAENsB,EAAM9C,EAGRb,EAAKM,UAAYqD,GAAOH,EACxBS,EAAItG,EAAesD,GACnBiD,EAAKD,EAAEpE,OAAO,KAEVZ,KAAKqF,IAAI/C,EAAItB,EAAEsB,GAAK,OAqCtB,MAJAmC,GAAItB,EAAQpC,EAAM2D,EAAM,EAAGtB,GAAI7B,MAAMe,EAAI,IACzCtB,EAAI+D,EAAiB,GAAIhE,GAAKkE,EAAK,IAAMD,EAAE/B,MAAM,IAAKyB,EAAMH,GAAO7C,KAAK+C,GACxE1D,EAAKM,UAAY+B,EAEJ,MAANxB,EAAaD,EAASX,EAAGoC,EAAIzD,EAAI8C,IAAW,GAAQzB,CAxB3D,MAAY,EAALiE,GAAgB,GAANA,GAAiB,GAANA,GAAWD,EAAEpE,OAAO,GAAK,GACnDI,EAAIA,EAAEO,MAAMN,GACZ+D,EAAItG,EAAesC,EAAErC,GACrBsG,EAAKD,EAAEpE,OAAO,GACdkD,GAiCJ,KA9BExB,EAAItB,EAAEsB,EAEF2C,EAAK,GACPjE,EAAI,GAAID,GAAK,KAAOiE,GACpB1C,KAEAtB,EAAI,GAAID,GAAKkE,EAAK,IAAMD,EAAE/B,MAAM,IAepCkC,EAAKnE,EAKLwD,EAAMU,EAAYlE,EAAI8D,GAAO9D,EAAES,MAAM,GAAIT,EAAEU,KAAK,GAAIgD,EAAK,GACzDU,EAAKzD,EAASX,EAAEO,MAAMP,GAAI0D,EAAK,GAC/BJ,EAAc,IAEL,CAIP,GAHAY,EAAYvD,EAASuD,EAAU3D,MAAM6D,GAAKV,EAAK,GAC/CD,EAAID,EAAI9C,KAAKoD,GAAOI,EAAW,GAAInE,GAAKuD,GAAcI,EAAK,IAEvDhG,EAAe+F,EAAE9F,GAAGsE,MAAM,EAAGyB,KAAShG,EAAe8F,EAAI7F,GAAGsE,MAAM,EAAGyB,GAAM,CAc7E,GAbAF,EAAMA,EAAIjD,MAAM,GAIN,IAANe,IAASkC,EAAMA,EAAI9C,KAAKyB,EAAQpC,EAAM2D,EAAM,EAAGtB,GAAI7B,MAAMe,EAAI,MACjEkC,EAAMM,GAAON,EAAK,GAAIzD,GAAK+C,GAAIY,EAAK,GAQ1B,MAAN9C,EAWF,MADAb,GAAKM,UAAY+B,EACVoB,CAVP,KAAI9E,EAAoB8E,EAAI7F,EAAG+F,EAAMH,EAAO5E,EAAIgF,GAM9C,MAAOhD,GAAS6C,EAAKzD,EAAKM,UAAY+B,EAAIzD,EAAI8C,IAAW,EALzD1B,GAAKM,UAAYqD,GAAOH,EACxBE,EAAIS,EAAYlE,EAAI8D,GAAOK,EAAG1D,MAAM,GAAI0D,EAAGzD,KAAK,GAAIgD,EAAK,GACzDU,EAAKzD,EAASX,EAAEO,MAAMP,GAAI0D,EAAK,GAC/BJ,EAAcK,EAAM,EAU1BH,EAAMC,EACNH,GAAe,GAMnB,QAAStB,GAAkBhC,GAEzB,MAAOsE,QAAOtE,EAAEqB,EAAIrB,EAAEqB,EAAI,GAO5B,QAASkD,GAAavE,EAAG/B,GACvB,GAAIqD,GAAG1D,EAAGsC,CAmBV,MAhBKoB,EAAIrD,EAAI0B,QAAQ,MAAQ,KAAI1B,EAAMA,EAAIuG,QAAQ,IAAK,MAGnD5G,EAAIK,EAAIwG,OAAO,OAAS,GAGnB,EAAJnD,IAAOA,EAAI1D,GACf0D,IAAMrD,EAAIgE,MAAMrE,EAAI,GACpBK,EAAMA,EAAIyG,UAAU,EAAG9G,IACV,EAAJ0D,IAGTA,EAAIrD,EAAID,QAILJ,EAAI,EAAyB,KAAtBK,EAAI0G,WAAW/G,GAAWA,KAGtC,IAAKsC,EAAMjC,EAAID,OAAoC,KAA5BC,EAAI0G,WAAWzE,EAAM,KAAaA,GAGzD,GAFAjC,EAAMA,EAAIgE,MAAMrE,EAAGsC,GAEV,CAYP,GAXAA,GAAOtC,EACPoC,EAAEsB,EAAIA,EAAIA,EAAI1D,EAAI,EAClBoC,EAAErC,KAMFC,GAAK0D,EAAI,GAAKnD,GACN,EAAJmD,IAAO1D,GAAKO,IAER+B,EAAJtC,EAAS,CAEX,IADIA,GAAGoC,EAAErC,EAAEyD,MAAMnD,EAAIgE,MAAM,EAAGrE,IACzBsC,GAAO/B,GAAc+B,EAAJtC,GAAUoC,EAAErC,EAAEyD,MAAMnD,EAAIgE,MAAMrE,EAAGA,GAAKO,IAC5DF,GAAMA,EAAIgE,MAAMrE,GAChBA,EAAIO,GAAWF,EAAID,WAEnBJ,IAAKsC,CAGP,MAAOtC,KAAMK,GAAO,GACpB+B,GAAErC,EAAEyD,MAAMnD,GAENwD,KAGEzB,EAAEsB,EAAItB,EAAEkB,YAAYQ,MAGtB1B,EAAErC,EAAI,KACNqC,EAAEsB,EAAIK,KAGG3B,EAAEsB,EAAItB,EAAEkB,YAAYU,OAG7B5B,EAAEsB,EAAI,EACNtB,EAAErC,GAAK,SAOXqC,GAAEsB,EAAI,EACNtB,EAAErC,GAAK,EAGT,OAAOqC,GAOT,QAAS4E,GAAW5E,EAAG/B,GACrB,GAAI4G,GAAM9E,EAAM+E,EAASlH,EAAGmH,EAAS7E,EAAK8E,EAAGhE,EAAIiE,CAEjD,IAAY,aAARhH,GAA8B,QAARA,EAIxB,OAHMA,IAAK+B,EAAEqB,EAAIM,KACjB3B,EAAEsB,EAAIK,IACN3B,EAAErC,EAAI,KACCqC,CAGT,IAAIkF,GAAMC,KAAKlH,GACb4G,EAAO,GACP5G,EAAMA,EAAImH,kBACL,IAAIC,GAASF,KAAKlH,GACvB4G,EAAO,MACF,CAAA,IAAIS,GAAQH,KAAKlH,GAGtB,KAAMO,OAAMC,GAAkBR,EAF9B4G,GAAO,EAkCT,IA5BAjH,EAAIK,EAAIwG,OAAO,MAEX7G,EAAI,GACNoH,GAAK/G,EAAIgE,MAAMrE,EAAI,GACnBK,EAAMA,EAAIyG,UAAU,EAAG9G,IAEvBK,EAAMA,EAAIgE,MAAM,GAKlBrE,EAAIK,EAAI0B,QAAQ,KAChBoF,EAAUnH,GAAK,EACfmC,EAAOC,EAAEkB,YAEL6D,IACF9G,EAAMA,EAAIuG,QAAQ,IAAK,IACvBtE,EAAMjC,EAAID,OACVJ,EAAIsC,EAAMtC,EAGVkH,EAAUjC,EAAO9C,EAAM,GAAIA,GAAK8E,GAAOjH,EAAO,EAAJA,IAG5CoD,EAAK7B,EAAYlB,EAAK4G,EAAMtD,IAC5B0D,EAAKjE,EAAGhD,OAAS,EAGZJ,EAAIqH,EAAc,IAAVjE,EAAGpD,KAAYA,EAAGoD,EAAGQ,KAClC,OAAQ,GAAJ5D,EAAc,GAAImC,GAAW,EAANC,EAAEqB,IAC7BrB,EAAEsB,EAAIY,EAAkBlB,EAAIiE,GAC5BjF,EAAErC,EAAIqD,EACNS,IAAW,EAQPsD,IAAS/E,EAAI8D,GAAO9D,EAAG8E,EAAe,EAAN5E,IAGhC8E,IAAGhF,EAAIA,EAAEO,MAAMvB,KAAKqF,IAAIW,GAAK,GAAKhG,KAAKmB,IAAI,EAAG6E,GAAKO,GAAQpF,IAAI,EAAG6E,KACtEvD,IAAW,EAEJzB,GAST,QAASwF,GAAKzF,EAAMC,GAClB,GAAInC,GACFqC,EAAMF,EAAErC,EAAEK,MAEZ,IAAU,EAANkC,EAAS,MAAOI,GAAaP,EAAM,EAAGC,EAAGA,EAO7CnC,GAAI,IAAMmB,KAAKyG,KAAKvF,GACpBrC,EAAIA,EAAI,GAAK,GAAS,EAAJA,EAGlBmC,EAAIA,EAAEO,MAAMvB,KAAKmB,IAAI,GAAItC,IACzBmC,EAAIM,EAAaP,EAAM,EAAGC,EAAGA,EAO7B,KAJA,GAAI0F,GACFC,EAAK,GAAI5F,GAAK,GACd6F,EAAM,GAAI7F,GAAK,IACf8F,EAAM,GAAI9F,GAAK,IACVlC,KACL6H,EAAS1F,EAAEO,MAAMP,GACjBA,EAAIA,EAAEO,MAAMoF,EAAGjF,KAAKgF,EAAOnF,MAAMqF,EAAIrF,MAAMmF,GAAQjF,MAAMoF,KAG3D,OAAO7F,GAKT,QAASM,GAAaP,EAAM+C,EAAG9C,EAAGC,EAAG6F,GACnC,GAAIxG,GAAGmE,EAAGsC,EAAG3B,EACXxG,EAAI,EACJwE,EAAKrC,EAAKM,UACVxC,EAAImB,KAAKC,KAAKmD,EAAKjE,GAMrB,KAJAsD,IAAW,EACX2C,EAAKpE,EAAEO,MAAMP,GACb+F,EAAI,GAAIhG,GAAKE,KAEJ,CAMP,GALAwD,EAAIK,GAAOiC,EAAExF,MAAM6D,GAAK,GAAIrE,GAAK+C,IAAMA,KAAMV,EAAI,GACjD2D,EAAID,EAAe7F,EAAES,KAAK+C,GAAKxD,EAAEQ,MAAMgD,GACvCxD,EAAI6D,GAAOL,EAAElD,MAAM6D,GAAK,GAAIrE,GAAK+C,IAAMA,KAAMV,EAAI,GACjDqB,EAAIsC,EAAErF,KAAKT,GAEI,SAAXwD,EAAE9F,EAAEE,GAAe,CACrB,IAAKyB,EAAIzB,EAAG4F,EAAE9F,EAAE2B,KAAOyG,EAAEpI,EAAE2B,IAAMA,MACjC,GAAS,IAALA,EAAS,MAGfA,EAAIyG,EACJA,EAAI9F,EACJA,EAAIwD,EACJA,EAAInE,EACJ1B,IAMF,MAHA6D,KAAW,EACXgC,EAAE9F,EAAEK,OAASH,EAAI,EAEV4F,EAKT,QAASuC,GAAiBjG,EAAMC,GAC9B,GAAIyD,GACFwC,EAAQjG,EAAEqB,EAAI,EACd6E,EAAK1D,EAAMzC,EAAMA,EAAKM,UAAW,GACjC8F,EAASD,EAAG3F,MAAM,GAIpB,IAFAP,EAAIA,EAAEqE,MAEFrE,EAAEoG,IAAID,GAER,MADAE,IAAWJ,EAAQ,EAAI,EAChBjG,CAKT,IAFAyD,EAAIzD,EAAEsG,SAASJ,GAEXzC,EAAE8C,SACJF,GAAWJ,EAAQ,EAAI,MAClB,CAIL,GAHAjG,EAAIA,EAAES,MAAMgD,EAAElD,MAAM2F,IAGhBlG,EAAEoG,IAAID,GAER,MADAE,IAAWpD,EAAMQ,GAAMwC,EAAQ,EAAI,EAAMA,EAAQ,EAAI,EAC9CjG,CAGTqG,IAAWpD,EAAMQ,GAAMwC,EAAQ,EAAI,EAAMA,EAAQ,EAAI,EAGvD,MAAOjG,GAAES,MAAMyF,GAAI7B,MASrB,QAASmC,GAAexG,EAAGX,EAASuB,EAAIjC,GACtC,GAAIkG,GAAMvD,EAAG1D,EAAGC,EAAGqC,EAAKa,EAAS9C,EAAK+C,EAAIf,EACxCF,EAAOC,EAAEkB,YACTY,EAAe,SAAPlB,CAWV,IATIkB,GACFzD,EAAWuC,EAAI,EAAG6F,IACP,SAAP9H,EAAeA,EAAKoB,EAAK6D,SACxBvF,EAAWM,EAAI,EAAG,KAEvBiC,EAAKb,EAAKM,UACV1B,EAAKoB,EAAK6D,UAGP5D,EAAE+B,WAEA,CAoCL,IAnCA9D,EAAM4D,EAAe7B,GACrBpC,EAAIK,EAAI0B,QAAQ,KAOZmC,GACF+C,EAAO,EACQ,IAAXxF,EACFuB,EAAU,EAALA,EAAS,EACM,GAAXvB,IACTuB,EAAU,EAALA,EAAS,IAGhBiE,EAAOxF,EAOLzB,GAAK,IACPK,EAAMA,EAAIuG,QAAQ,IAAK,IACvBvE,EAAI,GAAIF,GAAK,GACbE,EAAEqB,EAAIrD,EAAID,OAASJ,EACnBqC,EAAEtC,EAAIwB,EAAY0C,EAAe5B,GAAI,GAAI4E,GACzC5E,EAAEqB,EAAIrB,EAAEtC,EAAEK,QAGZgD,EAAK7B,EAAYlB,EAAK,GAAI4G,GAC1BvD,EAAIpB,EAAMc,EAAGhD,OAGO,GAAbgD,IAAKd,IAAYc,EAAGQ,KAE3B,IAAKR,EAAG,GAED,CAyBL,GAxBQ,EAAJpD,EACF0D,KAEAtB,EAAI,GAAID,GAAKC,GACbA,EAAErC,EAAIqD,EACNhB,EAAEsB,EAAIA,EACNtB,EAAI8D,GAAO9D,EAAGC,EAAGW,EAAIjC,EAAI,EAAGkG,GAC5B7D,EAAKhB,EAAErC,EACP2D,EAAItB,EAAEsB,EACNP,EAAU2F,IAIZ9I,EAAIoD,EAAGJ,GACP/C,EAAIgH,EAAO,EACX9D,EAAUA,GAA0B,SAAfC,EAAGJ,EAAK,GAE7BG,EAAe,EAALpC,GACC,SAANf,GAAgBmD,KAAoB,IAAPpC,GAAYA,KAAQqB,EAAEqB,EAAI,EAAI,EAAI,IAChEzD,EAAIC,GAAKD,IAAMC,IAAa,IAAPc,GAAYoC,GAAkB,IAAPpC,GAAyB,EAAbqC,EAAGJ,EAAK,IAChEjC,KAAQqB,EAAEqB,EAAI,EAAI,EAAI,IAE1BL,EAAGhD,OAAS4C,EAERG,EAGF,OAASC,IAAKJ,GAAMiE,EAAO,GACzB7D,EAAGJ,GAAM,EACJA,MACDU,EACFN,EAAG2F,QAAQ,GAMjB,KAAKzG,EAAMc,EAAGhD,QAASgD,EAAGd,EAAM,KAAMA,GAGtC,IAAKtC,EAAI,EAAGK,EAAM,GAAQiC,EAAJtC,EAASA,IAAKK,GAAOyB,GAASE,OAAOoB,EAAGpD,GAG9D,IAAIkE,EAAO,CACT,GAAI5B,EAAM,EACR,GAAe,IAAXb,GAA4B,GAAXA,EAAc,CAEjC,IADAzB,EAAe,IAAXyB,EAAgB,EAAI,IACjBa,EAAKA,EAAMtC,EAAGsC,IAAOjC,GAAO,GAEnC,KADA+C,EAAK7B,EAAYlB,EAAK4G,EAAMxF,GACvBa,EAAMc,EAAGhD,QAASgD,EAAGd,EAAM,KAAMA,GAGtC,IAAKtC,EAAI,EAAGK,EAAM,KAAUiC,EAAJtC,EAASA,IAAKK,GAAOyB,GAASE,OAAOoB,EAAGpD,QAEhEK,GAAMA,EAAI2B,OAAO,GAAK,IAAM3B,EAAIgE,MAAM,EAI1ChE,GAAOA,GAAW,EAAJqD,EAAQ,IAAM,MAAQA,MAC/B,IAAQ,EAAJA,EAAO,CAChB,OAASA,GAAIrD,EAAM,IAAMA,CACzBA,GAAM,KAAOA,MAEb,MAAMqD,EAAIpB,EAAK,IAAKoB,GAAKpB,EAAKoB,KAAOrD,GAAO,QAC/BiC,GAAJoB,IAASrD,EAAMA,EAAIgE,MAAM,EAAGX,GAAK,IAAMrD,EAAIgE,MAAMX,QAlE5DrD,GAAM6D,EAAQ,OAAS,GAsEzB7D,IAAkB,IAAXoB,EAAgB,KAAkB,GAAXA,EAAe,KAAkB,GAAXA,EAAe,KAAO,IAAMpB,MA9GhFA,GAAM+D,EAAkBhC,EAiH1B,OAAOA,GAAEqB,EAAI,EAAI,IAAMpD,EAAMA,EAK/B,QAAS8E,GAASvD,EAAKU,GACrB,MAAIV,GAAIxB,OAASkC,GACfV,EAAIxB,OAASkC,GACN,GAFT,OA2DF,QAASmE,GAAIrE,GACX,MAAO,IAAI4G,MAAK5G,GAAGqE,MAUrB,QAASwC,GAAK7G,GACZ,MAAO,IAAI4G,MAAK5G,GAAG6G,OAWrB,QAASC,GAAM9G,GACb,MAAO,IAAI4G,MAAK5G,GAAG8G,QAYrB,QAASC,GAAI/G,EAAGC,GACd,MAAO,IAAI2G,MAAK5G,GAAGU,KAAKT,GAW1B,QAAS+G,GAAKhH,GACZ,MAAO,IAAI4G,MAAK5G,GAAGgH,OAWrB,QAASC,GAAMjH,GACb,MAAO,IAAI4G,MAAK5G,GAAGiH,QAWrB,QAASC,GAAKlH,GACZ,MAAO,IAAI4G,MAAK5G,GAAGkH,OAWrB,QAASC,GAAMnH,GACb,MAAO,IAAI4G,MAAK5G,GAAGmH,QA6BrB,QAASC,GAAMnH,EAAGD,GAChBC,EAAI,GAAI2G,MAAK3G,GACbD,EAAI,GAAI4G,MAAK5G,EACb,IAAIlB,GACFsD,EAAKwE,KAAKvG,UACV1B,EAAKiI,KAAKhD,SACVF,EAAMtB,EAAK,CAkCb,OA/BKnC,GAAEoB,GAAMrB,EAAEqB,EAIHpB,EAAEtC,GAAMqC,EAAErC,GAKVqC,EAAErC,GAAKsC,EAAEsG,UACnBzH,EAAIkB,EAAEqB,EAAI,EAAImB,EAAMoE,KAAMxE,EAAIzD,GAAM,GAAIiI,MAAK,GAC7C9H,EAAEuC,EAAIpB,EAAEoB,IAGEpB,EAAEtC,GAAKqC,EAAEuG,UACnBzH,EAAI0D,EAAMoE,KAAMlD,EAAK,GAAGnD,MAAM,IAC9BzB,EAAEuC,EAAIpB,EAAEoB,GAGCrB,EAAEqB,EAAI,GACfuF,KAAKvG,UAAYqD,EACjBkD,KAAKhD,SAAW,EAChB9E,EAAI8H,KAAKM,KAAKpD,GAAO7D,EAAGD,EAAG0D,EAAK,IAChC1D,EAAIwC,EAAMoE,KAAMlD,EAAK,GACrBkD,KAAKvG,UAAY+B,EACjBwE,KAAKhD,SAAWjF,EAChBG,EAAImB,EAAEoB,EAAI,EAAIvC,EAAE2B,MAAMT,GAAKlB,EAAE4B,KAAKV,IAElClB,EAAI8H,KAAKM,KAAKpD,GAAO7D,EAAGD,EAAG0D,EAAK,KAvBhC5E,EAAI0D,EAAMoE,KAAMlD,EAAK,GAAGnD,MAAMP,EAAEqB,EAAI,EAAI,IAAO,KAC/CvC,EAAEuC,EAAIpB,EAAEoB,GALRvC,EAAI,GAAI8H,MAAKjF,KA8BR7C,EAWT,QAASuI,GAAKrH,GACZ,MAAO,IAAI4G,MAAK5G,GAAGqH,OAUrB,QAASpI,GAAKe,GACZ,MAAOW,GAASX,EAAI,GAAI4G,MAAK5G,GAAIA,EAAEsB,EAAI,EAAG,GAqB5C,QAASgG,GAAOC,GACd,IAAKA,GAAsB,gBAARA,GAAkB,KAAM/I,OAAMgJ,GAAe,kBAChE,IAAI5J,GAAGoH,EAAGyC,EACRC,GACE,YAAa,EAAGjB,GAChB,WAAY,EAAG,EACf,YAAakB,GAAW,EACxB,WAAY,EAAGA,GACf,OAAQ,EAAGA,GACX,QAASA,GAAW,EACpB,SAAU,EAAG,EAGjB,KAAK/J,EAAI,EAAGA,EAAI8J,EAAG1J,OAAQJ,GAAK,EAC9B,GAA6B,UAAxB6J,EAAIF,EAAIvC,EAAI0C,EAAG9J,KAAiB,CACnC,KAAIoF,GAAUyE,KAAOA,GAAKA,GAAKC,EAAG9J,EAAI,IAAM6J,GAAKC,EAAG9J,EAAI,IACnD,KAAMY,OAAMC,GAAkBuG,EAAI,KAAOyC,EADcb,MAAK5B,GAAKyC,EAK1E,GAAIF,EAAIK,eAAe5C,EAAI,UACzB,GAAqB,UAAhByC,EAAIF,EAAIvC,IACX4B,KAAK5B,GAAKyC,MACL,CAAA,GAAIA,KAAM,GAAQA,KAAM,GAAe,IAANA,GAAiB,IAANA,EAIjD,KAAMjJ,OAAMC,GAAkBuG,EAAI,KAAOyC,EAHzCb,MAAK5B,MAAQyC,IAAKI,KACbA,GAAaC,kBAAmBD,GAAaE,aAMtD,MAAOnB,MAWT,QAASoB,GAAIhI,GACX,MAAO,IAAI4G,MAAK5G,GAAGgI,MAWrB,QAASC,GAAKjI,GACZ,MAAO,IAAI4G,MAAK5G,GAAGiI,OASrB,QAASC,GAAMX,GAUb,QAAShC,GAAQkC,GACf,GAAInG,GAAG1D,EAAG6F,EACRzD,EAAI4G,IAGN,MAAM5G,YAAauF,IAAU,MAAO,IAAIA,GAAQkC,EAOhD,IAHAzH,EAAEkB,YAAcqE,EAGZkC,YAAalC,GAIf,MAHAvF,GAAEqB,EAAIoG,EAAEpG,EACRrB,EAAEsB,EAAImG,EAAEnG,OACRtB,EAAErC,GAAK8J,EAAIA,EAAE9J,GAAK8J,EAAExF,QAAUwF,EAMhC,IAFAhE,QAAWgE,GAED,WAANhE,EAAgB,CAClB,GAAU,IAANgE,EAIF,MAHAzH,GAAEqB,EAAY,EAAR,EAAIoG,EAAQ,GAAK,EACvBzH,EAAEsB,EAAI,OACNtB,EAAErC,GAAK,GAYT,IARQ,EAAJ8J,GACFA,GAAKA,EACLzH,EAAEqB,EAAI,IAENrB,EAAEqB,EAAI,EAIJoG,MAAQA,GAAS,IAAJA,EAAS,CACxB,IAAKnG,EAAI,EAAG1D,EAAI6J,EAAG7J,GAAK,GAAIA,GAAK,GAAI0D,GAGrC,OAFAtB,GAAEsB,EAAIA,OACNtB,EAAErC,GAAK8J,IAIF,MAAQ,GAAJA,IAAU,GACdA,IAAGzH,EAAEqB,EAAIM,KACd3B,EAAEsB,EAAIK,SACN3B,EAAErC,EAAI,OAID4G,EAAavE,EAAGyH,EAAErH,YAEpB,GAAU,WAANqD,EACT,KAAMjF,OAAMC,GAAkBgJ,EAWhC,OAPwB,MAApBA,EAAE9C,WAAW,IACf8C,EAAIA,EAAExF,MAAM,GACZjC,EAAEqB,EAAI,IAENrB,EAAEqB,EAAI,EAGD8G,GAAUhD,KAAKsC,GAAKlD,EAAavE,EAAGyH,GAAK7C,EAAW5E,EAAGyH,GA1EhE,GAAI7J,GAAGoH,EAAG0C,CAoIV,IAvDAnC,EAAQ6C,UAAYC,GAEpB9C,EAAQ+C,SAAW,EACnB/C,EAAQgD,WAAa,EACrBhD,EAAQiD,WAAa,EACrBjD,EAAQkD,YAAc,EACtBlD,EAAQmD,cAAgB,EACxBnD,EAAQoD,gBAAkB,EAC1BpD,EAAQqD,gBAAkB,EAC1BrD,EAAQsD,gBAAkB,EAC1BtD,EAAQuD,iBAAmB,EAC3BvD,EAAQwD,OAAS,EAEjBxD,EAAQ+B,OAASA,EACjB/B,EAAQ2C,MAAQA,EAEhB3C,EAAQlB,IAAMA,EACdkB,EAAQsB,KAAOA,EACftB,EAAQuB,MAAQA,EAChBvB,EAAQwB,IAAMA,EACdxB,EAAQyB,KAAOA,EACfzB,EAAQ0B,MAAQA,EAChB1B,EAAQ2B,KAAOA,EACf3B,EAAQ4B,MAAQA,EAChB5B,EAAQ6B,MAAQA,EAChB7B,EAAQ8B,KAAOA,EACf9B,EAAQtG,KAAOA,EACfsG,EAAQyC,IAAMA,EACdzC,EAAQ0C,KAAOA,EACf1C,EAAQyD,IAAMA,EACdzD,EAAQ0D,IAAMA,EACd1D,EAAQ2D,MAAQA,EAChB3D,EAAQ4D,SAAWA,EACnB5D,EAAQ6D,MAAQA,EAChB7D,EAAQ8D,GAAKA,EACb9D,EAAQ1B,IAAMA,EACd0B,EAAQ+D,MAAQA,EAChB/D,EAAQgE,KAAOA,EACfhE,EAAQhH,IAAMA,EACdgH,EAAQjH,IAAMA,EACdiH,EAAQiE,IAAMA,EACdjE,EAAQkE,IAAMA,EACdlE,EAAQpF,IAAMA,GACdoF,EAAQmE,OAASA,GACjBnE,EAAQoE,MAAQA,GAChBpE,EAAQqE,KAAOA,GACfrE,EAAQsE,IAAMA,GACdtE,EAAQuE,KAAOA,GACfvE,EAAQE,KAAOA,GACfF,EAAQwE,IAAMA,GACdxE,EAAQyE,IAAMA,GACdzE,EAAQ0E,KAAOA,GACf1E,EAAQ2E,MAAQA,GAEJ,SAAR3C,IAAgBA,MAChBA,EAEF,IADAG,GAAM,YAAa,WAAY,WAAY,WAAY,OAAQ,OAAQ,SAAU,UAC5E9J,EAAI,EAAGA,EAAI8J,EAAG1J,QAAcuJ,EAAIK,eAAe5C,EAAI0C,EAAG9J,QAAO2J,EAAIvC,GAAK4B,KAAK5B,GAKlF,OAFAO,GAAQ+B,OAAOC,GAERhC,EAYT,QAASyD,GAAIhJ,EAAGC,GACd,MAAO,IAAI2G,MAAK5G,GAAGgJ,IAAI/I,GAWzB,QAASgJ,GAAIjJ,GACX,MAAO,IAAI4G,MAAK5G,GAAGiJ,MAUrB,QAASC,GAAMlJ,GACb,MAAOW,GAASX,EAAI,GAAI4G,MAAK5G,GAAIA,EAAEsB,EAAI,EAAG,GAoB5C,QAAS6H,GAASlL,GAChB,GAAIqD,GAAG2E,EAAOpI,EAAGiF,CAEjB,IAAmB,gBAAR7E,KAAqBA,EAAK,KAAMO,OAAMC,GAAkBR,EAKnE,IAJAJ,EAAII,EAAID,OACR8E,EAAIpD,GAASC,QAAQ1B,EAAI2B,OAAO,IAGtB,IAAN/B,EACF,MAAO,IAAI+I,MAAK9D,EAAI,IAAM,GAAK,EAAG,EAAI,EAAG,KAAOA,EAAI,IAAMA,EAAI,KAAOA,EAAI,IAAMA,EAC1E,IAAQ,GAAJA,EACTmD,EAAY,GAAJnD,EAGRxB,EAAI2E,GAAa,EAAJnD,GAAS,GAAS,GAAJA,GAAU,EACrCjF,EAAI,MACC,CAAA,GAAU,IAANA,EAIT,MAHAiF,GAAQ,GAAJA,EAASpD,GAASC,QAAQ1B,EAAI2B,OAAO,IAGlC,GAAIgH,MAAK9D,GAAK,OAASA,EAAI,MAAQ,GAAKA,EAAI,GAQnD,IAHAmD,EAAY,GAAJnD,IAGA,GAAJA,GAqBF,MADA7E,GAAMkB,EAAYlB,EAAIgE,MAAM,GAAI,GAAI,IAAIkI,KAAK,IACtC,GAAIvD,MAAKX,EAAQ,IAAMhI,EAAMA,EApBpCqD,GAAQ,GAAJwB,EACJjF,EAAIyD,EAAI,EAGNA,EADQ,IAANA,EACE5B,GAASC,QAAQ1B,EAAI2B,OAAO,IACjB,IAAN0B,EAC6B,GAAlC5B,GAASC,QAAQ1B,EAAI2B,OAAO,IAC9BF,GAASC,QAAQ1B,EAAI2B,OAAO,KAEzBT,EAAYlB,EAAIgE,MAAM,EAAGpE,GAAI,GAAI,IAAIsM,KAAK,IAIzC,GAAJrH,IAAQxB,GAAKA,GAerB,MAJArD,GAAMkB,EAAYlB,EAAIgE,MAAMpE,GAAI,GAAI,IAAIsM,KAAK,IAC7C7I,EAAIA,EAAIrD,EAAID,OAAS,EACrBC,EAAMA,EAAM,IAAMqD,EAEX,GAAIsF,MAAKX,EAAQ,IAAMhI,EAAMA,GAWtC,QAASmL,KACP,GAAIxL,GAAGkF,EACLW,EAAI,GAAImD,MAAK,EAIf,KAFAnF,IAAW,EAEN7D,EAAI,EAAGA,EAAIwM,UAAUpM,QAExB,GADA8E,EAAI,GAAI8D,MAAKwD,UAAUxM,MAClBkF,EAAEnF,EAMI8F,EAAE9F,IACX8F,EAAIA,EAAE/C,KAAKoC,EAAEvC,MAAMuC,SAPX,CACR,GAAIA,EAAEzB,EAEJ,MADAI,KAAW,EACJ,GAAImF,MAAK,EAAI,EAEtBnD,GAAIX,EAQR,MAFArB,KAAW,EAEJgC,EAAEgC,OAWX,QAAS4D,GAAGrJ,GACV,MAAO,IAAI4G,MAAK5G,GAAGqJ,KAcrB,QAASxF,GAAI7D,EAAGC,GACd,MAAO,IAAI2G,MAAK5G,GAAG6D,IAAI5D,GAWzB,QAASsJ,GAAKvJ,GACZ,MAAO,IAAI4G,MAAK5G,GAAG6D,IAAI,GAWzB,QAASyF,GAAMtJ,GACb,MAAO,IAAI4G,MAAK5G,GAAG6D,IAAI,IAUzB,QAAStF,KACP,MAAO2E,GAAS0D,KAAMwD,UAAW,MAUnC,QAAS9L,KACP,MAAO4E,GAAS0D,KAAMwD,UAAW,MAYnC,QAASZ,GAAIxJ,EAAGC,GACd,MAAO,IAAI2G,MAAK5G,GAAGwJ,IAAIvJ,GAYzB,QAASwJ,GAAIzJ,EAAGC,GACd,MAAO,IAAI2G,MAAK5G,GAAGyJ,IAAIxJ,GAYzB,QAASE,IAAIH,EAAGC,GACd,MAAO,IAAI2G,MAAK5G,GAAGG,IAAIF,GAYzB,QAASyJ,IAAO9I,GACd,GAAIjD,GAAG2D,EAAGzD,EAAGiF,EACXlF,EAAI,EACJkB,EAAI,GAAI8H,MAAK,GACb7H,IAOF,IALW,SAAP6B,EAAeA,EAAKgG,KAAKvG,UACxBhC,EAAWuC,EAAI,EAAG6F,IAEvB5I,EAAImB,KAAKC,KAAK2B,EAAKzC,IAEfyI,KAAKyD,UAAW,EAClB,KAAWxM,EAAJD,GAAQmB,EAAGnB,KAAuB,IAAhBoB,KAAK0K,SAAiB,MAG1C,IAAI7B,IAAgBA,GAAaC,gBAGtC,IAFAnK,EAAIkK,GAAaC,gBAAgB,GAAIwC,aAAYzM,IAEtCA,EAAJD,GACLkF,EAAInF,EAAEC,GAIFkF,GAAK,MACPnF,EAAEC,GAAKiK,GAAaC,gBAAgB,GAAIwC,aAAY,IAAI,GAKxDvL,EAAGnB,KAAOkF,EAAI,QAKb,IAAI+E,IAAgBA,GAAaE,YAAa,CAKnD,IAFApK,EAAIkK,GAAaE,YAAYlK,GAAK,GAEvBA,EAAJD,GAGLkF,EAAInF,EAAEC,IAAMD,EAAEC,EAAI,IAAM,IAAMD,EAAEC,EAAI,IAAM,MAAmB,IAAXD,EAAEC,EAAI,KAAc,IAGlEkF,GAAK,MACP+E,GAAaE,YAAY,GAAGwC,KAAK5M,EAAGC,IAKpCmB,EAAGqC,KAAK0B,EAAI,KACZlF,GAAK,EAITA,GAAIC,EAAI,MACH,CAAA,GAAI+I,KAAKyD,OACd,KAAM7L,OAAMgJ,GAAe,qBAE3B,MAAW3J,EAAJD,GAAQmB,EAAGnB,KAAuB,IAAhBoB,KAAK0K,SAAiB,EAajD,IAVA7L,EAAIkB,IAAKnB,GACTgD,GAAMzC,GAGFN,GAAK+C,IACPkC,EAAI5D,GAAQ,GAAIf,GAAWyC,GAC3B7B,EAAGnB,IAAMC,EAAIiF,EAAI,GAAKA,GAIP,IAAV/D,EAAGnB,GAAUA,IAAKmB,EAAGyC,KAG5B,IAAQ,EAAJ5D,EACF0D,EAAI,EACJvC,GAAM,OACD,CAIL,IAHAuC,EAAI,GAGa,IAAVvC,EAAG,GAAUuC,GAAKnD,GAAUY,EAAGyL,OAGtC,KAAK3M,EAAI,EAAGiF,EAAI/D,EAAG,GAAI+D,GAAK,GAAIA,GAAK,GAAIjF,GAGjCM,IAAJN,IAAcyD,GAAKnD,GAAWN,GAMpC,MAHAiB,GAAEwC,EAAIA,EACNxC,EAAEnB,EAAIoB,EAECD,EAYT,QAAS6K,IAAM3J,GACb,MAAOW,GAASX,EAAI,GAAI4G,MAAK5G,GAAIA,EAAEsB,EAAI,EAAGsF,KAAKhD,UAajD,QAASgG,IAAK5J,GAEZ,MADAA,GAAI,GAAI4G,MAAK5G,GACNA,EAAErC,EAAKqC,EAAErC,EAAE,GAAKqC,EAAEqB,EAAI,EAAIrB,EAAEqB,EAAKrB,EAAEqB,GAAKM,IAWjD,QAASkI,IAAI7J,GACX,MAAO,IAAI4G,MAAK5G,GAAG6J,MAWrB,QAASC,IAAK9J,GACZ,MAAO,IAAI4G,MAAK5G,GAAG8J,OAWrB,QAASrE,IAAKzF,GACZ,MAAO,IAAI4G,MAAK5G,GAAGyF,OAYrB,QAASsE,IAAI/J,EAAGC,GACd,MAAO,IAAI2G,MAAK5G,GAAG+J,IAAI9J,GAWzB,QAAS+J,IAAIhK,GACX,MAAO,IAAI4G,MAAK5G,GAAGgK,MAWrB,QAASC,IAAKjK,GACZ,MAAO,IAAI4G,MAAK5G,GAAGiK,OAUrB,QAASC,IAAMlK,GACb,MAAOW,GAASX,EAAI,GAAI4G,MAAK5G,GAAIA,EAAEsB,EAAI,EAAG,GAz1J5C,GAmFEoF,IAAS+D,GAAYpE,GAnFnBsB,GAAY,KAIdlB,GAAa,IAIb/G,GAAW,2FAGX6C,GAAO,qgCAGPG,GAAK,qgCAIL6C,IAOElF,UAAW,GAiBXuD,SAAU,EAeV8G,OAAQ,EAIRC,SAAU,GAIVC,SAAW,GAIXhJ,MAAO+F,GAIPjG,KAAMiG,GAGN0C,OAAQ,QAQVxC,GAAgC,mBAAVwC,QAAwBA,OAAS,KACvD5I,IAAW,EAEX+F,GAAe,kBACf/I,GAAkB+I,GAAe,qBACjClF,GAAyBkF,GAAe,2BAExCxE,GAAYhE,KAAKkK,MACjBhK,GAAUF,KAAKmB,IAEfkF,GAAW,6CACXH,GAAQ,yDACRI,GAAU,gDACV6C,GAAY,qCAEZ5G,GAAO,IACPpD,GAAW,EACX0M,GAAmB,iBAEnBxI,GAAiBE,GAAKvE,OAAS,EAC/ByE,GAAeC,GAAG1E,OAAS,EAG3BqK,KA0EFA,IAAEyC,cAAgBzC,GAAEhE,IAAM,WACxB,GAAIrE,GAAI,GAAI4G,MAAK1F,YAAY0F,KAE7B,OADI5G,GAAEqB,EAAI,IAAGrB,EAAEqB,EAAI,GACZV,EAASX,IASlBqI,GAAEpJ,KAAO,WACP,MAAO0B,GAAS,GAAIiG,MAAK1F,YAAY0F,MAAOA,KAAKtF,EAAI,EAAG,IAY1D+G,GAAE0C,WAAa1C,GAAE2C,IAAM,SAAU/K,GAC/B,GAAIrC,GAAG0B,EAAG2L,EAAKC,EACblL,EAAI4G,KACJ5F,EAAKhB,EAAErC,EACPwN,GAAMlL,EAAI,GAAID,GAAEkB,YAAYjB,IAAItC,EAChCyN,EAAKpL,EAAEqB,EACPgK,EAAKpL,EAAEoB,CAGT,KAAKL,IAAOmK,EACV,MAAQC,IAAOC,EAAWD,IAAOC,EAAKD,EAAKpK,IAAOmK,EAAK,GAAKnK,EAAU,EAALoK,EAAS,EAAI,GAA1DzJ,GAItB,KAAKX,EAAG,KAAOmK,EAAG,GAAI,MAAOnK,GAAG,GAAKoK,EAAKD,EAAG,IAAME,EAAK,CAGxD,IAAID,IAAOC,EAAI,MAAOD,EAGtB,IAAIpL,EAAEsB,IAAMrB,EAAEqB,EAAG,MAAOtB,GAAEsB,EAAIrB,EAAEqB,EAAS,EAAL8J,EAAS,EAAI,EAMjD,KAJAH,EAAMjK,EAAGhD,OACTkN,EAAMC,EAAGnN,OAGJJ,EAAI,EAAG0B,EAAU4L,EAAND,EAAYA,EAAMC,EAAS5L,EAAJ1B,IAASA,EAC9C,GAAIoD,EAAGpD,KAAOuN,EAAGvN,GAAI,MAAOoD,GAAGpD,GAAKuN,EAAGvN,GAAU,EAALwN,EAAS,EAAI,EAI3D,OAAOH,KAAQC,EAAM,EAAID,EAAMC,EAAW,EAALE,EAAS,EAAI,IAiBpD/C,GAAEvI,OAASuI,GAAEL,IAAM,WACjB,GAAI5F,GAAIzD,EACNqB,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,OAAKlB,GAAErC,EAGFqC,EAAErC,EAAE,IAETyE,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACV7D,EAAKM,UAAY+B,EAAKpD,KAAKT,IAAIyB,EAAEsB,EAAGtB,EAAEY,MAAQzC,GAC9C4B,EAAK6D,SAAW,EAEhB5D,EAAIF,EAAOC,EAAMiG,EAAiBjG,EAAMC,IAExCD,EAAKM,UAAY+B,EACjBrC,EAAK6D,SAAWjF,EAETgC,EAAqB,GAAZ0F,IAA6B,GAAZA,GAAgBrG,EAAEsL,MAAQtL,EAAGoC,EAAIzD,GAAI,IAZlD,GAAIoB,GAAK,GAHZ,GAAIA,GAAK4B,MAmC5B0G,GAAEkD,SAAWlD,GAAEhB,KAAO,WACpB,GAAI/F,GAAGkK,EAAG1I,EAAGhE,EAAG6E,EAAKtC,EAAGT,EAAI6C,EAAGgI,EAAIC,EACjC1L,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,KAAKlB,EAAE+B,YAAc/B,EAAEuG,SAAU,MAAO,IAAIxG,GAAKC,EAoCjD,KAnCAyB,IAAW,EAGXJ,EAAIrB,EAAEqB,EAAIrC,KAAKmB,IAAIH,EAAEqB,EAAIrB,EAAG,EAAI,GAI3BqB,GAAKrC,KAAKqF,IAAIhD,IAAM,EAAI,EAqB3BvC,EAAI,GAAIiB,GAAKsB,EAAEjB,aApBf0C,EAAIpF,EAAesC,EAAErC,GACrB2D,EAAItB,EAAEsB,GAGFD,GAAKC,EAAIwB,EAAE9E,OAAS,GAAK,KAAG8E,GAAW,GAALzB,GAAe,IAALA,EAAU,IAAM,MAChEA,EAAIrC,KAAKmB,IAAI2C,EAAG,EAAI,GAGpBxB,EAAI0B,IAAW1B,EAAI,GAAK,IAAMA,EAAI,IAAU,EAAJA,EAAQ,GAAK,IAEjDD,GAAK,EAAI,EACXyB,EAAI,KAAOxB,GAEXwB,EAAIzB,EAAEsK,gBACN7I,EAAIA,EAAEb,MAAM,EAAGa,EAAEnD,QAAQ,KAAO,GAAK2B,GAGvCxC,EAAI,GAAIiB,GAAK+C,GACbhE,EAAEuC,EAAIrB,EAAEqB,GAKVT,GAAMU,EAAIvB,EAAKM,WAAa,IAW1B,GANAoD,EAAI3E,EACJ2M,EAAKhI,EAAElD,MAAMkD,GAAGlD,MAAMkD,GACtBiI,EAAUD,EAAG/K,KAAKV,GAClBlB,EAAIgF,GAAO4H,EAAQhL,KAAKV,GAAGO,MAAMkD,GAAIiI,EAAQhL,KAAK+K,GAAK7K,EAAK,EAAG,GAG3DlD,EAAe+F,EAAE9F,GAAGsE,MAAM,EAAGrB,MAASkC,EAAIpF,EAAeoB,EAAEnB,IAAIsE,MAAM,EAAGrB,GAAK,CAK/E,GAJAkC,EAAIA,EAAEb,MAAMrB,EAAK,EAAGA,EAAK,GAIhB,QAALkC,IAAgBa,GAAY,QAALb,GAepB,IAICA,KAAOA,EAAEb,MAAM,IAAqB,KAAfa,EAAElD,OAAO,MAGlCe,EAAS7B,EAAGwC,EAAI,EAAG,GACnBkK,GAAK1M,EAAEyB,MAAMzB,GAAGyB,MAAMzB,GAAG8M,GAAG5L,GAG9B,OAtBA,IAAK2D,IACHhD,EAAS8C,EAAGnC,EAAI,EAAG,GAEfmC,EAAElD,MAAMkD,GAAGlD,MAAMkD,GAAGmI,GAAG5L,IAAI,CAC7BlB,EAAI2E,CACJ,OAIJ7C,GAAM,EACN+C,EAAM,EAmBZ,MAFAlC,KAAW,EAEJd,EAAS7B,EAAGwC,EAAGvB,EAAK6D,SAAU4H,IAQvCnD,GAAEwD,cAAgBxD,GAAEyD,GAAK,WACvB,GAAI5N,GACFP,EAAIiJ,KAAKjJ,EACTmF,EAAInB,GAEN,IAAIhE,EAAG,CAML,GALAO,EAAIP,EAAEK,OAAS,EACf8E,GAAK5E,EAAI8E,GAAU4D,KAAKtF,EAAInD,KAAaA,GAGzCD,EAAIP,EAAEO,GACC,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAI4E,GAC5B,GAAJA,IAAOA,EAAI,GAGjB,MAAOA,IAyBTuF,GAAE0D,UAAY1D,GAAEW,IAAM,SAAU/I,GAC9B,MAAO6D,IAAO8C,KAAM,GAAIA,MAAK1F,YAAYjB,KAS3CoI,GAAE2D,mBAAqB3D,GAAE/B,SAAW,SAAUrG,GAC5C,GAAID,GAAI4G,KACN7G,EAAOC,EAAEkB,WACX,OAAOP,GAASmD,GAAO9D,EAAG,GAAID,GAAKE,GAAI,EAAG,EAAG,GAAIF,EAAKM,UAAWN,EAAK6D,WAQxEyE,GAAE4D,OAAS5D,GAAEuD,GAAK,SAAU3L,GAC1B,MAAuB,KAAhB2G,KAAKoE,IAAI/K,IASlBoI,GAAEa,MAAQ,WACR,MAAOvI,GAAS,GAAIiG,MAAK1F,YAAY0F,MAAOA,KAAKtF,EAAI,EAAG,IAS1D+G,GAAE6D,YAAc7D,GAAE8D,GAAK,SAAUlM,GAC/B,MAAO2G,MAAKoE,IAAI/K,GAAK,GASvBoI,GAAE+D,qBAAuB/D,GAAEgE,IAAM,SAAUpM,GACzC,GAAIpC,GAAI+I,KAAKoE,IAAI/K,EACjB,OAAY,IAALpC,GAAgB,IAANA,GA6BnBwK,GAAEiE,iBAAmBjE,GAAEJ,KAAO,WAC5B,GAAIpK,GAAGiF,EAAGV,EAAIzD,EAAIuB,EAChBF,EAAI4G,KACJ7G,EAAOC,EAAEkB,YACTqL,EAAM,GAAIxM,GAAK,EAEjB,KAAKC,EAAE+B,WAAY,MAAO,IAAIhC,GAAKC,EAAEqB,EAAI,EAAI,EAAIM,IACjD,IAAI3B,EAAEuG,SAAU,MAAOgG,EAEvBnK,GAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACV7D,EAAKM,UAAY+B,EAAKpD,KAAKT,IAAIyB,EAAEsB,EAAGtB,EAAEY,MAAQ,EAC9Cb,EAAK6D,SAAW,EAChB1D,EAAMF,EAAErC,EAAEK,OAOA,GAANkC,GACFrC,EAAImB,KAAKC,KAAKiB,EAAM,GACpB4C,EAAI9D,KAAKmB,IAAI,GAAItC,GAAGuC,aAEpBvC,EAAI,GACJiF,EAAI,gCAGN9C,EAAIM,EAAaP,EAAM,EAAGC,EAAEO,MAAMuC,GAAI,GAAI/C,GAAK,IAAI,EAMnD,KAHA,GAAIyM,GACF5O,EAAIC,EACJ4O,EAAK,GAAI1M,GAAK,GACTnC,KACL4O,EAAUxM,EAAEO,MAAMP,GAClBA,EAAIuM,EAAI9L,MAAM+L,EAAQjM,MAAMkM,EAAGhM,MAAM+L,EAAQjM,MAAMkM,KAGrD,OAAO9L,GAASX,EAAGD,EAAKM,UAAY+B,EAAIrC,EAAK6D,SAAWjF,GAAI,IAkC9D0J,GAAEqE,eAAiBrE,GAAEyB,KAAO,WAC1B,GAAIjM,GAAGuE,EAAIzD,EAAIuB,EACbF,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,KAAKlB,EAAE+B,YAAc/B,EAAEuG,SAAU,MAAO,IAAIxG,GAAKC,EAQjD,IANAoC,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACV7D,EAAKM,UAAY+B,EAAKpD,KAAKT,IAAIyB,EAAEsB,EAAGtB,EAAEY,MAAQ,EAC9Cb,EAAK6D,SAAW,EAChB1D,EAAMF,EAAErC,EAAEK,OAEA,EAANkC,EACFF,EAAIM,EAAaP,EAAM,EAAGC,EAAGA,GAAG,OAC3B,CAWLnC,EAAI,IAAMmB,KAAKyG,KAAKvF,GACpBrC,EAAIA,EAAI,GAAK,GAAS,EAAJA,EAElBmC,EAAIA,EAAEO,MAAMvB,KAAKmB,IAAI,GAAItC,IAEzBmC,EAAIM,EAAaP,EAAM,EAAGC,EAAGA,GAAG,EAOhC,KAJA,GAAI2M,GACFhH,EAAK,GAAI5F,GAAK,GACd6F,EAAM,GAAI7F,GAAK,IACf8F,EAAM,GAAI9F,GAAK,IACVlC,KACL8O,EAAU3M,EAAEO,MAAMP,GAClBA,EAAIA,EAAEO,MAAMoF,EAAGjF,KAAKiM,EAAQpM,MAAMqF,EAAIrF,MAAMoM,GAASjM,KAAKmF,MAO9D,MAHA9F,GAAKM,UAAY+B,EACjBrC,EAAK6D,SAAWjF,EAETgC,EAASX,EAAGoC,EAAIzD,GAAI,IAoB7B0J,GAAEuE,kBAAoBvE,GAAE4B,KAAO,WAC7B,GAAI7H,GAAIzD,EACNqB,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,OAAKlB,GAAE+B,WACH/B,EAAEuG,SAAiB,GAAIxG,GAAKC,IAEhCoC,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACV7D,EAAKM,UAAY+B,EAAK,EACtBrC,EAAK6D,SAAW,EAETE,GAAO9D,EAAE8J,OAAQ9J,EAAEiI,OAAQlI,EAAKM,UAAY+B,EAAIrC,EAAK6D,SAAWjF,IAR7C,GAAIoB,GAAKC,EAAEqB,IA+BvCgH,GAAEwE,cAAgBxE,GAAExB,KAAO,WACzB,GAAIV,GACFnG,EAAI4G,KACJ7G,EAAOC,EAAEkB,YACTrD,EAAImC,EAAEqE,MAAM2G,IAAI,GAChB5I,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,QAEZ,OAAU,KAAN/F,EACW,IAANA,EAEHmC,EAAEiG,QAAUzD,EAAMzC,EAAMqC,EAAIzD,GAAM,GAAIoB,GAAK,GAE3C,GAAIA,GAAK4B,KAGX3B,EAAEuG,SAAiB/D,EAAMzC,EAAMqC,EAAK,EAAGzD,GAAI4B,MAAM,KAIrDR,EAAKM,UAAY+B,EAAK,EACtBrC,EAAK6D,SAAW,EAEhB5D,EAAIA,EAAEgH,OACNb,EAAS3D,EAAMzC,EAAMqC,EAAK,EAAGzD,GAAI4B,MAAM,IAEvCR,EAAKM,UAAY+B,EACjBrC,EAAK6D,SAAWjF,EAETwH,EAAO1F,MAAMT,KAuBtBqI,GAAEyE,wBAA0BzE,GAAEvB,MAAQ,WACpC,GAAI1E,GAAIzD,EACNqB,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,OAAIlB,GAAEoG,IAAI,GAAW,GAAIrG,GAAKC,EAAE4L,GAAG,GAAK,EAAIjK,KACvC3B,EAAE+B,YAEPK,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACV7D,EAAKM,UAAY+B,EAAKpD,KAAKT,IAAIS,KAAKqF,IAAIrE,EAAEsB,GAAItB,EAAEY,MAAQ,EACxDb,EAAK6D,SAAW,EAChBnC,IAAW,EAEXzB,EAAIA,EAAEO,MAAMP,GAAGS,MAAM,GAAGgF,OAAO/E,KAAKV,GAEpCyB,IAAW,EACX1B,EAAKM,UAAY+B,EACjBrC,EAAK6D,SAAWjF,EAETqB,EAAEqJ,MAdiB,GAAItJ,GAAKC,IAkCrCqI,GAAE0E,sBAAwB1E,GAAEpB,MAAQ,WAClC,GAAI7E,GAAIzD,EACNqB,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,QAAKlB,EAAE+B,YAAc/B,EAAEuG,SAAiB,GAAIxG,GAAKC,IAEjDoC,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACV7D,EAAKM,UAAY+B,EAAK,EAAIpD,KAAKT,IAAIS,KAAKqF,IAAIrE,EAAEsB,GAAItB,EAAEY,MAAQ,EAC5Db,EAAK6D,SAAW,EAChBnC,IAAW,EAEXzB,EAAIA,EAAEO,MAAMP,GAAGU,KAAK,GAAG+E,OAAO/E,KAAKV,GAEnCyB,IAAW,EACX1B,EAAKM,UAAY+B,EACjBrC,EAAK6D,SAAWjF,EAETqB,EAAEqJ,OAuBXhB,GAAE2E,yBAA2B3E,GAAElB,MAAQ,WACrC,GAAI/E,GAAIzD,EAAI+E,EAAKuJ,EACfjN,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,OAAKlB,GAAE+B,WACH/B,EAAEsB,GAAK,EAAU,GAAIvB,GAAKC,EAAEqE,MAAMuH,GAAG,GAAK5L,EAAEqB,EAAI,EAAIrB,EAAEuG,SAAWvG,EAAI2B,MAEzES,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACVqJ,EAAMjN,EAAEY,KAEJ5B,KAAKT,IAAI0O,EAAK7K,GAAM,GAAKpC,EAAEsB,EAAI,EAAUX,EAAS,GAAIZ,GAAKC,GAAIoC,EAAIzD,GAAI,IAE3EoB,EAAKM,UAAYqD,EAAMuJ,EAAMjN,EAAEsB,EAE/BtB,EAAI8D,GAAO9D,EAAEU,KAAK,GAAI,GAAIX,GAAK,GAAGU,MAAMT,GAAI0D,EAAMtB,EAAI,GAEtDrC,EAAKM,UAAY+B,EAAK,EACtBrC,EAAK6D,SAAW,EAEhB5D,EAAIA,EAAEqJ,KAENtJ,EAAKM,UAAY+B,EACjBrC,EAAK6D,SAAWjF,EAETqB,EAAEO,MAAM,MArBW,GAAIR,GAAK4B,MA8CrC0G,GAAE6E,YAAc7E,GAAErB,KAAO,WACvB,GAAIb,GAAQtI,EACVuE,EAAIzD,EACJqB,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,OAAIlB,GAAEuG,SAAiB,GAAIxG,GAAKC,IAEhCnC,EAAImC,EAAEqE,MAAM2G,IAAI,GAChB5I,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SAEA,KAAN/F,EAGQ,IAANA,GACFsI,EAAS3D,EAAMzC,EAAMqC,EAAK,EAAGzD,GAAI4B,MAAM,IACvC4F,EAAO9E,EAAIrB,EAAEqB,EACN8E,GAIF,GAAIpG,GAAK4B,MAKlB5B,EAAKM,UAAY+B,EAAK,EACtBrC,EAAK6D,SAAW,EAEhB5D,EAAIA,EAAEgJ,IAAI,GAAIjJ,GAAK,GAAGU,MAAMT,EAAEO,MAAMP,IAAIyF,OAAO/E,KAAK,IAAIwG,OAExDnH,EAAKM,UAAY+B,EACjBrC,EAAK6D,SAAWjF,EAETqB,EAAEO,MAAM,MAsBjB8H,GAAE8E,eAAiB9E,GAAEnB,KAAO,WAC1B,GAAItJ,GAAG0B,EAAGzB,EAAGiF,EAAGsK,EAAI3J,EAAG3E,EAAG4E,EAAKU,EAC7BpE,EAAI4G,KACJ7G,EAAOC,EAAEkB,YACTkB,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,QAEZ,IAAK5D,EAAE+B,WAOA,CAAA,GAAI/B,EAAEuG,SACX,MAAO,IAAIxG,GAAKC,EACX,IAAIA,EAAEqE,MAAMuH,GAAG,IAAgBnJ,IAAVL,EAAK,EAG/B,MAFAtD,GAAI0D,EAAMzC,EAAMqC,EAAK,EAAGzD,GAAI4B,MAAM,KAClCzB,EAAEuC,EAAIrB,EAAEqB,EACDvC,MAZU,CACjB,IAAKkB,EAAEqB,EAAG,MAAO,IAAItB,GAAK4B,IAC1B,IAAcc,IAAVL,EAAK,EAGP,MAFAtD,GAAI0D,EAAMzC,EAAMqC,EAAK,EAAGzD,GAAI4B,MAAM,IAClCzB,EAAEuC,EAAIrB,EAAEqB,EACDvC,EAqBX,IAXAiB,EAAKM,UAAYqD,EAAMtB,EAAK,GAC5BrC,EAAK6D,SAAW,EAQhB/F,EAAImB,KAAKV,IAAI,GAAIoF,EAAMvF,GAAW,EAAI,GAEjCP,EAAIC,EAAGD,IAAKA,EAAGoC,EAAIA,EAAEgJ,IAAIhJ,EAAEO,MAAMP,GAAGU,KAAK,GAAG+E,OAAO/E,KAAK,GAW7D,KATAe,IAAW,EAEXnC,EAAIN,KAAKC,KAAKyE,EAAMvF,IACpB2E,EAAI,EACJsB,EAAKpE,EAAEO,MAAMP,GACblB,EAAI,GAAIiB,GAAKC,GACboN,EAAKpN,EAGQ,KAANpC,GAOL,GANAwP,EAAKA,EAAG7M,MAAM6D,GACdX,EAAI3E,EAAE2B,MAAM2M,EAAGpE,IAAIlG,GAAK,IAExBsK,EAAKA,EAAG7M,MAAM6D,GACdtF,EAAI2E,EAAE/C,KAAK0M,EAAGpE,IAAIlG,GAAK,IAER,SAAXhE,EAAEnB,EAAE2B,GAAe,IAAK1B,EAAI0B,EAAGR,EAAEnB,EAAEC,KAAO6F,EAAE9F,EAAEC,IAAMA,MAO1D,MAJIC,KAAGiB,EAAIA,EAAEyB,MAAM,GAAM1C,EAAI,IAE7B4D,IAAW,EAEJd,EAAS7B,EAAGiB,EAAKM,UAAY+B,EAAIrC,EAAK6D,SAAWjF,GAAI,IAQ9D0J,GAAEtG,SAAW,WACX,QAAS6E,KAAKjJ,GAQhB0K,GAAEgF,UAAYhF,GAAEiF,MAAQ,WACtB,QAAS1G,KAAKjJ,GAAKqF,GAAU4D,KAAKtF,EAAInD,IAAYyI,KAAKjJ,EAAEK,OAAS,GAQpEqK,GAAEkF,MAAQ,WACR,OAAQ3G,KAAKvF,GAQfgH,GAAEmF,WAAanF,GAAEpC,MAAQ,WACvB,MAAOW,MAAKvF,EAAI,GAQlBgH,GAAEoF,WAAapF,GAAEqF,MAAQ,WACvB,MAAO9G,MAAKvF,EAAI,GAQlBgH,GAAE9B,OAAS,WACT,QAASK,KAAKjJ,GAAmB,IAAdiJ,KAAKjJ,EAAE,IAQ5B0K,GAAEsF,SAAWtF,GAAEuF,GAAK,SAAU3N,GAC5B,MAAO2G,MAAKoE,IAAI/K,GAAK,GAQvBoI,GAAEwF,kBAAoBxF,GAAEjC,IAAM,SAAUnG,GACtC,MAAO2G,MAAKoE,IAAI/K,GAAK,GAkCvBoI,GAAEyF,UAAYzF,GAAExE,IAAM,SAAUgB,GAC9B,GAAIkJ,GAAUpQ,EAAG2F,EAAazF,EAAGmQ,EAAKC,EAAKrN,EAAI9B,EAC7CoP,EAAMtH,KACN7G,EAAOmO,EAAIhN,YACXkB,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACVL,EAAQ,CAGV,IAAY,MAARsB,EACFA,EAAO,GAAI9E,GAAK,IAChBgO,GAAW,MACN,CAKL,GAJAlJ,EAAO,GAAI9E,GAAK8E,GAChBlH,EAAIkH,EAAKlH,EAGLkH,EAAKxD,EAAI,IAAM1D,IAAMA,EAAE,IAAMkH,EAAK+G,GAAG,GAAI,MAAO,IAAI7L,GAAK4B,IAE7DoM,GAAWlJ,EAAK+G,GAAG,IAMrB,GAHAjO,EAAIuQ,EAAIvQ,EAGJuQ,EAAI7M,EAAI,IAAM1D,IAAMA,EAAE,IAAMuQ,EAAItC,GAAG,GACrC,MAAO,IAAI7L,GAAKpC,IAAMA,EAAE,GAAK,GAAK,EAAa,GAATuQ,EAAI7M,EAASM,IAAMhE,EAAI,EAAI,EAAI,EAKvE,IAAIoQ,EACF,GAAIpQ,EAAEK,OAAS,EACbgQ,GAAM,MACD,CACL,IAAKnQ,EAAIF,EAAE,GAAIE,EAAI,KAAO,GAAIA,GAAK,EACnCmQ,GAAY,IAANnQ,EA0BV,GAtBA4D,IAAW,EACXb,EAAKwB,EAAKmB,EACV0K,EAAMlK,EAAiBmK,EAAKtN,GAC5B0C,EAAcyK,EAAW5L,EAAQpC,EAAMa,EAAK,IAAMmD,EAAiBc,EAAMjE,GAGzE9B,EAAIgF,GAAOmK,EAAK3K,EAAa1C,EAAI,GAgB7BlC,EAAoBI,EAAEnB,EAAGE,EAAIuE,EAAIzD,GAEnC,EAME,IALAiC,GAAM,GACNqN,EAAMlK,EAAiBmK,EAAKtN,GAC5B0C,EAAcyK,EAAW5L,EAAQpC,EAAMa,EAAK,IAAMmD,EAAiBc,EAAMjE,GACzE9B,EAAIgF,GAAOmK,EAAK3K,EAAa1C,EAAI,IAE5BoN,EAAK,EAGHtQ,EAAeoB,EAAEnB,GAAGsE,MAAMpE,EAAI,EAAGA,EAAI,IAAM,GAAK,OACnDiB,EAAI6B,EAAS7B,EAAGsD,EAAK,EAAG,GAG1B,aAEK1D,EAAoBI,EAAEnB,EAAGE,GAAK,GAAIc,GAK7C,OAFA8C,KAAW,EAEJd,EAAS7B,EAAGsD,EAAIzD,IAiDzB0J,GAAE5H,MAAQ4H,GAAE0B,IAAM,SAAU9J,GAC1B,GAAItC,GAAG2D,EAAG1D,EAAG0B,EAAGzB,EAAGqC,EAAKkC,EAAIzD,EAAIqC,EAAIiE,EAAIkJ,EAAMhD,EAC5CnL,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAKX,IAHAjB,EAAI,GAAIF,GAAKE,IAGRD,EAAErC,IAAMsC,EAAEtC,EAab,MAVKqC,GAAEqB,GAAMpB,EAAEoB,EAGNrB,EAAErC,EAAGsC,EAAEoB,GAAKpB,EAAEoB,EAKlBpB,EAAI,GAAIF,GAAKE,EAAEtC,GAAKqC,EAAEqB,IAAMpB,EAAEoB,EAAIrB,EAAI2B,KARzB1B,EAAI,GAAIF,GAAK4B,KAUxB1B,CAIT,IAAID,EAAEqB,GAAKpB,EAAEoB,EAEX,MADApB,GAAEoB,GAAKpB,EAAEoB,EACFrB,EAAEU,KAAKT,EAShB,IANAe,EAAKhB,EAAErC,EACPwN,EAAKlL,EAAEtC,EACPyE,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,UAGL5C,EAAG,KAAOmK,EAAG,GAAI,CAGpB,GAAIA,EAAG,GAAIlL,EAAEoB,GAAKpB,EAAEoB,MAGf,CAAA,IAAIL,EAAG,GAIP,MAAO,IAAIjB,GAAY,IAAPpB,GAAY,EAAI,EAJrBsB,GAAI,GAAIF,GAAKC,GAM7B,MAAOyB,IAAWd,EAASV,EAAGmC,EAAIzD,GAAMsB,EAa1C,GAPAqB,EAAI0B,GAAU/C,EAAEqB,EAAInD,IACpB8G,EAAKjC,GAAUhD,EAAEsB,EAAInD,IAErB6C,EAAKA,EAAGiB,QACRpE,EAAIoH,EAAK3D,EAGF,CAyBL,IAxBA6M,EAAW,EAAJtQ,EAEHsQ,GACFxQ,EAAIqD,EACJnD,GAAKA,EACLqC,EAAMiL,EAAGnN,SAETL,EAAIwN,EACJ7J,EAAI2D,EACJ/E,EAAMc,EAAGhD,QAMXJ,EAAIoB,KAAKT,IAAIS,KAAKC,KAAKmD,EAAKjE,IAAW+B,GAAO,EAE1CrC,EAAID,IACNC,EAAID,EACJD,EAAEK,OAAS,GAIbL,EAAEkC,UACGjC,EAAIC,EAAGD,KAAMD,EAAEyD,KAAK,EACzBzD,GAAEkC,cAGG,CASL,IALAjC,EAAIoD,EAAGhD,OACPkC,EAAMiL,EAAGnN,OACTmQ,EAAWjO,EAAJtC,EACHuQ,IAAMjO,EAAMtC,GAEXA,EAAI,EAAOsC,EAAJtC,EAASA,IACnB,GAAIoD,EAAGpD,IAAMuN,EAAGvN,GAAI,CAClBuQ,EAAOnN,EAAGpD,GAAKuN,EAAGvN,EAClB,OAIJC,EAAI,EAcN,IAXIsQ,IACFxQ,EAAIqD,EACJA,EAAKmK,EACLA,EAAKxN,EACLsC,EAAEoB,GAAKpB,EAAEoB,GAGXnB,EAAMc,EAAGhD,OAIJJ,EAAIuN,EAAGnN,OAASkC,EAAKtC,EAAI,IAAKA,EAAGoD,EAAGd,KAAS,CAGlD,KAAKtC,EAAIuN,EAAGnN,OAAQJ,EAAIC,GAAI,CAE1B,GAAImD,IAAKpD,GAAKuN,EAAGvN,GAAI,CACnB,IAAK0B,EAAI1B,EAAG0B,GAAiB,IAAZ0B,IAAK1B,IAAW0B,EAAG1B,GAAKiC,GAAO,IAC9CP,EAAG1B,GACL0B,EAAGpD,IAAM2D,GAGXP,EAAGpD,IAAMuN,EAAGvN,GAId,KAAqB,IAAdoD,IAAKd,IAAac,EAAGQ,KAG5B,MAAiB,IAAVR,EAAG,GAAUA,EAAGwJ,UAAWlJ,CAGlC,OAAKN,GAAG,IAERf,EAAEtC,EAAIqD,EACNf,EAAEqB,EAAIY,EAAkBlB,EAAIM,GAErBG,GAAWd,EAASV,EAAGmC,EAAIzD,GAAMsB,GALrB,GAAIF,GAAY,IAAPpB,GAAY,EAAI,IAiC9C0J,GAAEqC,OAASrC,GAAEmB,IAAM,SAAUvJ,GAC3B,GAAImO,GACFpO,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAKX,OAHAjB,GAAI,GAAIF,GAAKE,IAGRD,EAAErC,IAAMsC,EAAEoB,GAAKpB,EAAEtC,IAAMsC,EAAEtC,EAAE,GAAW,GAAIoC,GAAK4B,MAG/C1B,EAAEtC,GAAKqC,EAAErC,IAAMqC,EAAErC,EAAE,GACfgD,EAAS,GAAIZ,GAAKC,GAAID,EAAKM,UAAWN,EAAK6D,WAIpDnC,IAAW,EAEQ,GAAf1B,EAAK2K,QAIP0D,EAAItK,GAAO9D,EAAGC,EAAEoE,MAAO,EAAG,EAAG,GAC7B+J,EAAE/M,GAAKpB,EAAEoB,GAET+M,EAAItK,GAAO9D,EAAGC,EAAG,EAAGF,EAAK2K,OAAQ,GAGnC0D,EAAIA,EAAE7N,MAAMN,GAEZwB,IAAW,EAEJzB,EAAES,MAAM2N,KAUjB/F,GAAEhF,mBAAqBgF,GAAEY,IAAM,WAC7B,MAAO5F,GAAmBuD,OAS5ByB,GAAEtE,iBAAmBsE,GAAEgB,GAAK,WAC1B,MAAOtF,GAAiB6C,OAS1ByB,GAAEgG,QAAUhG,GAAEiD,IAAM,WAClB,GAAItL,GAAI,GAAI4G,MAAK1F,YAAY0F,KAE7B,OADA5G,GAAEqB,GAAKrB,EAAEqB,EACFV,EAASX,IAyBlBqI,GAAE3H,KAAO2H,GAAEtB,IAAM,SAAU9G,GACzB,GAAIqO,GAAO3Q,EAAG2D,EAAG1D,EAAGC,EAAGqC,EAAKkC,EAAIzD,EAAIqC,EAAImK,EACtCnL,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAKX,IAHAjB,EAAI,GAAIF,GAAKE,IAGRD,EAAErC,IAAMsC,EAAEtC,EAWb,MARKqC,GAAEqB,GAAMpB,EAAEoB,EAMLrB,EAAErC,IAAGsC,EAAI,GAAIF,GAAKE,EAAEtC,GAAKqC,EAAEqB,IAAMpB,EAAEoB,EAAIrB,EAAI2B,MANnC1B,EAAI,GAAIF,GAAK4B,KAQxB1B,CAIT,IAAID,EAAEqB,GAAKpB,EAAEoB,EAEX,MADApB,GAAEoB,GAAKpB,EAAEoB,EACFrB,EAAES,MAAMR,EASjB,IANAe,EAAKhB,EAAErC,EACPwN,EAAKlL,EAAEtC,EACPyE,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,UAGL5C,EAAG,KAAOmK,EAAG,GAMhB,MAFKA,GAAG,KAAIlL,EAAI,GAAIF,GAAKC,IAElByB,GAAWd,EAASV,EAAGmC,EAAIzD,GAAMsB,CAa1C,IAPApC,EAAImF,GAAUhD,EAAEsB,EAAInD,IACpBmD,EAAI0B,GAAU/C,EAAEqB,EAAInD,IAEpB6C,EAAKA,EAAGiB,QACRrE,EAAIC,EAAIyD,EAGD,CAuBL,IArBQ,EAAJ1D,GACFD,EAAIqD,EACJpD,GAAKA,EACLsC,EAAMiL,EAAGnN,SAETL,EAAIwN,EACJ7J,EAAIzD,EACJqC,EAAMc,EAAGhD,QAIXH,EAAImB,KAAKC,KAAKmD,EAAKjE,IACnB+B,EAAMrC,EAAIqC,EAAMrC,EAAI,EAAIqC,EAAM,EAE1BtC,EAAIsC,IACNtC,EAAIsC,EACJvC,EAAEK,OAAS,GAIbL,EAAEkC,UACKjC,KAAMD,EAAEyD,KAAK,EACpBzD,GAAEkC,UAeJ,IAZAK,EAAMc,EAAGhD,OACTJ,EAAIuN,EAAGnN,OAGO,EAAVkC,EAAMtC,IACRA,EAAIsC,EACJvC,EAAIwN,EACJA,EAAKnK,EACLA,EAAKrD,GAIF2Q,EAAQ,EAAG1Q,GACd0Q,GAAStN,IAAKpD,GAAKoD,EAAGpD,GAAKuN,EAAGvN,GAAK0Q,GAAS/M,GAAO,EACnDP,EAAGpD,IAAM2D,EAUX,KAPI+M,IACFtN,EAAG2F,QAAQ2H,KACThN,GAKCpB,EAAMc,EAAGhD,OAAqB,GAAbgD,IAAKd,IAAYc,EAAGQ,KAK1C,OAHAvB,GAAEtC,EAAIqD,EACNf,EAAEqB,EAAIY,EAAkBlB,EAAIM,GAErBG,GAAWd,EAASV,EAAGmC,EAAIzD,GAAMsB,GAU1CoI,GAAEhI,UAAYgI,GAAEzH,GAAK,SAAU2N,GAC7B,GAAI1Q,GACFmC,EAAI4G,IAEN,IAAU,SAAN2H,GAAgBA,MAAQA,GAAW,IAANA,GAAiB,IAANA,EAAS,KAAM/P,OAAMC,GAAkB8P,EASnF,OAPIvO,GAAErC,GACJE,EAAI8E,EAAa3C,EAAErC,GACf4Q,GAAKvO,EAAEsB,EAAI,EAAIzD,IAAGA,EAAImC,EAAEsB,EAAI,IAEhCzD,EAAI8D,IAGC9D,GASTwK,GAAEsB,MAAQ,WACR,GAAI3J,GAAI4G,KACN7G,EAAOC,EAAEkB,WAEX,OAAOP,GAAS,GAAIZ,GAAKC,GAAIA,EAAEsB,EAAI,EAAGvB,EAAK6D,WAmB7CyE,GAAE7C,KAAO6C,GAAEwB,IAAM,WACf,GAAIzH,GAAIzD,EACNqB,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,OAAKlB,GAAE+B,WACH/B,EAAEuG,SAAiB,GAAIxG,GAAKC,IAEhCoC,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACV7D,EAAKM,UAAY+B,EAAKpD,KAAKT,IAAIyB,EAAEsB,EAAGtB,EAAEY,MAAQzC,GAC9C4B,EAAK6D,SAAW,EAEhB5D,EAAIwF,EAAKzF,EAAMiG,EAAiBjG,EAAMC,IAEtCD,EAAKM,UAAY+B,EACjBrC,EAAK6D,SAAWjF,EAETgC,EAAS0F,GAAW,EAAIrG,EAAEsL,MAAQtL,EAAGoC,EAAIzD,GAAI,IAb1B,GAAIoB,GAAK4B,MA6BrC0G,GAAEmG,WAAanG,GAAE5C,KAAO,WACtB,GAAI+F,GAAG1I,EAAGlC,EAAI9B,EAAG6E,EAAKF,EACpBzD,EAAI4G,KACJjJ,EAAIqC,EAAErC,EACN2D,EAAItB,EAAEsB,EACND,EAAIrB,EAAEqB,EACNtB,EAAOC,EAAEkB,WAGX,IAAU,IAANG,IAAY1D,IAAMA,EAAE,GACtB,MAAO,IAAIoC,IAAMsB,GAAS,EAAJA,KAAW1D,GAAKA,EAAE,IAAMgE,IAAMhE,EAAIqC,EAAI,EAAI,EAgClE,KA7BAyB,IAAW,EAGXJ,EAAIrC,KAAKyG,MAAMzF,GAIN,GAALqB,GAAUA,GAAK,EAAI,GACrByB,EAAIpF,EAAeC,IAEdmF,EAAE9E,OAASsD,GAAK,GAAK,IAAGwB,GAAK,KAClCzB,EAAIrC,KAAKyG,KAAK3C,GACdxB,EAAI0B,IAAW1B,EAAI,GAAK,IAAU,EAAJA,GAASA,EAAI,GAEvCD,GAAK,EAAI,EACXyB,EAAI,KAAOxB,GAEXwB,EAAIzB,EAAEsK,gBACN7I,EAAIA,EAAEb,MAAM,EAAGa,EAAEnD,QAAQ,KAAO,GAAK2B,GAGvCxC,EAAI,GAAIiB,GAAK+C,IAEbhE,EAAI,GAAIiB,GAAKsB,EAAEjB,YAGjBQ,GAAMU,EAAIvB,EAAKM,WAAa,IAQ1B,GAJAoD,EAAI3E,EACJA,EAAI2E,EAAE/C,KAAKoD,GAAO9D,EAAGyD,EAAG7C,EAAK,EAAG,IAAIL,MAAM,IAGtC7C,EAAe+F,EAAE9F,GAAGsE,MAAM,EAAGrB,MAASkC,EAAIpF,EAAeoB,EAAEnB,IAAIsE,MAAM,EAAGrB,GAAK,CAK/E,GAJAkC,EAAIA,EAAEb,MAAMrB,EAAK,EAAGA,EAAK,GAIhB,QAALkC,IAAgBa,GAAY,QAALb,GAepB,IAICA,KAAOA,EAAEb,MAAM,IAAqB,KAAfa,EAAElD,OAAO,MAGlCe,EAAS7B,EAAGwC,EAAI,EAAG,GACnBkK,GAAK1M,EAAEyB,MAAMzB,GAAG8M,GAAG5L,GAGrB,OAtBA,IAAK2D,IACHhD,EAAS8C,EAAGnC,EAAI,EAAG,GAEfmC,EAAElD,MAAMkD,GAAGmI,GAAG5L,IAAI,CACpBlB,EAAI2E,CACJ,OAIJ7C,GAAM,EACN+C,EAAM,EAmBZ,MAFAlC,KAAW,EAEJd,EAAS7B,EAAGwC,EAAGvB,EAAK6D,SAAU4H,IAiBvCnD,GAAEoG,QAAUpG,GAAE2B,IAAM,WAClB,GAAI5H,GAAIzD,EACNqB,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAEX,OAAKlB,GAAE+B,WACH/B,EAAEuG,SAAiB,GAAIxG,GAAKC,IAEhCoC,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SACV7D,EAAKM,UAAY+B,EAAK,GACtBrC,EAAK6D,SAAW,EAEhB5D,EAAIA,EAAE6J,MACN7J,EAAEqB,EAAI,EACNrB,EAAI8D,GAAO9D,EAAG,GAAID,GAAK,GAAGU,MAAMT,EAAEO,MAAMP,IAAIyF,OAAQrD,EAAK,GAAI,GAE7DrC,EAAKM,UAAY+B,EACjBrC,EAAK6D,SAAWjF,EAETgC,EAAqB,GAAZ0F,IAA6B,GAAZA,GAAgBrG,EAAEsL,MAAQtL,EAAGoC,EAAIzD,GAAI,IAf5C,GAAIoB,GAAK4B,MAwCrC0G,GAAE9H,MAAQ8H,GAAEoB,IAAM,SAAUxJ,GAC1B,GAAIqO,GAAOhN,EAAG1D,EAAGC,EAAGiB,EAAG4P,EAAIjL,EAAGwH,EAAKC,EACjClL,EAAI4G,KACJ7G,EAAOC,EAAEkB,YACTF,EAAKhB,EAAErC,EACPwN,GAAMlL,EAAI,GAAIF,GAAKE,IAAItC,CAKzB,IAHAsC,EAAEoB,GAAKrB,EAAEqB,IAGJL,GAAOA,EAAG,IAAOmK,GAAOA,EAAG,IAE9B,MAAO,IAAIpL,IAAME,EAAEoB,GAAKL,IAAOA,EAAG,KAAOmK,GAAMA,IAAOA,EAAG,KAAOnK,EAI5DW,IAICX,GAAOmK,EAAqB,EAANlL,EAAEoB,EAAZpB,EAAEoB,EAAI,EAoBzB,KAjBAC,EAAI0B,GAAUhD,EAAEsB,EAAInD,IAAY6E,GAAU/C,EAAEqB,EAAInD,IAChD8M,EAAMjK,EAAGhD,OACTkN,EAAMC,EAAGnN,OAGCkN,EAAND,IACFnM,EAAIkC,EACJA,EAAKmK,EACLA,EAAKrM,EACL4P,EAAKzD,EACLA,EAAMC,EACNA,EAAMwD,GAIR5P,KACA4P,EAAKzD,EAAMC,EACNtN,EAAI8Q,EAAI9Q,KAAMkB,EAAEsC,KAAK,EAG1B,KAAKxD,EAAIsN,IAAOtN,GAAK,GAAI,CAEvB,IADA0Q,EAAQ,EACHzQ,EAAIoN,EAAMrN,EAAGC,EAAID,GACpB6F,EAAI3E,EAAEjB,GAAKsN,EAAGvN,GAAKoD,EAAGnD,EAAID,EAAI,GAAK0Q,EACnCxP,EAAEjB,KAAO4F,EAAIlC,GAAO,EACpB+M,EAAQ7K,EAAIlC,GAAO,CAGrBzC,GAAEjB,IAAMiB,EAAEjB,GAAKyQ,GAAS/M,GAAO,EAIjC,MAAQzC,IAAI4P,IAAM5P,EAAE0C,KAMpB,KAJI8M,IAAShN,EACRxC,EAAE0L,QAGF5M,EAAIkB,EAAEd,QAASc,IAAIlB,IAAKkB,EAAE0C,KAK/B,OAHAvB,GAAEtC,EAAImB,EACNmB,EAAEqB,EAAIY,EAAkBpD,EAAGwC,GAEpBG,GAAWd,EAASV,EAAGF,EAAKM,UAAWN,EAAK6D,UAAY3D,GAcjEoI,GAAEsG,SAAW,SAAU/N,EAAIjC,GACzB,MAAO6H,GAAeI,KAAM,EAAGhG,EAAIjC,IAcrC0J,GAAEuG,gBAAkBvG,GAAEwG,KAAO,SAAU/C,EAAInN,GACzC,GAAIqB,GAAI4G,KACN7G,EAAOC,EAAEkB,WAGX,OADAlB,GAAI,GAAID,GAAKC,GACF,SAAP8L,EAAsB9L,GAE1B3B,EAAWyN,EAAI,EAAGrF,IAEP,SAAP9H,EAAeA,EAAKoB,EAAK6D,SACxBvF,EAAWM,EAAI,EAAG,GAEhBgC,EAASX,EAAG8L,EAAK9L,EAAEsB,EAAI,EAAG3C,KAYnC0J,GAAEsD,cAAgB,SAAUG,EAAInN,GAC9B,GAAIV,GACF+B,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAcX,OAZW,UAAP4K,EACF7N,EAAM4D,EAAe7B,GAAG,IAExB3B,EAAWyN,EAAI,EAAGrF,IAEP,SAAP9H,EAAeA,EAAKoB,EAAK6D,SACxBvF,EAAWM,EAAI,EAAG,GAEvBqB,EAAIW,EAAS,GAAIZ,GAAKC,GAAI8L,EAAK,EAAGnN,GAClCV,EAAM4D,EAAe7B,GAAG,EAAM8L,EAAK,IAG9B9L,EAAEiG,UAAYjG,EAAEuG,SAAW,IAAMtI,EAAMA,GAoBhDoK,GAAEyG,QAAU,SAAUhD,EAAInN,GACxB,GAAIV,GAAKgC,EACPD,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAgBX,OAdW,UAAP4K,EACF7N,EAAM4D,EAAe7B,IAErB3B,EAAWyN,EAAI,EAAGrF,IAEP,SAAP9H,EAAeA,EAAKoB,EAAK6D,SACxBvF,EAAWM,EAAI,EAAG,GAEvBsB,EAAIU,EAAS,GAAIZ,GAAKC,GAAI8L,EAAK9L,EAAEsB,EAAI,EAAG3C,GACxCV,EAAM4D,EAAe5B,GAAG,EAAO6L,EAAK7L,EAAEqB,EAAI,IAKrCtB,EAAEiG,UAAYjG,EAAEuG,SAAW,IAAMtI,EAAMA,GAehDoK,GAAE0G,WAAa,SAAUC,GACvB,GAAIrR,GAAGsR,EAAIC,EAAIC,EAAI7N,EAAGzD,EAAGiF,EAAGsM,EAAIC,EAAIjN,EAAIgM,EAAGtP,EACzCkB,EAAI4G,KACJ5F,EAAKhB,EAAErC,EACPoC,EAAOC,EAAEkB,WAEX,KAAKF,EAAI,MAAO,IAAIjB,GAAKC,EAUzB,IARAqP,EAAKJ,EAAK,GAAIlP,GAAK,GACnBmP,EAAKE,EAAK,GAAIrP,GAAK,GAEnBpC,EAAI,GAAIoC,GAAKmP,GACb5N,EAAI3D,EAAE2D,EAAIqB,EAAa3B,GAAMhB,EAAEsB,EAAI,EACnCzD,EAAIyD,EAAInD,GACRR,EAAEA,EAAE,GAAKuB,GAAQ,GAAQ,EAAJrB,EAAQM,GAAWN,EAAIA,GAEhC,MAARmR,EAGFA,EAAO1N,EAAI,EAAI3D,EAAI0R,MACd,CAEL,GADAvM,EAAI,GAAI/C,GAAKiP,IACRlM,EAAEwK,SAAWxK,EAAE8K,GAAGyB,GAAK,KAAM7Q,OAAMC,GAAkBqE,EAC1DkM,GAAOlM,EAAEqJ,GAAGxO,GAAM2D,EAAI,EAAI3D,EAAI0R,EAAMvM,EAQtC,IALArB,IAAW,EACXqB,EAAI,GAAI/C,GAAKrC,EAAesD,IAC5BoB,EAAKrC,EAAKM,UACVN,EAAKM,UAAYiB,EAAIN,EAAGhD,OAASG,GAAW,EAG1CiQ,EAAItK,GAAOhB,EAAGnF,EAAG,EAAG,EAAG,GACvBwR,EAAKF,EAAGvO,KAAK0N,EAAE7N,MAAM2O,IACD,GAAhBC,EAAGnE,IAAIgE,IACXC,EAAKC,EACLA,EAAKC,EACLA,EAAKE,EACLA,EAAKD,EAAG1O,KAAK0N,EAAE7N,MAAM4O,IACrBC,EAAKD,EACLA,EAAKxR,EACLA,EAAImF,EAAErC,MAAM2N,EAAE7N,MAAM4O,IACpBrM,EAAIqM,CAeN,OAZAA,GAAKrL,GAAOkL,EAAKvO,MAAMwO,GAAKC,EAAI,EAAG,EAAG,GACtCE,EAAKA,EAAG1O,KAAKyO,EAAG5O,MAAM8O,IACtBJ,EAAKA,EAAGvO,KAAKyO,EAAG5O,MAAM2O,IACtBE,EAAG/N,EAAIgO,EAAGhO,EAAIrB,EAAEqB,EAGhBvC,EAAIgF,GAAOuL,EAAIH,EAAI5N,EAAG,GAAGb,MAAMT,GAAGqE,MAAM2G,IAAIlH,GAAOsL,EAAIH,EAAI3N,EAAG,GAAGb,MAAMT,GAAGqE,OAAS,GAC5EgL,EAAIH,IAAOE,EAAIH,GAEtBlP,EAAKM,UAAY+B,EACjBX,IAAW,EAEJ3C,GAcTuJ,GAAEiH,cAAgBjH,GAAEkH,MAAQ,SAAU3O,EAAIjC,GACxC,MAAO6H,GAAeI,KAAM,GAAIhG,EAAIjC,IA+CrC0J,GAAEmH,OAAS,WACV,GAAIhQ,GAAK8B,EAAG1D,EAAGC,EAAGqC,EAAK4C,EAAGhE,EAAGb,EAC3B+B,EAAI4G,KACJX,EAAQjG,EAAEqB,EAAI,CAGhB,KAAKrB,EAAErC,EAAG,MAAO+B,IAASE,OAAOI,EAAEqB,EAAI4E,EAAQ,GAAK,GAAK,GAIzD,IAHA3E,EAAItB,EAAEsB,EAGa,IAAftB,EAAErC,EAAEK,QAAoB,EAAJsD,GAASA,GAAK,IACpCwB,EAAI9C,EAAErC,EAAE,GAEA,KAAJmF,GAIF,MAAQ,IAAJA,EAAepD,GAASE,OAAOqG,EAAQnD,EAAI,GAAKA,IAQpDA,GAAK,GACDmD,IAAOnD,GAAK,MAChBjF,EAAIiF,EAAI,GAAK,EAENpD,GAASE,OAAO/B,GAAK6B,GAASE,OAAOkD,EAAQ,GAAJjF,GAUpD,IANAI,EAAMP,EAAesC,EAAErC,GACvBmB,EAAI,IAKCmH,GAAc,GAAL3E,GAAUA,GAAK,GAC3BzD,EAAI,GAAKyD,EAAI,MAIR,IAAI2E,GAAc,GAAL3E,GAAUA,GAAK,GACjCzD,EAAI,GAAUyD,EAAI,MAIb,IAAIrD,EAAID,SAAWsD,EAAI,EAC5BzD,EAAI,GAAKoI,MAUT,IAJApI,EAAI,GAAKoI,EAAQ,IAAU,EAAJ3E,GACvBA,EAAItC,KAAKqF,IAAI/C,GAGL,GAAJA,EACFzD,GAAK,EACLiB,EAAIY,GAASE,OAAO0B,OAIf,IAAQ,KAAJA,EACTzD,GAAK,EACLiF,EAAIxB,EAAI,GAAK,EACbxC,EAAIY,GAASE,OAAOkD,GAAKpD,GAASE,OAAO0B,EAAQ,GAAJwB,OAO7C,KAHAtD,EAAML,EAAYmF,OAAOhD,GAAI,GAAI,IACjCpB,EAAMV,EAAIxB,OACVH,GAAKqC,EACAtC,EAAI,EAAOsC,EAAJtC,EAASA,IAAKkB,GAAKY,GAASE,OAAOJ,EAAI5B,GAYvD,KALAkB,EAAIY,GAASE,OAAO/B,GAAKiB,EACzBU,EAAML,EAAYlB,EAAK,GAAI,IAC3BiC,EAAMV,EAAIxB,OAGLJ,EAAI,EAAOsC,EAAJtC,EAASA,IAAKkB,GAAKY,GAASE,OAAOJ,EAAI5B,GAEnD,OAAOkB,IA0BTuJ,GAAEoH,UAAY,SAAUxP,EAAGtB,GACzB,GAAIqB,GAAI4G,KACN7G,EAAOC,EAAEkB,WAIX,IAFAlB,EAAI,GAAID,GAAKC,GAEJ,MAALC,EAAW,CAGb,IAAKD,EAAErC,EAAG,MAAOqC,EAEjBC,GAAI,GAAIF,GAAK,GACbpB,EAAKoB,EAAK6D,aACL,CAKL,GAJA3D,EAAI,GAAIF,GAAKE,GACF,SAAPtB,GAAeN,EAAWM,EAAI,EAAG,IAGhCqB,EAAErC,EAAG,MAAOsC,GAAEoB,EAAIrB,EAAIC,CAG3B,KAAKA,EAAEtC,EAEL,MADIsC,GAAEoB,IAAGpB,EAAEoB,EAAIrB,EAAEqB,GACVpB,EAkBX,MAbIA,GAAEtC,EAAE,IACN8D,IAAW,EACF,EAAL9C,IAAQA,GAAM,EAAG,EAAG,EAAG,GAAGA,IAC9BqB,EAAI8D,GAAO9D,EAAGC,EAAG,EAAGtB,EAAI,GAAG4B,MAAMN,GACjCwB,IAAW,EACXd,EAASX,KAITC,EAAEoB,EAAIrB,EAAEqB,EACRrB,EAAIC,GAGCD,GASTqI,GAAEqH,SAAW,WACX,OAAQ9I,MAcVyB,GAAEsH,QAAU,SAAU/O,EAAIjC,GACxB,MAAO6H,GAAeI,KAAM,EAAGhG,EAAIjC,IA+CrC0J,GAAEuH,QAAUvH,GAAElI,IAAM,SAAUF,GAC5B,GAAIqB,GAAGzD,EAAGuE,EAAItD,EAAGH,EAAIiL,EAAMiG,EACzB7P,EAAI4G,KACJ7G,EAAOC,EAAEkB,YACT4O,IAAO7P,EAAI,GAAIF,GAAKE,GAGtB,MAAKD,EAAErC,GAAMsC,EAAEtC,GAAMqC,EAAErC,EAAE,IAAOsC,EAAEtC,EAAE,IAAI,MAAQ,IAAIoC,GAAKb,IAASc,EAAG8P,GAIrE,IAFA9P,EAAI,GAAID,GAAKC,GAETA,EAAE4L,GAAG,GAAI,MAAO5L,EAKpB,IAHAoC,EAAKrC,EAAKM,UACV1B,EAAKoB,EAAK6D,SAEN3D,EAAE2L,GAAG,GAAI,MAAOjL,GAASX,EAAGoC,EAAIzD,EAOpC,IALA2C,EAAI0B,GAAU/C,EAAEqB,EAAInD,IACpBN,EAAIoC,EAAEtC,EAAEK,OAAS,EACjB6R,EAASvO,GAAKzD,EACd+L,EAAO5J,EAAEqB,EAEJwO,GAIE,IAAKhS,EAAS,EAALiS,GAAUA,EAAKA,IAAOjF,GAEpC,MADA/L,GAAI+D,EAAO9C,EAAMC,EAAGnC,EAAGuE,GAChBnC,EAAEoB,EAAI,EAAI,GAAItB,GAAK,GAAGiJ,IAAIlK,GAAK6B,EAAS7B,EAAGsD,EAAIzD,OALtD,IAAW,EAAPiL,EAAU,MAAO,IAAI7J,GAAK4B,IAuBhC,OAdAiI,GAAc,EAAPA,GAAkC,EAAtB3J,EAAEtC,EAAEqB,KAAKT,IAAI+C,EAAGzD,IAAU,GAAK,EAMlDA,EAAIqB,IAASc,EAAG8P,GAChBxO,EAAS,GAALzD,GAAWkE,SAASlE,GAEpB,GAAIkC,GAAKlC,EAAI,IAAIyD,EADjB0B,GAAU8M,GAAM9Q,KAAK6E,IAAI,KAAOnG,EAAesC,EAAErC,IAAMqB,KAAKuD,KAAOvC,EAAEsB,EAAI,IAMzEA,EAAIvB,EAAK2B,KAAO,GAAKJ,EAAIvB,EAAK6B,KAAO,EAAU,GAAI7B,GAAKuB,EAAI,EAAIsI,EAAO,EAAI,IAE/EnI,IAAW,EACX1B,EAAK6D,SAAW5D,EAAEqB,EAAI,EAMtBxD,EAAImB,KAAKV,IAAI,IAAKgD,EAAI,IAAItD,QAG1Bc,EAAIuE,EAAmBpD,EAAEM,MAAMwD,EAAiB/D,EAAGoC,EAAKvE,IAAKuE,GAG7DtD,EAAI6B,EAAS7B,EAAGsD,EAAK,EAAG,GAIpB1D,EAAoBI,EAAEnB,EAAGyE,EAAIzD,KAC/B2C,EAAIc,EAAK,GAGTtD,EAAI6B,EAAS0C,EAAmBpD,EAAEM,MAAMwD,EAAiB/D,EAAGsB,EAAIzD,IAAKyD,GAAIA,EAAI,EAAG,IAG3E5D,EAAeoB,EAAEnB,GAAGsE,MAAMG,EAAK,EAAGA,EAAK,IAAM,GAAK,OACrDtD,EAAI6B,EAAS7B,EAAGsD,EAAK,EAAG,KAI5BtD,EAAEuC,EAAIuI,EACNnI,IAAW,EACX1B,EAAK6D,SAAWjF,EAETgC,EAAS7B,EAAGsD,EAAIzD,KAezB0J,GAAE0H,YAAc,SAAUnP,EAAIjC,GAC5B,GAAIV,GACF+B,EAAI4G,KACJ7G,EAAOC,EAAEkB,WAcX,OAZW,UAAPN,EACF3C,EAAM4D,EAAe7B,EAAGA,EAAEsB,GAAKvB,EAAK4K,UAAY3K,EAAEsB,GAAKvB,EAAK6K,WAE5DvM,EAAWuC,EAAI,EAAG6F,IAEP,SAAP9H,EAAeA,EAAKoB,EAAK6D,SACxBvF,EAAWM,EAAI,EAAG,GAEvBqB,EAAIW,EAAS,GAAIZ,GAAKC,GAAIY,EAAIjC,GAC9BV,EAAM4D,EAAe7B,EAAGY,GAAMZ,EAAEsB,GAAKtB,EAAEsB,GAAKvB,EAAK4K,SAAU/J,IAGtDZ,EAAEiG,UAAYjG,EAAEuG,SAAW,IAAMtI,EAAMA,GAkBhDoK,GAAE2H,oBAAsB3H,GAAE4H,KAAO,SAAUrP,EAAIjC,GAC7C,GAAIqB,GAAI4G,KACN7G,EAAOC,EAAEkB,WAYX,OAVW,UAAPN,GACFA,EAAKb,EAAKM,UACV1B,EAAKoB,EAAK6D,WAEVvF,EAAWuC,EAAI,EAAG6F,IAEP,SAAP9H,EAAeA,EAAKoB,EAAK6D,SACxBvF,EAAWM,EAAI,EAAG,IAGlBgC,EAAS,GAAIZ,GAAKC,GAAIY,EAAIjC,IAWnC0J,GAAEjI,SAAW,WACX,GAAIJ,GAAI4G,KACN7G,EAAOC,EAAEkB,YACTjD,EAAM4D,EAAe7B,EAAGA,EAAEsB,GAAKvB,EAAK4K,UAAY3K,EAAEsB,GAAKvB,EAAK6K,SAE9D,OAAO5K,GAAEiG,UAAYjG,EAAEuG,SAAW,IAAMtI,EAAMA,GAQhDoK,GAAE6H,UAAY7H,GAAE6B,MAAQ,WACtB,MAAOvJ,GAAS,GAAIiG,MAAK1F,YAAY0F,MAAOA,KAAKtF,EAAI,EAAG,IAS1D+G,GAAE8H,QAAU,WACV,GAAInQ,GAAI4G,KACN7G,EAAOC,EAAEkB,YACTjD,EAAM4D,EAAe7B,EAAGA,EAAEsB,GAAKvB,EAAK4K,UAAY3K,EAAEsB,GAAKvB,EAAK6K,SAE9D,OAAO5K,GAAEiG,QAAU,IAAMhI,EAAMA,EA6NjC,IAAI6F,IAAS,WAGX,QAASsM,GAAgBpQ,EAAGnC,EAAGgH,GAC7B,GAAIwL,GACF/B,EAAQ,EACR1Q,EAAIoC,EAAEhC,MAER,KAAKgC,EAAIA,EAAEiC,QAASrE,KAClByS,EAAOrQ,EAAEpC,GAAKC,EAAIyQ,EAClBtO,EAAEpC,GAAKyS,EAAOxL,EAAO,EACrByJ,EAAQ+B,EAAOxL,EAAO,CAKxB,OAFIyJ,IAAOtO,EAAE2G,QAAQ2H,GAEdtO,EAGT,QAASsQ,GAAQC,EAAGC,EAAGC,EAAIC,GACzB,GAAI9S,GAAGkB,CAEP,IAAI2R,GAAMC,EACR5R,EAAI2R,EAAKC,EAAK,EAAI,OAElB,KAAK9S,EAAIkB,EAAI,EAAO2R,EAAJ7S,EAAQA,IACtB,GAAI2S,EAAE3S,IAAM4S,EAAE5S,GAAI,CAChBkB,EAAIyR,EAAE3S,GAAK4S,EAAE5S,GAAK,EAAI,EACtB,OAKN,MAAOkB,GAGT,QAAS6R,GAASJ,EAAGC,EAAGC,EAAI5L,GAI1B,IAHA,GAAIjH,GAAI,EAGD6S,KACLF,EAAEE,IAAO7S,EACTA,EAAI2S,EAAEE,GAAMD,EAAEC,GAAM,EAAI,EACxBF,EAAEE,GAAM7S,EAAIiH,EAAO0L,EAAEE,GAAMD,EAAEC,EAI/B,OAAQF,EAAE,IAAMA,EAAEvS,OAAS,GAAIuS,EAAE/F,QAGnC,MAAO,UAAUxK,EAAGC,EAAGmC,EAAIzD,EAAImN,EAAIjH,GACjC,GAAImG,GAAK1J,EAAG1D,EAAGC,EAAG+S,EAASC,EAAMC,EAAMC,EAAO3C,EAAG4C,EAAIC,EAAKC,EAAMC,EAAMvQ,EAAI6C,EAAG2N,EAAIC,EAAIC,EACnFC,EAAIC,EACJzR,EAAOC,EAAEkB,YACT0I,EAAO5J,EAAEqB,GAAKpB,EAAEoB,EAAI,EAAI,GACxBL,EAAKhB,EAAErC,EACPwN,EAAKlL,EAAEtC,CAGT,MAAKqD,GAAOA,EAAG,IAAOmK,GAAOA,EAAG,IAE9B,MAAO,IAAIpL,GACRC,EAAEqB,GAAMpB,EAAEoB,IAAML,GAAKmK,GAAMnK,EAAG,IAAMmK,EAAG,GAAMA,GAG9CnK,GAAe,GAATA,EAAG,KAAYmK,EAAY,EAAPvB,EAAWA,EAAO,EAHQjI,IAsBxD,KAhBIkD,GACF+L,EAAU,EACVtP,EAAItB,EAAEsB,EAAIrB,EAAEqB,IAEZuD,EAAOtD,GACPqP,EAAUzS,GACVmD,EAAI0B,GAAUhD,EAAEsB,EAAIsP,GAAW5N,GAAU/C,EAAEqB,EAAIsP,IAGjDW,EAAKpG,EAAGnN,OACRqT,EAAKrQ,EAAGhD,OACRoQ,EAAI,GAAIrO,GAAK6J,GACboH,EAAK5C,EAAEzQ,KAIFC,EAAI,EAAGuN,EAAGvN,KAAOoD,EAAGpD,IAAM,GAAIA,KAanC,GAXIuN,EAAGvN,IAAMoD,EAAGpD,IAAM,IAAI0D,IAEhB,MAANc,GACFxB,EAAKwB,EAAKrC,EAAKM,UACf1B,EAAKoB,EAAK6D,UAEVhD,EADSkL,EACJ1J,GAAMpC,EAAEsB,EAAIrB,EAAEqB,GAAK,EAEnBc,EAGE,EAALxB,EACFoQ,EAAG5P,KAAK,GACRyP,GAAO,MACF,CAOL,GAJAjQ,EAAKA,EAAKgQ,EAAU,EAAI,EACxBhT,EAAI,EAGM,GAAN2T,EAAS,CAMX,IALA1T,EAAI,EACJsN,EAAKA,EAAG,GACRvK,KAGYyQ,EAAJzT,GAAUC,IAAM+C,IAAMhD,IAC5B6F,EAAI5F,EAAIgH,GAAQ7D,EAAGpD,IAAM,GACzBoT,EAAGpT,GAAK6F,EAAI0H,EAAK,EACjBtN,EAAI4F,EAAI0H,EAAK,CAGf0F,GAAOhT,GAASwT,EAAJzT,MAGP,CAiBL,IAdAC,EAAIgH,GAAQsG,EAAG,GAAK,GAAK,EAErBtN,EAAI,IACNsN,EAAKiF,EAAgBjF,EAAItN,EAAGgH,GAC5B7D,EAAKoP,EAAgBpP,EAAInD,EAAGgH,GAC5B0M,EAAKpG,EAAGnN,OACRqT,EAAKrQ,EAAGhD,QAGVoT,EAAKG,EACLN,EAAMjQ,EAAGiB,MAAM,EAAGsP,GAClBL,EAAOD,EAAIjT,OAGGuT,EAAPL,GAAYD,EAAIC,KAAU,CAEjCM,GAAKrG,EAAGlJ,QACRuP,EAAG7K,QAAQ,GACX2K,EAAMnG,EAAG,GAELA,EAAG,IAAMtG,EAAO,KAAKyM,CAEzB,GACEzT,GAAI,EAGJmN,EAAMsF,EAAQnF,EAAI8F,EAAKM,EAAIL,GAGjB,EAANlG,GAGFmG,EAAOF,EAAI,GACPM,GAAML,IAAMC,EAAOA,EAAOtM,GAAQoM,EAAI,IAAM,IAGhDpT,EAAIsT,EAAOG,EAAM,EAUbzT,EAAI,GACFA,GAAKgH,IAAMhH,EAAIgH,EAAO,GAG1BiM,EAAOV,EAAgBjF,EAAItN,EAAGgH,GAC9BkM,EAAQD,EAAK9S,OACbkT,EAAOD,EAAIjT,OAGXgN,EAAMsF,EAAQQ,EAAMG,EAAKF,EAAOG,GAGrB,GAAPlG,IACFnN,IAGA8S,EAASG,EAAWC,EAALQ,EAAaC,EAAKrG,EAAI4F,EAAOlM,MAOrC,GAALhH,IAAQmN,EAAMnN,EAAI;AACtBiT,EAAO3F,EAAGlJ,SAGZ8O,EAAQD,EAAK9S,OACDkT,EAARH,GAAcD,EAAKnK,QAAQ,GAG/BgK,EAASM,EAAKH,EAAMI,EAAMrM,GAGf,IAAPmG,IACFkG,EAAOD,EAAIjT,OAGXgN,EAAMsF,EAAQnF,EAAI8F,EAAKM,EAAIL,GAGjB,EAANlG,IACFnN,IAGA8S,EAASM,EAAUC,EAALK,EAAYC,EAAKrG,EAAI+F,EAAMrM,KAI7CqM,EAAOD,EAAIjT,QACM,IAARgN,IACTnN,IACAoT,GAAO,IAITD,EAAGpT,KAAOC,EAGNmN,GAAOiG,EAAI,GACbA,EAAIC,KAAUlQ,EAAGoQ,IAAO,GAExBH,GAAOjQ,EAAGoQ,IACVF,EAAO,UAGDE,IAAOC,GAAiB,SAAXJ,EAAI,KAAkBrQ,IAE7CiQ,GAAkB,SAAXI,EAAI,GAIRD,EAAG,IAAIA,EAAGxG,QAIjB,GAAe,GAAXoG,EACFxC,EAAE9M,EAAIA,EACNoF,GAAUmK,MACL,CAGL,IAAKjT,EAAI,EAAGC,EAAImT,EAAG,GAAInT,GAAK,GAAIA,GAAK,GAAID,GACzCwQ,GAAE9M,EAAI1D,EAAI0D,EAAIsP,EAAU,EAExBjQ,EAASyN,EAAGtC,EAAK1J,EAAKgM,EAAE9M,EAAI,EAAIc,EAAIzD,EAAIkS,GAG1C,MAAOzC,MA44DX,IAXA7I,GAAU2C,EAAM3C,IAGhBhD,GAAO,GAAIgD,IAAQhD,IACnBG,GAAK,GAAI6C,IAAQ7C,IAOI,kBAAV+O,SAAwBA,OAAOC,IACxCD,OAAO,WACL,MAAOlM,UAIJ,IAAqB,mBAAVoM,SAAyBA,OAAOC,SAGhD,GAFAD,OAAOC,QAAUrM,IAEZsC,GACH,IACEA,GAAegK,QAAQ,UACvB,MAAOvQ,UAON7D,KACHA,EAA6B,mBAARqU,OAAuBA,MAAQA,KAAKA,MAAQA,KAC7DA,KAAOC,SAAS,kBAGtBtH,GAAahN,EAAY8H,QACzBA,GAAQkF,WAAa,WAEnB,MADAhN,GAAY8H,QAAUkF,GACflF,IAGT9H,EAAY8H,QAAUA,IAEvBqB"} \ No newline at end of file +{"version":3,"file":"decimal.min.js","sources":["decimal.js"],"names":["globalScope","digitsToString","d","i","k","ws","indexOfLastWord","length","str","w","LOG_BASE","getZeroString","checkInt32","min","max","Error","invalidArgument","checkRoundingDigits","rm","repeating","di","r","rd","Math","ceil","mathpow","convertBase","baseIn","baseOut","j","arrL","arr","strL","NUMERALS","indexOf","charAt","reverse","cosine","Ctor","x","y","len","pow","toString","precision","taylorSeries","times","cos2x","minus","plus","finalise","sd","isTruncated","digits","roundUp","xd","xdi","constructor","out","push","s","e","BASE","pop","external","maxE","NaN","minE","finiteToString","isExp","isFinite","nonFiniteToString","slice","getBase10Exponent","getLn10","pr","LN10_PRECISION","precisionLimitExceeded","LN10","getPi","PI_PRECISION","PI","getPrecision","zs","intPow","n","truncate","mathfloor","isOdd","maxOrMin","args","ltgt","naturalExponential","denominator","guard","sum","t","wpr","rep","rounding","log","divide","naturalLogarithm","c","c0","numerator","x1","x2","abs","String","parseDecimal","replace","search","substring","charCodeAt","parseOther","base","divisor","isFloat","p","xe","isHex","test","toLowerCase","isBinary","isOctal","Decimal","sine","sqrt","sin2_x","d5","d16","d20","isHyperbolic","u","toLessThanHalfPi","isNeg","pi","halfPi","lte","quadrant","divToInt","isZero","toStringBinary","MAX_DIGITS","inexact","unshift","this","acos","acosh","add","asin","asinh","atan","atanh","atan2","cbrt","config","obj","decimalError","v","ps","EXP_LIMIT","hasOwnProperty","cryptoObject","getRandomValues","randomBytes","cos","cosh","clone","isDecimal","prototype","P","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","div","exp","floor","hypot","ln","log10","log2","mod","mul","random","round","sign","sin","sinh","sub","tan","tanh","trunc","arguments","crypto","Uint32Array","copy","shift","noConflict","modulo","toExpNeg","toExpPos","MAX_SAFE_INTEGER","absoluteValue","comparedTo","cmp","xdL","ydL","yd","xs","ys","neg","cubeRoot","m","t3","t3plusx","toExponential","eq","decimalPlaces","dp","dividedBy","dividedToIntegerBy","equals","greaterThan","gt","greaterThanOrEqualTo","gte","hyperbolicCosine","one","cosh2_x","d8","hyperbolicSine","sinh2_x","hyperbolicTangent","inverseCosine","inverseHyperbolicCosine","inverseHyperbolicSine","inverseHyperbolicTangent","xsd","inverseSine","inverseTangent","px","isInteger","isInt","isNaN","isNegative","isPositive","isPos","lessThan","lt","lessThanOrEqualTo","logarithm","isBase10","inf","num","arg","xLTy","q","negated","carry","z","squareRoot","tangent","rL","toBinary","toDecimalPlaces","toDP","toFixed","toFraction","maxD","d0","d1","d2","n0","n1","toHexadecimal","toHex","toNearest","toNumber","toOctal","toPower","yIsInt","yn","toPrecision","toSignificantDigits","toSD","truncated","valueOf","toJSON","multiplyInteger","temp","compare","a","b","aL","bL","subtract","logBase","more","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","define","amd","module","exports","require","self","Function"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 151f7a9..b07781f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "decimal.js", "description": "An arbitrary-precision Decimal type for JavaScript.", - "version": "5.0.8", + "version": "6.0.0", "keywords": [ "arbitrary", "precision", @@ -28,6 +28,6 @@ "license": "MIT", "scripts": { "test": "node ./test/test.js", - "build": "uglifyjs decimal.js --source-map doc/decimal.js.map -c -m -o decimal.min.js --preamble \"/* decimal.js v5.0.8 https://github.com/MikeMcl/decimal.js/LICENCE */\"" + "build": "uglifyjs decimal.js --source-map doc/decimal.js.map -c -m -o decimal.min.js --preamble \"/* decimal.js v6.0.0 https://github.com/MikeMcl/decimal.js/LICENCE */\"" } } diff --git a/test/modules/fromJSON.js b/test/modules/fromJSON.js deleted file mode 100644 index eb886d1..0000000 --- a/test/modules/fromJSON.js +++ /dev/null @@ -1,43 +0,0 @@ -if (typeof T === 'undefined') require('../setup'); - -T('fromJSON', function () { - - Decimal.config({ - precision: Math.random() * 40 + 1 | 0, - rounding: Math.random() * 9 | 0, - toExpNeg: -7, - toExpPos: 21, - minE: -9e15, - maxE: 9e15 - }); - - var e, fromJ, i, r, toJ; - var maxDigits = 100; - - for ( i = 0; i < 100000; ) { - - // Get a random value in the range [0,1) with a random number of significant digits - // in the range [1, maxDigits], as a string in exponential format. - e = Decimal.random( Math.random() * maxDigits + 1 | 0 ).toExponential(); - - // Change exponent to a non-zero value of random length in the range (-9e15, 9e15). - r = new Decimal(e.slice(0, e.indexOf('e') + 1) + ( Math.random() < 0.5 ? '-' : '' ) + - ( n = Math.floor( Math.random() * 9e15 ) + '' ).slice( Math.random() * n.length | 0 )); - //console.log(r.toString()); - - toJ = r.toJSON(); - //console.log(' toJSON: ' + toJ); - - fromJ = Decimal.fromJSON(toJ); - //console.log(' fromJSON: ' + fromJ); - - /* - if (!r.eq(fromJ)) { - console.error(' r: ' + r); - console.error(' toJSON: ' + toJ); - console.error(' fromJSON: ' + fromJ); - } - */ - T.assert(r.eq(fromJ)); - } -}); diff --git a/test/modules/immutability.js b/test/modules/immutability.js index 5a11ce6..1c02067 100644 --- a/test/modules/immutability.js +++ b/test/modules/immutability.js @@ -552,7 +552,6 @@ T('immutability', function () { // All methods tested above except: Decimal.clone(); Decimal.config(); -Decimal.fromJSON(); Decimal.noConflict(); Decimal.random(); */ diff --git a/test/modules/toJSON.js b/test/modules/toJSON.js deleted file mode 100644 index 3bcada8..0000000 --- a/test/modules/toJSON.js +++ /dev/null @@ -1,90 +0,0 @@ -if (typeof T === 'undefined') require('../setup'); - -T('toJSON', function () { - - function t(n, expected) { - T.assertEqual(expected, new Decimal(n).toJSON()); - } - - Decimal.config({ - toExpNeg: -9e15, - toExpPos: 9e15, - minE: -9e15, - maxE: 9e15 - }); - - // Base 88 - // 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%()*+,-./:;=?@[]^_`{|}~ - - // 0 0 g 16 w 32 M 48 $ 64 ] 80 - // 1 1 h 17 x 33 N 49 % 65 ^ 81 - // 2 2 i 18 y 34 O 50 ( 66 _ 82 - // 3 3 j 19 z 35 P 51 ) 67 ` 83 - // 4 4 k 20 A 36 Q 52 * 68 { 84 - // 5 5 l 21 B 37 R 53 + 69 | 85 - // 6 6 m 22 C 38 S 54 , 70 } 86 - // 7 7 n 23 D 39 T 55 - 71 ~ 87 - // 8 8 o 24 E 40 U 56 . 72 - // 9 9 p 25 F 41 V 57 / 73 - // a 10 q 26 G 42 W 58 : 74 - // b 11 r 27 H 43 X 59 ; 75 - // c 12 s 28 I 44 Y 60 = 76 - // d 13 t 29 J 45 Z 61 ? 77 - // e 14 u 30 K 46 ! 62 @ 78 - // f 15 v 31 L 47 # 63 [ 79 - - // 0123456789abcdefghijklmnopqrstuvwxyzABCDE [0, 40] - // FGHIJKLMNOPQRSTUVWXYZ!#$%()*+,-./:;=?@[]^ [-0, -40] - // _ 82 -Infinity - // ` 83 Infinity - // { 84 NaN - // | 85 - // } 86 - // ~ 87 - - t('-40', '^'); - t('-1', 'G'); - t('-0', 'F'); - t('0', '0'); - t('1', '1'); - t('15', 'f'); - t('40', 'E'); - - t('-Infinity', '_'); - t('Infinity', '`'); - t('NaN', '{'); - - t('-41', 'w0'); - t('41', '00'); - t('-2856', '#~'); - t('2856', 'v~'); - - t('0.1', ',1'); - t('0.01', '+1'); - t('0.001', '*1'); - t('0.0001', ')1'); - t('1', '1'); - t('10', 'a'); - t('100', '0X'); - t('1000', 'a['); - t('1.5', '-f'); - t('123456789.87654321', '[3C7]NAda1'); - t('1234567890000.0000000987654321', '1c7yH67}?[lk2mc:%'); - - t('-0.1', '_1'); - t('-0.01', '^1'); - t('-0.001', ']1'); - t('-0.0001', 'N41'); - t('-1', 'G'); - t('-10', 'P'); - t('-100', 'wX'); - t('-1000', 'G['); - t('-1.5', '`f'); - t('-123456789.87654321', 'x83C7]NAda1'); - t('-1234567890000.0000000987654321', 'xc7yH67}?[lk2mc:%'); - - t('0.00000009876543212345678987654321', 'h8J+]nxS}gN-^oN'); - t('-0.00000009876543212345678987654321', 'N8J+]nxS}gN-^oN'); - t('1.00000009876543212345678987654321', '-7$yQ@UAPUk2SZ#XQh'); -}); - diff --git a/test/test.html b/test/test.html index 36d9ea0..843555c 100644 --- a/test/test.html +++ b/test/test.html @@ -68,7 +68,6 @@ 'toFixed', 'toFraction', 'toHex', - 'toJSON', 'toNearest', 'toNumber', 'toOctal', diff --git a/test/test.js b/test/test.js index d88c4b8..cdf4aca 100644 --- a/test/test.js +++ b/test/test.js @@ -55,7 +55,6 @@ console.log('\n Testing decimal.js\n'); 'toFixed', 'toFraction', 'toHex', - 'toJSON', 'toNearest', 'toNumber', 'toOctal',