lyb-js 1.4.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lyb.js CHANGED
@@ -1,8 +1,3787 @@
1
- (function(ge){typeof define=="function"&&define.amd?define(ge):ge()})(function(){"use strict";const ge=e=>Object.prototype.toString.call(e).substring(8).replace(/]/g,"").toLowerCase(),Ke=(e=1,t)=>{let n,i=e,r=Date.now(),s=!1;return new Promise(o=>{const u=()=>{document.hidden?(s=!0,clearTimeout(n),i-=Date.now()-r):s&&(s=!1,r=Date.now(),a(o))},a=c=>{n=setTimeout(()=>{t==null||t(),c(),document.removeEventListener("visibilitychange",u)},i)};document.addEventListener("visibilitychange",u),a(o)})},Qe=(e,t,n=[])=>{const i={red:"#c0392b",orange:"#d35400",yellow:"#f1c40f",green:"#27ae60",blue:"#2980b9",purple:"#be2edd"},r=()=>{const s=new Date,o=String(s.getHours()).padStart(2,"0"),u=String(s.getMinutes()).padStart(2,"0"),a=String(s.getSeconds()).padStart(2,"0");return`[${o}:${u}:${a}]`};if(Array.isArray(n)){const s=n.map(o=>[`
2
- ${o.label}:`,o.value]);console.log(`%c${r()}-${e}`,`color: #fff;background: ${i[t]}; font-size:14px;border-radius:5px;padding:0.25em;margin:0.5em 0`,...s.flat(1/0))}else console.log(`%c${r()}-${e}`,`color: #fff;background: ${i[t]}; font-size:14px;border-radius:5px;padding:0.25em;margin:0.5em 0`,n)},et=()=>{const e=navigator.userAgent.toLowerCase();return/mobile|android|iphone|ipod/.test(e)},tt=()=>{const e=navigator.userAgent.toLowerCase(),t=Math.max(window.screen.width,window.screen.height),n=Math.min(window.screen.width,window.screen.height),i=t/n,r=/ipad|tablet|playbook|silk/.test(e)&&!/mobile/.test(e),s=t>=768&&t<=1366,o=i>=1.3&&i<=1.6;return r||s&&o},nt=()=>{const t=location.href.split("?")[1];return t?t.split("&").reduce((i,r)=>{const[s,o]=r.split(/=(.+)/);return i[s]=o,i},{})||{}:{}},it=(e,t)=>{document.title=e;const n=document.createElement("link");n.setAttribute("rel","icon"),n.setAttribute("href",t),(document.head||document.getElementsByTagName("head")[0]).appendChild(n)},rt=(e,t)=>{let n="",i;window.addEventListener("visibilitychange",()=>{if(clearTimeout(i),document.hidden){document.title!==e&&(n=document.title),document.title=t;return}document.title=e,i=setTimeout(()=>{document.title=n},1e3)})},st=e=>Object.entries(e).map(([t,n])=>`${t}=${n}`).join("&"),ot=(e,t)=>{const n=[];for(let i=0;i<e.length;i+=t)n.push(e.slice(i,i+t));return n},we=e=>{if(typeof e=="string")try{const t=JSON.parse(e);return we(t)}catch{return e}return Array.isArray(e)?e.map(t=>we(t)):e!==null&&typeof e=="object"?Object.keys(e).reduce((t,n)=>(t[n]=we(e[n]),t),{}):e},ut=(e=[],t)=>t?e.reduce((n,i)=>(n[i[t]]||(n[i[t]]=[]),n[i[t]].push(i),n),{}):{},ct=(e,t)=>e.includes("@")?t.filter(n=>n.includes(e.slice(e.indexOf("@")))).map(n=>(e.includes("@")?e.split("@")[0]:e)+n):t.map(n=>e+n),at=e=>{const t=[...e];for(let n=t.length-1;n>0;n--){const i=Math.floor(Math.random()*(n+1));[t[n],t[i]]=[t[i],t[n]]}return t},ft=(e,t)=>{const n=e.length;if(n===0||t%n===0)return e;const i=(t%n+n)%n;return e.slice(-i).concat(e.slice(0,-i))},lt=(e,t)=>{if(t<0||t>=e.length)throw new Error("Index out of bounds");const n=e.slice(t+1).reverse();return[...e.slice(0,t+1),...n]},ht=(e,t)=>{fetch(e).then(n=>n.blob()).then(n=>{const i=document.createElement("a"),r=window.URL.createObjectURL(n);i.href=r,i.download=t,i.click()})},dt=e=>{const t=document.createElement("canvas");t.classList.add("imageOptimizer"),document.body.appendChild(t);const n=e.file;if(!n)return;const i=n.name,r=i.split(".").pop().toLowerCase(),s=e.ratio||1,o=e.maxSize||1024,u=e.width||1e4,a=n.type;function c(h,p){const w=h.split(","),M=w[0].match(/:(.*?);/)[1],J=window.atob(w[1]),I=J.length,H=new Uint8Array(I);for(let O=0;O<I;O++)H[O]=J.charCodeAt(O);return new File([H],p,{type:M})}function f(h){const p=new FormData;return p.append("file",h),p}const l=new FileReader;l.readAsDataURL(n),l.onload=h=>{const p=h.target.result;if(h.total/1024>o){const w=new Image;w.src=p,w.onload=()=>{const M=t.getContext("2d"),J=u/w.width;J<1?(t.width=w.width*J,t.height=w.height*J,M.drawImage(w,0,0,w.width*J,w.height*J)):(t.width=w.width,t.height=w.height,M.drawImage(w,0,0,w.width,w.height));const I=t.toDataURL(a,s),H=`${i.split(".")[0]}.${r}`,O=c(I,H);e.success(f(O),O,I),t.remove()},w.onerror=e.fail}else{const w=`${i.split(".")[0]}.${r}`,M=c(p,w);e.success(f(M),M,p),t.remove()}},l.onerror=e.fail},mt=(e,t)=>{const n=window.URL||window.webkitURL,i=new Blob([t]),r=document.createElement("a");r.href=n.createObjectURL(i),r.download=e,r.click(),n.revokeObjectURL(r.href)},pt=(e,t)=>{if(t==="rad")return e*(Math.PI/180);if(t==="deg")return e*(180/Math.PI);throw new Error("请使用正确类型")},gt=(e,t)=>{const n=t.x-e.x,i=t.y-e.y;let s=Math.atan2(i,n)*(180/Math.PI);return s=-s+90,s<0&&(s+=360),s},wt=(e,t)=>{const n=t.x-e.x,i=t.y-e.y;return Math.sqrt(n*n+i*i)};/*!
3
- * decimal.js v10.4.3
4
- * An arbitrary-precision Decimal type for JavaScript.
5
- * https://github.com/MikeMcl/decimal.js
6
- * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>
7
- * MIT Licence
8
- */var fe=9e15,ie=1e9,_e="0123456789abcdef",ve="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",$e="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Oe={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-fe,maxE:fe,crypto:!1},Ae,te,_=!0,Me="[DecimalError] ",re=Me+"Invalid argument: ",Je=Me+"Precision limit exceeded",Fe=Me+"crypto unavailable",Pe="[object Decimal]",W=Math.floor,Y=Math.pow,vt=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,$t=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Mt=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Re=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,K=1e7,k=7,bt=9007199254740991,Nt=ve.length-1,Te=$e.length-1,d={toStringTag:Pe};d.absoluteValue=d.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),S(e)},d.ceil=function(){return S(new this.constructor(this),this.e+1,2)},d.clampedTo=d.clamp=function(e,t){var n,i=this,r=i.constructor;if(e=new r(e),t=new r(t),!e.s||!t.s)return new r(NaN);if(e.gt(t))throw Error(re+t);return n=i.cmp(e),n<0?e:i.cmp(t)>0?t:new r(i)},d.comparedTo=d.cmp=function(e){var t,n,i,r,s=this,o=s.d,u=(e=new s.constructor(e)).d,a=s.s,c=e.s;if(!o||!u)return!a||!c?NaN:a!==c?a:o===u?0:!o^a<0?1:-1;if(!o[0]||!u[0])return o[0]?a:u[0]?-c:0;if(a!==c)return a;if(s.e!==e.e)return s.e>e.e^a<0?1:-1;for(i=o.length,r=u.length,t=0,n=i<r?i:r;t<n;++t)if(o[t]!==u[t])return o[t]>u[t]^a<0?1:-1;return i===r?0:i>r^a<0?1:-1},d.cosine=d.cos=function(){var e,t,n=this,i=n.constructor;return n.d?n.d[0]?(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+k,i.rounding=1,n=St(i,Ze(i,n)),i.precision=e,i.rounding=t,S(te==2||te==3?n.neg():n,e,t,!0)):new i(1):new i(NaN)},d.cubeRoot=d.cbrt=function(){var e,t,n,i,r,s,o,u,a,c,f=this,l=f.constructor;if(!f.isFinite()||f.isZero())return new l(f);for(_=!1,s=f.s*Y(f.s*f,1/3),!s||Math.abs(s)==1/0?(n=j(f.d),e=f.e,(s=(e-n.length+1)%3)&&(n+=s==1||s==-2?"0":"00"),s=Y(n,1/3),e=W((e+1)/3)-(e%3==(e<0?-1:2)),s==1/0?n="5e"+e:(n=s.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),i=new l(n),i.s=f.s):i=new l(s.toString()),o=(e=l.precision)+3;;)if(u=i,a=u.times(u).times(u),c=a.plus(f),i=F(c.plus(f).times(u),c.plus(a),o+2,1),j(u.d).slice(0,o)===(n=j(i.d)).slice(0,o))if(n=n.slice(o-3,o+1),n=="9999"||!r&&n=="4999"){if(!r&&(S(u,e+1,0),u.times(u).times(u).eq(f))){i=u;break}o+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(S(i,e+1,1),t=!i.times(i).times(i).eq(f));break}return _=!0,S(i,e,l.rounding,t)},d.decimalPlaces=d.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-W(this.e/k))*k,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},d.dividedBy=d.div=function(e){return F(this,new this.constructor(e))},d.dividedToIntegerBy=d.divToInt=function(e){var t=this,n=t.constructor;return S(F(t,new n(e),0,1,1),n.precision,n.rounding)},d.equals=d.eq=function(e){return this.cmp(e)===0},d.floor=function(){return S(new this.constructor(this),this.e+1,3)},d.greaterThan=d.gt=function(e){return this.cmp(e)>0},d.greaterThanOrEqualTo=d.gte=function(e){var t=this.cmp(e);return t==1||t===0},d.hyperbolicCosine=d.cosh=function(){var e,t,n,i,r,s=this,o=s.constructor,u=new o(1);if(!s.isFinite())return new o(s.s?1/0:NaN);if(s.isZero())return u;n=o.precision,i=o.rounding,o.precision=n+Math.max(s.e,s.sd())+4,o.rounding=1,r=s.d.length,r<32?(e=Math.ceil(r/3),t=(1/De(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),s=le(o,1,s.times(t),new o(1),!0);for(var a,c=e,f=new o(8);c--;)a=s.times(s),s=u.minus(a.times(f.minus(a.times(f))));return S(s,o.precision=n,o.rounding=i,!0)},d.hyperbolicSine=d.sinh=function(){var e,t,n,i,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(t=s.precision,n=s.rounding,s.precision=t+Math.max(r.e,r.sd())+4,s.rounding=1,i=r.d.length,i<3)r=le(s,2,r,r,!0);else{e=1.4*Math.sqrt(i),e=e>16?16:e|0,r=r.times(1/De(5,e)),r=le(s,2,r,r,!0);for(var o,u=new s(5),a=new s(16),c=new s(20);e--;)o=r.times(r),r=r.times(u.plus(o.times(a.times(o).plus(c))))}return s.precision=t,s.rounding=n,S(r,t,n,!0)},d.hyperbolicTangent=d.tanh=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+7,i.rounding=1,F(n.sinh(),n.cosh(),i.precision=e,i.rounding=t)):new i(n.s)},d.inverseCosine=d.acos=function(){var e,t=this,n=t.constructor,i=t.abs().cmp(1),r=n.precision,s=n.rounding;return i!==-1?i===0?t.isNeg()?Q(n,r,s):new n(0):new n(NaN):t.isZero()?Q(n,r+4,s).times(.5):(n.precision=r+6,n.rounding=1,t=t.asin(),e=Q(n,r+4,s).times(.5),n.precision=r,n.rounding=s,e.minus(t))},d.inverseHyperbolicCosine=d.acosh=function(){var e,t,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(e=i.precision,t=i.rounding,i.precision=e+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,_=!1,n=n.times(n).minus(1).sqrt().plus(n),_=!0,i.precision=e,i.rounding=t,n.ln()):new i(n)},d.inverseHyperbolicSine=d.asinh=function(){var e,t,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,_=!1,n=n.times(n).plus(1).sqrt().plus(n),_=!0,i.precision=e,i.rounding=t,n.ln())},d.inverseHyperbolicTangent=d.atanh=function(){var e,t,n,i,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=s.precision,t=s.rounding,i=r.sd(),Math.max(i,e)<2*-r.e-1?S(new s(r),e,t,!0):(s.precision=n=i-r.e,r=F(r.plus(1),new s(1).minus(r),n+e,1),s.precision=e+4,s.rounding=1,r=r.ln(),s.precision=e,s.rounding=t,r.times(.5))):new s(NaN)},d.inverseSine=d.asin=function(){var e,t,n,i,r=this,s=r.constructor;return r.isZero()?new s(r):(t=r.abs().cmp(1),n=s.precision,i=s.rounding,t!==-1?t===0?(e=Q(s,n+4,i).times(.5),e.s=r.s,e):new s(NaN):(s.precision=n+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=n,s.rounding=i,r.times(2)))},d.inverseTangent=d.atan=function(){var e,t,n,i,r,s,o,u,a,c=this,f=c.constructor,l=f.precision,h=f.rounding;if(c.isFinite()){if(c.isZero())return new f(c);if(c.abs().eq(1)&&l+4<=Te)return o=Q(f,l+4,h).times(.25),o.s=c.s,o}else{if(!c.s)return new f(NaN);if(l+4<=Te)return o=Q(f,l+4,h).times(.5),o.s=c.s,o}for(f.precision=u=l+10,f.rounding=1,n=Math.min(28,u/k+2|0),e=n;e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(_=!1,t=Math.ceil(u/k),i=1,a=c.times(c),o=new f(c),r=c;e!==-1;)if(r=r.times(a),s=o.minus(r.div(i+=2)),r=r.times(a),o=s.plus(r.div(i+=2)),o.d[t]!==void 0)for(e=t;o.d[e]===s.d[e]&&e--;);return n&&(o=o.times(2<<n-1)),_=!0,S(o,f.precision=l,f.rounding=h,!0)},d.isFinite=function(){return!!this.d},d.isInteger=d.isInt=function(){return!!this.d&&W(this.e/k)>this.d.length-2},d.isNaN=function(){return!this.s},d.isNegative=d.isNeg=function(){return this.s<0},d.isPositive=d.isPos=function(){return this.s>0},d.isZero=function(){return!!this.d&&this.d[0]===0},d.lessThan=d.lt=function(e){return this.cmp(e)<0},d.lessThanOrEqualTo=d.lte=function(e){return this.cmp(e)<1},d.logarithm=d.log=function(e){var t,n,i,r,s,o,u,a,c=this,f=c.constructor,l=f.precision,h=f.rounding,p=5;if(e==null)e=new f(10),t=!0;else{if(e=new f(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new f(NaN);t=e.eq(10)}if(n=c.d,c.s<0||!n||!n[0]||c.eq(1))return new f(n&&!n[0]?-1/0:c.s!=1?NaN:n?0:1/0);if(t)if(n.length>1)s=!0;else{for(r=n[0];r%10===0;)r/=10;s=r!==1}if(_=!1,u=l+p,o=oe(c,u),i=t?Se(f,u+10):oe(e,u),a=F(o,i,u,1),de(a.d,r=l,h))do if(u+=10,o=oe(c,u),i=t?Se(f,u+10):oe(e,u),a=F(o,i,u,1),!s){+j(a.d).slice(r+1,r+15)+1==1e14&&(a=S(a,l+1,0));break}while(de(a.d,r+=10,h));return _=!0,S(a,l,h)},d.minus=d.sub=function(e){var t,n,i,r,s,o,u,a,c,f,l,h,p=this,w=p.constructor;if(e=new w(e),!p.d||!e.d)return!p.s||!e.s?e=new w(NaN):p.d?e.s=-e.s:e=new w(e.d||p.s!==e.s?p:NaN),e;if(p.s!=e.s)return e.s=-e.s,p.plus(e);if(c=p.d,h=e.d,u=w.precision,a=w.rounding,!c[0]||!h[0]){if(h[0])e.s=-e.s;else if(c[0])e=new w(p);else return new w(a===3?-0:0);return _?S(e,u,a):e}if(n=W(e.e/k),f=W(p.e/k),c=c.slice(),s=f-n,s){for(l=s<0,l?(t=c,s=-s,o=h.length):(t=h,n=f,o=c.length),i=Math.max(Math.ceil(u/k),o)+2,s>i&&(s=i,t.length=1),t.reverse(),i=s;i--;)t.push(0);t.reverse()}else{for(i=c.length,o=h.length,l=i<o,l&&(o=i),i=0;i<o;i++)if(c[i]!=h[i]){l=c[i]<h[i];break}s=0}for(l&&(t=c,c=h,h=t,e.s=-e.s),o=c.length,i=h.length-o;i>0;--i)c[o++]=0;for(i=h.length;i>s;){if(c[--i]<h[i]){for(r=i;r&&c[--r]===0;)c[r]=K-1;--c[r],c[i]+=K}c[i]-=h[i]}for(;c[--o]===0;)c.pop();for(;c[0]===0;c.shift())--n;return c[0]?(e.d=c,e.e=Ne(c,n),_?S(e,u,a):e):new w(a===3?-0:0)},d.modulo=d.mod=function(e){var t,n=this,i=n.constructor;return e=new i(e),!n.d||!e.s||e.d&&!e.d[0]?new i(NaN):!e.d||n.d&&!n.d[0]?S(new i(n),i.precision,i.rounding):(_=!1,i.modulo==9?(t=F(n,e.abs(),0,3,1),t.s*=e.s):t=F(n,e,0,i.modulo,1),t=t.times(e),_=!0,n.minus(t))},d.naturalExponential=d.exp=function(){return ye(this)},d.naturalLogarithm=d.ln=function(){return oe(this)},d.negated=d.neg=function(){var e=new this.constructor(this);return e.s=-e.s,S(e)},d.plus=d.add=function(e){var t,n,i,r,s,o,u,a,c,f,l=this,h=l.constructor;if(e=new h(e),!l.d||!e.d)return!l.s||!e.s?e=new h(NaN):l.d||(e=new h(e.d||l.s===e.s?l:NaN)),e;if(l.s!=e.s)return e.s=-e.s,l.minus(e);if(c=l.d,f=e.d,u=h.precision,a=h.rounding,!c[0]||!f[0])return f[0]||(e=new h(l)),_?S(e,u,a):e;if(s=W(l.e/k),i=W(e.e/k),c=c.slice(),r=s-i,r){for(r<0?(n=c,r=-r,o=f.length):(n=f,i=s,o=c.length),s=Math.ceil(u/k),o=s>o?s+1:o+1,r>o&&(r=o,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for(o=c.length,r=f.length,o-r<0&&(r=o,n=f,f=c,c=n),t=0;r;)t=(c[--r]=c[r]+f[r]+t)/K|0,c[r]%=K;for(t&&(c.unshift(t),++i),o=c.length;c[--o]==0;)c.pop();return e.d=c,e.e=Ne(c,i),_?S(e,u,a):e},d.precision=d.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(re+e);return n.d?(t=qe(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},d.round=function(){var e=this,t=e.constructor;return S(new t(e),e.e+1,t.rounding)},d.sine=d.sin=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+k,i.rounding=1,n=Et(i,Ze(i,n)),i.precision=e,i.rounding=t,S(te>2?n.neg():n,e,t,!0)):new i(NaN)},d.squareRoot=d.sqrt=function(){var e,t,n,i,r,s,o=this,u=o.d,a=o.e,c=o.s,f=o.constructor;if(c!==1||!u||!u[0])return new f(!c||c<0&&(!u||u[0])?NaN:u?o:1/0);for(_=!1,c=Math.sqrt(+o),c==0||c==1/0?(t=j(u),(t.length+a)%2==0&&(t+="0"),c=Math.sqrt(t),a=W((a+1)/2)-(a<0||a%2),c==1/0?t="5e"+a:(t=c.toExponential(),t=t.slice(0,t.indexOf("e")+1)+a),i=new f(t)):i=new f(c.toString()),n=(a=f.precision)+3;;)if(s=i,i=s.plus(F(o,s,n+2,1)).times(.5),j(s.d).slice(0,n)===(t=j(i.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!r&&t=="4999"){if(!r&&(S(s,a+1,0),s.times(s).eq(o))){i=s;break}n+=4,r=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(S(i,a+1,1),e=!i.times(i).eq(o));break}return _=!0,S(i,a,f.rounding,e)},d.tangent=d.tan=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+10,i.rounding=1,n=n.sin(),n.s=1,n=F(n,new i(1).minus(n.times(n)).sqrt(),e+10,0),i.precision=e,i.rounding=t,S(te==2||te==4?n.neg():n,e,t,!0)):new i(NaN)},d.times=d.mul=function(e){var t,n,i,r,s,o,u,a,c,f=this,l=f.constructor,h=f.d,p=(e=new l(e)).d;if(e.s*=f.s,!h||!h[0]||!p||!p[0])return new l(!e.s||h&&!h[0]&&!p||p&&!p[0]&&!h?NaN:!h||!p?e.s/0:e.s*0);for(n=W(f.e/k)+W(e.e/k),a=h.length,c=p.length,a<c&&(s=h,h=p,p=s,o=a,a=c,c=o),s=[],o=a+c,i=o;i--;)s.push(0);for(i=c;--i>=0;){for(t=0,r=a+i;r>i;)u=s[r]+p[i]*h[r-i-1]+t,s[r--]=u%K|0,t=u/K|0;s[r]=(s[r]+t)%K|0}for(;!s[--o];)s.pop();return t?++n:s.shift(),e.d=s,e.e=Ne(s,n),_?S(e,l.precision,l.rounding):e},d.toBinary=function(e,t){return Le(this,2,e,t)},d.toDecimalPlaces=d.toDP=function(e,t){var n=this,i=n.constructor;return n=new i(n),e===void 0?n:(z(e,0,ie),t===void 0?t=i.rounding:z(t,0,8),S(n,e+n.e+1,t))},d.toExponential=function(e,t){var n,i=this,r=i.constructor;return e===void 0?n=ee(i,!0):(z(e,0,ie),t===void 0?t=r.rounding:z(t,0,8),i=S(new r(i),e+1,t),n=ee(i,!0,e+1)),i.isNeg()&&!i.isZero()?"-"+n:n},d.toFixed=function(e,t){var n,i,r=this,s=r.constructor;return e===void 0?n=ee(r):(z(e,0,ie),t===void 0?t=s.rounding:z(t,0,8),i=S(new s(r),e+r.e+1,t),n=ee(i,!1,e+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},d.toFraction=function(e){var t,n,i,r,s,o,u,a,c,f,l,h,p=this,w=p.d,M=p.constructor;if(!w)return new M(p);if(c=n=new M(1),i=a=new M(0),t=new M(i),s=t.e=qe(w)-p.e-1,o=s%k,t.d[0]=Y(10,o<0?k+o:o),e==null)e=s>0?t:c;else{if(u=new M(e),!u.isInt()||u.lt(c))throw Error(re+u);e=u.gt(t)?s>0?t:c:u}for(_=!1,u=new M(j(w)),f=M.precision,M.precision=s=w.length*k*2;l=F(u,t,0,1,1),r=n.plus(l.times(i)),r.cmp(e)!=1;)n=i,i=r,r=c,c=a.plus(l.times(r)),a=r,r=t,t=u.minus(l.times(r)),u=r;return r=F(e.minus(n),i,0,1,1),a=a.plus(r.times(c)),n=n.plus(r.times(i)),a.s=c.s=p.s,h=F(c,i,s,1).minus(p).abs().cmp(F(a,n,s,1).minus(p).abs())<1?[c,i]:[a,n],M.precision=f,_=!0,h},d.toHexadecimal=d.toHex=function(e,t){return Le(this,16,e,t)},d.toNearest=function(e,t){var n=this,i=n.constructor;if(n=new i(n),e==null){if(!n.d)return n;e=new i(1),t=i.rounding}else{if(e=new i(e),t===void 0?t=i.rounding:z(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(_=!1,n=F(n,e,0,t,1).times(e),_=!0,S(n)):(e.s=n.s,n=e),n},d.toNumber=function(){return+this},d.toOctal=function(e,t){return Le(this,8,e,t)},d.toPower=d.pow=function(e){var t,n,i,r,s,o,u=this,a=u.constructor,c=+(e=new a(e));if(!u.d||!e.d||!u.d[0]||!e.d[0])return new a(Y(+u,c));if(u=new a(u),u.eq(1))return u;if(i=a.precision,s=a.rounding,e.eq(1))return S(u,i,s);if(t=W(e.e/k),t>=e.d.length-1&&(n=c<0?-c:c)<=bt)return r=Ue(a,u,n,i),e.s<0?new a(1).div(r):S(r,i,s);if(o=u.s,o<0){if(t<e.d.length-1)return new a(NaN);if(e.d[t]&1||(o=1),u.e==0&&u.d[0]==1&&u.d.length==1)return u.s=o,u}return n=Y(+u,c),t=n==0||!isFinite(n)?W(c*(Math.log("0."+j(u.d))/Math.LN10+u.e+1)):new a(n+"").e,t>a.maxE+1||t<a.minE-1?new a(t>0?o/0:0):(_=!1,a.rounding=u.s=1,n=Math.min(12,(t+"").length),r=ye(e.times(oe(u,i+n)),i),r.d&&(r=S(r,i+5,1),de(r.d,i,s)&&(t=i+10,r=S(ye(e.times(oe(u,t+n)),t),t+5,1),+j(r.d).slice(i+1,i+15)+1==1e14&&(r=S(r,i+1,0)))),r.s=o,_=!0,a.rounding=s,S(r,i,s))},d.toPrecision=function(e,t){var n,i=this,r=i.constructor;return e===void 0?n=ee(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(z(e,1,ie),t===void 0?t=r.rounding:z(t,0,8),i=S(new r(i),e,t),n=ee(i,e<=i.e||i.e<=r.toExpNeg,e)),i.isNeg()&&!i.isZero()?"-"+n:n},d.toSignificantDigits=d.toSD=function(e,t){var n=this,i=n.constructor;return e===void 0?(e=i.precision,t=i.rounding):(z(e,1,ie),t===void 0?t=i.rounding:z(t,0,8)),S(new i(n),e,t)},d.toString=function(){var e=this,t=e.constructor,n=ee(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},d.truncated=d.trunc=function(){return S(new this.constructor(this),this.e+1,1)},d.valueOf=d.toJSON=function(){var e=this,t=e.constructor,n=ee(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function j(e){var t,n,i,r=e.length-1,s="",o=e[0];if(r>0){for(s+=o,t=1;t<r;t++)i=e[t]+"",n=k-i.length,n&&(s+=se(n)),s+=i;o=e[t],i=o+"",n=k-i.length,n&&(s+=se(n))}else if(o===0)return"0";for(;o%10===0;)o/=10;return s+o}function z(e,t,n){if(e!==~~e||e<t||e>n)throw Error(re+e)}function de(e,t,n,i){var r,s,o,u;for(s=e[0];s>=10;s/=10)--t;return--t<0?(t+=k,r=0):(r=Math.ceil((t+1)/k),t%=k),s=Y(10,k-t),u=e[r]%s|0,i==null?t<3?(t==0?u=u/100|0:t==1&&(u=u/10|0),o=n<4&&u==99999||n>3&&u==49999||u==5e4||u==0):o=(n<4&&u+1==s||n>3&&u+1==s/2)&&(e[r+1]/s/100|0)==Y(10,t-2)-1||(u==s/2||u==0)&&(e[r+1]/s/100|0)==0:t<4?(t==0?u=u/1e3|0:t==1?u=u/100|0:t==2&&(u=u/10|0),o=(i||n<4)&&u==9999||!i&&n>3&&u==4999):o=((i||n<4)&&u+1==s||!i&&n>3&&u+1==s/2)&&(e[r+1]/s/1e3|0)==Y(10,t-3)-1,o}function be(e,t,n){for(var i,r=[0],s,o=0,u=e.length;o<u;){for(s=r.length;s--;)r[s]*=t;for(r[0]+=_e.indexOf(e.charAt(o++)),i=0;i<r.length;i++)r[i]>n-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/n|0,r[i]%=n)}return r.reverse()}function St(e,t){var n,i,r;if(t.isZero())return t;i=t.d.length,i<32?(n=Math.ceil(i/3),r=(1/De(4,n)).toString()):(n=16,r="2.3283064365386962890625e-10"),e.precision+=n,t=le(e,1,t.times(r),new e(1));for(var s=n;s--;){var o=t.times(t);t=o.times(o).minus(o).times(8).plus(1)}return e.precision-=n,t}var F=function(){function e(i,r,s){var o,u=0,a=i.length;for(i=i.slice();a--;)o=i[a]*r+u,i[a]=o%s|0,u=o/s|0;return u&&i.unshift(u),i}function t(i,r,s,o){var u,a;if(s!=o)a=s>o?1:-1;else for(u=a=0;u<s;u++)if(i[u]!=r[u]){a=i[u]>r[u]?1:-1;break}return a}function n(i,r,s,o){for(var u=0;s--;)i[s]-=u,u=i[s]<r[s]?1:0,i[s]=u*o+i[s]-r[s];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,s,o,u,a){var c,f,l,h,p,w,M,J,I,H,O,q,x,T,E,v,A,y,b,R,U=i.constructor,N=i.s==r.s?1:-1,g=i.d,m=r.d;if(!g||!g[0]||!m||!m[0])return new U(!i.s||!r.s||(g?m&&g[0]==m[0]:!m)?NaN:g&&g[0]==0||!m?N*0:N/0);for(a?(p=1,f=i.e-r.e):(a=K,p=k,f=W(i.e/p)-W(r.e/p)),b=m.length,A=g.length,I=new U(N),H=I.d=[],l=0;m[l]==(g[l]||0);l++);if(m[l]>(g[l]||0)&&f--,s==null?(T=s=U.precision,o=U.rounding):u?T=s+(i.e-r.e)+1:T=s,T<0)H.push(1),w=!0;else{if(T=T/p+2|0,l=0,b==1){for(h=0,m=m[0],T++;(l<A||h)&&T--;l++)E=h*a+(g[l]||0),H[l]=E/m|0,h=E%m|0;w=h||l<A}else{for(h=a/(m[0]+1)|0,h>1&&(m=e(m,h,a),g=e(g,h,a),b=m.length,A=g.length),v=b,O=g.slice(0,b),q=O.length;q<b;)O[q++]=0;R=m.slice(),R.unshift(0),y=m[0],m[1]>=a/2&&++y;do h=0,c=t(m,O,b,q),c<0?(x=O[0],b!=q&&(x=x*a+(O[1]||0)),h=x/y|0,h>1?(h>=a&&(h=a-1),M=e(m,h,a),J=M.length,q=O.length,c=t(M,O,J,q),c==1&&(h--,n(M,b<J?R:m,J,a))):(h==0&&(c=h=1),M=m.slice()),J=M.length,J<q&&M.unshift(0),n(O,M,q,a),c==-1&&(q=O.length,c=t(m,O,b,q),c<1&&(h++,n(O,b<q?R:m,q,a))),q=O.length):c===0&&(h++,O=[0]),H[l++]=h,c&&O[0]?O[q++]=g[v]||0:(O=[g[v]],q=1);while((v++<A||O[0]!==void 0)&&T--);w=O[0]!==void 0}H[0]||H.shift()}if(p==1)I.e=f,Ae=w;else{for(l=1,h=H[0];h>=10;h/=10)l++;I.e=l+f*p-1,S(I,u?s+I.e+1:s,o,w)}return I}}();function S(e,t,n,i){var r,s,o,u,a,c,f,l,h,p=e.constructor;e:if(t!=null){if(l=e.d,!l)return e;for(r=1,u=l[0];u>=10;u/=10)r++;if(s=t-r,s<0)s+=k,o=t,f=l[h=0],a=f/Y(10,r-o-1)%10|0;else if(h=Math.ceil((s+1)/k),u=l.length,h>=u)if(i){for(;u++<=h;)l.push(0);f=a=0,r=1,s%=k,o=s-k+1}else break e;else{for(f=u=l[h],r=1;u>=10;u/=10)r++;s%=k,o=s-k+r,a=o<0?0:f/Y(10,r-o-1)%10|0}if(i=i||t<0||l[h+1]!==void 0||(o<0?f:f%Y(10,r-o-1)),c=n<4?(a||i)&&(n==0||n==(e.s<0?3:2)):a>5||a==5&&(n==4||i||n==6&&(s>0?o>0?f/Y(10,r-o):0:l[h-1])%10&1||n==(e.s<0?8:7)),t<1||!l[0])return l.length=0,c?(t-=e.e+1,l[0]=Y(10,(k-t%k)%k),e.e=-t||0):l[0]=e.e=0,e;if(s==0?(l.length=h,u=1,h--):(l.length=h+1,u=Y(10,k-s),l[h]=o>0?(f/Y(10,r-o)%Y(10,o)|0)*u:0),c)for(;;)if(h==0){for(s=1,o=l[0];o>=10;o/=10)s++;for(o=l[0]+=u,u=1;o>=10;o/=10)u++;s!=u&&(e.e++,l[0]==K&&(l[0]=1));break}else{if(l[h]+=u,l[h]!=K)break;l[h--]=0,u=1}for(s=l.length;l[--s]===0;)l.pop()}return _&&(e.e>p.maxE?(e.d=null,e.e=NaN):e.e<p.minE&&(e.e=0,e.d=[0])),e}function ee(e,t,n){if(!e.isFinite())return Ye(e);var i,r=e.e,s=j(e.d),o=s.length;return t?(n&&(i=n-o)>0?s=s.charAt(0)+"."+s.slice(1)+se(i):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):r<0?(s="0."+se(-r-1)+s,n&&(i=n-o)>0&&(s+=se(i))):r>=o?(s+=se(r+1-o),n&&(i=n-r-1)>0&&(s=s+"."+se(i))):((i=r+1)<o&&(s=s.slice(0,i)+"."+s.slice(i)),n&&(i=n-o)>0&&(r+1===o&&(s+="."),s+=se(i))),s}function Ne(e,t){var n=e[0];for(t*=k;n>=10;n/=10)t++;return t}function Se(e,t,n){if(t>Nt)throw _=!0,n&&(e.precision=n),Error(Je);return S(new e(ve),t,1,!0)}function Q(e,t,n){if(t>Te)throw Error(Je);return S(new e($e),t,n,!0)}function qe(e){var t=e.length-1,n=t*k+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function se(e){for(var t="";e--;)t+="0";return t}function Ue(e,t,n,i){var r,s=new e(1),o=Math.ceil(i/k+4);for(_=!1;;){if(n%2&&(s=s.times(t),je(s.d,o)&&(r=!0)),n=W(n/2),n===0){n=s.d.length-1,r&&s.d[n]===0&&++s.d[n];break}t=t.times(t),je(t.d,o)}return _=!0,s}function Be(e){return e.d[e.d.length-1]&1}function He(e,t,n){for(var i,r=new e(t[0]),s=0;++s<t.length;)if(i=new e(t[s]),i.s)r[n](i)&&(r=i);else{r=i;break}return r}function ye(e,t){var n,i,r,s,o,u,a,c=0,f=0,l=0,h=e.constructor,p=h.rounding,w=h.precision;if(!e.d||!e.d[0]||e.e>17)return new h(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(_=!1,a=w):a=t,u=new h(.03125);e.e>-2;)e=e.times(u),l+=5;for(i=Math.log(Y(2,l))/Math.LN10*2+5|0,a+=i,n=s=o=new h(1),h.precision=a;;){if(s=S(s.times(e),a,1),n=n.times(++f),u=o.plus(F(s,n,a,1)),j(u.d).slice(0,a)===j(o.d).slice(0,a)){for(r=l;r--;)o=S(o.times(o),a,1);if(t==null)if(c<3&&de(o.d,a-i,p,c))h.precision=a+=10,n=s=u=new h(1),f=0,c++;else return S(o,h.precision=w,p,_=!0);else return h.precision=w,o}o=u}}function oe(e,t){var n,i,r,s,o,u,a,c,f,l,h,p=1,w=10,M=e,J=M.d,I=M.constructor,H=I.rounding,O=I.precision;if(M.s<0||!J||!J[0]||!M.e&&J[0]==1&&J.length==1)return new I(J&&!J[0]?-1/0:M.s!=1?NaN:J?0:M);if(t==null?(_=!1,f=O):f=t,I.precision=f+=w,n=j(J),i=n.charAt(0),Math.abs(s=M.e)<15e14){for(;i<7&&i!=1||i==1&&n.charAt(1)>3;)M=M.times(e),n=j(M.d),i=n.charAt(0),p++;s=M.e,i>1?(M=new I("0."+n),s++):M=new I(i+"."+n.slice(1))}else return c=Se(I,f+2,O).times(s+""),M=oe(new I(i+"."+n.slice(1)),f-w).plus(c),I.precision=O,t==null?S(M,O,H,_=!0):M;for(l=M,a=o=M=F(M.minus(1),M.plus(1),f,1),h=S(M.times(M),f,1),r=3;;){if(o=S(o.times(h),f,1),c=a.plus(F(o,new I(r),f,1)),j(c.d).slice(0,f)===j(a.d).slice(0,f))if(a=a.times(2),s!==0&&(a=a.plus(Se(I,f+2,O).times(s+""))),a=F(a,new I(p),f,1),t==null)if(de(a.d,f-w,H,u))I.precision=f+=w,c=o=M=F(l.minus(1),l.plus(1),f,1),h=S(M.times(M),f,1),r=u=1;else return S(a,I.precision=O,H,_=!0);else return I.precision=O,a;a=c,r+=2}}function Ye(e){return String(e.s*e.s/0)}function Ce(e,t){var n,i,r;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(i=t.search(/e/i))>0?(n<0&&(n=i),n+=+t.slice(i+1),t=t.substring(0,i)):n<0&&(n=t.length),i=0;t.charCodeAt(i)===48;i++);for(r=t.length;t.charCodeAt(r-1)===48;--r);if(t=t.slice(i,r),t){if(r-=i,e.e=n=n-i-1,e.d=[],i=(n+1)%k,n<0&&(i+=k),i<r){for(i&&e.d.push(+t.slice(0,i)),r-=k;i<r;)e.d.push(+t.slice(i,i+=k));t=t.slice(i),i=k-t.length}else i-=r;for(;i--;)t+="0";e.d.push(+t),_&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function Dt(e,t){var n,i,r,s,o,u,a,c,f;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Re.test(t))return Ce(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if($t.test(t))n=16,t=t.toLowerCase();else if(vt.test(t))n=2;else if(Mt.test(t))n=8;else throw Error(re+t);for(s=t.search(/p/i),s>0?(a=+t.slice(s+1),t=t.substring(2,s)):t=t.slice(2),s=t.indexOf("."),o=s>=0,i=e.constructor,o&&(t=t.replace(".",""),u=t.length,s=u-s,r=Ue(i,new i(n),s,s*2)),c=be(t,n,K),f=c.length-1,s=f;c[s]===0;--s)c.pop();return s<0?new i(e.s*0):(e.e=Ne(c,f),e.d=c,_=!1,o&&(e=F(e,r,u*4)),a&&(e=e.times(Math.abs(a)<54?Y(2,a):ne.pow(2,a))),_=!0,e)}function Et(e,t){var n,i=t.d.length;if(i<3)return t.isZero()?t:le(e,2,t,t);n=1.4*Math.sqrt(i),n=n>16?16:n|0,t=t.times(1/De(5,n)),t=le(e,2,t,t);for(var r,s=new e(5),o=new e(16),u=new e(20);n--;)r=t.times(t),t=t.times(s.plus(r.times(o.times(r).minus(u))));return t}function le(e,t,n,i,r){var s,o,u,a,c=e.precision,f=Math.ceil(c/k);for(_=!1,a=n.times(n),u=new e(i);;){if(o=F(u.times(a),new e(t++*t++),c,1),u=r?i.plus(o):i.minus(o),i=F(o.times(a),new e(t++*t++),c,1),o=u.plus(i),o.d[f]!==void 0){for(s=f;o.d[s]===u.d[s]&&s--;);if(s==-1)break}s=u,u=i,i=o,o=s}return _=!0,o.d.length=f+1,o}function De(e,t){for(var n=e;--t;)n*=e;return n}function Ze(e,t){var n,i=t.s<0,r=Q(e,e.precision,1),s=r.times(.5);if(t=t.abs(),t.lte(s))return te=i?4:1,t;if(n=t.divToInt(r),n.isZero())te=i?3:2;else{if(t=t.minus(n.times(r)),t.lte(s))return te=Be(n)?i?2:3:i?4:1,t;te=Be(n)?i?1:4:i?3:2}return t.minus(r).abs()}function Le(e,t,n,i){var r,s,o,u,a,c,f,l,h,p=e.constructor,w=n!==void 0;if(w?(z(n,1,ie),i===void 0?i=p.rounding:z(i,0,8)):(n=p.precision,i=p.rounding),!e.isFinite())f=Ye(e);else{for(f=ee(e),o=f.indexOf("."),w?(r=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):r=t,o>=0&&(f=f.replace(".",""),h=new p(1),h.e=f.length-o,h.d=be(ee(h),10,r),h.e=h.d.length),l=be(f,10,r),s=a=l.length;l[--a]==0;)l.pop();if(!l[0])f=w?"0p+0":"0";else{if(o<0?s--:(e=new p(e),e.d=l,e.e=s,e=F(e,h,n,i,0,r),l=e.d,s=e.e,c=Ae),o=l[n],u=r/2,c=c||l[n+1]!==void 0,c=i<4?(o!==void 0||c)&&(i===0||i===(e.s<0?3:2)):o>u||o===u&&(i===4||c||i===6&&l[n-1]&1||i===(e.s<0?8:7)),l.length=n,c)for(;++l[--n]>r-1;)l[n]=0,n||(++s,l.unshift(1));for(a=l.length;!l[a-1];--a);for(o=0,f="";o<a;o++)f+=_e.charAt(l[o]);if(w){if(a>1)if(t==16||t==8){for(o=t==16?4:3,--a;a%o;a++)f+="0";for(l=be(f,r,t),a=l.length;!l[a-1];--a);for(o=1,f="1.";o<a;o++)f+=_e.charAt(l[o])}else f=f.charAt(0)+"."+f.slice(1);f=f+(s<0?"p":"p+")+s}else if(s<0){for(;++s;)f="0"+f;f="0."+f}else if(++s>a)for(s-=a;s--;)f+="0";else s<a&&(f=f.slice(0,s)+"."+f.slice(s))}f=(t==16?"0x":t==2?"0b":t==8?"0o":"")+f}return e.s<0?"-"+f:f}function je(e,t){if(e.length>t)return e.length=t,!0}function kt(e){return new this(e).abs()}function _t(e){return new this(e).acos()}function Ot(e){return new this(e).acosh()}function Tt(e,t){return new this(e).plus(t)}function yt(e){return new this(e).asin()}function Ct(e){return new this(e).asinh()}function Lt(e){return new this(e).atan()}function It(e){return new this(e).atanh()}function At(e,t){e=new this(e),t=new this(t);var n,i=this.precision,r=this.rounding,s=i+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=Q(this,s,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?Q(this,i,r):new this(0),n.s=e.s):!e.d||t.isZero()?(n=Q(this,s,1).times(.5),n.s=e.s):t.s<0?(this.precision=s,this.rounding=1,n=this.atan(F(e,t,s,1)),t=Q(this,s,1),this.precision=i,this.rounding=r,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(F(e,t,s,1)),n}function Jt(e){return new this(e).cbrt()}function Ft(e){return S(e=new this(e),e.e+1,2)}function Pt(e,t,n){return new this(e).clamp(t,n)}function Rt(e){if(!e||typeof e!="object")throw Error(Me+"Object expected");var t,n,i,r=e.defaults===!0,s=["precision",1,ie,"rounding",0,8,"toExpNeg",-fe,0,"toExpPos",0,fe,"maxE",0,fe,"minE",-fe,0,"modulo",0,9];for(t=0;t<s.length;t+=3)if(n=s[t],r&&(this[n]=Oe[n]),(i=e[n])!==void 0)if(W(i)===i&&i>=s[t+1]&&i<=s[t+2])this[n]=i;else throw Error(re+n+": "+i);if(n="crypto",r&&(this[n]=Oe[n]),(i=e[n])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(Fe);else this[n]=!1;else throw Error(re+n+": "+i);return this}function qt(e){return new this(e).cos()}function Ut(e){return new this(e).cosh()}function We(e){var t,n,i;function r(s){var o,u,a,c=this;if(!(c instanceof r))return new r(s);if(c.constructor=r,Ve(s)){c.s=s.s,_?!s.d||s.e>r.maxE?(c.e=NaN,c.d=null):s.e<r.minE?(c.e=0,c.d=[0]):(c.e=s.e,c.d=s.d.slice()):(c.e=s.e,c.d=s.d?s.d.slice():s.d);return}if(a=typeof s,a==="number"){if(s===0){c.s=1/s<0?-1:1,c.e=0,c.d=[0];return}if(s<0?(s=-s,c.s=-1):c.s=1,s===~~s&&s<1e7){for(o=0,u=s;u>=10;u/=10)o++;_?o>r.maxE?(c.e=NaN,c.d=null):o<r.minE?(c.e=0,c.d=[0]):(c.e=o,c.d=[s]):(c.e=o,c.d=[s]);return}else if(s*0!==0){s||(c.s=NaN),c.e=NaN,c.d=null;return}return Ce(c,s.toString())}else if(a!=="string")throw Error(re+s);return(u=s.charCodeAt(0))===45?(s=s.slice(1),c.s=-1):(u===43&&(s=s.slice(1)),c.s=1),Re.test(s)?Ce(c,s):Dt(c,s)}if(r.prototype=d,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=Rt,r.clone=We,r.isDecimal=Ve,r.abs=kt,r.acos=_t,r.acosh=Ot,r.add=Tt,r.asin=yt,r.asinh=Ct,r.atan=Lt,r.atanh=It,r.atan2=At,r.cbrt=Jt,r.ceil=Ft,r.clamp=Pt,r.cos=qt,r.cosh=Ut,r.div=Bt,r.exp=Ht,r.floor=Yt,r.hypot=Zt,r.ln=jt,r.log=Wt,r.log10=zt,r.log2=Vt,r.max=Gt,r.min=xt,r.mod=Xt,r.mul=Kt,r.pow=Qt,r.random=en,r.round=tn,r.sign=nn,r.sin=rn,r.sinh=sn,r.sqrt=on,r.sub=un,r.sum=cn,r.tan=an,r.tanh=fn,r.trunc=ln,e===void 0&&(e={}),e&&e.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<i.length;)e.hasOwnProperty(n=i[t++])||(e[n]=this[n]);return r.config(e),r}function Bt(e,t){return new this(e).div(t)}function Ht(e){return new this(e).exp()}function Yt(e){return S(e=new this(e),e.e+1,3)}function Zt(){var e,t,n=new this(0);for(_=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return _=!0,new this(1/0);n=t}return _=!0,n.sqrt()}function Ve(e){return e instanceof ne||e&&e.toStringTag===Pe||!1}function jt(e){return new this(e).ln()}function Wt(e,t){return new this(e).log(t)}function Vt(e){return new this(e).log(2)}function zt(e){return new this(e).log(10)}function Gt(){return He(this,arguments,"lt")}function xt(){return He(this,arguments,"gt")}function Xt(e,t){return new this(e).mod(t)}function Kt(e,t){return new this(e).mul(t)}function Qt(e,t){return new this(e).pow(t)}function en(e){var t,n,i,r,s=0,o=new this(1),u=[];if(e===void 0?e=this.precision:z(e,1,ie),i=Math.ceil(e/k),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(i));s<i;)r=t[s],r>=429e7?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:u[s++]=r%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(i*=4);s<i;)r=t[s]+(t[s+1]<<8)+(t[s+2]<<16)+((t[s+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(t,s):(u.push(r%1e7),s+=4);s=i/4}else throw Error(Fe);else for(;s<i;)u[s++]=Math.random()*1e7|0;for(i=u[--s],e%=k,i&&e&&(r=Y(10,k-e),u[s]=(i/r|0)*r);u[s]===0;s--)u.pop();if(s<0)n=0,u=[0];else{for(n=-1;u[0]===0;n-=k)u.shift();for(i=1,r=u[0];r>=10;r/=10)i++;i<k&&(n-=k-i)}return o.e=n,o.d=u,o}function tn(e){return S(e=new this(e),e.e+1,this.rounding)}function nn(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function rn(e){return new this(e).sin()}function sn(e){return new this(e).sinh()}function on(e){return new this(e).sqrt()}function un(e,t){return new this(e).sub(t)}function cn(){var e=0,t=arguments,n=new this(t[e]);for(_=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return _=!0,S(n,this.precision,this.rounding)}function an(e){return new this(e).tan()}function fn(e){return new this(e).tanh()}function ln(e){return S(e=new this(e),e.e+1,1)}d[Symbol.for("nodejs.util.inspect.custom")]=d.toString,d[Symbol.toStringTag]="Decimal";var ne=d.constructor=We(Oe);ve=new ne(ve),$e=new ne($e);const hn=(e,t,n,i=2)=>{const s={"+":(o,u)=>o.add(u),"-":(o,u)=>o.sub(u),"*":(o,u)=>o.mul(u),"/":(o,u)=>{if(u.eq(0))throw new Error("除数不能为0");return o.div(u)}}[n](new ne(e),new ne(t));return Number(s.toFixed(i))},dn=(e,t)=>t.reduce((n,i)=>{const{key:r,verify:s,msg:o,name:u}=i,a=e[r];return a===""||a===void 0||a===null?n.push({key:r,msg:"必填项",name:u}):(typeof s=="function"?!s(a):!s.test(a))&&n.push({key:r,msg:o,name:u}),n},[]),mn=({promiseFn:e,maxRetries:t=3,retryDelay:n=2e3,params:i=void 0})=>new Promise((r,s)=>{let o=0;const u=()=>{e(i).then(a=>{r(a)}).catch(a=>{if(o++,o>=t){s(a);return}setTimeout(u,n)})};u()}),pn=e=>Math.random()*100<e,gn=(e,t,n=0)=>parseFloat((Math.random()*(t-e)+e).toFixed(n)),wn=(e=1)=>{const t=Math.floor(Math.random()*256),n=Math.floor(Math.random()*256),i=Math.floor(Math.random()*256);return`rgba(${t}, ${n}, ${i}, ${e})`},vn=(e,t,n)=>{const i=Array.from({length:t-e+1},(r,s)=>s+e);for(let r=i.length-1;r>0;r--){const s=Math.floor(Math.random()*(r+1));[i[r],i[s]]=[i[s],i[r]]}return i.slice(0,n)};var ze=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ge(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var xe={exports:{}};(function(e,t){(function(n,i){e.exports=i()})(ze,function(){var n=1e3,i=6e4,r=36e5,s="millisecond",o="second",u="minute",a="hour",c="day",f="week",l="month",h="quarter",p="year",w="date",M="Invalid Date",J=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,I=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,H={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(N){var g=["th","st","nd","rd"],m=N%100;return"["+N+(g[(m-20)%10]||g[m]||g[0])+"]"}},O=function(N,g,m){var D=String(N);return!D||D.length>=g?N:""+Array(g+1-D.length).join(m)+N},q={s:O,z:function(N){var g=-N.utcOffset(),m=Math.abs(g),D=Math.floor(m/60),$=m%60;return(g<=0?"+":"-")+O(D,2,"0")+":"+O($,2,"0")},m:function N(g,m){if(g.date()<m.date())return-N(m,g);var D=12*(m.year()-g.year())+(m.month()-g.month()),$=g.clone().add(D,l),C=m-$<0,L=g.clone().add(D+(C?-1:1),l);return+(-(D+(m-$)/(C?$-L:L-$))||0)},a:function(N){return N<0?Math.ceil(N)||0:Math.floor(N)},p:function(N){return{M:l,y:p,w:f,d:c,D:w,h:a,m:u,s:o,ms:s,Q:h}[N]||String(N||"").toLowerCase().replace(/s$/,"")},u:function(N){return N===void 0}},x="en",T={};T[x]=H;var E="$isDayjsObject",v=function(N){return N instanceof R||!(!N||!N[E])},A=function N(g,m,D){var $;if(!g)return x;if(typeof g=="string"){var C=g.toLowerCase();T[C]&&($=C),m&&(T[C]=m,$=C);var L=g.split("-");if(!$&&L.length>1)return N(L[0])}else{var P=g.name;T[P]=g,$=P}return!D&&$&&(x=$),$||!D&&x},y=function(N,g){if(v(N))return N.clone();var m=typeof g=="object"?g:{};return m.date=N,m.args=arguments,new R(m)},b=q;b.l=A,b.i=v,b.w=function(N,g){return y(N,{locale:g.$L,utc:g.$u,x:g.$x,$offset:g.$offset})};var R=function(){function N(m){this.$L=A(m.locale,null,!0),this.parse(m),this.$x=this.$x||m.x||{},this[E]=!0}var g=N.prototype;return g.parse=function(m){this.$d=function(D){var $=D.date,C=D.utc;if($===null)return new Date(NaN);if(b.u($))return new Date;if($ instanceof Date)return new Date($);if(typeof $=="string"&&!/Z$/i.test($)){var L=$.match(J);if(L){var P=L[2]-1||0,B=(L[7]||"0").substring(0,3);return C?new Date(Date.UTC(L[1],P,L[3]||1,L[4]||0,L[5]||0,L[6]||0,B)):new Date(L[1],P,L[3]||1,L[4]||0,L[5]||0,L[6]||0,B)}}return new Date($)}(m),this.init()},g.init=function(){var m=this.$d;this.$y=m.getFullYear(),this.$M=m.getMonth(),this.$D=m.getDate(),this.$W=m.getDay(),this.$H=m.getHours(),this.$m=m.getMinutes(),this.$s=m.getSeconds(),this.$ms=m.getMilliseconds()},g.$utils=function(){return b},g.isValid=function(){return this.$d.toString()!==M},g.isSame=function(m,D){var $=y(m);return this.startOf(D)<=$&&$<=this.endOf(D)},g.isAfter=function(m,D){return y(m)<this.startOf(D)},g.isBefore=function(m,D){return this.endOf(D)<y(m)},g.$g=function(m,D,$){return b.u(m)?this[D]:this.set($,m)},g.unix=function(){return Math.floor(this.valueOf()/1e3)},g.valueOf=function(){return this.$d.getTime()},g.startOf=function(m,D){var $=this,C=!!b.u(D)||D,L=b.p(m),P=function(ae,G){var ue=b.w($.$u?Date.UTC($.$y,G,ae):new Date($.$y,G,ae),$);return C?ue:ue.endOf(c)},B=function(ae,G){return b.w($.toDate()[ae].apply($.toDate("s"),(C?[0,0,0,0]:[23,59,59,999]).slice(G)),$)},Z=this.$W,V=this.$M,X=this.$D,he="set"+(this.$u?"UTC":"");switch(L){case p:return C?P(1,0):P(31,11);case l:return C?P(1,V):P(0,V+1);case f:var ce=this.$locale().weekStart||0,me=(Z<ce?Z+7:Z)-ce;return P(C?X-me:X+(6-me),V);case c:case w:return B(he+"Hours",0);case a:return B(he+"Minutes",1);case u:return B(he+"Seconds",2);case o:return B(he+"Milliseconds",3);default:return this.clone()}},g.endOf=function(m){return this.startOf(m,!1)},g.$set=function(m,D){var $,C=b.p(m),L="set"+(this.$u?"UTC":""),P=($={},$[c]=L+"Date",$[w]=L+"Date",$[l]=L+"Month",$[p]=L+"FullYear",$[a]=L+"Hours",$[u]=L+"Minutes",$[o]=L+"Seconds",$[s]=L+"Milliseconds",$)[C],B=C===c?this.$D+(D-this.$W):D;if(C===l||C===p){var Z=this.clone().set(w,1);Z.$d[P](B),Z.init(),this.$d=Z.set(w,Math.min(this.$D,Z.daysInMonth())).$d}else P&&this.$d[P](B);return this.init(),this},g.set=function(m,D){return this.clone().$set(m,D)},g.get=function(m){return this[b.p(m)]()},g.add=function(m,D){var $,C=this;m=Number(m);var L=b.p(D),P=function(V){var X=y(C);return b.w(X.date(X.date()+Math.round(V*m)),C)};if(L===l)return this.set(l,this.$M+m);if(L===p)return this.set(p,this.$y+m);if(L===c)return P(1);if(L===f)return P(7);var B=($={},$[u]=i,$[a]=r,$[o]=n,$)[L]||1,Z=this.$d.getTime()+m*B;return b.w(Z,this)},g.subtract=function(m,D){return this.add(-1*m,D)},g.format=function(m){var D=this,$=this.$locale();if(!this.isValid())return $.invalidDate||M;var C=m||"YYYY-MM-DDTHH:mm:ssZ",L=b.z(this),P=this.$H,B=this.$m,Z=this.$M,V=$.weekdays,X=$.months,he=$.meridiem,ce=function(G,ue,pe,ke){return G&&(G[ue]||G(D,C))||pe[ue].slice(0,ke)},me=function(G){return b.s(P%12||12,G,"0")},ae=he||function(G,ue,pe){var ke=G<12?"AM":"PM";return pe?ke.toLowerCase():ke};return C.replace(I,function(G,ue){return ue||function(pe){switch(pe){case"YY":return String(D.$y).slice(-2);case"YYYY":return b.s(D.$y,4,"0");case"M":return Z+1;case"MM":return b.s(Z+1,2,"0");case"MMM":return ce($.monthsShort,Z,X,3);case"MMMM":return ce(X,Z);case"D":return D.$D;case"DD":return b.s(D.$D,2,"0");case"d":return String(D.$W);case"dd":return ce($.weekdaysMin,D.$W,V,2);case"ddd":return ce($.weekdaysShort,D.$W,V,3);case"dddd":return V[D.$W];case"H":return String(P);case"HH":return b.s(P,2,"0");case"h":return me(1);case"hh":return me(2);case"a":return ae(P,B,!0);case"A":return ae(P,B,!1);case"m":return String(B);case"mm":return b.s(B,2,"0");case"s":return String(D.$s);case"ss":return b.s(D.$s,2,"0");case"SSS":return b.s(D.$ms,3,"0");case"Z":return L}return null}(G)||L.replace(":","")})},g.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},g.diff=function(m,D,$){var C,L=this,P=b.p(D),B=y(m),Z=(B.utcOffset()-this.utcOffset())*i,V=this-B,X=function(){return b.m(L,B)};switch(P){case p:C=X()/12;break;case l:C=X();break;case h:C=X()/3;break;case f:C=(V-Z)/6048e5;break;case c:C=(V-Z)/864e5;break;case a:C=V/r;break;case u:C=V/i;break;case o:C=V/n;break;default:C=V}return $?C:b.a(C)},g.daysInMonth=function(){return this.endOf(l).$D},g.$locale=function(){return T[this.$L]},g.locale=function(m,D){if(!m)return this.$L;var $=this.clone(),C=A(m,D,!0);return C&&($.$L=C),$},g.clone=function(){return b.w(this.$d,this)},g.toDate=function(){return new Date(this.valueOf())},g.toJSON=function(){return this.isValid()?this.toISOString():null},g.toISOString=function(){return this.$d.toISOString()},g.toString=function(){return this.$d.toUTCString()},N}(),U=R.prototype;return y.prototype=U,[["$ms",s],["$s",o],["$m",u],["$H",a],["$W",c],["$M",l],["$y",p],["$D",w]].forEach(function(N){U[N[1]]=function(g){return this.$g(g,N[0],N[1])}}),y.extend=function(N,g){return N.$i||(N(g,R,y),N.$i=!0),y},y.locale=A,y.isDayjs=v,y.unix=function(N){return y(1e3*N)},y.en=T[x],y.Ls=T,y.p={},y})})(xe);var $n=xe.exports;const Ee=Ge($n),Mn=(e,t)=>{const n=Ee(e).startOf(t),i=Ee().startOf(t);return n.isSame(i)?0:n.isBefore(i)?1:-1},bn=e=>{const t=[{unit:"年",milliseconds:31536e6},{unit:"月",milliseconds:2592e6},{unit:"周",milliseconds:6048e5},{unit:"天",milliseconds:864e5},{unit:"小时",milliseconds:36e5},{unit:"分钟",milliseconds:6e4}],i=Date.now()-e;for(const{unit:r,milliseconds:s}of t)if(i>=s)return`${Math.floor(i/s)} ${r}前`;return"刚刚"},Nn=(e={})=>{const{midnight:t="午夜好",morning:n="早上好",forenoon:i="上午好",noon:r="中午好",afternoon:s="下午好",evening:o="晚上好"}=e,u=new Date().getHours();return u<4?t:u<10?n:u<12?i:u<14?r:u<18?s:o};class Sn{constructor(t,n){this._currentIndex=0,this._numsLength=0,this._isDown=!1,this._onChange=n,this._numsLength=t,window.addEventListener("pointerup",()=>{this._isDown&&this._up()})}down(t){this._isDown=!0,this._handleChange(t),this._timerId=setTimeout(()=>{this._isDown&&(this._intervalId=setInterval(()=>{this._handleChange(t)},100))},100)}updateIndex(t){this._currentIndex=t}_up(){this._isDown=!1,clearTimeout(this._timerId),clearInterval(this._intervalId)}_handleChange(t){t==="add"?this._currentIndex<this._numsLength-1&&(this._currentIndex++,this._onChange(this._currentIndex)):t==="sub"&&this._currentIndex>0&&(this._currentIndex--,this._onChange(this._currentIndex))}}const Dn=e=>{if(e<=0)return[0,"B","0 B"];const t=1024,n=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],i=Math.min(Math.floor(Math.log(e)/Math.log(t)),n.length-1),r=(e/t**i).toFixed(2);return[r,n[i],`${r} ${n[i]}`]},En=e=>e.toString().replace(/^(\d{3})\d{4}(\d{4})$/,"$1****$2"),Ie=(e,t=2)=>{const n=e.toFixed(t).toString(),i=n.indexOf(".")>-1?/(\d)(?=(\d{3})+\.)/g:/(\d)(?=(?:\d{3})+$)/g;return n.replace(i,"$1,")},kn=(e,t,n=0)=>{const i=new ne(e),r=Object.entries(t).sort(([,o],[,u])=>u-o);for(const[o,u]of r){const a=new ne(u);if(i.greaterThanOrEqualTo(a)){const c=i.dividedBy(a);return Ie(Number(c),n)+o}}return Ie(Number(i),n)};var Xe={exports:{}};(function(e,t){(function(n,i){e.exports=i()})(ze,function(){var n,i,r=1e3,s=6e4,o=36e5,u=864e5,a=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,c=31536e6,f=2628e6,l=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,h={years:c,months:f,days:u,hours:o,minutes:s,seconds:r,milliseconds:1,weeks:6048e5},p=function(T){return T instanceof q},w=function(T,E,v){return new q(T,v,E.$l)},M=function(T){return i.p(T)+"s"},J=function(T){return T<0},I=function(T){return J(T)?Math.ceil(T):Math.floor(T)},H=function(T){return Math.abs(T)},O=function(T,E){return T?J(T)?{negative:!0,format:""+H(T)+E}:{negative:!1,format:""+T+E}:{negative:!1,format:""}},q=function(){function T(v,A,y){var b=this;if(this.$d={},this.$l=y,v===void 0&&(this.$ms=0,this.parseFromMilliseconds()),A)return w(v*h[M(A)],this);if(typeof v=="number")return this.$ms=v,this.parseFromMilliseconds(),this;if(typeof v=="object")return Object.keys(v).forEach(function(N){b.$d[M(N)]=v[N]}),this.calMilliseconds(),this;if(typeof v=="string"){var R=v.match(l);if(R){var U=R.slice(2).map(function(N){return N!=null?Number(N):0});return this.$d.years=U[0],this.$d.months=U[1],this.$d.weeks=U[2],this.$d.days=U[3],this.$d.hours=U[4],this.$d.minutes=U[5],this.$d.seconds=U[6],this.calMilliseconds(),this}}return this}var E=T.prototype;return E.calMilliseconds=function(){var v=this;this.$ms=Object.keys(this.$d).reduce(function(A,y){return A+(v.$d[y]||0)*h[y]},0)},E.parseFromMilliseconds=function(){var v=this.$ms;this.$d.years=I(v/c),v%=c,this.$d.months=I(v/f),v%=f,this.$d.days=I(v/u),v%=u,this.$d.hours=I(v/o),v%=o,this.$d.minutes=I(v/s),v%=s,this.$d.seconds=I(v/r),v%=r,this.$d.milliseconds=v},E.toISOString=function(){var v=O(this.$d.years,"Y"),A=O(this.$d.months,"M"),y=+this.$d.days||0;this.$d.weeks&&(y+=7*this.$d.weeks);var b=O(y,"D"),R=O(this.$d.hours,"H"),U=O(this.$d.minutes,"M"),N=this.$d.seconds||0;this.$d.milliseconds&&(N+=this.$d.milliseconds/1e3,N=Math.round(1e3*N)/1e3);var g=O(N,"S"),m=v.negative||A.negative||b.negative||R.negative||U.negative||g.negative,D=R.format||U.format||g.format?"T":"",$=(m?"-":"")+"P"+v.format+A.format+b.format+D+R.format+U.format+g.format;return $==="P"||$==="-P"?"P0D":$},E.toJSON=function(){return this.toISOString()},E.format=function(v){var A=v||"YYYY-MM-DDTHH:mm:ss",y={Y:this.$d.years,YY:i.s(this.$d.years,2,"0"),YYYY:i.s(this.$d.years,4,"0"),M:this.$d.months,MM:i.s(this.$d.months,2,"0"),D:this.$d.days,DD:i.s(this.$d.days,2,"0"),H:this.$d.hours,HH:i.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:i.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:i.s(this.$d.seconds,2,"0"),SSS:i.s(this.$d.milliseconds,3,"0")};return A.replace(a,function(b,R){return R||String(y[b])})},E.as=function(v){return this.$ms/h[M(v)]},E.get=function(v){var A=this.$ms,y=M(v);return y==="milliseconds"?A%=1e3:A=y==="weeks"?I(A/h[y]):this.$d[y],A||0},E.add=function(v,A,y){var b;return b=A?v*h[M(A)]:p(v)?v.$ms:w(v,this).$ms,w(this.$ms+b*(y?-1:1),this)},E.subtract=function(v,A){return this.add(v,A,!0)},E.locale=function(v){var A=this.clone();return A.$l=v,A},E.clone=function(){return w(this.$ms,this)},E.humanize=function(v){return n().add(this.$ms,"ms").locale(this.$l).fromNow(!v)},E.valueOf=function(){return this.asMilliseconds()},E.milliseconds=function(){return this.get("milliseconds")},E.asMilliseconds=function(){return this.as("milliseconds")},E.seconds=function(){return this.get("seconds")},E.asSeconds=function(){return this.as("seconds")},E.minutes=function(){return this.get("minutes")},E.asMinutes=function(){return this.as("minutes")},E.hours=function(){return this.get("hours")},E.asHours=function(){return this.as("hours")},E.days=function(){return this.get("days")},E.asDays=function(){return this.as("days")},E.weeks=function(){return this.get("weeks")},E.asWeeks=function(){return this.as("weeks")},E.months=function(){return this.get("months")},E.asMonths=function(){return this.as("months")},E.years=function(){return this.get("years")},E.asYears=function(){return this.as("years")},T}(),x=function(T,E,v){return T.add(E.years()*v,"y").add(E.months()*v,"M").add(E.days()*v,"d").add(E.hours()*v,"h").add(E.minutes()*v,"m").add(E.seconds()*v,"s").add(E.milliseconds()*v,"ms")};return function(T,E,v){n=v,i=v().$utils(),v.duration=function(b,R){var U=v.locale();return w(b,{$l:U},R)},v.isDuration=p;var A=E.prototype.add,y=E.prototype.subtract;E.prototype.add=function(b,R){return p(b)?x(this,b,1):A.bind(this)(b,R)},E.prototype.subtract=function(b,R){return p(b)?x(this,b,-1):y.bind(this)(b,R)}}})})(Xe);var _n=Xe.exports;const On=Ge(_n);Ee.extend(On);const Tn=Object.freeze(Object.defineProperty({__proto__:null,Base:{libJsGetDataType:ge,libJsPromiseTimeout:Ke},Browser:{libJsColorConsole:Qe,libJsIsMobile:et,libJsIsPad:tt,libJsPathParams:nt,libJsSetTitleIcon:it,libJsTagTitleTip:rt,libJsObjToUrlParams:st},Data:{libJsChunkArray:ot,libJsDeepJSONParse:we,libJsGroupArrayByKey:ut,libJsMatchEmail:ct,libJsShuffleArray:at,libJsStepArray:ft,libReverseArrayFromIndex:lt},File:{libJsDownloadImageLink:ht,libJsImageOptimizer:dt,libJsSaveJson:mt},Formatter:{libJsFormatterByte:Dn,libJsMaskPhoneNumber:En,libJsNumComma:Ie,libJsNumberUnit:kn,libJsSecondsFormatterChinese:e=>{const t=Ee.duration(e,"seconds"),n=Math.floor(t.asYears()),i=Math.floor(t.asMonths()%12),r=Math.floor(t.asDays()%30),s=t.hours(),o=t.minutes(),u=t.seconds(),a=[];return n>0&&a.push(`${n}年`),i>0&&a.push(`${i}月`),r>0&&a.push(`${r}天`),s>0&&a.push(`${s}小时`),o>0&&a.push(`${o}分`),(a.length===0||u>0)&&a.push(`${u}秒`),a.join("")}},Math:{libJsCalculateExpression:(e,t=2)=>{e=e.replace(/\s+/g,"");const n={"+":1,"-":1,"*":2,"/":2},i=u=>new ne(u),r=u=>["+","-","*","/"].includes(u),s=u=>/[0-9.]/.test(u),o=u=>{const a=[],c=[];let f=0;for(;f<u.length;){const h=u[f];if(s(h)){let p="";for(;f<u.length&&s(u[f]);)p+=u[f],f++;a.push(i(p))}else if(h==="(")c.push(h),f++;else if(h===")"){for(;c.length>0&&c[c.length-1]!=="(";)a.push(c.pop());c.pop(),f++}else if(r(h)){for(;c.length>0&&n[c[c.length-1]]>=n[h];)a.push(c.pop());c.push(h),f++}else throw new Error(`无效字符: ${h}`)}for(;c.length>0;)a.push(c.pop());const l=[];for(let h of a)if(typeof h=="string"){const p=l.pop(),w=l.pop();switch(h){case"+":l.push(w.add(p));break;case"-":l.push(w.sub(p));break;case"*":l.push(w.mul(p));break;case"/":if(p.eq(0))throw new Error("除数不能为零");l.push(w.div(p));break}}else l.push(h);return l.pop()};try{const u=o(e);return Number(u.toFixed(t))}catch(u){throw new Error("表达式计算失败:"+u.message)}},libJsConvertAngle:pt,libJsCoordsAngle:gt,libJsCoordsDistance:wt,libJsDecimal:hn},Misc:{libJsRegFormValidate:dn,libJsRetryRequest:mn,LibJsNumberStepper:Sn,LibJsEmitter:()=>{const e=new Map;return{on:(r,s)=>{e.has(r)||e.set(r,[]),e.get(r).push(s)},emit:(r,...s)=>{var o;(o=e.get(r))==null||o.forEach(u=>u(...s))},off:(r,s)=>{if(!s)e.delete(r);else{const o=e.get(r);o&&e.set(r,o.filter(u=>u!==s))}}}},LibJsLerp:(e,t,n)=>{const i=Math.min(Math.max(n,0),1);return e*(1-i)+t*i},LibJsNormalizeInRange:(e,t,n)=>Math.max(0,Math.min((e-n)/(e-t),1))},Random:{libJsProbabilityResult:pn,libJsRandom:gn,libJsRandomColor:wn,libJsUniqueRandomNumbers:vn},Time:{libJsSameTimeCheck:Mn,libJsTimeAgo:bn,libJsTimeGreeting:Nn}},Symbol.toStringTag,{value:"Module"}));window.LibJs=Tn});
1
+ (function(factory) {
2
+ typeof define === "function" && define.amd ? define(factory) : factory();
3
+ })(function() {
4
+ "use strict";
5
+ const libJsGetDataType = (v) => {
6
+ return Object.prototype.toString.call(v).substring(8).replace(/]/g, "").toLowerCase();
7
+ };
8
+ const libJsPromiseTimeout = (delay = 1, fn) => {
9
+ let timeoutId;
10
+ let remainingTime = delay;
11
+ let startTime = Date.now();
12
+ let isPaused = false;
13
+ return new Promise((resolve) => {
14
+ const handleVisibilityChange = () => {
15
+ if (document.hidden) {
16
+ isPaused = true;
17
+ clearTimeout(timeoutId);
18
+ remainingTime -= Date.now() - startTime;
19
+ } else {
20
+ if (isPaused) {
21
+ isPaused = false;
22
+ startTime = Date.now();
23
+ startTimeout(resolve);
24
+ }
25
+ }
26
+ };
27
+ const startTimeout = (resolve2) => {
28
+ timeoutId = setTimeout(() => {
29
+ fn == null ? void 0 : fn();
30
+ resolve2();
31
+ document.removeEventListener(
32
+ "visibilitychange",
33
+ handleVisibilityChange
34
+ );
35
+ }, remainingTime);
36
+ };
37
+ document.addEventListener("visibilitychange", handleVisibilityChange);
38
+ startTimeout(resolve);
39
+ });
40
+ };
41
+ const libJsColorConsole = (title, color, logs = []) => {
42
+ const colors = {
43
+ red: "#c0392b",
44
+ orange: "#d35400",
45
+ yellow: "#f1c40f",
46
+ green: "#27ae60",
47
+ blue: "#2980b9",
48
+ purple: "#be2edd"
49
+ };
50
+ const getTimestamp = () => {
51
+ const now = /* @__PURE__ */ new Date();
52
+ const hour = String(now.getHours()).padStart(2, "0");
53
+ const minutes = String(now.getMinutes()).padStart(2, "0");
54
+ const seconds = String(now.getSeconds()).padStart(2, "0");
55
+ return `[${hour}:${minutes}:${seconds}]`;
56
+ };
57
+ if (Array.isArray(logs)) {
58
+ const v = logs.map((log3) => {
59
+ return [`
60
+ ${log3.label}:`, log3.value];
61
+ });
62
+ console.log(
63
+ `%c${getTimestamp()}-${title}`,
64
+ `color: #fff;background: ${colors[color]}; font-size:14px;border-radius:5px;padding:0.25em;margin:0.5em 0`,
65
+ ...v.flat(Infinity)
66
+ );
67
+ } else {
68
+ console.log(
69
+ `%c${getTimestamp()}-${title}`,
70
+ `color: #fff;background: ${colors[color]}; font-size:14px;border-radius:5px;padding:0.25em;margin:0.5em 0`,
71
+ logs
72
+ );
73
+ }
74
+ };
75
+ const libJsIsMobile = () => {
76
+ const ua = navigator.userAgent.toLowerCase();
77
+ return /mobile|android|iphone|ipod/.test(ua);
78
+ };
79
+ const libJsIsPad = () => {
80
+ const ua = navigator.userAgent.toLowerCase();
81
+ const width = Math.max(window.screen.width, window.screen.height);
82
+ const height = Math.min(window.screen.width, window.screen.height);
83
+ const aspectRatio = width / height;
84
+ const isTabletUserAgent = /ipad|tablet|playbook|silk/.test(ua) && !/mobile/.test(ua);
85
+ const isTabletWidth = width >= 768 && width <= 1366;
86
+ const isTabletAspectRatio = aspectRatio >= 1.3 && aspectRatio <= 1.6;
87
+ return isTabletUserAgent || isTabletWidth && isTabletAspectRatio;
88
+ };
89
+ const libJsPathParams = () => {
90
+ const v = location.href;
91
+ const url = v.split("?")[1];
92
+ if (!url)
93
+ return {};
94
+ const params = url.split("&").reduce((pre, cur) => {
95
+ const [k, v2] = cur.split(/=(.+)/);
96
+ return pre[k] = v2, pre;
97
+ }, {}) || {};
98
+ return params;
99
+ };
100
+ const libJsSetTitleIcon = (title, url) => {
101
+ document.title = title;
102
+ const link = document.createElement("link");
103
+ link.setAttribute("rel", "icon");
104
+ link.setAttribute("href", url);
105
+ const head = document.head || document.getElementsByTagName("head")[0];
106
+ head.appendChild(link);
107
+ };
108
+ const libJsTagTitleTip = (backTitle, leaveTitle) => {
109
+ let document_title = "";
110
+ let timer;
111
+ window.addEventListener("visibilitychange", () => {
112
+ clearTimeout(timer);
113
+ if (document.hidden) {
114
+ if (document.title !== backTitle) {
115
+ document_title = document.title;
116
+ }
117
+ document.title = leaveTitle;
118
+ return;
119
+ }
120
+ document.title = backTitle;
121
+ timer = setTimeout(() => {
122
+ document.title = document_title;
123
+ }, 1e3);
124
+ });
125
+ };
126
+ const libJsObjToUrlParams = (params) => {
127
+ return Object.entries(params).map(([key, value]) => `${key}=${value}`).join("&");
128
+ };
129
+ const libJsChunkArray = (arr, chunkSize) => {
130
+ const result = [];
131
+ for (let i = 0; i < arr.length; i += chunkSize) {
132
+ result.push(arr.slice(i, i + chunkSize));
133
+ }
134
+ return result;
135
+ };
136
+ const libJsDeepJSONParse = (data) => {
137
+ if (typeof data === "string") {
138
+ try {
139
+ const parsed = JSON.parse(data);
140
+ return libJsDeepJSONParse(parsed);
141
+ } catch {
142
+ return data;
143
+ }
144
+ }
145
+ if (Array.isArray(data)) {
146
+ return data.map((item) => libJsDeepJSONParse(item));
147
+ }
148
+ if (data !== null && typeof data === "object") {
149
+ return Object.keys(data).reduce((acc, key) => {
150
+ acc[key] = libJsDeepJSONParse(data[key]);
151
+ return acc;
152
+ }, {});
153
+ }
154
+ return data;
155
+ };
156
+ const libJsGroupArrayByKey = (arr = [], key) => {
157
+ return key ? arr.reduce((t, v) => {
158
+ if (!t[v[key]]) {
159
+ t[v[key]] = [];
160
+ }
161
+ t[v[key]].push(v);
162
+ return t;
163
+ }, {}) : {};
164
+ };
165
+ const libJsMatchEmail = (str, emailList) => {
166
+ return str.includes("@") ? emailList.filter((item) => item.includes(str.slice(str.indexOf("@")))).map((item) => (str.includes("@") ? str.split("@")[0] : str) + item) : emailList.map((item) => str + item);
167
+ };
168
+ const libJsShuffleArray = (arr) => {
169
+ const newArr = [...arr];
170
+ for (let i = newArr.length - 1; i > 0; i--) {
171
+ const j = Math.floor(Math.random() * (i + 1));
172
+ [newArr[i], newArr[j]] = [newArr[j], newArr[i]];
173
+ }
174
+ return newArr;
175
+ };
176
+ const libJsStepArray = (arr, step) => {
177
+ const length = arr.length;
178
+ if (length === 0 || step % length === 0)
179
+ return arr;
180
+ const normalizedStep = (step % length + length) % length;
181
+ return arr.slice(-normalizedStep).concat(arr.slice(0, -normalizedStep));
182
+ };
183
+ const libReverseArrayFromIndex = (arr, index) => {
184
+ if (index < 0 || index >= arr.length) {
185
+ throw new Error("Index out of bounds");
186
+ }
187
+ const subArray = arr.slice(index + 1).reverse();
188
+ return [...arr.slice(0, index + 1), ...subArray];
189
+ };
190
+ const libJsDownloadImageLink = (link, name) => {
191
+ fetch(link).then((res) => res.blob()).then((blob) => {
192
+ const a = document.createElement("a");
193
+ const url = window.URL.createObjectURL(blob);
194
+ a.href = url;
195
+ a.download = name;
196
+ a.click();
197
+ });
198
+ };
199
+ const libJsImageOptimizer = (obj) => {
200
+ const canvas = document.createElement("canvas");
201
+ canvas.classList.add("imageOptimizer");
202
+ document.body.appendChild(canvas);
203
+ const files = obj.file;
204
+ if (!files)
205
+ return;
206
+ const name = files.name;
207
+ const extension = name.split(".").pop().toLowerCase();
208
+ const ratio = obj.ratio || 1;
209
+ const maxSize = obj.maxSize || 1024;
210
+ const width = obj.width || 1e4;
211
+ const mimeType = files.type;
212
+ function dataURLtoFile(dataURL, filename) {
213
+ const arr = dataURL.split(",");
214
+ const mime = arr[0].match(/:(.*?);/)[1];
215
+ const bstr = window.atob(arr[1]);
216
+ const n = bstr.length;
217
+ const u8arr = new Uint8Array(n);
218
+ for (let i = 0; i < n; i++) {
219
+ u8arr[i] = bstr.charCodeAt(i);
220
+ }
221
+ return new File([u8arr], filename, { type: mime });
222
+ }
223
+ function formData(file) {
224
+ const data = new FormData();
225
+ data.append("file", file);
226
+ return data;
227
+ }
228
+ const reader = new FileReader();
229
+ reader.readAsDataURL(files);
230
+ reader.onload = (e) => {
231
+ const result = e.target.result;
232
+ if (e.total / 1024 > maxSize) {
233
+ const image = new Image();
234
+ image.src = result;
235
+ image.onload = () => {
236
+ const context = canvas.getContext("2d");
237
+ const scale = width / image.width;
238
+ if (scale < 1) {
239
+ canvas.width = image.width * scale;
240
+ canvas.height = image.height * scale;
241
+ context.drawImage(
242
+ image,
243
+ 0,
244
+ 0,
245
+ image.width * scale,
246
+ image.height * scale
247
+ );
248
+ } else {
249
+ canvas.width = image.width;
250
+ canvas.height = image.height;
251
+ context.drawImage(image, 0, 0, image.width, image.height);
252
+ }
253
+ const dataUrl = canvas.toDataURL(mimeType, ratio);
254
+ const newName = `${name.split(".")[0]}.${extension}`;
255
+ const file = dataURLtoFile(dataUrl, newName);
256
+ obj.success(formData(file), file, dataUrl);
257
+ canvas.remove();
258
+ };
259
+ image.onerror = obj.fail;
260
+ } else {
261
+ const newName = `${name.split(".")[0]}.${extension}`;
262
+ const file = dataURLtoFile(result, newName);
263
+ obj.success(formData(file), file, result);
264
+ canvas.remove();
265
+ }
266
+ };
267
+ reader.onerror = obj.fail;
268
+ };
269
+ const libJsSaveJson = (name, data) => {
270
+ const urlObject = window.URL || window.webkitURL;
271
+ const exportBlob = new Blob([data]);
272
+ const saveLink = document.createElement("a");
273
+ saveLink.href = urlObject.createObjectURL(exportBlob);
274
+ saveLink.download = name;
275
+ saveLink.click();
276
+ urlObject.revokeObjectURL(saveLink.href);
277
+ };
278
+ const libJsConvertAngle = (value, type) => {
279
+ if (type === "rad") {
280
+ return value * (Math.PI / 180);
281
+ } else if (type === "deg") {
282
+ return value * (180 / Math.PI);
283
+ } else {
284
+ throw new Error("请使用正确类型");
285
+ }
286
+ };
287
+ const libJsCoordsAngle = (coord1, coord2) => {
288
+ const deltaX = coord2.x - coord1.x;
289
+ const deltaY = coord2.y - coord1.y;
290
+ const angleRad = Math.atan2(deltaY, deltaX);
291
+ let angleDeg = angleRad * (180 / Math.PI);
292
+ angleDeg = -angleDeg + 90;
293
+ if (angleDeg < 0) {
294
+ angleDeg += 360;
295
+ }
296
+ return angleDeg;
297
+ };
298
+ const libJsCoordsDistance = (coord1, coord2) => {
299
+ const deltaX = coord2.x - coord1.x;
300
+ const deltaY = coord2.y - coord1.y;
301
+ const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
302
+ return distance;
303
+ };
304
+ /*!
305
+ * decimal.js v10.4.3
306
+ * An arbitrary-precision Decimal type for JavaScript.
307
+ * https://github.com/MikeMcl/decimal.js
308
+ * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>
309
+ * MIT Licence
310
+ */
311
+ var EXP_LIMIT = 9e15, MAX_DIGITS = 1e9, NUMERALS = "0123456789abcdef", LN10 = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058", PI = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789", DEFAULTS = {
312
+ // These values must be integers within the stated ranges (inclusive).
313
+ // Most of these values can be changed at run-time using the `Decimal.config` method.
314
+ // The maximum number of significant digits of the result of a calculation or base conversion.
315
+ // E.g. `Decimal.config({ precision: 20 });`
316
+ precision: 20,
317
+ // 1 to MAX_DIGITS
318
+ // The rounding mode used when rounding to `precision`.
319
+ //
320
+ // ROUND_UP 0 Away from zero.
321
+ // ROUND_DOWN 1 Towards zero.
322
+ // ROUND_CEIL 2 Towards +Infinity.
323
+ // ROUND_FLOOR 3 Towards -Infinity.
324
+ // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.
325
+ // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.
326
+ // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.
327
+ // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.
328
+ // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.
329
+ //
330
+ // E.g.
331
+ // `Decimal.rounding = 4;`
332
+ // `Decimal.rounding = Decimal.ROUND_HALF_UP;`
333
+ rounding: 4,
334
+ // 0 to 8
335
+ // The modulo mode used when calculating the modulus: a mod n.
336
+ // The quotient (q = a / n) is calculated according to the corresponding rounding mode.
337
+ // The remainder (r) is calculated as: r = a - n * q.
338
+ //
339
+ // UP 0 The remainder is positive if the dividend is negative, else is negative.
340
+ // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).
341
+ // FLOOR 3 The remainder has the same sign as the divisor (Python %).
342
+ // HALF_EVEN 6 The IEEE 754 remainder function.
343
+ // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.
344
+ //
345
+ // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian
346
+ // division (9) are commonly used for the modulus operation. The other rounding modes can also
347
+ // be used, but they may not give useful results.
348
+ modulo: 1,
349
+ // 0 to 9
350
+ // The exponent value at and beneath which `toString` returns exponential notation.
351
+ // JavaScript numbers: -7
352
+ toExpNeg: -7,
353
+ // 0 to -EXP_LIMIT
354
+ // The exponent value at and above which `toString` returns exponential notation.
355
+ // JavaScript numbers: 21
356
+ toExpPos: 21,
357
+ // 0 to EXP_LIMIT
358
+ // The minimum exponent value, beneath which underflow to zero occurs.
359
+ // JavaScript numbers: -324 (5e-324)
360
+ minE: -EXP_LIMIT,
361
+ // -1 to -EXP_LIMIT
362
+ // The maximum exponent value, above which overflow to Infinity occurs.
363
+ // JavaScript numbers: 308 (1.7976931348623157e+308)
364
+ maxE: EXP_LIMIT,
365
+ // 1 to EXP_LIMIT
366
+ // Whether to use cryptographically-secure random number generation, if available.
367
+ crypto: false
368
+ // true/false
369
+ }, inexact, quadrant, external = true, decimalError = "[DecimalError] ", invalidArgument = decimalError + "Invalid argument: ", precisionLimitExceeded = decimalError + "Precision limit exceeded", cryptoUnavailable = decimalError + "crypto unavailable", tag = "[object Decimal]", mathfloor = Math.floor, mathpow = Math.pow, isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i, isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i, isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i, isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, BASE = 1e7, LOG_BASE = 7, MAX_SAFE_INTEGER = 9007199254740991, LN10_PRECISION = LN10.length - 1, PI_PRECISION = PI.length - 1, P = { toStringTag: tag };
370
+ P.absoluteValue = P.abs = function() {
371
+ var x = new this.constructor(this);
372
+ if (x.s < 0)
373
+ x.s = 1;
374
+ return finalise(x);
375
+ };
376
+ P.ceil = function() {
377
+ return finalise(new this.constructor(this), this.e + 1, 2);
378
+ };
379
+ P.clampedTo = P.clamp = function(min2, max2) {
380
+ var k, x = this, Ctor = x.constructor;
381
+ min2 = new Ctor(min2);
382
+ max2 = new Ctor(max2);
383
+ if (!min2.s || !max2.s)
384
+ return new Ctor(NaN);
385
+ if (min2.gt(max2))
386
+ throw Error(invalidArgument + max2);
387
+ k = x.cmp(min2);
388
+ return k < 0 ? min2 : x.cmp(max2) > 0 ? max2 : new Ctor(x);
389
+ };
390
+ P.comparedTo = P.cmp = function(y) {
391
+ var i, j, xdL, ydL, x = this, xd = x.d, yd = (y = new x.constructor(y)).d, xs = x.s, ys = y.s;
392
+ if (!xd || !yd) {
393
+ return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;
394
+ }
395
+ if (!xd[0] || !yd[0])
396
+ return xd[0] ? xs : yd[0] ? -ys : 0;
397
+ if (xs !== ys)
398
+ return xs;
399
+ if (x.e !== y.e)
400
+ return x.e > y.e ^ xs < 0 ? 1 : -1;
401
+ xdL = xd.length;
402
+ ydL = yd.length;
403
+ for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {
404
+ if (xd[i] !== yd[i])
405
+ return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;
406
+ }
407
+ return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;
408
+ };
409
+ P.cosine = P.cos = function() {
410
+ var pr, rm, x = this, Ctor = x.constructor;
411
+ if (!x.d)
412
+ return new Ctor(NaN);
413
+ if (!x.d[0])
414
+ return new Ctor(1);
415
+ pr = Ctor.precision;
416
+ rm = Ctor.rounding;
417
+ Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;
418
+ Ctor.rounding = 1;
419
+ x = cosine(Ctor, toLessThanHalfPi(Ctor, x));
420
+ Ctor.precision = pr;
421
+ Ctor.rounding = rm;
422
+ return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);
423
+ };
424
+ P.cubeRoot = P.cbrt = function() {
425
+ var e, m, n, r, rep, s, sd, t, t3, t3plusx, x = this, Ctor = x.constructor;
426
+ if (!x.isFinite() || x.isZero())
427
+ return new Ctor(x);
428
+ external = false;
429
+ s = x.s * mathpow(x.s * x, 1 / 3);
430
+ if (!s || Math.abs(s) == 1 / 0) {
431
+ n = digitsToString(x.d);
432
+ e = x.e;
433
+ if (s = (e - n.length + 1) % 3)
434
+ n += s == 1 || s == -2 ? "0" : "00";
435
+ s = mathpow(n, 1 / 3);
436
+ e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));
437
+ if (s == 1 / 0) {
438
+ n = "5e" + e;
439
+ } else {
440
+ n = s.toExponential();
441
+ n = n.slice(0, n.indexOf("e") + 1) + e;
442
+ }
443
+ r = new Ctor(n);
444
+ r.s = x.s;
445
+ } else {
446
+ r = new Ctor(s.toString());
447
+ }
448
+ sd = (e = Ctor.precision) + 3;
449
+ for (; ; ) {
450
+ t = r;
451
+ t3 = t.times(t).times(t);
452
+ t3plusx = t3.plus(x);
453
+ r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);
454
+ if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {
455
+ n = n.slice(sd - 3, sd + 1);
456
+ if (n == "9999" || !rep && n == "4999") {
457
+ if (!rep) {
458
+ finalise(t, e + 1, 0);
459
+ if (t.times(t).times(t).eq(x)) {
460
+ r = t;
461
+ break;
462
+ }
463
+ }
464
+ sd += 4;
465
+ rep = 1;
466
+ } else {
467
+ if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
468
+ finalise(r, e + 1, 1);
469
+ m = !r.times(r).times(r).eq(x);
470
+ }
471
+ break;
472
+ }
473
+ }
474
+ }
475
+ external = true;
476
+ return finalise(r, e, Ctor.rounding, m);
477
+ };
478
+ P.decimalPlaces = P.dp = function() {
479
+ var w, d = this.d, n = NaN;
480
+ if (d) {
481
+ w = d.length - 1;
482
+ n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;
483
+ w = d[w];
484
+ if (w)
485
+ for (; w % 10 == 0; w /= 10)
486
+ n--;
487
+ if (n < 0)
488
+ n = 0;
489
+ }
490
+ return n;
491
+ };
492
+ P.dividedBy = P.div = function(y) {
493
+ return divide(this, new this.constructor(y));
494
+ };
495
+ P.dividedToIntegerBy = P.divToInt = function(y) {
496
+ var x = this, Ctor = x.constructor;
497
+ return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);
498
+ };
499
+ P.equals = P.eq = function(y) {
500
+ return this.cmp(y) === 0;
501
+ };
502
+ P.floor = function() {
503
+ return finalise(new this.constructor(this), this.e + 1, 3);
504
+ };
505
+ P.greaterThan = P.gt = function(y) {
506
+ return this.cmp(y) > 0;
507
+ };
508
+ P.greaterThanOrEqualTo = P.gte = function(y) {
509
+ var k = this.cmp(y);
510
+ return k == 1 || k === 0;
511
+ };
512
+ P.hyperbolicCosine = P.cosh = function() {
513
+ var k, n, pr, rm, len, x = this, Ctor = x.constructor, one = new Ctor(1);
514
+ if (!x.isFinite())
515
+ return new Ctor(x.s ? 1 / 0 : NaN);
516
+ if (x.isZero())
517
+ return one;
518
+ pr = Ctor.precision;
519
+ rm = Ctor.rounding;
520
+ Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;
521
+ Ctor.rounding = 1;
522
+ len = x.d.length;
523
+ if (len < 32) {
524
+ k = Math.ceil(len / 3);
525
+ n = (1 / tinyPow(4, k)).toString();
526
+ } else {
527
+ k = 16;
528
+ n = "2.3283064365386962890625e-10";
529
+ }
530
+ x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);
531
+ var cosh2_x, i = k, d8 = new Ctor(8);
532
+ for (; i--; ) {
533
+ cosh2_x = x.times(x);
534
+ x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));
535
+ }
536
+ return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);
537
+ };
538
+ P.hyperbolicSine = P.sinh = function() {
539
+ var k, pr, rm, len, x = this, Ctor = x.constructor;
540
+ if (!x.isFinite() || x.isZero())
541
+ return new Ctor(x);
542
+ pr = Ctor.precision;
543
+ rm = Ctor.rounding;
544
+ Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;
545
+ Ctor.rounding = 1;
546
+ len = x.d.length;
547
+ if (len < 3) {
548
+ x = taylorSeries(Ctor, 2, x, x, true);
549
+ } else {
550
+ k = 1.4 * Math.sqrt(len);
551
+ k = k > 16 ? 16 : k | 0;
552
+ x = x.times(1 / tinyPow(5, k));
553
+ x = taylorSeries(Ctor, 2, x, x, true);
554
+ var sinh2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20);
555
+ for (; k--; ) {
556
+ sinh2_x = x.times(x);
557
+ x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));
558
+ }
559
+ }
560
+ Ctor.precision = pr;
561
+ Ctor.rounding = rm;
562
+ return finalise(x, pr, rm, true);
563
+ };
564
+ P.hyperbolicTangent = P.tanh = function() {
565
+ var pr, rm, x = this, Ctor = x.constructor;
566
+ if (!x.isFinite())
567
+ return new Ctor(x.s);
568
+ if (x.isZero())
569
+ return new Ctor(x);
570
+ pr = Ctor.precision;
571
+ rm = Ctor.rounding;
572
+ Ctor.precision = pr + 7;
573
+ Ctor.rounding = 1;
574
+ return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);
575
+ };
576
+ P.inverseCosine = P.acos = function() {
577
+ var halfPi, x = this, Ctor = x.constructor, k = x.abs().cmp(1), pr = Ctor.precision, rm = Ctor.rounding;
578
+ if (k !== -1) {
579
+ return k === 0 ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) : new Ctor(NaN);
580
+ }
581
+ if (x.isZero())
582
+ return getPi(Ctor, pr + 4, rm).times(0.5);
583
+ Ctor.precision = pr + 6;
584
+ Ctor.rounding = 1;
585
+ x = x.asin();
586
+ halfPi = getPi(Ctor, pr + 4, rm).times(0.5);
587
+ Ctor.precision = pr;
588
+ Ctor.rounding = rm;
589
+ return halfPi.minus(x);
590
+ };
591
+ P.inverseHyperbolicCosine = P.acosh = function() {
592
+ var pr, rm, x = this, Ctor = x.constructor;
593
+ if (x.lte(1))
594
+ return new Ctor(x.eq(1) ? 0 : NaN);
595
+ if (!x.isFinite())
596
+ return new Ctor(x);
597
+ pr = Ctor.precision;
598
+ rm = Ctor.rounding;
599
+ Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;
600
+ Ctor.rounding = 1;
601
+ external = false;
602
+ x = x.times(x).minus(1).sqrt().plus(x);
603
+ external = true;
604
+ Ctor.precision = pr;
605
+ Ctor.rounding = rm;
606
+ return x.ln();
607
+ };
608
+ P.inverseHyperbolicSine = P.asinh = function() {
609
+ var pr, rm, x = this, Ctor = x.constructor;
610
+ if (!x.isFinite() || x.isZero())
611
+ return new Ctor(x);
612
+ pr = Ctor.precision;
613
+ rm = Ctor.rounding;
614
+ Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;
615
+ Ctor.rounding = 1;
616
+ external = false;
617
+ x = x.times(x).plus(1).sqrt().plus(x);
618
+ external = true;
619
+ Ctor.precision = pr;
620
+ Ctor.rounding = rm;
621
+ return x.ln();
622
+ };
623
+ P.inverseHyperbolicTangent = P.atanh = function() {
624
+ var pr, rm, wpr, xsd, x = this, Ctor = x.constructor;
625
+ if (!x.isFinite())
626
+ return new Ctor(NaN);
627
+ if (x.e >= 0)
628
+ return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);
629
+ pr = Ctor.precision;
630
+ rm = Ctor.rounding;
631
+ xsd = x.sd();
632
+ if (Math.max(xsd, pr) < 2 * -x.e - 1)
633
+ return finalise(new Ctor(x), pr, rm, true);
634
+ Ctor.precision = wpr = xsd - x.e;
635
+ x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);
636
+ Ctor.precision = pr + 4;
637
+ Ctor.rounding = 1;
638
+ x = x.ln();
639
+ Ctor.precision = pr;
640
+ Ctor.rounding = rm;
641
+ return x.times(0.5);
642
+ };
643
+ P.inverseSine = P.asin = function() {
644
+ var halfPi, k, pr, rm, x = this, Ctor = x.constructor;
645
+ if (x.isZero())
646
+ return new Ctor(x);
647
+ k = x.abs().cmp(1);
648
+ pr = Ctor.precision;
649
+ rm = Ctor.rounding;
650
+ if (k !== -1) {
651
+ if (k === 0) {
652
+ halfPi = getPi(Ctor, pr + 4, rm).times(0.5);
653
+ halfPi.s = x.s;
654
+ return halfPi;
655
+ }
656
+ return new Ctor(NaN);
657
+ }
658
+ Ctor.precision = pr + 6;
659
+ Ctor.rounding = 1;
660
+ x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();
661
+ Ctor.precision = pr;
662
+ Ctor.rounding = rm;
663
+ return x.times(2);
664
+ };
665
+ P.inverseTangent = P.atan = function() {
666
+ var i, j, k, n, px, t, r, wpr, x2, x = this, Ctor = x.constructor, pr = Ctor.precision, rm = Ctor.rounding;
667
+ if (!x.isFinite()) {
668
+ if (!x.s)
669
+ return new Ctor(NaN);
670
+ if (pr + 4 <= PI_PRECISION) {
671
+ r = getPi(Ctor, pr + 4, rm).times(0.5);
672
+ r.s = x.s;
673
+ return r;
674
+ }
675
+ } else if (x.isZero()) {
676
+ return new Ctor(x);
677
+ } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {
678
+ r = getPi(Ctor, pr + 4, rm).times(0.25);
679
+ r.s = x.s;
680
+ return r;
681
+ }
682
+ Ctor.precision = wpr = pr + 10;
683
+ Ctor.rounding = 1;
684
+ k = Math.min(28, wpr / LOG_BASE + 2 | 0);
685
+ for (i = k; i; --i)
686
+ x = x.div(x.times(x).plus(1).sqrt().plus(1));
687
+ external = false;
688
+ j = Math.ceil(wpr / LOG_BASE);
689
+ n = 1;
690
+ x2 = x.times(x);
691
+ r = new Ctor(x);
692
+ px = x;
693
+ for (; i !== -1; ) {
694
+ px = px.times(x2);
695
+ t = r.minus(px.div(n += 2));
696
+ px = px.times(x2);
697
+ r = t.plus(px.div(n += 2));
698
+ if (r.d[j] !== void 0)
699
+ for (i = j; r.d[i] === t.d[i] && i--; )
700
+ ;
701
+ }
702
+ if (k)
703
+ r = r.times(2 << k - 1);
704
+ external = true;
705
+ return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);
706
+ };
707
+ P.isFinite = function() {
708
+ return !!this.d;
709
+ };
710
+ P.isInteger = P.isInt = function() {
711
+ return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;
712
+ };
713
+ P.isNaN = function() {
714
+ return !this.s;
715
+ };
716
+ P.isNegative = P.isNeg = function() {
717
+ return this.s < 0;
718
+ };
719
+ P.isPositive = P.isPos = function() {
720
+ return this.s > 0;
721
+ };
722
+ P.isZero = function() {
723
+ return !!this.d && this.d[0] === 0;
724
+ };
725
+ P.lessThan = P.lt = function(y) {
726
+ return this.cmp(y) < 0;
727
+ };
728
+ P.lessThanOrEqualTo = P.lte = function(y) {
729
+ return this.cmp(y) < 1;
730
+ };
731
+ P.logarithm = P.log = function(base) {
732
+ var isBase10, d, denominator, k, inf, num, sd, r, arg = this, Ctor = arg.constructor, pr = Ctor.precision, rm = Ctor.rounding, guard = 5;
733
+ if (base == null) {
734
+ base = new Ctor(10);
735
+ isBase10 = true;
736
+ } else {
737
+ base = new Ctor(base);
738
+ d = base.d;
739
+ if (base.s < 0 || !d || !d[0] || base.eq(1))
740
+ return new Ctor(NaN);
741
+ isBase10 = base.eq(10);
742
+ }
743
+ d = arg.d;
744
+ if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {
745
+ return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);
746
+ }
747
+ if (isBase10) {
748
+ if (d.length > 1) {
749
+ inf = true;
750
+ } else {
751
+ for (k = d[0]; k % 10 === 0; )
752
+ k /= 10;
753
+ inf = k !== 1;
754
+ }
755
+ }
756
+ external = false;
757
+ sd = pr + guard;
758
+ num = naturalLogarithm(arg, sd);
759
+ denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);
760
+ r = divide(num, denominator, sd, 1);
761
+ if (checkRoundingDigits(r.d, k = pr, rm)) {
762
+ do {
763
+ sd += 10;
764
+ num = naturalLogarithm(arg, sd);
765
+ denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);
766
+ r = divide(num, denominator, sd, 1);
767
+ if (!inf) {
768
+ if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {
769
+ r = finalise(r, pr + 1, 0);
770
+ }
771
+ break;
772
+ }
773
+ } while (checkRoundingDigits(r.d, k += 10, rm));
774
+ }
775
+ external = true;
776
+ return finalise(r, pr, rm);
777
+ };
778
+ P.minus = P.sub = function(y) {
779
+ var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd, x = this, Ctor = x.constructor;
780
+ y = new Ctor(y);
781
+ if (!x.d || !y.d) {
782
+ if (!x.s || !y.s)
783
+ y = new Ctor(NaN);
784
+ else if (x.d)
785
+ y.s = -y.s;
786
+ else
787
+ y = new Ctor(y.d || x.s !== y.s ? x : NaN);
788
+ return y;
789
+ }
790
+ if (x.s != y.s) {
791
+ y.s = -y.s;
792
+ return x.plus(y);
793
+ }
794
+ xd = x.d;
795
+ yd = y.d;
796
+ pr = Ctor.precision;
797
+ rm = Ctor.rounding;
798
+ if (!xd[0] || !yd[0]) {
799
+ if (yd[0])
800
+ y.s = -y.s;
801
+ else if (xd[0])
802
+ y = new Ctor(x);
803
+ else
804
+ return new Ctor(rm === 3 ? -0 : 0);
805
+ return external ? finalise(y, pr, rm) : y;
806
+ }
807
+ e = mathfloor(y.e / LOG_BASE);
808
+ xe = mathfloor(x.e / LOG_BASE);
809
+ xd = xd.slice();
810
+ k = xe - e;
811
+ if (k) {
812
+ xLTy = k < 0;
813
+ if (xLTy) {
814
+ d = xd;
815
+ k = -k;
816
+ len = yd.length;
817
+ } else {
818
+ d = yd;
819
+ e = xe;
820
+ len = xd.length;
821
+ }
822
+ i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;
823
+ if (k > i) {
824
+ k = i;
825
+ d.length = 1;
826
+ }
827
+ d.reverse();
828
+ for (i = k; i--; )
829
+ d.push(0);
830
+ d.reverse();
831
+ } else {
832
+ i = xd.length;
833
+ len = yd.length;
834
+ xLTy = i < len;
835
+ if (xLTy)
836
+ len = i;
837
+ for (i = 0; i < len; i++) {
838
+ if (xd[i] != yd[i]) {
839
+ xLTy = xd[i] < yd[i];
840
+ break;
841
+ }
842
+ }
843
+ k = 0;
844
+ }
845
+ if (xLTy) {
846
+ d = xd;
847
+ xd = yd;
848
+ yd = d;
849
+ y.s = -y.s;
850
+ }
851
+ len = xd.length;
852
+ for (i = yd.length - len; i > 0; --i)
853
+ xd[len++] = 0;
854
+ for (i = yd.length; i > k; ) {
855
+ if (xd[--i] < yd[i]) {
856
+ for (j = i; j && xd[--j] === 0; )
857
+ xd[j] = BASE - 1;
858
+ --xd[j];
859
+ xd[i] += BASE;
860
+ }
861
+ xd[i] -= yd[i];
862
+ }
863
+ for (; xd[--len] === 0; )
864
+ xd.pop();
865
+ for (; xd[0] === 0; xd.shift())
866
+ --e;
867
+ if (!xd[0])
868
+ return new Ctor(rm === 3 ? -0 : 0);
869
+ y.d = xd;
870
+ y.e = getBase10Exponent(xd, e);
871
+ return external ? finalise(y, pr, rm) : y;
872
+ };
873
+ P.modulo = P.mod = function(y) {
874
+ var q, x = this, Ctor = x.constructor;
875
+ y = new Ctor(y);
876
+ if (!x.d || !y.s || y.d && !y.d[0])
877
+ return new Ctor(NaN);
878
+ if (!y.d || x.d && !x.d[0]) {
879
+ return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);
880
+ }
881
+ external = false;
882
+ if (Ctor.modulo == 9) {
883
+ q = divide(x, y.abs(), 0, 3, 1);
884
+ q.s *= y.s;
885
+ } else {
886
+ q = divide(x, y, 0, Ctor.modulo, 1);
887
+ }
888
+ q = q.times(y);
889
+ external = true;
890
+ return x.minus(q);
891
+ };
892
+ P.naturalExponential = P.exp = function() {
893
+ return naturalExponential(this);
894
+ };
895
+ P.naturalLogarithm = P.ln = function() {
896
+ return naturalLogarithm(this);
897
+ };
898
+ P.negated = P.neg = function() {
899
+ var x = new this.constructor(this);
900
+ x.s = -x.s;
901
+ return finalise(x);
902
+ };
903
+ P.plus = P.add = function(y) {
904
+ var carry, d, e, i, k, len, pr, rm, xd, yd, x = this, Ctor = x.constructor;
905
+ y = new Ctor(y);
906
+ if (!x.d || !y.d) {
907
+ if (!x.s || !y.s)
908
+ y = new Ctor(NaN);
909
+ else if (!x.d)
910
+ y = new Ctor(y.d || x.s === y.s ? x : NaN);
911
+ return y;
912
+ }
913
+ if (x.s != y.s) {
914
+ y.s = -y.s;
915
+ return x.minus(y);
916
+ }
917
+ xd = x.d;
918
+ yd = y.d;
919
+ pr = Ctor.precision;
920
+ rm = Ctor.rounding;
921
+ if (!xd[0] || !yd[0]) {
922
+ if (!yd[0])
923
+ y = new Ctor(x);
924
+ return external ? finalise(y, pr, rm) : y;
925
+ }
926
+ k = mathfloor(x.e / LOG_BASE);
927
+ e = mathfloor(y.e / LOG_BASE);
928
+ xd = xd.slice();
929
+ i = k - e;
930
+ if (i) {
931
+ if (i < 0) {
932
+ d = xd;
933
+ i = -i;
934
+ len = yd.length;
935
+ } else {
936
+ d = yd;
937
+ e = k;
938
+ len = xd.length;
939
+ }
940
+ k = Math.ceil(pr / LOG_BASE);
941
+ len = k > len ? k + 1 : len + 1;
942
+ if (i > len) {
943
+ i = len;
944
+ d.length = 1;
945
+ }
946
+ d.reverse();
947
+ for (; i--; )
948
+ d.push(0);
949
+ d.reverse();
950
+ }
951
+ len = xd.length;
952
+ i = yd.length;
953
+ if (len - i < 0) {
954
+ i = len;
955
+ d = yd;
956
+ yd = xd;
957
+ xd = d;
958
+ }
959
+ for (carry = 0; i; ) {
960
+ carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;
961
+ xd[i] %= BASE;
962
+ }
963
+ if (carry) {
964
+ xd.unshift(carry);
965
+ ++e;
966
+ }
967
+ for (len = xd.length; xd[--len] == 0; )
968
+ xd.pop();
969
+ y.d = xd;
970
+ y.e = getBase10Exponent(xd, e);
971
+ return external ? finalise(y, pr, rm) : y;
972
+ };
973
+ P.precision = P.sd = function(z) {
974
+ var k, x = this;
975
+ if (z !== void 0 && z !== !!z && z !== 1 && z !== 0)
976
+ throw Error(invalidArgument + z);
977
+ if (x.d) {
978
+ k = getPrecision(x.d);
979
+ if (z && x.e + 1 > k)
980
+ k = x.e + 1;
981
+ } else {
982
+ k = NaN;
983
+ }
984
+ return k;
985
+ };
986
+ P.round = function() {
987
+ var x = this, Ctor = x.constructor;
988
+ return finalise(new Ctor(x), x.e + 1, Ctor.rounding);
989
+ };
990
+ P.sine = P.sin = function() {
991
+ var pr, rm, x = this, Ctor = x.constructor;
992
+ if (!x.isFinite())
993
+ return new Ctor(NaN);
994
+ if (x.isZero())
995
+ return new Ctor(x);
996
+ pr = Ctor.precision;
997
+ rm = Ctor.rounding;
998
+ Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;
999
+ Ctor.rounding = 1;
1000
+ x = sine(Ctor, toLessThanHalfPi(Ctor, x));
1001
+ Ctor.precision = pr;
1002
+ Ctor.rounding = rm;
1003
+ return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);
1004
+ };
1005
+ P.squareRoot = P.sqrt = function() {
1006
+ var m, n, sd, r, rep, t, x = this, d = x.d, e = x.e, s = x.s, Ctor = x.constructor;
1007
+ if (s !== 1 || !d || !d[0]) {
1008
+ return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);
1009
+ }
1010
+ external = false;
1011
+ s = Math.sqrt(+x);
1012
+ if (s == 0 || s == 1 / 0) {
1013
+ n = digitsToString(d);
1014
+ if ((n.length + e) % 2 == 0)
1015
+ n += "0";
1016
+ s = Math.sqrt(n);
1017
+ e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);
1018
+ if (s == 1 / 0) {
1019
+ n = "5e" + e;
1020
+ } else {
1021
+ n = s.toExponential();
1022
+ n = n.slice(0, n.indexOf("e") + 1) + e;
1023
+ }
1024
+ r = new Ctor(n);
1025
+ } else {
1026
+ r = new Ctor(s.toString());
1027
+ }
1028
+ sd = (e = Ctor.precision) + 3;
1029
+ for (; ; ) {
1030
+ t = r;
1031
+ r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);
1032
+ if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {
1033
+ n = n.slice(sd - 3, sd + 1);
1034
+ if (n == "9999" || !rep && n == "4999") {
1035
+ if (!rep) {
1036
+ finalise(t, e + 1, 0);
1037
+ if (t.times(t).eq(x)) {
1038
+ r = t;
1039
+ break;
1040
+ }
1041
+ }
1042
+ sd += 4;
1043
+ rep = 1;
1044
+ } else {
1045
+ if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
1046
+ finalise(r, e + 1, 1);
1047
+ m = !r.times(r).eq(x);
1048
+ }
1049
+ break;
1050
+ }
1051
+ }
1052
+ }
1053
+ external = true;
1054
+ return finalise(r, e, Ctor.rounding, m);
1055
+ };
1056
+ P.tangent = P.tan = function() {
1057
+ var pr, rm, x = this, Ctor = x.constructor;
1058
+ if (!x.isFinite())
1059
+ return new Ctor(NaN);
1060
+ if (x.isZero())
1061
+ return new Ctor(x);
1062
+ pr = Ctor.precision;
1063
+ rm = Ctor.rounding;
1064
+ Ctor.precision = pr + 10;
1065
+ Ctor.rounding = 1;
1066
+ x = x.sin();
1067
+ x.s = 1;
1068
+ x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);
1069
+ Ctor.precision = pr;
1070
+ Ctor.rounding = rm;
1071
+ return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);
1072
+ };
1073
+ P.times = P.mul = function(y) {
1074
+ var carry, e, i, k, r, rL, t, xdL, ydL, x = this, Ctor = x.constructor, xd = x.d, yd = (y = new Ctor(y)).d;
1075
+ y.s *= x.s;
1076
+ if (!xd || !xd[0] || !yd || !yd[0]) {
1077
+ return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd ? NaN : !xd || !yd ? y.s / 0 : y.s * 0);
1078
+ }
1079
+ e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);
1080
+ xdL = xd.length;
1081
+ ydL = yd.length;
1082
+ if (xdL < ydL) {
1083
+ r = xd;
1084
+ xd = yd;
1085
+ yd = r;
1086
+ rL = xdL;
1087
+ xdL = ydL;
1088
+ ydL = rL;
1089
+ }
1090
+ r = [];
1091
+ rL = xdL + ydL;
1092
+ for (i = rL; i--; )
1093
+ r.push(0);
1094
+ for (i = ydL; --i >= 0; ) {
1095
+ carry = 0;
1096
+ for (k = xdL + i; k > i; ) {
1097
+ t = r[k] + yd[i] * xd[k - i - 1] + carry;
1098
+ r[k--] = t % BASE | 0;
1099
+ carry = t / BASE | 0;
1100
+ }
1101
+ r[k] = (r[k] + carry) % BASE | 0;
1102
+ }
1103
+ for (; !r[--rL]; )
1104
+ r.pop();
1105
+ if (carry)
1106
+ ++e;
1107
+ else
1108
+ r.shift();
1109
+ y.d = r;
1110
+ y.e = getBase10Exponent(r, e);
1111
+ return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;
1112
+ };
1113
+ P.toBinary = function(sd, rm) {
1114
+ return toStringBinary(this, 2, sd, rm);
1115
+ };
1116
+ P.toDecimalPlaces = P.toDP = function(dp, rm) {
1117
+ var x = this, Ctor = x.constructor;
1118
+ x = new Ctor(x);
1119
+ if (dp === void 0)
1120
+ return x;
1121
+ checkInt32(dp, 0, MAX_DIGITS);
1122
+ if (rm === void 0)
1123
+ rm = Ctor.rounding;
1124
+ else
1125
+ checkInt32(rm, 0, 8);
1126
+ return finalise(x, dp + x.e + 1, rm);
1127
+ };
1128
+ P.toExponential = function(dp, rm) {
1129
+ var str, x = this, Ctor = x.constructor;
1130
+ if (dp === void 0) {
1131
+ str = finiteToString(x, true);
1132
+ } else {
1133
+ checkInt32(dp, 0, MAX_DIGITS);
1134
+ if (rm === void 0)
1135
+ rm = Ctor.rounding;
1136
+ else
1137
+ checkInt32(rm, 0, 8);
1138
+ x = finalise(new Ctor(x), dp + 1, rm);
1139
+ str = finiteToString(x, true, dp + 1);
1140
+ }
1141
+ return x.isNeg() && !x.isZero() ? "-" + str : str;
1142
+ };
1143
+ P.toFixed = function(dp, rm) {
1144
+ var str, y, x = this, Ctor = x.constructor;
1145
+ if (dp === void 0) {
1146
+ str = finiteToString(x);
1147
+ } else {
1148
+ checkInt32(dp, 0, MAX_DIGITS);
1149
+ if (rm === void 0)
1150
+ rm = Ctor.rounding;
1151
+ else
1152
+ checkInt32(rm, 0, 8);
1153
+ y = finalise(new Ctor(x), dp + x.e + 1, rm);
1154
+ str = finiteToString(y, false, dp + y.e + 1);
1155
+ }
1156
+ return x.isNeg() && !x.isZero() ? "-" + str : str;
1157
+ };
1158
+ P.toFraction = function(maxD) {
1159
+ var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r, x = this, xd = x.d, Ctor = x.constructor;
1160
+ if (!xd)
1161
+ return new Ctor(x);
1162
+ n1 = d0 = new Ctor(1);
1163
+ d1 = n0 = new Ctor(0);
1164
+ d = new Ctor(d1);
1165
+ e = d.e = getPrecision(xd) - x.e - 1;
1166
+ k = e % LOG_BASE;
1167
+ d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);
1168
+ if (maxD == null) {
1169
+ maxD = e > 0 ? d : n1;
1170
+ } else {
1171
+ n = new Ctor(maxD);
1172
+ if (!n.isInt() || n.lt(n1))
1173
+ throw Error(invalidArgument + n);
1174
+ maxD = n.gt(d) ? e > 0 ? d : n1 : n;
1175
+ }
1176
+ external = false;
1177
+ n = new Ctor(digitsToString(xd));
1178
+ pr = Ctor.precision;
1179
+ Ctor.precision = e = xd.length * LOG_BASE * 2;
1180
+ for (; ; ) {
1181
+ q = divide(n, d, 0, 1, 1);
1182
+ d2 = d0.plus(q.times(d1));
1183
+ if (d2.cmp(maxD) == 1)
1184
+ break;
1185
+ d0 = d1;
1186
+ d1 = d2;
1187
+ d2 = n1;
1188
+ n1 = n0.plus(q.times(d2));
1189
+ n0 = d2;
1190
+ d2 = d;
1191
+ d = n.minus(q.times(d2));
1192
+ n = d2;
1193
+ }
1194
+ d2 = divide(maxD.minus(d0), d1, 0, 1, 1);
1195
+ n0 = n0.plus(d2.times(n1));
1196
+ d0 = d0.plus(d2.times(d1));
1197
+ n0.s = n1.s = x.s;
1198
+ r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];
1199
+ Ctor.precision = pr;
1200
+ external = true;
1201
+ return r;
1202
+ };
1203
+ P.toHexadecimal = P.toHex = function(sd, rm) {
1204
+ return toStringBinary(this, 16, sd, rm);
1205
+ };
1206
+ P.toNearest = function(y, rm) {
1207
+ var x = this, Ctor = x.constructor;
1208
+ x = new Ctor(x);
1209
+ if (y == null) {
1210
+ if (!x.d)
1211
+ return x;
1212
+ y = new Ctor(1);
1213
+ rm = Ctor.rounding;
1214
+ } else {
1215
+ y = new Ctor(y);
1216
+ if (rm === void 0) {
1217
+ rm = Ctor.rounding;
1218
+ } else {
1219
+ checkInt32(rm, 0, 8);
1220
+ }
1221
+ if (!x.d)
1222
+ return y.s ? x : y;
1223
+ if (!y.d) {
1224
+ if (y.s)
1225
+ y.s = x.s;
1226
+ return y;
1227
+ }
1228
+ }
1229
+ if (y.d[0]) {
1230
+ external = false;
1231
+ x = divide(x, y, 0, rm, 1).times(y);
1232
+ external = true;
1233
+ finalise(x);
1234
+ } else {
1235
+ y.s = x.s;
1236
+ x = y;
1237
+ }
1238
+ return x;
1239
+ };
1240
+ P.toNumber = function() {
1241
+ return +this;
1242
+ };
1243
+ P.toOctal = function(sd, rm) {
1244
+ return toStringBinary(this, 8, sd, rm);
1245
+ };
1246
+ P.toPower = P.pow = function(y) {
1247
+ var e, k, pr, r, rm, s, x = this, Ctor = x.constructor, yn = +(y = new Ctor(y));
1248
+ if (!x.d || !y.d || !x.d[0] || !y.d[0])
1249
+ return new Ctor(mathpow(+x, yn));
1250
+ x = new Ctor(x);
1251
+ if (x.eq(1))
1252
+ return x;
1253
+ pr = Ctor.precision;
1254
+ rm = Ctor.rounding;
1255
+ if (y.eq(1))
1256
+ return finalise(x, pr, rm);
1257
+ e = mathfloor(y.e / LOG_BASE);
1258
+ if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {
1259
+ r = intPow(Ctor, x, k, pr);
1260
+ return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);
1261
+ }
1262
+ s = x.s;
1263
+ if (s < 0) {
1264
+ if (e < y.d.length - 1)
1265
+ return new Ctor(NaN);
1266
+ if ((y.d[e] & 1) == 0)
1267
+ s = 1;
1268
+ if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {
1269
+ x.s = s;
1270
+ return x;
1271
+ }
1272
+ }
1273
+ k = mathpow(+x, yn);
1274
+ e = k == 0 || !isFinite(k) ? mathfloor(yn * (Math.log("0." + digitsToString(x.d)) / Math.LN10 + x.e + 1)) : new Ctor(k + "").e;
1275
+ if (e > Ctor.maxE + 1 || e < Ctor.minE - 1)
1276
+ return new Ctor(e > 0 ? s / 0 : 0);
1277
+ external = false;
1278
+ Ctor.rounding = x.s = 1;
1279
+ k = Math.min(12, (e + "").length);
1280
+ r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);
1281
+ if (r.d) {
1282
+ r = finalise(r, pr + 5, 1);
1283
+ if (checkRoundingDigits(r.d, pr, rm)) {
1284
+ e = pr + 10;
1285
+ r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);
1286
+ if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {
1287
+ r = finalise(r, pr + 1, 0);
1288
+ }
1289
+ }
1290
+ }
1291
+ r.s = s;
1292
+ external = true;
1293
+ Ctor.rounding = rm;
1294
+ return finalise(r, pr, rm);
1295
+ };
1296
+ P.toPrecision = function(sd, rm) {
1297
+ var str, x = this, Ctor = x.constructor;
1298
+ if (sd === void 0) {
1299
+ str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);
1300
+ } else {
1301
+ checkInt32(sd, 1, MAX_DIGITS);
1302
+ if (rm === void 0)
1303
+ rm = Ctor.rounding;
1304
+ else
1305
+ checkInt32(rm, 0, 8);
1306
+ x = finalise(new Ctor(x), sd, rm);
1307
+ str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);
1308
+ }
1309
+ return x.isNeg() && !x.isZero() ? "-" + str : str;
1310
+ };
1311
+ P.toSignificantDigits = P.toSD = function(sd, rm) {
1312
+ var x = this, Ctor = x.constructor;
1313
+ if (sd === void 0) {
1314
+ sd = Ctor.precision;
1315
+ rm = Ctor.rounding;
1316
+ } else {
1317
+ checkInt32(sd, 1, MAX_DIGITS);
1318
+ if (rm === void 0)
1319
+ rm = Ctor.rounding;
1320
+ else
1321
+ checkInt32(rm, 0, 8);
1322
+ }
1323
+ return finalise(new Ctor(x), sd, rm);
1324
+ };
1325
+ P.toString = function() {
1326
+ var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);
1327
+ return x.isNeg() && !x.isZero() ? "-" + str : str;
1328
+ };
1329
+ P.truncated = P.trunc = function() {
1330
+ return finalise(new this.constructor(this), this.e + 1, 1);
1331
+ };
1332
+ P.valueOf = P.toJSON = function() {
1333
+ var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);
1334
+ return x.isNeg() ? "-" + str : str;
1335
+ };
1336
+ function digitsToString(d) {
1337
+ var i, k, ws, indexOfLastWord = d.length - 1, str = "", w = d[0];
1338
+ if (indexOfLastWord > 0) {
1339
+ str += w;
1340
+ for (i = 1; i < indexOfLastWord; i++) {
1341
+ ws = d[i] + "";
1342
+ k = LOG_BASE - ws.length;
1343
+ if (k)
1344
+ str += getZeroString(k);
1345
+ str += ws;
1346
+ }
1347
+ w = d[i];
1348
+ ws = w + "";
1349
+ k = LOG_BASE - ws.length;
1350
+ if (k)
1351
+ str += getZeroString(k);
1352
+ } else if (w === 0) {
1353
+ return "0";
1354
+ }
1355
+ for (; w % 10 === 0; )
1356
+ w /= 10;
1357
+ return str + w;
1358
+ }
1359
+ function checkInt32(i, min2, max2) {
1360
+ if (i !== ~~i || i < min2 || i > max2) {
1361
+ throw Error(invalidArgument + i);
1362
+ }
1363
+ }
1364
+ function checkRoundingDigits(d, i, rm, repeating) {
1365
+ var di, k, r, rd;
1366
+ for (k = d[0]; k >= 10; k /= 10)
1367
+ --i;
1368
+ if (--i < 0) {
1369
+ i += LOG_BASE;
1370
+ di = 0;
1371
+ } else {
1372
+ di = Math.ceil((i + 1) / LOG_BASE);
1373
+ i %= LOG_BASE;
1374
+ }
1375
+ k = mathpow(10, LOG_BASE - i);
1376
+ rd = d[di] % k | 0;
1377
+ if (repeating == null) {
1378
+ if (i < 3) {
1379
+ if (i == 0)
1380
+ rd = rd / 100 | 0;
1381
+ else if (i == 1)
1382
+ rd = rd / 10 | 0;
1383
+ r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 5e4 || rd == 0;
1384
+ } else {
1385
+ r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) && (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 || (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;
1386
+ }
1387
+ } else {
1388
+ if (i < 4) {
1389
+ if (i == 0)
1390
+ rd = rd / 1e3 | 0;
1391
+ else if (i == 1)
1392
+ rd = rd / 100 | 0;
1393
+ else if (i == 2)
1394
+ rd = rd / 10 | 0;
1395
+ r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;
1396
+ } else {
1397
+ r = ((repeating || rm < 4) && rd + 1 == k || !repeating && rm > 3 && rd + 1 == k / 2) && (d[di + 1] / k / 1e3 | 0) == mathpow(10, i - 3) - 1;
1398
+ }
1399
+ }
1400
+ return r;
1401
+ }
1402
+ function convertBase(str, baseIn, baseOut) {
1403
+ var j, arr = [0], arrL, i = 0, strL = str.length;
1404
+ for (; i < strL; ) {
1405
+ for (arrL = arr.length; arrL--; )
1406
+ arr[arrL] *= baseIn;
1407
+ arr[0] += NUMERALS.indexOf(str.charAt(i++));
1408
+ for (j = 0; j < arr.length; j++) {
1409
+ if (arr[j] > baseOut - 1) {
1410
+ if (arr[j + 1] === void 0)
1411
+ arr[j + 1] = 0;
1412
+ arr[j + 1] += arr[j] / baseOut | 0;
1413
+ arr[j] %= baseOut;
1414
+ }
1415
+ }
1416
+ }
1417
+ return arr.reverse();
1418
+ }
1419
+ function cosine(Ctor, x) {
1420
+ var k, len, y;
1421
+ if (x.isZero())
1422
+ return x;
1423
+ len = x.d.length;
1424
+ if (len < 32) {
1425
+ k = Math.ceil(len / 3);
1426
+ y = (1 / tinyPow(4, k)).toString();
1427
+ } else {
1428
+ k = 16;
1429
+ y = "2.3283064365386962890625e-10";
1430
+ }
1431
+ Ctor.precision += k;
1432
+ x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));
1433
+ for (var i = k; i--; ) {
1434
+ var cos2x = x.times(x);
1435
+ x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);
1436
+ }
1437
+ Ctor.precision -= k;
1438
+ return x;
1439
+ }
1440
+ var divide = function() {
1441
+ function multiplyInteger(x, k, base) {
1442
+ var temp, carry = 0, i = x.length;
1443
+ for (x = x.slice(); i--; ) {
1444
+ temp = x[i] * k + carry;
1445
+ x[i] = temp % base | 0;
1446
+ carry = temp / base | 0;
1447
+ }
1448
+ if (carry)
1449
+ x.unshift(carry);
1450
+ return x;
1451
+ }
1452
+ function compare(a, b, aL, bL) {
1453
+ var i, r;
1454
+ if (aL != bL) {
1455
+ r = aL > bL ? 1 : -1;
1456
+ } else {
1457
+ for (i = r = 0; i < aL; i++) {
1458
+ if (a[i] != b[i]) {
1459
+ r = a[i] > b[i] ? 1 : -1;
1460
+ break;
1461
+ }
1462
+ }
1463
+ }
1464
+ return r;
1465
+ }
1466
+ function subtract(a, b, aL, base) {
1467
+ var i = 0;
1468
+ for (; aL--; ) {
1469
+ a[aL] -= i;
1470
+ i = a[aL] < b[aL] ? 1 : 0;
1471
+ a[aL] = i * base + a[aL] - b[aL];
1472
+ }
1473
+ for (; !a[0] && a.length > 1; )
1474
+ a.shift();
1475
+ }
1476
+ return function(x, y, pr, rm, dp, base) {
1477
+ var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz, Ctor = x.constructor, sign2 = x.s == y.s ? 1 : -1, xd = x.d, yd = y.d;
1478
+ if (!xd || !xd[0] || !yd || !yd[0]) {
1479
+ return new Ctor(
1480
+ // Return NaN if either NaN, or both Infinity or 0.
1481
+ !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN : (
1482
+ // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.
1483
+ xd && xd[0] == 0 || !yd ? sign2 * 0 : sign2 / 0
1484
+ )
1485
+ );
1486
+ }
1487
+ if (base) {
1488
+ logBase = 1;
1489
+ e = x.e - y.e;
1490
+ } else {
1491
+ base = BASE;
1492
+ logBase = LOG_BASE;
1493
+ e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);
1494
+ }
1495
+ yL = yd.length;
1496
+ xL = xd.length;
1497
+ q = new Ctor(sign2);
1498
+ qd = q.d = [];
1499
+ for (i = 0; yd[i] == (xd[i] || 0); i++)
1500
+ ;
1501
+ if (yd[i] > (xd[i] || 0))
1502
+ e--;
1503
+ if (pr == null) {
1504
+ sd = pr = Ctor.precision;
1505
+ rm = Ctor.rounding;
1506
+ } else if (dp) {
1507
+ sd = pr + (x.e - y.e) + 1;
1508
+ } else {
1509
+ sd = pr;
1510
+ }
1511
+ if (sd < 0) {
1512
+ qd.push(1);
1513
+ more = true;
1514
+ } else {
1515
+ sd = sd / logBase + 2 | 0;
1516
+ i = 0;
1517
+ if (yL == 1) {
1518
+ k = 0;
1519
+ yd = yd[0];
1520
+ sd++;
1521
+ for (; (i < xL || k) && sd--; i++) {
1522
+ t = k * base + (xd[i] || 0);
1523
+ qd[i] = t / yd | 0;
1524
+ k = t % yd | 0;
1525
+ }
1526
+ more = k || i < xL;
1527
+ } else {
1528
+ k = base / (yd[0] + 1) | 0;
1529
+ if (k > 1) {
1530
+ yd = multiplyInteger(yd, k, base);
1531
+ xd = multiplyInteger(xd, k, base);
1532
+ yL = yd.length;
1533
+ xL = xd.length;
1534
+ }
1535
+ xi = yL;
1536
+ rem = xd.slice(0, yL);
1537
+ remL = rem.length;
1538
+ for (; remL < yL; )
1539
+ rem[remL++] = 0;
1540
+ yz = yd.slice();
1541
+ yz.unshift(0);
1542
+ yd0 = yd[0];
1543
+ if (yd[1] >= base / 2)
1544
+ ++yd0;
1545
+ do {
1546
+ k = 0;
1547
+ cmp = compare(yd, rem, yL, remL);
1548
+ if (cmp < 0) {
1549
+ rem0 = rem[0];
1550
+ if (yL != remL)
1551
+ rem0 = rem0 * base + (rem[1] || 0);
1552
+ k = rem0 / yd0 | 0;
1553
+ if (k > 1) {
1554
+ if (k >= base)
1555
+ k = base - 1;
1556
+ prod = multiplyInteger(yd, k, base);
1557
+ prodL = prod.length;
1558
+ remL = rem.length;
1559
+ cmp = compare(prod, rem, prodL, remL);
1560
+ if (cmp == 1) {
1561
+ k--;
1562
+ subtract(prod, yL < prodL ? yz : yd, prodL, base);
1563
+ }
1564
+ } else {
1565
+ if (k == 0)
1566
+ cmp = k = 1;
1567
+ prod = yd.slice();
1568
+ }
1569
+ prodL = prod.length;
1570
+ if (prodL < remL)
1571
+ prod.unshift(0);
1572
+ subtract(rem, prod, remL, base);
1573
+ if (cmp == -1) {
1574
+ remL = rem.length;
1575
+ cmp = compare(yd, rem, yL, remL);
1576
+ if (cmp < 1) {
1577
+ k++;
1578
+ subtract(rem, yL < remL ? yz : yd, remL, base);
1579
+ }
1580
+ }
1581
+ remL = rem.length;
1582
+ } else if (cmp === 0) {
1583
+ k++;
1584
+ rem = [0];
1585
+ }
1586
+ qd[i++] = k;
1587
+ if (cmp && rem[0]) {
1588
+ rem[remL++] = xd[xi] || 0;
1589
+ } else {
1590
+ rem = [xd[xi]];
1591
+ remL = 1;
1592
+ }
1593
+ } while ((xi++ < xL || rem[0] !== void 0) && sd--);
1594
+ more = rem[0] !== void 0;
1595
+ }
1596
+ if (!qd[0])
1597
+ qd.shift();
1598
+ }
1599
+ if (logBase == 1) {
1600
+ q.e = e;
1601
+ inexact = more;
1602
+ } else {
1603
+ for (i = 1, k = qd[0]; k >= 10; k /= 10)
1604
+ i++;
1605
+ q.e = i + e * logBase - 1;
1606
+ finalise(q, dp ? pr + q.e + 1 : pr, rm, more);
1607
+ }
1608
+ return q;
1609
+ };
1610
+ }();
1611
+ function finalise(x, sd, rm, isTruncated) {
1612
+ var digits, i, j, k, rd, roundUp, w, xd, xdi, Ctor = x.constructor;
1613
+ out:
1614
+ if (sd != null) {
1615
+ xd = x.d;
1616
+ if (!xd)
1617
+ return x;
1618
+ for (digits = 1, k = xd[0]; k >= 10; k /= 10)
1619
+ digits++;
1620
+ i = sd - digits;
1621
+ if (i < 0) {
1622
+ i += LOG_BASE;
1623
+ j = sd;
1624
+ w = xd[xdi = 0];
1625
+ rd = w / mathpow(10, digits - j - 1) % 10 | 0;
1626
+ } else {
1627
+ xdi = Math.ceil((i + 1) / LOG_BASE);
1628
+ k = xd.length;
1629
+ if (xdi >= k) {
1630
+ if (isTruncated) {
1631
+ for (; k++ <= xdi; )
1632
+ xd.push(0);
1633
+ w = rd = 0;
1634
+ digits = 1;
1635
+ i %= LOG_BASE;
1636
+ j = i - LOG_BASE + 1;
1637
+ } else {
1638
+ break out;
1639
+ }
1640
+ } else {
1641
+ w = k = xd[xdi];
1642
+ for (digits = 1; k >= 10; k /= 10)
1643
+ digits++;
1644
+ i %= LOG_BASE;
1645
+ j = i - LOG_BASE + digits;
1646
+ rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;
1647
+ }
1648
+ }
1649
+ isTruncated = isTruncated || sd < 0 || xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));
1650
+ roundUp = rm < 4 ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 && // Check whether the digit to the left of the rounding digit is odd.
1651
+ (i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));
1652
+ if (sd < 1 || !xd[0]) {
1653
+ xd.length = 0;
1654
+ if (roundUp) {
1655
+ sd -= x.e + 1;
1656
+ xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);
1657
+ x.e = -sd || 0;
1658
+ } else {
1659
+ xd[0] = x.e = 0;
1660
+ }
1661
+ return x;
1662
+ }
1663
+ if (i == 0) {
1664
+ xd.length = xdi;
1665
+ k = 1;
1666
+ xdi--;
1667
+ } else {
1668
+ xd.length = xdi + 1;
1669
+ k = mathpow(10, LOG_BASE - i);
1670
+ xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;
1671
+ }
1672
+ if (roundUp) {
1673
+ for (; ; ) {
1674
+ if (xdi == 0) {
1675
+ for (i = 1, j = xd[0]; j >= 10; j /= 10)
1676
+ i++;
1677
+ j = xd[0] += k;
1678
+ for (k = 1; j >= 10; j /= 10)
1679
+ k++;
1680
+ if (i != k) {
1681
+ x.e++;
1682
+ if (xd[0] == BASE)
1683
+ xd[0] = 1;
1684
+ }
1685
+ break;
1686
+ } else {
1687
+ xd[xdi] += k;
1688
+ if (xd[xdi] != BASE)
1689
+ break;
1690
+ xd[xdi--] = 0;
1691
+ k = 1;
1692
+ }
1693
+ }
1694
+ }
1695
+ for (i = xd.length; xd[--i] === 0; )
1696
+ xd.pop();
1697
+ }
1698
+ if (external) {
1699
+ if (x.e > Ctor.maxE) {
1700
+ x.d = null;
1701
+ x.e = NaN;
1702
+ } else if (x.e < Ctor.minE) {
1703
+ x.e = 0;
1704
+ x.d = [0];
1705
+ }
1706
+ }
1707
+ return x;
1708
+ }
1709
+ function finiteToString(x, isExp, sd) {
1710
+ if (!x.isFinite())
1711
+ return nonFiniteToString(x);
1712
+ var k, e = x.e, str = digitsToString(x.d), len = str.length;
1713
+ if (isExp) {
1714
+ if (sd && (k = sd - len) > 0) {
1715
+ str = str.charAt(0) + "." + str.slice(1) + getZeroString(k);
1716
+ } else if (len > 1) {
1717
+ str = str.charAt(0) + "." + str.slice(1);
1718
+ }
1719
+ str = str + (x.e < 0 ? "e" : "e+") + x.e;
1720
+ } else if (e < 0) {
1721
+ str = "0." + getZeroString(-e - 1) + str;
1722
+ if (sd && (k = sd - len) > 0)
1723
+ str += getZeroString(k);
1724
+ } else if (e >= len) {
1725
+ str += getZeroString(e + 1 - len);
1726
+ if (sd && (k = sd - e - 1) > 0)
1727
+ str = str + "." + getZeroString(k);
1728
+ } else {
1729
+ if ((k = e + 1) < len)
1730
+ str = str.slice(0, k) + "." + str.slice(k);
1731
+ if (sd && (k = sd - len) > 0) {
1732
+ if (e + 1 === len)
1733
+ str += ".";
1734
+ str += getZeroString(k);
1735
+ }
1736
+ }
1737
+ return str;
1738
+ }
1739
+ function getBase10Exponent(digits, e) {
1740
+ var w = digits[0];
1741
+ for (e *= LOG_BASE; w >= 10; w /= 10)
1742
+ e++;
1743
+ return e;
1744
+ }
1745
+ function getLn10(Ctor, sd, pr) {
1746
+ if (sd > LN10_PRECISION) {
1747
+ external = true;
1748
+ if (pr)
1749
+ Ctor.precision = pr;
1750
+ throw Error(precisionLimitExceeded);
1751
+ }
1752
+ return finalise(new Ctor(LN10), sd, 1, true);
1753
+ }
1754
+ function getPi(Ctor, sd, rm) {
1755
+ if (sd > PI_PRECISION)
1756
+ throw Error(precisionLimitExceeded);
1757
+ return finalise(new Ctor(PI), sd, rm, true);
1758
+ }
1759
+ function getPrecision(digits) {
1760
+ var w = digits.length - 1, len = w * LOG_BASE + 1;
1761
+ w = digits[w];
1762
+ if (w) {
1763
+ for (; w % 10 == 0; w /= 10)
1764
+ len--;
1765
+ for (w = digits[0]; w >= 10; w /= 10)
1766
+ len++;
1767
+ }
1768
+ return len;
1769
+ }
1770
+ function getZeroString(k) {
1771
+ var zs = "";
1772
+ for (; k--; )
1773
+ zs += "0";
1774
+ return zs;
1775
+ }
1776
+ function intPow(Ctor, x, n, pr) {
1777
+ var isTruncated, r = new Ctor(1), k = Math.ceil(pr / LOG_BASE + 4);
1778
+ external = false;
1779
+ for (; ; ) {
1780
+ if (n % 2) {
1781
+ r = r.times(x);
1782
+ if (truncate(r.d, k))
1783
+ isTruncated = true;
1784
+ }
1785
+ n = mathfloor(n / 2);
1786
+ if (n === 0) {
1787
+ n = r.d.length - 1;
1788
+ if (isTruncated && r.d[n] === 0)
1789
+ ++r.d[n];
1790
+ break;
1791
+ }
1792
+ x = x.times(x);
1793
+ truncate(x.d, k);
1794
+ }
1795
+ external = true;
1796
+ return r;
1797
+ }
1798
+ function isOdd(n) {
1799
+ return n.d[n.d.length - 1] & 1;
1800
+ }
1801
+ function maxOrMin(Ctor, args, ltgt) {
1802
+ var y, x = new Ctor(args[0]), i = 0;
1803
+ for (; ++i < args.length; ) {
1804
+ y = new Ctor(args[i]);
1805
+ if (!y.s) {
1806
+ x = y;
1807
+ break;
1808
+ } else if (x[ltgt](y)) {
1809
+ x = y;
1810
+ }
1811
+ }
1812
+ return x;
1813
+ }
1814
+ function naturalExponential(x, sd) {
1815
+ var denominator, guard, j, pow2, sum2, t, wpr, rep = 0, i = 0, k = 0, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision;
1816
+ if (!x.d || !x.d[0] || x.e > 17) {
1817
+ return new Ctor(x.d ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0 : x.s ? x.s < 0 ? 0 : x : 0 / 0);
1818
+ }
1819
+ if (sd == null) {
1820
+ external = false;
1821
+ wpr = pr;
1822
+ } else {
1823
+ wpr = sd;
1824
+ }
1825
+ t = new Ctor(0.03125);
1826
+ while (x.e > -2) {
1827
+ x = x.times(t);
1828
+ k += 5;
1829
+ }
1830
+ guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;
1831
+ wpr += guard;
1832
+ denominator = pow2 = sum2 = new Ctor(1);
1833
+ Ctor.precision = wpr;
1834
+ for (; ; ) {
1835
+ pow2 = finalise(pow2.times(x), wpr, 1);
1836
+ denominator = denominator.times(++i);
1837
+ t = sum2.plus(divide(pow2, denominator, wpr, 1));
1838
+ if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum2.d).slice(0, wpr)) {
1839
+ j = k;
1840
+ while (j--)
1841
+ sum2 = finalise(sum2.times(sum2), wpr, 1);
1842
+ if (sd == null) {
1843
+ if (rep < 3 && checkRoundingDigits(sum2.d, wpr - guard, rm, rep)) {
1844
+ Ctor.precision = wpr += 10;
1845
+ denominator = pow2 = t = new Ctor(1);
1846
+ i = 0;
1847
+ rep++;
1848
+ } else {
1849
+ return finalise(sum2, Ctor.precision = pr, rm, external = true);
1850
+ }
1851
+ } else {
1852
+ Ctor.precision = pr;
1853
+ return sum2;
1854
+ }
1855
+ }
1856
+ sum2 = t;
1857
+ }
1858
+ }
1859
+ function naturalLogarithm(y, sd) {
1860
+ var c, c0, denominator, e, numerator, rep, sum2, t, wpr, x1, x2, n = 1, guard = 10, x = y, xd = x.d, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision;
1861
+ if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {
1862
+ return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);
1863
+ }
1864
+ if (sd == null) {
1865
+ external = false;
1866
+ wpr = pr;
1867
+ } else {
1868
+ wpr = sd;
1869
+ }
1870
+ Ctor.precision = wpr += guard;
1871
+ c = digitsToString(xd);
1872
+ c0 = c.charAt(0);
1873
+ if (Math.abs(e = x.e) < 15e14) {
1874
+ while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {
1875
+ x = x.times(y);
1876
+ c = digitsToString(x.d);
1877
+ c0 = c.charAt(0);
1878
+ n++;
1879
+ }
1880
+ e = x.e;
1881
+ if (c0 > 1) {
1882
+ x = new Ctor("0." + c);
1883
+ e++;
1884
+ } else {
1885
+ x = new Ctor(c0 + "." + c.slice(1));
1886
+ }
1887
+ } else {
1888
+ t = getLn10(Ctor, wpr + 2, pr).times(e + "");
1889
+ x = naturalLogarithm(new Ctor(c0 + "." + c.slice(1)), wpr - guard).plus(t);
1890
+ Ctor.precision = pr;
1891
+ return sd == null ? finalise(x, pr, rm, external = true) : x;
1892
+ }
1893
+ x1 = x;
1894
+ sum2 = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);
1895
+ x2 = finalise(x.times(x), wpr, 1);
1896
+ denominator = 3;
1897
+ for (; ; ) {
1898
+ numerator = finalise(numerator.times(x2), wpr, 1);
1899
+ t = sum2.plus(divide(numerator, new Ctor(denominator), wpr, 1));
1900
+ if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum2.d).slice(0, wpr)) {
1901
+ sum2 = sum2.times(2);
1902
+ if (e !== 0)
1903
+ sum2 = sum2.plus(getLn10(Ctor, wpr + 2, pr).times(e + ""));
1904
+ sum2 = divide(sum2, new Ctor(n), wpr, 1);
1905
+ if (sd == null) {
1906
+ if (checkRoundingDigits(sum2.d, wpr - guard, rm, rep)) {
1907
+ Ctor.precision = wpr += guard;
1908
+ t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);
1909
+ x2 = finalise(x.times(x), wpr, 1);
1910
+ denominator = rep = 1;
1911
+ } else {
1912
+ return finalise(sum2, Ctor.precision = pr, rm, external = true);
1913
+ }
1914
+ } else {
1915
+ Ctor.precision = pr;
1916
+ return sum2;
1917
+ }
1918
+ }
1919
+ sum2 = t;
1920
+ denominator += 2;
1921
+ }
1922
+ }
1923
+ function nonFiniteToString(x) {
1924
+ return String(x.s * x.s / 0);
1925
+ }
1926
+ function parseDecimal(x, str) {
1927
+ var e, i, len;
1928
+ if ((e = str.indexOf(".")) > -1)
1929
+ str = str.replace(".", "");
1930
+ if ((i = str.search(/e/i)) > 0) {
1931
+ if (e < 0)
1932
+ e = i;
1933
+ e += +str.slice(i + 1);
1934
+ str = str.substring(0, i);
1935
+ } else if (e < 0) {
1936
+ e = str.length;
1937
+ }
1938
+ for (i = 0; str.charCodeAt(i) === 48; i++)
1939
+ ;
1940
+ for (len = str.length; str.charCodeAt(len - 1) === 48; --len)
1941
+ ;
1942
+ str = str.slice(i, len);
1943
+ if (str) {
1944
+ len -= i;
1945
+ x.e = e = e - i - 1;
1946
+ x.d = [];
1947
+ i = (e + 1) % LOG_BASE;
1948
+ if (e < 0)
1949
+ i += LOG_BASE;
1950
+ if (i < len) {
1951
+ if (i)
1952
+ x.d.push(+str.slice(0, i));
1953
+ for (len -= LOG_BASE; i < len; )
1954
+ x.d.push(+str.slice(i, i += LOG_BASE));
1955
+ str = str.slice(i);
1956
+ i = LOG_BASE - str.length;
1957
+ } else {
1958
+ i -= len;
1959
+ }
1960
+ for (; i--; )
1961
+ str += "0";
1962
+ x.d.push(+str);
1963
+ if (external) {
1964
+ if (x.e > x.constructor.maxE) {
1965
+ x.d = null;
1966
+ x.e = NaN;
1967
+ } else if (x.e < x.constructor.minE) {
1968
+ x.e = 0;
1969
+ x.d = [0];
1970
+ }
1971
+ }
1972
+ } else {
1973
+ x.e = 0;
1974
+ x.d = [0];
1975
+ }
1976
+ return x;
1977
+ }
1978
+ function parseOther(x, str) {
1979
+ var base, Ctor, divisor, i, isFloat, len, p, xd, xe;
1980
+ if (str.indexOf("_") > -1) {
1981
+ str = str.replace(/(\d)_(?=\d)/g, "$1");
1982
+ if (isDecimal.test(str))
1983
+ return parseDecimal(x, str);
1984
+ } else if (str === "Infinity" || str === "NaN") {
1985
+ if (!+str)
1986
+ x.s = NaN;
1987
+ x.e = NaN;
1988
+ x.d = null;
1989
+ return x;
1990
+ }
1991
+ if (isHex.test(str)) {
1992
+ base = 16;
1993
+ str = str.toLowerCase();
1994
+ } else if (isBinary.test(str)) {
1995
+ base = 2;
1996
+ } else if (isOctal.test(str)) {
1997
+ base = 8;
1998
+ } else {
1999
+ throw Error(invalidArgument + str);
2000
+ }
2001
+ i = str.search(/p/i);
2002
+ if (i > 0) {
2003
+ p = +str.slice(i + 1);
2004
+ str = str.substring(2, i);
2005
+ } else {
2006
+ str = str.slice(2);
2007
+ }
2008
+ i = str.indexOf(".");
2009
+ isFloat = i >= 0;
2010
+ Ctor = x.constructor;
2011
+ if (isFloat) {
2012
+ str = str.replace(".", "");
2013
+ len = str.length;
2014
+ i = len - i;
2015
+ divisor = intPow(Ctor, new Ctor(base), i, i * 2);
2016
+ }
2017
+ xd = convertBase(str, base, BASE);
2018
+ xe = xd.length - 1;
2019
+ for (i = xe; xd[i] === 0; --i)
2020
+ xd.pop();
2021
+ if (i < 0)
2022
+ return new Ctor(x.s * 0);
2023
+ x.e = getBase10Exponent(xd, xe);
2024
+ x.d = xd;
2025
+ external = false;
2026
+ if (isFloat)
2027
+ x = divide(x, divisor, len * 4);
2028
+ if (p)
2029
+ x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));
2030
+ external = true;
2031
+ return x;
2032
+ }
2033
+ function sine(Ctor, x) {
2034
+ var k, len = x.d.length;
2035
+ if (len < 3) {
2036
+ return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);
2037
+ }
2038
+ k = 1.4 * Math.sqrt(len);
2039
+ k = k > 16 ? 16 : k | 0;
2040
+ x = x.times(1 / tinyPow(5, k));
2041
+ x = taylorSeries(Ctor, 2, x, x);
2042
+ var sin2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20);
2043
+ for (; k--; ) {
2044
+ sin2_x = x.times(x);
2045
+ x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));
2046
+ }
2047
+ return x;
2048
+ }
2049
+ function taylorSeries(Ctor, n, x, y, isHyperbolic) {
2050
+ var j, t, u, x2, pr = Ctor.precision, k = Math.ceil(pr / LOG_BASE);
2051
+ external = false;
2052
+ x2 = x.times(x);
2053
+ u = new Ctor(y);
2054
+ for (; ; ) {
2055
+ t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);
2056
+ u = isHyperbolic ? y.plus(t) : y.minus(t);
2057
+ y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);
2058
+ t = u.plus(y);
2059
+ if (t.d[k] !== void 0) {
2060
+ for (j = k; t.d[j] === u.d[j] && j--; )
2061
+ ;
2062
+ if (j == -1)
2063
+ break;
2064
+ }
2065
+ j = u;
2066
+ u = y;
2067
+ y = t;
2068
+ t = j;
2069
+ }
2070
+ external = true;
2071
+ t.d.length = k + 1;
2072
+ return t;
2073
+ }
2074
+ function tinyPow(b, e) {
2075
+ var n = b;
2076
+ while (--e)
2077
+ n *= b;
2078
+ return n;
2079
+ }
2080
+ function toLessThanHalfPi(Ctor, x) {
2081
+ var t, isNeg = x.s < 0, pi = getPi(Ctor, Ctor.precision, 1), halfPi = pi.times(0.5);
2082
+ x = x.abs();
2083
+ if (x.lte(halfPi)) {
2084
+ quadrant = isNeg ? 4 : 1;
2085
+ return x;
2086
+ }
2087
+ t = x.divToInt(pi);
2088
+ if (t.isZero()) {
2089
+ quadrant = isNeg ? 3 : 2;
2090
+ } else {
2091
+ x = x.minus(t.times(pi));
2092
+ if (x.lte(halfPi)) {
2093
+ quadrant = isOdd(t) ? isNeg ? 2 : 3 : isNeg ? 4 : 1;
2094
+ return x;
2095
+ }
2096
+ quadrant = isOdd(t) ? isNeg ? 1 : 4 : isNeg ? 3 : 2;
2097
+ }
2098
+ return x.minus(pi).abs();
2099
+ }
2100
+ function toStringBinary(x, baseOut, sd, rm) {
2101
+ var base, e, i, k, len, roundUp, str, xd, y, Ctor = x.constructor, isExp = sd !== void 0;
2102
+ if (isExp) {
2103
+ checkInt32(sd, 1, MAX_DIGITS);
2104
+ if (rm === void 0)
2105
+ rm = Ctor.rounding;
2106
+ else
2107
+ checkInt32(rm, 0, 8);
2108
+ } else {
2109
+ sd = Ctor.precision;
2110
+ rm = Ctor.rounding;
2111
+ }
2112
+ if (!x.isFinite()) {
2113
+ str = nonFiniteToString(x);
2114
+ } else {
2115
+ str = finiteToString(x);
2116
+ i = str.indexOf(".");
2117
+ if (isExp) {
2118
+ base = 2;
2119
+ if (baseOut == 16) {
2120
+ sd = sd * 4 - 3;
2121
+ } else if (baseOut == 8) {
2122
+ sd = sd * 3 - 2;
2123
+ }
2124
+ } else {
2125
+ base = baseOut;
2126
+ }
2127
+ if (i >= 0) {
2128
+ str = str.replace(".", "");
2129
+ y = new Ctor(1);
2130
+ y.e = str.length - i;
2131
+ y.d = convertBase(finiteToString(y), 10, base);
2132
+ y.e = y.d.length;
2133
+ }
2134
+ xd = convertBase(str, 10, base);
2135
+ e = len = xd.length;
2136
+ for (; xd[--len] == 0; )
2137
+ xd.pop();
2138
+ if (!xd[0]) {
2139
+ str = isExp ? "0p+0" : "0";
2140
+ } else {
2141
+ if (i < 0) {
2142
+ e--;
2143
+ } else {
2144
+ x = new Ctor(x);
2145
+ x.d = xd;
2146
+ x.e = e;
2147
+ x = divide(x, y, sd, rm, 0, base);
2148
+ xd = x.d;
2149
+ e = x.e;
2150
+ roundUp = inexact;
2151
+ }
2152
+ i = xd[sd];
2153
+ k = base / 2;
2154
+ roundUp = roundUp || xd[sd + 1] !== void 0;
2155
+ roundUp = rm < 4 ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2)) : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 || rm === (x.s < 0 ? 8 : 7));
2156
+ xd.length = sd;
2157
+ if (roundUp) {
2158
+ for (; ++xd[--sd] > base - 1; ) {
2159
+ xd[sd] = 0;
2160
+ if (!sd) {
2161
+ ++e;
2162
+ xd.unshift(1);
2163
+ }
2164
+ }
2165
+ }
2166
+ for (len = xd.length; !xd[len - 1]; --len)
2167
+ ;
2168
+ for (i = 0, str = ""; i < len; i++)
2169
+ str += NUMERALS.charAt(xd[i]);
2170
+ if (isExp) {
2171
+ if (len > 1) {
2172
+ if (baseOut == 16 || baseOut == 8) {
2173
+ i = baseOut == 16 ? 4 : 3;
2174
+ for (--len; len % i; len++)
2175
+ str += "0";
2176
+ xd = convertBase(str, base, baseOut);
2177
+ for (len = xd.length; !xd[len - 1]; --len)
2178
+ ;
2179
+ for (i = 1, str = "1."; i < len; i++)
2180
+ str += NUMERALS.charAt(xd[i]);
2181
+ } else {
2182
+ str = str.charAt(0) + "." + str.slice(1);
2183
+ }
2184
+ }
2185
+ str = str + (e < 0 ? "p" : "p+") + e;
2186
+ } else if (e < 0) {
2187
+ for (; ++e; )
2188
+ str = "0" + str;
2189
+ str = "0." + str;
2190
+ } else {
2191
+ if (++e > len)
2192
+ for (e -= len; e--; )
2193
+ str += "0";
2194
+ else if (e < len)
2195
+ str = str.slice(0, e) + "." + str.slice(e);
2196
+ }
2197
+ }
2198
+ str = (baseOut == 16 ? "0x" : baseOut == 2 ? "0b" : baseOut == 8 ? "0o" : "") + str;
2199
+ }
2200
+ return x.s < 0 ? "-" + str : str;
2201
+ }
2202
+ function truncate(arr, len) {
2203
+ if (arr.length > len) {
2204
+ arr.length = len;
2205
+ return true;
2206
+ }
2207
+ }
2208
+ function abs(x) {
2209
+ return new this(x).abs();
2210
+ }
2211
+ function acos(x) {
2212
+ return new this(x).acos();
2213
+ }
2214
+ function acosh(x) {
2215
+ return new this(x).acosh();
2216
+ }
2217
+ function add(x, y) {
2218
+ return new this(x).plus(y);
2219
+ }
2220
+ function asin(x) {
2221
+ return new this(x).asin();
2222
+ }
2223
+ function asinh(x) {
2224
+ return new this(x).asinh();
2225
+ }
2226
+ function atan(x) {
2227
+ return new this(x).atan();
2228
+ }
2229
+ function atanh(x) {
2230
+ return new this(x).atanh();
2231
+ }
2232
+ function atan2(y, x) {
2233
+ y = new this(y);
2234
+ x = new this(x);
2235
+ var r, pr = this.precision, rm = this.rounding, wpr = pr + 4;
2236
+ if (!y.s || !x.s) {
2237
+ r = new this(NaN);
2238
+ } else if (!y.d && !x.d) {
2239
+ r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);
2240
+ r.s = y.s;
2241
+ } else if (!x.d || y.isZero()) {
2242
+ r = x.s < 0 ? getPi(this, pr, rm) : new this(0);
2243
+ r.s = y.s;
2244
+ } else if (!y.d || x.isZero()) {
2245
+ r = getPi(this, wpr, 1).times(0.5);
2246
+ r.s = y.s;
2247
+ } else if (x.s < 0) {
2248
+ this.precision = wpr;
2249
+ this.rounding = 1;
2250
+ r = this.atan(divide(y, x, wpr, 1));
2251
+ x = getPi(this, wpr, 1);
2252
+ this.precision = pr;
2253
+ this.rounding = rm;
2254
+ r = y.s < 0 ? r.minus(x) : r.plus(x);
2255
+ } else {
2256
+ r = this.atan(divide(y, x, wpr, 1));
2257
+ }
2258
+ return r;
2259
+ }
2260
+ function cbrt(x) {
2261
+ return new this(x).cbrt();
2262
+ }
2263
+ function ceil(x) {
2264
+ return finalise(x = new this(x), x.e + 1, 2);
2265
+ }
2266
+ function clamp(x, min2, max2) {
2267
+ return new this(x).clamp(min2, max2);
2268
+ }
2269
+ function config(obj) {
2270
+ if (!obj || typeof obj !== "object")
2271
+ throw Error(decimalError + "Object expected");
2272
+ var i, p, v, useDefaults = obj.defaults === true, ps = [
2273
+ "precision",
2274
+ 1,
2275
+ MAX_DIGITS,
2276
+ "rounding",
2277
+ 0,
2278
+ 8,
2279
+ "toExpNeg",
2280
+ -EXP_LIMIT,
2281
+ 0,
2282
+ "toExpPos",
2283
+ 0,
2284
+ EXP_LIMIT,
2285
+ "maxE",
2286
+ 0,
2287
+ EXP_LIMIT,
2288
+ "minE",
2289
+ -EXP_LIMIT,
2290
+ 0,
2291
+ "modulo",
2292
+ 0,
2293
+ 9
2294
+ ];
2295
+ for (i = 0; i < ps.length; i += 3) {
2296
+ if (p = ps[i], useDefaults)
2297
+ this[p] = DEFAULTS[p];
2298
+ if ((v = obj[p]) !== void 0) {
2299
+ if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2])
2300
+ this[p] = v;
2301
+ else
2302
+ throw Error(invalidArgument + p + ": " + v);
2303
+ }
2304
+ }
2305
+ if (p = "crypto", useDefaults)
2306
+ this[p] = DEFAULTS[p];
2307
+ if ((v = obj[p]) !== void 0) {
2308
+ if (v === true || v === false || v === 0 || v === 1) {
2309
+ if (v) {
2310
+ if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {
2311
+ this[p] = true;
2312
+ } else {
2313
+ throw Error(cryptoUnavailable);
2314
+ }
2315
+ } else {
2316
+ this[p] = false;
2317
+ }
2318
+ } else {
2319
+ throw Error(invalidArgument + p + ": " + v);
2320
+ }
2321
+ }
2322
+ return this;
2323
+ }
2324
+ function cos(x) {
2325
+ return new this(x).cos();
2326
+ }
2327
+ function cosh(x) {
2328
+ return new this(x).cosh();
2329
+ }
2330
+ function clone(obj) {
2331
+ var i, p, ps;
2332
+ function Decimal2(v) {
2333
+ var e, i2, t, x = this;
2334
+ if (!(x instanceof Decimal2))
2335
+ return new Decimal2(v);
2336
+ x.constructor = Decimal2;
2337
+ if (isDecimalInstance(v)) {
2338
+ x.s = v.s;
2339
+ if (external) {
2340
+ if (!v.d || v.e > Decimal2.maxE) {
2341
+ x.e = NaN;
2342
+ x.d = null;
2343
+ } else if (v.e < Decimal2.minE) {
2344
+ x.e = 0;
2345
+ x.d = [0];
2346
+ } else {
2347
+ x.e = v.e;
2348
+ x.d = v.d.slice();
2349
+ }
2350
+ } else {
2351
+ x.e = v.e;
2352
+ x.d = v.d ? v.d.slice() : v.d;
2353
+ }
2354
+ return;
2355
+ }
2356
+ t = typeof v;
2357
+ if (t === "number") {
2358
+ if (v === 0) {
2359
+ x.s = 1 / v < 0 ? -1 : 1;
2360
+ x.e = 0;
2361
+ x.d = [0];
2362
+ return;
2363
+ }
2364
+ if (v < 0) {
2365
+ v = -v;
2366
+ x.s = -1;
2367
+ } else {
2368
+ x.s = 1;
2369
+ }
2370
+ if (v === ~~v && v < 1e7) {
2371
+ for (e = 0, i2 = v; i2 >= 10; i2 /= 10)
2372
+ e++;
2373
+ if (external) {
2374
+ if (e > Decimal2.maxE) {
2375
+ x.e = NaN;
2376
+ x.d = null;
2377
+ } else if (e < Decimal2.minE) {
2378
+ x.e = 0;
2379
+ x.d = [0];
2380
+ } else {
2381
+ x.e = e;
2382
+ x.d = [v];
2383
+ }
2384
+ } else {
2385
+ x.e = e;
2386
+ x.d = [v];
2387
+ }
2388
+ return;
2389
+ } else if (v * 0 !== 0) {
2390
+ if (!v)
2391
+ x.s = NaN;
2392
+ x.e = NaN;
2393
+ x.d = null;
2394
+ return;
2395
+ }
2396
+ return parseDecimal(x, v.toString());
2397
+ } else if (t !== "string") {
2398
+ throw Error(invalidArgument + v);
2399
+ }
2400
+ if ((i2 = v.charCodeAt(0)) === 45) {
2401
+ v = v.slice(1);
2402
+ x.s = -1;
2403
+ } else {
2404
+ if (i2 === 43)
2405
+ v = v.slice(1);
2406
+ x.s = 1;
2407
+ }
2408
+ return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);
2409
+ }
2410
+ Decimal2.prototype = P;
2411
+ Decimal2.ROUND_UP = 0;
2412
+ Decimal2.ROUND_DOWN = 1;
2413
+ Decimal2.ROUND_CEIL = 2;
2414
+ Decimal2.ROUND_FLOOR = 3;
2415
+ Decimal2.ROUND_HALF_UP = 4;
2416
+ Decimal2.ROUND_HALF_DOWN = 5;
2417
+ Decimal2.ROUND_HALF_EVEN = 6;
2418
+ Decimal2.ROUND_HALF_CEIL = 7;
2419
+ Decimal2.ROUND_HALF_FLOOR = 8;
2420
+ Decimal2.EUCLID = 9;
2421
+ Decimal2.config = Decimal2.set = config;
2422
+ Decimal2.clone = clone;
2423
+ Decimal2.isDecimal = isDecimalInstance;
2424
+ Decimal2.abs = abs;
2425
+ Decimal2.acos = acos;
2426
+ Decimal2.acosh = acosh;
2427
+ Decimal2.add = add;
2428
+ Decimal2.asin = asin;
2429
+ Decimal2.asinh = asinh;
2430
+ Decimal2.atan = atan;
2431
+ Decimal2.atanh = atanh;
2432
+ Decimal2.atan2 = atan2;
2433
+ Decimal2.cbrt = cbrt;
2434
+ Decimal2.ceil = ceil;
2435
+ Decimal2.clamp = clamp;
2436
+ Decimal2.cos = cos;
2437
+ Decimal2.cosh = cosh;
2438
+ Decimal2.div = div;
2439
+ Decimal2.exp = exp;
2440
+ Decimal2.floor = floor;
2441
+ Decimal2.hypot = hypot;
2442
+ Decimal2.ln = ln;
2443
+ Decimal2.log = log;
2444
+ Decimal2.log10 = log10;
2445
+ Decimal2.log2 = log2;
2446
+ Decimal2.max = max;
2447
+ Decimal2.min = min;
2448
+ Decimal2.mod = mod;
2449
+ Decimal2.mul = mul;
2450
+ Decimal2.pow = pow;
2451
+ Decimal2.random = random;
2452
+ Decimal2.round = round;
2453
+ Decimal2.sign = sign;
2454
+ Decimal2.sin = sin;
2455
+ Decimal2.sinh = sinh;
2456
+ Decimal2.sqrt = sqrt;
2457
+ Decimal2.sub = sub;
2458
+ Decimal2.sum = sum;
2459
+ Decimal2.tan = tan;
2460
+ Decimal2.tanh = tanh;
2461
+ Decimal2.trunc = trunc;
2462
+ if (obj === void 0)
2463
+ obj = {};
2464
+ if (obj) {
2465
+ if (obj.defaults !== true) {
2466
+ ps = ["precision", "rounding", "toExpNeg", "toExpPos", "maxE", "minE", "modulo", "crypto"];
2467
+ for (i = 0; i < ps.length; )
2468
+ if (!obj.hasOwnProperty(p = ps[i++]))
2469
+ obj[p] = this[p];
2470
+ }
2471
+ }
2472
+ Decimal2.config(obj);
2473
+ return Decimal2;
2474
+ }
2475
+ function div(x, y) {
2476
+ return new this(x).div(y);
2477
+ }
2478
+ function exp(x) {
2479
+ return new this(x).exp();
2480
+ }
2481
+ function floor(x) {
2482
+ return finalise(x = new this(x), x.e + 1, 3);
2483
+ }
2484
+ function hypot() {
2485
+ var i, n, t = new this(0);
2486
+ external = false;
2487
+ for (i = 0; i < arguments.length; ) {
2488
+ n = new this(arguments[i++]);
2489
+ if (!n.d) {
2490
+ if (n.s) {
2491
+ external = true;
2492
+ return new this(1 / 0);
2493
+ }
2494
+ t = n;
2495
+ } else if (t.d) {
2496
+ t = t.plus(n.times(n));
2497
+ }
2498
+ }
2499
+ external = true;
2500
+ return t.sqrt();
2501
+ }
2502
+ function isDecimalInstance(obj) {
2503
+ return obj instanceof Decimal || obj && obj.toStringTag === tag || false;
2504
+ }
2505
+ function ln(x) {
2506
+ return new this(x).ln();
2507
+ }
2508
+ function log(x, y) {
2509
+ return new this(x).log(y);
2510
+ }
2511
+ function log2(x) {
2512
+ return new this(x).log(2);
2513
+ }
2514
+ function log10(x) {
2515
+ return new this(x).log(10);
2516
+ }
2517
+ function max() {
2518
+ return maxOrMin(this, arguments, "lt");
2519
+ }
2520
+ function min() {
2521
+ return maxOrMin(this, arguments, "gt");
2522
+ }
2523
+ function mod(x, y) {
2524
+ return new this(x).mod(y);
2525
+ }
2526
+ function mul(x, y) {
2527
+ return new this(x).mul(y);
2528
+ }
2529
+ function pow(x, y) {
2530
+ return new this(x).pow(y);
2531
+ }
2532
+ function random(sd) {
2533
+ var d, e, k, n, i = 0, r = new this(1), rd = [];
2534
+ if (sd === void 0)
2535
+ sd = this.precision;
2536
+ else
2537
+ checkInt32(sd, 1, MAX_DIGITS);
2538
+ k = Math.ceil(sd / LOG_BASE);
2539
+ if (!this.crypto) {
2540
+ for (; i < k; )
2541
+ rd[i++] = Math.random() * 1e7 | 0;
2542
+ } else if (crypto.getRandomValues) {
2543
+ d = crypto.getRandomValues(new Uint32Array(k));
2544
+ for (; i < k; ) {
2545
+ n = d[i];
2546
+ if (n >= 429e7) {
2547
+ d[i] = crypto.getRandomValues(new Uint32Array(1))[0];
2548
+ } else {
2549
+ rd[i++] = n % 1e7;
2550
+ }
2551
+ }
2552
+ } else if (crypto.randomBytes) {
2553
+ d = crypto.randomBytes(k *= 4);
2554
+ for (; i < k; ) {
2555
+ n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 127) << 24);
2556
+ if (n >= 214e7) {
2557
+ crypto.randomBytes(4).copy(d, i);
2558
+ } else {
2559
+ rd.push(n % 1e7);
2560
+ i += 4;
2561
+ }
2562
+ }
2563
+ i = k / 4;
2564
+ } else {
2565
+ throw Error(cryptoUnavailable);
2566
+ }
2567
+ k = rd[--i];
2568
+ sd %= LOG_BASE;
2569
+ if (k && sd) {
2570
+ n = mathpow(10, LOG_BASE - sd);
2571
+ rd[i] = (k / n | 0) * n;
2572
+ }
2573
+ for (; rd[i] === 0; i--)
2574
+ rd.pop();
2575
+ if (i < 0) {
2576
+ e = 0;
2577
+ rd = [0];
2578
+ } else {
2579
+ e = -1;
2580
+ for (; rd[0] === 0; e -= LOG_BASE)
2581
+ rd.shift();
2582
+ for (k = 1, n = rd[0]; n >= 10; n /= 10)
2583
+ k++;
2584
+ if (k < LOG_BASE)
2585
+ e -= LOG_BASE - k;
2586
+ }
2587
+ r.e = e;
2588
+ r.d = rd;
2589
+ return r;
2590
+ }
2591
+ function round(x) {
2592
+ return finalise(x = new this(x), x.e + 1, this.rounding);
2593
+ }
2594
+ function sign(x) {
2595
+ x = new this(x);
2596
+ return x.d ? x.d[0] ? x.s : 0 * x.s : x.s || NaN;
2597
+ }
2598
+ function sin(x) {
2599
+ return new this(x).sin();
2600
+ }
2601
+ function sinh(x) {
2602
+ return new this(x).sinh();
2603
+ }
2604
+ function sqrt(x) {
2605
+ return new this(x).sqrt();
2606
+ }
2607
+ function sub(x, y) {
2608
+ return new this(x).sub(y);
2609
+ }
2610
+ function sum() {
2611
+ var i = 0, args = arguments, x = new this(args[i]);
2612
+ external = false;
2613
+ for (; x.s && ++i < args.length; )
2614
+ x = x.plus(args[i]);
2615
+ external = true;
2616
+ return finalise(x, this.precision, this.rounding);
2617
+ }
2618
+ function tan(x) {
2619
+ return new this(x).tan();
2620
+ }
2621
+ function tanh(x) {
2622
+ return new this(x).tanh();
2623
+ }
2624
+ function trunc(x) {
2625
+ return finalise(x = new this(x), x.e + 1, 1);
2626
+ }
2627
+ P[Symbol.for("nodejs.util.inspect.custom")] = P.toString;
2628
+ P[Symbol.toStringTag] = "Decimal";
2629
+ var Decimal = P.constructor = clone(DEFAULTS);
2630
+ LN10 = new Decimal(LN10);
2631
+ PI = new Decimal(PI);
2632
+ const libJsDecimal = (num1, num2, operator, point = 2) => {
2633
+ const calc = {
2634
+ "+": (a, b) => a.add(b),
2635
+ "-": (a, b) => a.sub(b),
2636
+ "*": (a, b) => a.mul(b),
2637
+ "/": (a, b) => {
2638
+ if (b.eq(0)) {
2639
+ throw new Error("除数不能为0");
2640
+ }
2641
+ return a.div(b);
2642
+ }
2643
+ };
2644
+ const result = calc[operator](new Decimal(num1), new Decimal(num2));
2645
+ return Number(result.toFixed(point, Decimal.ROUND_DOWN));
2646
+ };
2647
+ const libJsRegFormValidate = (form, rules) => {
2648
+ return rules.reduce((result, rule) => {
2649
+ const { key, verify, msg, name } = rule;
2650
+ const value = form[key];
2651
+ if (value === "" || value === void 0 || value === null) {
2652
+ result.push({ key, msg: "必填项", name });
2653
+ } else if (typeof verify === "function" ? !verify(value) : !verify.test(value)) {
2654
+ result.push({ key, msg, name });
2655
+ }
2656
+ return result;
2657
+ }, []);
2658
+ };
2659
+ const libJsRetryRequest = ({
2660
+ promiseFn,
2661
+ maxRetries = 3,
2662
+ retryDelay = 2e3,
2663
+ params = void 0
2664
+ }) => {
2665
+ return new Promise((resolve, reject) => {
2666
+ let count = 0;
2667
+ const makeRequest = () => {
2668
+ promiseFn(params).then((res) => {
2669
+ resolve(res);
2670
+ }).catch((err) => {
2671
+ count++;
2672
+ if (count >= maxRetries) {
2673
+ reject(err);
2674
+ return;
2675
+ }
2676
+ setTimeout(makeRequest, retryDelay);
2677
+ });
2678
+ };
2679
+ makeRequest();
2680
+ });
2681
+ };
2682
+ const libJsProbabilityResult = (probability) => Math.random() * 100 < probability;
2683
+ const libJsRandom = (min2, max2, num = 0) => {
2684
+ return parseFloat((Math.random() * (max2 - min2) + min2).toFixed(num));
2685
+ };
2686
+ const libJsRandomColor = (alpha = 1) => {
2687
+ const r = Math.floor(Math.random() * 256);
2688
+ const g = Math.floor(Math.random() * 256);
2689
+ const b = Math.floor(Math.random() * 256);
2690
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
2691
+ };
2692
+ const libJsUniqueRandomNumbers = (min2, max2, count) => {
2693
+ const numbers = Array.from({ length: max2 - min2 + 1 }, (_, i) => i + min2);
2694
+ for (let i = numbers.length - 1; i > 0; i--) {
2695
+ const j = Math.floor(Math.random() * (i + 1));
2696
+ [numbers[i], numbers[j]] = [numbers[j], numbers[i]];
2697
+ }
2698
+ return numbers.slice(0, count);
2699
+ };
2700
+ var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
2701
+ function getDefaultExportFromCjs(x) {
2702
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
2703
+ }
2704
+ var dayjs_min = { exports: {} };
2705
+ (function(module, exports) {
2706
+ !function(t, e) {
2707
+ module.exports = e();
2708
+ }(commonjsGlobal, function() {
2709
+ var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) {
2710
+ var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100;
2711
+ return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]";
2712
+ } }, m = function(t2, e2, n2) {
2713
+ var r2 = String(t2);
2714
+ return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
2715
+ }, v = { s: m, z: function(t2) {
2716
+ var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
2717
+ return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
2718
+ }, m: function t2(e2, n2) {
2719
+ if (e2.date() < n2.date())
2720
+ return -t2(n2, e2);
2721
+ var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, c), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), c);
2722
+ return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
2723
+ }, a: function(t2) {
2724
+ return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
2725
+ }, p: function(t2) {
2726
+ return { M: c, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t2] || String(t2 || "").toLowerCase().replace(/s$/, "");
2727
+ }, u: function(t2) {
2728
+ return void 0 === t2;
2729
+ } }, g = "en", D = {};
2730
+ D[g] = M;
2731
+ var p = "$isDayjsObject", S = function(t2) {
2732
+ return t2 instanceof _ || !(!t2 || !t2[p]);
2733
+ }, w = function t2(e2, n2, r2) {
2734
+ var i2;
2735
+ if (!e2)
2736
+ return g;
2737
+ if ("string" == typeof e2) {
2738
+ var s2 = e2.toLowerCase();
2739
+ D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
2740
+ var u2 = e2.split("-");
2741
+ if (!i2 && u2.length > 1)
2742
+ return t2(u2[0]);
2743
+ } else {
2744
+ var a2 = e2.name;
2745
+ D[a2] = e2, i2 = a2;
2746
+ }
2747
+ return !r2 && i2 && (g = i2), i2 || !r2 && g;
2748
+ }, O = function(t2, e2) {
2749
+ if (S(t2))
2750
+ return t2.clone();
2751
+ var n2 = "object" == typeof e2 ? e2 : {};
2752
+ return n2.date = t2, n2.args = arguments, new _(n2);
2753
+ }, b = v;
2754
+ b.l = w, b.i = S, b.w = function(t2, e2) {
2755
+ return O(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset });
2756
+ };
2757
+ var _ = function() {
2758
+ function M2(t2) {
2759
+ this.$L = w(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true;
2760
+ }
2761
+ var m2 = M2.prototype;
2762
+ return m2.parse = function(t2) {
2763
+ this.$d = function(t3) {
2764
+ var e2 = t3.date, n2 = t3.utc;
2765
+ if (null === e2)
2766
+ return /* @__PURE__ */ new Date(NaN);
2767
+ if (b.u(e2))
2768
+ return /* @__PURE__ */ new Date();
2769
+ if (e2 instanceof Date)
2770
+ return new Date(e2);
2771
+ if ("string" == typeof e2 && !/Z$/i.test(e2)) {
2772
+ var r2 = e2.match($);
2773
+ if (r2) {
2774
+ var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3);
2775
+ return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2);
2776
+ }
2777
+ }
2778
+ return new Date(e2);
2779
+ }(t2), this.init();
2780
+ }, m2.init = function() {
2781
+ var t2 = this.$d;
2782
+ this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds();
2783
+ }, m2.$utils = function() {
2784
+ return b;
2785
+ }, m2.isValid = function() {
2786
+ return !(this.$d.toString() === l);
2787
+ }, m2.isSame = function(t2, e2) {
2788
+ var n2 = O(t2);
2789
+ return this.startOf(e2) <= n2 && n2 <= this.endOf(e2);
2790
+ }, m2.isAfter = function(t2, e2) {
2791
+ return O(t2) < this.startOf(e2);
2792
+ }, m2.isBefore = function(t2, e2) {
2793
+ return this.endOf(e2) < O(t2);
2794
+ }, m2.$g = function(t2, e2, n2) {
2795
+ return b.u(t2) ? this[e2] : this.set(n2, t2);
2796
+ }, m2.unix = function() {
2797
+ return Math.floor(this.valueOf() / 1e3);
2798
+ }, m2.valueOf = function() {
2799
+ return this.$d.getTime();
2800
+ }, m2.startOf = function(t2, e2) {
2801
+ var n2 = this, r2 = !!b.u(e2) || e2, f2 = b.p(t2), l2 = function(t3, e3) {
2802
+ var i2 = b.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2);
2803
+ return r2 ? i2 : i2.endOf(a);
2804
+ }, $2 = function(t3, e3) {
2805
+ return b.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2);
2806
+ }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : "");
2807
+ switch (f2) {
2808
+ case h:
2809
+ return r2 ? l2(1, 0) : l2(31, 11);
2810
+ case c:
2811
+ return r2 ? l2(1, M3) : l2(0, M3 + 1);
2812
+ case o:
2813
+ var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
2814
+ return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3);
2815
+ case a:
2816
+ case d:
2817
+ return $2(v2 + "Hours", 0);
2818
+ case u:
2819
+ return $2(v2 + "Minutes", 1);
2820
+ case s:
2821
+ return $2(v2 + "Seconds", 2);
2822
+ case i:
2823
+ return $2(v2 + "Milliseconds", 3);
2824
+ default:
2825
+ return this.clone();
2826
+ }
2827
+ }, m2.endOf = function(t2) {
2828
+ return this.startOf(t2, false);
2829
+ }, m2.$set = function(t2, e2) {
2830
+ var n2, o2 = b.p(t2), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = f2 + "Date", n2[d] = f2 + "Date", n2[c] = f2 + "Month", n2[h] = f2 + "FullYear", n2[u] = f2 + "Hours", n2[s] = f2 + "Minutes", n2[i] = f2 + "Seconds", n2[r] = f2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2;
2831
+ if (o2 === c || o2 === h) {
2832
+ var y2 = this.clone().set(d, 1);
2833
+ y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
2834
+ } else
2835
+ l2 && this.$d[l2]($2);
2836
+ return this.init(), this;
2837
+ }, m2.set = function(t2, e2) {
2838
+ return this.clone().$set(t2, e2);
2839
+ }, m2.get = function(t2) {
2840
+ return this[b.p(t2)]();
2841
+ }, m2.add = function(r2, f2) {
2842
+ var d2, l2 = this;
2843
+ r2 = Number(r2);
2844
+ var $2 = b.p(f2), y2 = function(t2) {
2845
+ var e2 = O(l2);
2846
+ return b.w(e2.date(e2.date() + Math.round(t2 * r2)), l2);
2847
+ };
2848
+ if ($2 === c)
2849
+ return this.set(c, this.$M + r2);
2850
+ if ($2 === h)
2851
+ return this.set(h, this.$y + r2);
2852
+ if ($2 === a)
2853
+ return y2(1);
2854
+ if ($2 === o)
2855
+ return y2(7);
2856
+ var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3;
2857
+ return b.w(m3, this);
2858
+ }, m2.subtract = function(t2, e2) {
2859
+ return this.add(-1 * t2, e2);
2860
+ }, m2.format = function(t2) {
2861
+ var e2 = this, n2 = this.$locale();
2862
+ if (!this.isValid())
2863
+ return n2.invalidDate || l;
2864
+ var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, c2 = n2.months, f2 = n2.meridiem, h2 = function(t3, n3, i3, s3) {
2865
+ return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3);
2866
+ }, d2 = function(t3) {
2867
+ return b.s(s2 % 12 || 12, t3, "0");
2868
+ }, $2 = f2 || function(t3, e3, n3) {
2869
+ var r3 = t3 < 12 ? "AM" : "PM";
2870
+ return n3 ? r3.toLowerCase() : r3;
2871
+ };
2872
+ return r2.replace(y, function(t3, r3) {
2873
+ return r3 || function(t4) {
2874
+ switch (t4) {
2875
+ case "YY":
2876
+ return String(e2.$y).slice(-2);
2877
+ case "YYYY":
2878
+ return b.s(e2.$y, 4, "0");
2879
+ case "M":
2880
+ return a2 + 1;
2881
+ case "MM":
2882
+ return b.s(a2 + 1, 2, "0");
2883
+ case "MMM":
2884
+ return h2(n2.monthsShort, a2, c2, 3);
2885
+ case "MMMM":
2886
+ return h2(c2, a2);
2887
+ case "D":
2888
+ return e2.$D;
2889
+ case "DD":
2890
+ return b.s(e2.$D, 2, "0");
2891
+ case "d":
2892
+ return String(e2.$W);
2893
+ case "dd":
2894
+ return h2(n2.weekdaysMin, e2.$W, o2, 2);
2895
+ case "ddd":
2896
+ return h2(n2.weekdaysShort, e2.$W, o2, 3);
2897
+ case "dddd":
2898
+ return o2[e2.$W];
2899
+ case "H":
2900
+ return String(s2);
2901
+ case "HH":
2902
+ return b.s(s2, 2, "0");
2903
+ case "h":
2904
+ return d2(1);
2905
+ case "hh":
2906
+ return d2(2);
2907
+ case "a":
2908
+ return $2(s2, u2, true);
2909
+ case "A":
2910
+ return $2(s2, u2, false);
2911
+ case "m":
2912
+ return String(u2);
2913
+ case "mm":
2914
+ return b.s(u2, 2, "0");
2915
+ case "s":
2916
+ return String(e2.$s);
2917
+ case "ss":
2918
+ return b.s(e2.$s, 2, "0");
2919
+ case "SSS":
2920
+ return b.s(e2.$ms, 3, "0");
2921
+ case "Z":
2922
+ return i2;
2923
+ }
2924
+ return null;
2925
+ }(t3) || i2.replace(":", "");
2926
+ });
2927
+ }, m2.utcOffset = function() {
2928
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
2929
+ }, m2.diff = function(r2, d2, l2) {
2930
+ var $2, y2 = this, M3 = b.p(d2), m3 = O(r2), v2 = (m3.utcOffset() - this.utcOffset()) * e, g2 = this - m3, D2 = function() {
2931
+ return b.m(y2, m3);
2932
+ };
2933
+ switch (M3) {
2934
+ case h:
2935
+ $2 = D2() / 12;
2936
+ break;
2937
+ case c:
2938
+ $2 = D2();
2939
+ break;
2940
+ case f:
2941
+ $2 = D2() / 3;
2942
+ break;
2943
+ case o:
2944
+ $2 = (g2 - v2) / 6048e5;
2945
+ break;
2946
+ case a:
2947
+ $2 = (g2 - v2) / 864e5;
2948
+ break;
2949
+ case u:
2950
+ $2 = g2 / n;
2951
+ break;
2952
+ case s:
2953
+ $2 = g2 / e;
2954
+ break;
2955
+ case i:
2956
+ $2 = g2 / t;
2957
+ break;
2958
+ default:
2959
+ $2 = g2;
2960
+ }
2961
+ return l2 ? $2 : b.a($2);
2962
+ }, m2.daysInMonth = function() {
2963
+ return this.endOf(c).$D;
2964
+ }, m2.$locale = function() {
2965
+ return D[this.$L];
2966
+ }, m2.locale = function(t2, e2) {
2967
+ if (!t2)
2968
+ return this.$L;
2969
+ var n2 = this.clone(), r2 = w(t2, e2, true);
2970
+ return r2 && (n2.$L = r2), n2;
2971
+ }, m2.clone = function() {
2972
+ return b.w(this.$d, this);
2973
+ }, m2.toDate = function() {
2974
+ return new Date(this.valueOf());
2975
+ }, m2.toJSON = function() {
2976
+ return this.isValid() ? this.toISOString() : null;
2977
+ }, m2.toISOString = function() {
2978
+ return this.$d.toISOString();
2979
+ }, m2.toString = function() {
2980
+ return this.$d.toUTCString();
2981
+ }, M2;
2982
+ }(), k = _.prototype;
2983
+ return O.prototype = k, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", c], ["$y", h], ["$D", d]].forEach(function(t2) {
2984
+ k[t2[1]] = function(e2) {
2985
+ return this.$g(e2, t2[0], t2[1]);
2986
+ };
2987
+ }), O.extend = function(t2, e2) {
2988
+ return t2.$i || (t2(e2, _, O), t2.$i = true), O;
2989
+ }, O.locale = w, O.isDayjs = S, O.unix = function(t2) {
2990
+ return O(1e3 * t2);
2991
+ }, O.en = D[g], O.Ls = D, O.p = {}, O;
2992
+ });
2993
+ })(dayjs_min);
2994
+ var dayjs_minExports = dayjs_min.exports;
2995
+ const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
2996
+ const libJsSameTimeCheck = (timestamp, unit) => {
2997
+ const inputTime = dayjs(timestamp).startOf(unit);
2998
+ const currentTime = dayjs().startOf(unit);
2999
+ if (inputTime.isSame(currentTime)) {
3000
+ return 0;
3001
+ } else if (inputTime.isBefore(currentTime)) {
3002
+ return 1;
3003
+ } else {
3004
+ return -1;
3005
+ }
3006
+ };
3007
+ const libJsTimeAgo = (timestamp) => {
3008
+ const timeUnits = [
3009
+ { unit: "年", milliseconds: 365 * 24 * 60 * 60 * 1e3 },
3010
+ { unit: "月", milliseconds: 30 * 24 * 60 * 60 * 1e3 },
3011
+ { unit: "周", milliseconds: 7 * 24 * 60 * 60 * 1e3 },
3012
+ { unit: "天", milliseconds: 24 * 60 * 60 * 1e3 },
3013
+ { unit: "小时", milliseconds: 60 * 60 * 1e3 },
3014
+ { unit: "分钟", milliseconds: 60 * 1e3 }
3015
+ ];
3016
+ const currentTime = Date.now();
3017
+ const timeDifference = currentTime - timestamp;
3018
+ for (const { unit, milliseconds } of timeUnits) {
3019
+ if (timeDifference >= milliseconds) {
3020
+ const count = Math.floor(timeDifference / milliseconds);
3021
+ return `${count} ${unit}前`;
3022
+ }
3023
+ }
3024
+ return "刚刚";
3025
+ };
3026
+ const libJsTimeGreeting = (greet = {}) => {
3027
+ const {
3028
+ midnight = "午夜好",
3029
+ morning = "早上好",
3030
+ forenoon = "上午好",
3031
+ noon = "中午好",
3032
+ afternoon = "下午好",
3033
+ evening = "晚上好"
3034
+ } = greet;
3035
+ const now = (/* @__PURE__ */ new Date()).getHours();
3036
+ return now < 4 ? midnight : now < 10 ? morning : now < 12 ? forenoon : now < 14 ? noon : now < 18 ? afternoon : evening;
3037
+ };
3038
+ class LibJsNumberStepper {
3039
+ /**
3040
+ * @param numsLength 数字长度
3041
+ * @param onChange 数字变动时触发
3042
+ */
3043
+ constructor(numsLength, onChange) {
3044
+ this._currentIndex = 0;
3045
+ this._numsLength = 0;
3046
+ this._isDown = false;
3047
+ this._onChange = onChange;
3048
+ this._numsLength = numsLength;
3049
+ window.addEventListener("pointerup", () => {
3050
+ this._isDown && this._up();
3051
+ });
3052
+ }
3053
+ /** @description 按下
3054
+ * @param type 操作类型 add:加 sub:减
3055
+ */
3056
+ down(type) {
3057
+ this._isDown = true;
3058
+ this._handleChange(type);
3059
+ this._timerId = setTimeout(() => {
3060
+ if (this._isDown) {
3061
+ this._intervalId = setInterval(() => {
3062
+ this._handleChange(type);
3063
+ }, 100);
3064
+ }
3065
+ }, 100);
3066
+ }
3067
+ /** @description 更新索引 */
3068
+ updateIndex(index) {
3069
+ this._currentIndex = index;
3070
+ }
3071
+ /** @description 抬起 */
3072
+ _up() {
3073
+ this._isDown = false;
3074
+ clearTimeout(this._timerId);
3075
+ clearInterval(this._intervalId);
3076
+ }
3077
+ /** @description 处理数字变化
3078
+ * @param type 操作类型 add:加 sub:减
3079
+ */
3080
+ _handleChange(type) {
3081
+ if (type === "add") {
3082
+ if (this._currentIndex < this._numsLength - 1) {
3083
+ this._currentIndex++;
3084
+ this._onChange(this._currentIndex);
3085
+ }
3086
+ } else if (type === "sub") {
3087
+ if (this._currentIndex > 0) {
3088
+ this._currentIndex--;
3089
+ this._onChange(this._currentIndex);
3090
+ }
3091
+ }
3092
+ }
3093
+ }
3094
+ const libJsFormatterByte = (bytes) => {
3095
+ if (bytes <= 0)
3096
+ return [0, "B", "0 B"];
3097
+ const k = 1024;
3098
+ const sizes = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
3099
+ const i = Math.min(
3100
+ Math.floor(Math.log(bytes) / Math.log(k)),
3101
+ sizes.length - 1
3102
+ );
3103
+ const size = (bytes / k ** i).toFixed(2);
3104
+ return [size, sizes[i], `${size} ${sizes[i]}`];
3105
+ };
3106
+ const libJsMaskPhoneNumber = (mobile) => {
3107
+ const m = mobile.toString();
3108
+ return m.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2");
3109
+ };
3110
+ const libJsNumComma = (num, reserve = 2) => {
3111
+ const str = num.toFixed(reserve).toString();
3112
+ const reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
3113
+ return str.replace(reg, "$1,");
3114
+ };
3115
+ const libJsNumberUnit = (num, units, retain = 0) => {
3116
+ const decimalValue = new Decimal(num);
3117
+ const sortedUnits = Object.entries(units).sort(([, a], [, b]) => b - a);
3118
+ for (const [unit, threshold] of sortedUnits) {
3119
+ const decimalThreshold = new Decimal(threshold);
3120
+ if (decimalValue.greaterThanOrEqualTo(decimalThreshold)) {
3121
+ const formattedValue = decimalValue.dividedBy(decimalThreshold);
3122
+ const v2 = libJsNumComma(Number(formattedValue), retain);
3123
+ return v2 + unit;
3124
+ }
3125
+ }
3126
+ const v = libJsNumComma(Number(decimalValue), retain);
3127
+ return v;
3128
+ };
3129
+ var duration$1 = { exports: {} };
3130
+ (function(module, exports) {
3131
+ !function(t, s) {
3132
+ module.exports = s();
3133
+ }(commonjsGlobal, function() {
3134
+ var t, s, n = 1e3, i = 6e4, e = 36e5, r = 864e5, o = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, u = 31536e6, d = 2628e6, a = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/, h = { years: u, months: d, days: r, hours: e, minutes: i, seconds: n, milliseconds: 1, weeks: 6048e5 }, c = function(t2) {
3135
+ return t2 instanceof g;
3136
+ }, f = function(t2, s2, n2) {
3137
+ return new g(t2, n2, s2.$l);
3138
+ }, m = function(t2) {
3139
+ return s.p(t2) + "s";
3140
+ }, l = function(t2) {
3141
+ return t2 < 0;
3142
+ }, $ = function(t2) {
3143
+ return l(t2) ? Math.ceil(t2) : Math.floor(t2);
3144
+ }, y = function(t2) {
3145
+ return Math.abs(t2);
3146
+ }, v = function(t2, s2) {
3147
+ return t2 ? l(t2) ? { negative: true, format: "" + y(t2) + s2 } : { negative: false, format: "" + t2 + s2 } : { negative: false, format: "" };
3148
+ }, g = function() {
3149
+ function l2(t2, s2, n2) {
3150
+ var i2 = this;
3151
+ if (this.$d = {}, this.$l = n2, void 0 === t2 && (this.$ms = 0, this.parseFromMilliseconds()), s2)
3152
+ return f(t2 * h[m(s2)], this);
3153
+ if ("number" == typeof t2)
3154
+ return this.$ms = t2, this.parseFromMilliseconds(), this;
3155
+ if ("object" == typeof t2)
3156
+ return Object.keys(t2).forEach(function(s3) {
3157
+ i2.$d[m(s3)] = t2[s3];
3158
+ }), this.calMilliseconds(), this;
3159
+ if ("string" == typeof t2) {
3160
+ var e2 = t2.match(a);
3161
+ if (e2) {
3162
+ var r2 = e2.slice(2).map(function(t3) {
3163
+ return null != t3 ? Number(t3) : 0;
3164
+ });
3165
+ return this.$d.years = r2[0], this.$d.months = r2[1], this.$d.weeks = r2[2], this.$d.days = r2[3], this.$d.hours = r2[4], this.$d.minutes = r2[5], this.$d.seconds = r2[6], this.calMilliseconds(), this;
3166
+ }
3167
+ }
3168
+ return this;
3169
+ }
3170
+ var y2 = l2.prototype;
3171
+ return y2.calMilliseconds = function() {
3172
+ var t2 = this;
3173
+ this.$ms = Object.keys(this.$d).reduce(function(s2, n2) {
3174
+ return s2 + (t2.$d[n2] || 0) * h[n2];
3175
+ }, 0);
3176
+ }, y2.parseFromMilliseconds = function() {
3177
+ var t2 = this.$ms;
3178
+ this.$d.years = $(t2 / u), t2 %= u, this.$d.months = $(t2 / d), t2 %= d, this.$d.days = $(t2 / r), t2 %= r, this.$d.hours = $(t2 / e), t2 %= e, this.$d.minutes = $(t2 / i), t2 %= i, this.$d.seconds = $(t2 / n), t2 %= n, this.$d.milliseconds = t2;
3179
+ }, y2.toISOString = function() {
3180
+ var t2 = v(this.$d.years, "Y"), s2 = v(this.$d.months, "M"), n2 = +this.$d.days || 0;
3181
+ this.$d.weeks && (n2 += 7 * this.$d.weeks);
3182
+ var i2 = v(n2, "D"), e2 = v(this.$d.hours, "H"), r2 = v(this.$d.minutes, "M"), o2 = this.$d.seconds || 0;
3183
+ this.$d.milliseconds && (o2 += this.$d.milliseconds / 1e3, o2 = Math.round(1e3 * o2) / 1e3);
3184
+ var u2 = v(o2, "S"), d2 = t2.negative || s2.negative || i2.negative || e2.negative || r2.negative || u2.negative, a2 = e2.format || r2.format || u2.format ? "T" : "", h2 = (d2 ? "-" : "") + "P" + t2.format + s2.format + i2.format + a2 + e2.format + r2.format + u2.format;
3185
+ return "P" === h2 || "-P" === h2 ? "P0D" : h2;
3186
+ }, y2.toJSON = function() {
3187
+ return this.toISOString();
3188
+ }, y2.format = function(t2) {
3189
+ var n2 = t2 || "YYYY-MM-DDTHH:mm:ss", i2 = { Y: this.$d.years, YY: s.s(this.$d.years, 2, "0"), YYYY: s.s(this.$d.years, 4, "0"), M: this.$d.months, MM: s.s(this.$d.months, 2, "0"), D: this.$d.days, DD: s.s(this.$d.days, 2, "0"), H: this.$d.hours, HH: s.s(this.$d.hours, 2, "0"), m: this.$d.minutes, mm: s.s(this.$d.minutes, 2, "0"), s: this.$d.seconds, ss: s.s(this.$d.seconds, 2, "0"), SSS: s.s(this.$d.milliseconds, 3, "0") };
3190
+ return n2.replace(o, function(t3, s2) {
3191
+ return s2 || String(i2[t3]);
3192
+ });
3193
+ }, y2.as = function(t2) {
3194
+ return this.$ms / h[m(t2)];
3195
+ }, y2.get = function(t2) {
3196
+ var s2 = this.$ms, n2 = m(t2);
3197
+ return "milliseconds" === n2 ? s2 %= 1e3 : s2 = "weeks" === n2 ? $(s2 / h[n2]) : this.$d[n2], s2 || 0;
3198
+ }, y2.add = function(t2, s2, n2) {
3199
+ var i2;
3200
+ return i2 = s2 ? t2 * h[m(s2)] : c(t2) ? t2.$ms : f(t2, this).$ms, f(this.$ms + i2 * (n2 ? -1 : 1), this);
3201
+ }, y2.subtract = function(t2, s2) {
3202
+ return this.add(t2, s2, true);
3203
+ }, y2.locale = function(t2) {
3204
+ var s2 = this.clone();
3205
+ return s2.$l = t2, s2;
3206
+ }, y2.clone = function() {
3207
+ return f(this.$ms, this);
3208
+ }, y2.humanize = function(s2) {
3209
+ return t().add(this.$ms, "ms").locale(this.$l).fromNow(!s2);
3210
+ }, y2.valueOf = function() {
3211
+ return this.asMilliseconds();
3212
+ }, y2.milliseconds = function() {
3213
+ return this.get("milliseconds");
3214
+ }, y2.asMilliseconds = function() {
3215
+ return this.as("milliseconds");
3216
+ }, y2.seconds = function() {
3217
+ return this.get("seconds");
3218
+ }, y2.asSeconds = function() {
3219
+ return this.as("seconds");
3220
+ }, y2.minutes = function() {
3221
+ return this.get("minutes");
3222
+ }, y2.asMinutes = function() {
3223
+ return this.as("minutes");
3224
+ }, y2.hours = function() {
3225
+ return this.get("hours");
3226
+ }, y2.asHours = function() {
3227
+ return this.as("hours");
3228
+ }, y2.days = function() {
3229
+ return this.get("days");
3230
+ }, y2.asDays = function() {
3231
+ return this.as("days");
3232
+ }, y2.weeks = function() {
3233
+ return this.get("weeks");
3234
+ }, y2.asWeeks = function() {
3235
+ return this.as("weeks");
3236
+ }, y2.months = function() {
3237
+ return this.get("months");
3238
+ }, y2.asMonths = function() {
3239
+ return this.as("months");
3240
+ }, y2.years = function() {
3241
+ return this.get("years");
3242
+ }, y2.asYears = function() {
3243
+ return this.as("years");
3244
+ }, l2;
3245
+ }(), p = function(t2, s2, n2) {
3246
+ return t2.add(s2.years() * n2, "y").add(s2.months() * n2, "M").add(s2.days() * n2, "d").add(s2.hours() * n2, "h").add(s2.minutes() * n2, "m").add(s2.seconds() * n2, "s").add(s2.milliseconds() * n2, "ms");
3247
+ };
3248
+ return function(n2, i2, e2) {
3249
+ t = e2, s = e2().$utils(), e2.duration = function(t2, s2) {
3250
+ var n3 = e2.locale();
3251
+ return f(t2, { $l: n3 }, s2);
3252
+ }, e2.isDuration = c;
3253
+ var r2 = i2.prototype.add, o2 = i2.prototype.subtract;
3254
+ i2.prototype.add = function(t2, s2) {
3255
+ return c(t2) ? p(this, t2, 1) : r2.bind(this)(t2, s2);
3256
+ }, i2.prototype.subtract = function(t2, s2) {
3257
+ return c(t2) ? p(this, t2, -1) : o2.bind(this)(t2, s2);
3258
+ };
3259
+ };
3260
+ });
3261
+ })(duration$1);
3262
+ var durationExports = duration$1.exports;
3263
+ const duration = /* @__PURE__ */ getDefaultExportFromCjs(durationExports);
3264
+ dayjs.extend(duration);
3265
+ const libJsSecondsFormatterChinese = (seconds) => {
3266
+ const duration2 = dayjs.duration(seconds, "seconds");
3267
+ const years = Math.floor(duration2.asYears());
3268
+ const months = Math.floor(duration2.asMonths() % 12);
3269
+ const days = Math.floor(duration2.asDays() % 30);
3270
+ const hours = duration2.hours();
3271
+ const minutes = duration2.minutes();
3272
+ const remainingSeconds = duration2.seconds();
3273
+ const timeParts = [];
3274
+ if (years > 0) {
3275
+ timeParts.push(`${years}年`);
3276
+ }
3277
+ if (months > 0) {
3278
+ timeParts.push(`${months}月`);
3279
+ }
3280
+ if (days > 0) {
3281
+ timeParts.push(`${days}天`);
3282
+ }
3283
+ if (hours > 0) {
3284
+ timeParts.push(`${hours}小时`);
3285
+ }
3286
+ if (minutes > 0) {
3287
+ timeParts.push(`${minutes}分`);
3288
+ }
3289
+ if (timeParts.length === 0 || remainingSeconds > 0) {
3290
+ timeParts.push(`${remainingSeconds}秒`);
3291
+ }
3292
+ return timeParts.join("");
3293
+ };
3294
+ const libJsCalculateExpression = (expression, point = 2) => {
3295
+ expression = expression.replace(/\s+/g, "");
3296
+ const operators = {
3297
+ "+": 1,
3298
+ "-": 1,
3299
+ "*": 2,
3300
+ "/": 2
3301
+ };
3302
+ const toDecimal = (value) => new Decimal(value);
3303
+ const isOperator = (char) => ["+", "-", "*", "/"].includes(char);
3304
+ const isNumber = (char) => /[0-9.]/.test(char);
3305
+ const evaluate = (expression2) => {
3306
+ const outputQueue = [];
3307
+ const operatorStack = [];
3308
+ let i = 0;
3309
+ while (i < expression2.length) {
3310
+ const char = expression2[i];
3311
+ if (isNumber(char)) {
3312
+ let numStr = "";
3313
+ while (i < expression2.length && isNumber(expression2[i])) {
3314
+ numStr += expression2[i];
3315
+ i++;
3316
+ }
3317
+ outputQueue.push(toDecimal(numStr));
3318
+ } else if (char === "(") {
3319
+ operatorStack.push(char);
3320
+ i++;
3321
+ } else if (char === ")") {
3322
+ while (operatorStack.length > 0 && operatorStack[operatorStack.length - 1] !== "(") {
3323
+ outputQueue.push(operatorStack.pop());
3324
+ }
3325
+ operatorStack.pop();
3326
+ i++;
3327
+ } else if (isOperator(char)) {
3328
+ while (operatorStack.length > 0 && operators[operatorStack[operatorStack.length - 1]] >= operators[char]) {
3329
+ outputQueue.push(operatorStack.pop());
3330
+ }
3331
+ operatorStack.push(char);
3332
+ i++;
3333
+ } else {
3334
+ throw new Error(`无效字符: ${char}`);
3335
+ }
3336
+ }
3337
+ while (operatorStack.length > 0) {
3338
+ outputQueue.push(operatorStack.pop());
3339
+ }
3340
+ const calcStack = [];
3341
+ for (let token of outputQueue) {
3342
+ if (typeof token === "string") {
3343
+ const b = calcStack.pop();
3344
+ const a = calcStack.pop();
3345
+ switch (token) {
3346
+ case "+":
3347
+ calcStack.push(a.add(b));
3348
+ break;
3349
+ case "-":
3350
+ calcStack.push(a.sub(b));
3351
+ break;
3352
+ case "*":
3353
+ calcStack.push(a.mul(b));
3354
+ break;
3355
+ case "/":
3356
+ if (b.eq(0))
3357
+ throw new Error("除数不能为零");
3358
+ calcStack.push(a.div(b));
3359
+ break;
3360
+ }
3361
+ } else {
3362
+ calcStack.push(token);
3363
+ }
3364
+ }
3365
+ return calcStack.pop();
3366
+ };
3367
+ try {
3368
+ const result = evaluate(expression);
3369
+ return Number(result.toFixed(point, Decimal.ROUND_DOWN));
3370
+ } catch (error) {
3371
+ throw new Error("表达式计算失败:" + error.message);
3372
+ }
3373
+ };
3374
+ const LibJsEmitter = () => {
3375
+ const _eventMap = /* @__PURE__ */ new Map();
3376
+ const on = (event, listener) => {
3377
+ if (!_eventMap.has(event)) {
3378
+ _eventMap.set(event, []);
3379
+ }
3380
+ _eventMap.get(event).push(listener);
3381
+ };
3382
+ const emit = (event, ...args) => {
3383
+ var _a;
3384
+ (_a = _eventMap.get(event)) == null ? void 0 : _a.forEach((listener) => listener(...args));
3385
+ };
3386
+ const off = (event, listener) => {
3387
+ if (!listener) {
3388
+ _eventMap.delete(event);
3389
+ } else {
3390
+ const listeners = _eventMap.get(event);
3391
+ if (listeners) {
3392
+ _eventMap.set(
3393
+ event,
3394
+ listeners.filter((l) => l !== listener)
3395
+ );
3396
+ }
3397
+ }
3398
+ };
3399
+ return { on, emit, off };
3400
+ };
3401
+ const LibJsLerp = (start, end, value) => {
3402
+ const t = Math.min(Math.max(value, 0), 1);
3403
+ return start * (1 - t) + end * t;
3404
+ };
3405
+ const LibJsNormalizeInRange = (start, end, value) => {
3406
+ return Math.max(0, Math.min((start - value) / (start - end), 1));
3407
+ };
3408
+ class LibJsClassObservable {
3409
+ /**
3410
+ * @param initialData 监听的数据
3411
+ */
3412
+ constructor(initialData) {
3413
+ this.listeners = /* @__PURE__ */ new Map();
3414
+ this.index = 0;
3415
+ this.data = { ...initialData };
3416
+ }
3417
+ /** @description 获取值、
3418
+ * @param key 要获取的键
3419
+ * @returns 对应的值
3420
+ */
3421
+ getValue(key) {
3422
+ return this.data[key];
3423
+ }
3424
+ /** @description 设置值
3425
+ * @param key 要设置的键
3426
+ * @param value 要设置的值
3427
+ * @param immediately 是否立即通知监听器
3428
+ * @returns 设置后的值
3429
+ */
3430
+ setValue(key, value, immediately = true) {
3431
+ var _a;
3432
+ const oldValue = this.data[key];
3433
+ if (oldValue === value)
3434
+ return value;
3435
+ this.data[key] = value;
3436
+ immediately && ((_a = this.listeners.get(key)) == null ? void 0 : _a.forEach((fn) => fn(value, oldValue)));
3437
+ return value;
3438
+ }
3439
+ /** @description 监听值
3440
+ * @param key 要监听的键
3441
+ * @param callback 回调函数
3442
+ * @param immediately 是否立即触发一次回调函数
3443
+ * @returns 取消监听的函数
3444
+ */
3445
+ onValue(key, callback, immediately = true) {
3446
+ const id = this.index++;
3447
+ if (!this.listeners.has(key)) {
3448
+ this.listeners.set(key, /* @__PURE__ */ new Map());
3449
+ }
3450
+ this.listeners.get(key).set(id, callback);
3451
+ immediately && callback(this.data[key], this.data[key]);
3452
+ return () => {
3453
+ this.listeners.get(key).delete(id);
3454
+ };
3455
+ }
3456
+ /** @description 触发某个键名的所有回调函数,适用于同时监听了多个值的场景,用于切换要显示的值,或者延迟在特定时机通知监听器
3457
+ * @param key 要触发的键名
3458
+ * @returns 触发的键值
3459
+ */
3460
+ updateFake(key) {
3461
+ var _a;
3462
+ const value = this.data[key];
3463
+ (_a = this.listeners.get(key)) == null ? void 0 : _a.forEach((fn) => fn(value, value));
3464
+ return value;
3465
+ }
3466
+ /** @description 数字类型的键值累加或累减
3467
+ * @param key 要累加或累减的键
3468
+ * @param type 要累加还是要累减
3469
+ * @param value 要累加或累减的值
3470
+ * @param immediately 是否立即通知监听器
3471
+ */
3472
+ setNumberValue(key, type, value = 1, immediately = true) {
3473
+ let v;
3474
+ if (type === "add") {
3475
+ v = libJsDecimal(this.data[key], value, "+");
3476
+ this.setValue(key, v, immediately);
3477
+ } else {
3478
+ v = libJsDecimal(this.data[key], value, "-");
3479
+ this.setValue(key, v, immediately);
3480
+ }
3481
+ return v;
3482
+ }
3483
+ /** @description 针对布尔类型的键值取反
3484
+ * @param key 要取反的键
3485
+ * @param immediately 是否立即通知监听器
3486
+ */
3487
+ setBooleanValue(key, immediately = true) {
3488
+ const v = !this.data[key];
3489
+ this.setValue(key, v, immediately);
3490
+ return v;
3491
+ }
3492
+ }
3493
+ const Base = {
3494
+ /**
3495
+ * @description 返回数据类型
3496
+ * @param v 需要判断类型的数据
3497
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsColorConsole-有色打印
3498
+ */
3499
+ libJsGetDataType,
3500
+ /**
3501
+ * @description 延时执行,切换到其他页面会暂停
3502
+ * @param delay 延时毫秒数
3503
+ * @param fn 延时执行函数
3504
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsPromiseTimeout-延时执行
3505
+ */
3506
+ libJsPromiseTimeout
3507
+ };
3508
+ const Browser = {
3509
+ /** @description console颜色打印
3510
+ * @param title 标题
3511
+ * @param color 颜色
3512
+ * @param logs 信息
3513
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsColorConsole-有色打印
3514
+ */
3515
+ libJsColorConsole,
3516
+ /** @description 判断是否为移动设备
3517
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsIsMobile-判断手机
3518
+ */
3519
+ libJsIsMobile,
3520
+ /** @description 判断是否为平板
3521
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsIsPad-判断平板
3522
+ */
3523
+ libJsIsPad,
3524
+ /** @description 获取浏览器地址栏参数
3525
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsPathParams-地址栏参数
3526
+ */
3527
+ libJsPathParams,
3528
+ /** @description 动态设置网站标题及图标
3529
+ * @param title 网站标题
3530
+ * @param url 网站图标地址
3531
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsSetTitleIcon-网站标题图标
3532
+ */
3533
+ libJsSetTitleIcon,
3534
+ /** @description 网站标题交互,当从当前网页切换到其他网页,网站标题自动切换
3535
+ * @param backTitle 从其他网页返回时显示的标题
3536
+ * @param leaveTitle 从当前网页离开时显示的标题
3537
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsTagTitleTip-网站标题交互
3538
+ */
3539
+ libJsTagTitleTip,
3540
+ /** @description 对象转为url参数
3541
+ * @param params 对象参数
3542
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsObjToUrlParams-对象转Url参数
3543
+ */
3544
+ libJsObjToUrlParams
3545
+ };
3546
+ const Data = {
3547
+ /**
3548
+ * @description 将数组拆分成指定数组元素数量的多个数组
3549
+ * @param arr 需要拆分的数组
3550
+ * @param chunkSize 每个数组的元素数量
3551
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsChunkArray-数组拆分
3552
+ */
3553
+ libJsChunkArray,
3554
+ /** @description 递归将JSON字符串深度解析为对象
3555
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsDeepJSONParse-深度解析JSON
3556
+ */
3557
+ libJsDeepJSONParse,
3558
+ /**
3559
+ * @description 分类汇总,将数组对象按照指定键值整理成一个以键值为键名的对象
3560
+ * @param arr 要分组的数组
3561
+ * @param key 分组的键
3562
+ * @returns 分组后的对象
3563
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsGroupArrayByKey-分类汇总
3564
+ */
3565
+ libJsGroupArrayByKey,
3566
+ /**
3567
+ * @description 匹配电子邮件,可用于实时输入时,自动补全常用邮箱后缀
3568
+ * @param str 要匹配的字符串
3569
+ * @param emailList 电子邮件后缀列表
3570
+ * @returns 匹配结果数组
3571
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsMatchEmail-匹配E-Mail
3572
+ */
3573
+ libJsMatchEmail,
3574
+ /** @description 数组乱序
3575
+ * @param arr 需要乱序的数组
3576
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsShuffleArray-数组乱序
3577
+ */
3578
+ libJsShuffleArray,
3579
+ /** @description 数组元素整体步数移动
3580
+ * @param arr 移动的数组
3581
+ * @param step 负数为向后移动,正数为向前移动
3582
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsStepArray-数组偏移
3583
+ */
3584
+ libJsStepArray,
3585
+ /** @description 翻转指定索引后面的数组
3586
+ * @param arr 数组
3587
+ * @param index 开始索引
3588
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibReverseArrayFromIndex-数组定位翻转
3589
+ */
3590
+ libReverseArrayFromIndex
3591
+ };
3592
+ const File$1 = {
3593
+ /** @description 下载图片链接
3594
+ * @param link 图片链接
3595
+ * @param name 图片名称
3596
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsDownloadImageLink-图片下载
3597
+ */
3598
+ libJsDownloadImageLink,
3599
+ /** @description 图片压缩
3600
+ * @param obj 压缩参数
3601
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsImageOptimizer-图片压缩
3602
+ */
3603
+ libJsImageOptimizer,
3604
+ /**
3605
+ * @description 保存文件到本地
3606
+ * @param data 要保存的数据
3607
+ * @param name 文件名
3608
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsSaveJson-保存文件
3609
+ */
3610
+ libJsSaveJson
3611
+ };
3612
+ const Formatter = {
3613
+ /**
3614
+ * @description 格式化字节大小
3615
+ * @param bytes 字节数
3616
+ * @returns ['大小', '单位', '大小及单位']
3617
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsFormatterByte-字节格式化
3618
+ */
3619
+ libJsFormatterByte,
3620
+ /**
3621
+ * @description 隐藏手机号码中间的四位数字
3622
+ * @param mobile 需要处理的手机号码
3623
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsMaskPhoneNumber-隐藏手机号码
3624
+ */
3625
+ libJsMaskPhoneNumber,
3626
+ /**
3627
+ * @description 数字每三位添加逗号
3628
+ * @param num 需要格式化的数字
3629
+ * @param reserve 保留小数位数
3630
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsNumComma-数字逗号
3631
+ */
3632
+ libJsNumComma,
3633
+ /** @description 将大于1000的数字使用k为单位
3634
+ * @param num 数字
3635
+ * @param units 单位组,key为单位,value为格式化阈值
3636
+ * @returns [数字, 单位]
3637
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsNumberUnit-数字单位
3638
+ */
3639
+ libJsNumberUnit,
3640
+ /**
3641
+ * @description 将秒数格式化为中文时间描述,支持扩展到年和月
3642
+ * @param seconds 秒数
3643
+ * @returns 格式化后的中文时间
3644
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsSecondsFormatterChinese-中文时间
3645
+ */
3646
+ libJsSecondsFormatterChinese
3647
+ };
3648
+ const Math$1 = {
3649
+ /** @description 计算表达式字符串
3650
+ * @param expression 表达式字符串
3651
+ * @param point 小数点精度
3652
+ * @returns 计算结果
3653
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsCalculateExpression-表达式字符串
3654
+ */
3655
+ libJsCalculateExpression,
3656
+ /**
3657
+ * @description 角度和弧度互相转换
3658
+ * @param value 角度值或弧度值
3659
+ * @param type 角度类型或弧度类型
3660
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsConvertAngle-角弧度互转
3661
+ */
3662
+ libJsConvertAngle,
3663
+ /** @description 计算两点角度
3664
+ * @param coord1 起点坐标
3665
+ * @param coord2 终点坐标
3666
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsCoordsAngle-两点角度
3667
+ */
3668
+ libJsCoordsAngle,
3669
+ /** @description 计算两点距离
3670
+ * @param coord1 起点坐标
3671
+ * @param coord2 终点坐标
3672
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsCoordsDistance-两点距离
3673
+ */
3674
+ libJsCoordsDistance,
3675
+ /** @description 计算两个数的运算结果,并保留指定位数的小数
3676
+ * @param num1 第一个数
3677
+ * @param num2 第二个数
3678
+ * @param operator 运算符,支持加减乘除
3679
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsDecimal-高精度计算
3680
+ */
3681
+ libJsDecimal
3682
+ };
3683
+ const Misc = {
3684
+ /**
3685
+ * @description 表单验证函数
3686
+ * @param form 表单数据对象
3687
+ * @param rules 验证规则数组
3688
+ * @returns 验证结果数组,包含未通过验证的项
3689
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsRegFormValidate-表单验证
3690
+ */
3691
+ libJsRegFormValidate,
3692
+ /** @description 请求失败重连
3693
+ * @param promiseFn 请求函数
3694
+ * @param maxRetries 最大重试次数
3695
+ * @param retryDelay 重试间隔时间
3696
+ * @param params 请求参数
3697
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsRetryRequest-请求重连
3698
+ */
3699
+ libJsRetryRequest,
3700
+ /** @description 数字步进器
3701
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsNumberStepper-数字步进器
3702
+ */
3703
+ LibJsNumberStepper,
3704
+ /** @description 线性插值
3705
+ * @param start 当 value = 0 时,返回 start
3706
+ * @param end 当 value = 1 时,返回 end
3707
+ * @param value 插值比例,取值范围 0~1
3708
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsLerp-线性插值
3709
+ */
3710
+ LibJsLerp,
3711
+ /** @description 值介于起点与终点之间时返回一个介于0与1之间的数
3712
+ * @param start 起点
3713
+ * @param end 终点
3714
+ * @param value 动态值
3715
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsNormalizeInRange-范围归一化
3716
+ */
3717
+ LibJsNormalizeInRange,
3718
+ /** @description 事件发射器
3719
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsEmitter-事件发射器
3720
+ */
3721
+ LibJsEmitter,
3722
+ /** @description 类属性监听器
3723
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsClassObservable-类属性监听器
3724
+ */
3725
+ LibJsClassObservable
3726
+ };
3727
+ const Random = {
3728
+ /** @description 百分比概率结果
3729
+ * @param probability 触发概率,百分比,0-100
3730
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsProbabilityResult-概率触发
3731
+ */
3732
+ libJsProbabilityResult,
3733
+ /** @description 随机数
3734
+ * @param min 最小值
3735
+ * @param max 最大值
3736
+ * @param num 保留小数位数
3737
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsRandom-随机数
3738
+ */
3739
+ libJsRandom,
3740
+ /** @description 随机 RGBA 颜色
3741
+ * @param alpha 透明度
3742
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsRandomColor-随机色
3743
+ */
3744
+ libJsRandomColor,
3745
+ /** @description 随机生成n个指定范围的随机数数组
3746
+ * @param min 最小值
3747
+ * @param max 最大值
3748
+ * @param count 数组长度
3749
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsUniqueRandomNumbers-随机数数组
3750
+ */
3751
+ libJsUniqueRandomNumbers
3752
+ };
3753
+ const Time = {
3754
+ /**
3755
+ * @description 传入时间戳与当前时间判断是否为同一天或同一周
3756
+ * @param timestamp 毫秒时间戳
3757
+ * @param unit 判断单位
3758
+ * @returns 0-同一单位时间 1-新单位时间 -1时间戳大于当前时间
3759
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsSameTimeCheck-时间比对
3760
+ */
3761
+ libJsSameTimeCheck,
3762
+ /** @description 时间差计算
3763
+ * @param timestamp 毫秒时间戳
3764
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsTimeAgo-中文时间差
3765
+ */
3766
+ libJsTimeAgo,
3767
+ /**
3768
+ * @description 根据当前时间返回问候语
3769
+ * @param greet 自定义问候语对象
3770
+ * @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsTimeGreeting-时间问候
3771
+ */
3772
+ libJsTimeGreeting
3773
+ };
3774
+ const LibJs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3775
+ __proto__: null,
3776
+ Base,
3777
+ Browser,
3778
+ Data,
3779
+ File: File$1,
3780
+ Formatter,
3781
+ Math: Math$1,
3782
+ Misc,
3783
+ Random,
3784
+ Time
3785
+ }, Symbol.toStringTag, { value: "Module" }));
3786
+ window.LibJs = LibJs;
3787
+ });