-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathall.min.js
1 lines (1 loc) · 438 KB
/
all.min.js
1
var nerdamer=function(t){"use strict";var d=new e1,S=t.bigInt,k=t.bigDec,t=(k.set({precision:250}),{}),c0=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083],E={},F={callPeekers:!1,init_primes:1e3,exclude:[],suppress_errors:!1,PARSE2NUMBER:!1,SAFE:!1,IMAGINARY:"i",FUNCTION_MODULES:[Math],ALLOW_CHARS:["π"],USE_MULTICHARACTER_VARS:!0,POWER_OPERATOR:"^",FUNCTION_REGEX:/^\s*([a-z_][a-z0-9_]*)\(([a-z0-9_,\s]*)\)\s*:?=\s*(.+)\s*$/i,VALIDATION_REGEX:/^[a-z_αAβBγΓδΔϵEζZηHθΘιIκKλΛμMνNξΞoOπΠρPσΣτTυϒϕΦχXψΨωΩ∞][0-9a-z_αAβBγΓδΔϵEζZηHθΘιIκKλΛμMνNξΞoOπΠρPσΣτTυϒϕΦχXψΨωΩ]*$/i,IMPLIED_MULTIPLICATION_REGEX:/([\+\-\/\*]*[0-9]+)([a-z_αAβBγΓδΔϵEζZηHθΘιIκKλΛμMνNξΞoOπΠρPσΣτTυϒϕΦχXψΨωΩ]+[\+\-\/\*]*)/gi,ALIASES:{"π":"pi","∞":"Infinity"},POSITIVE_MULTIPLIERS:!1,CACHE:{},SILENCE_WARNINGS:!1,PRECISION:21,EXPRESSION_DECP:19,DEFAULT_DECP:16,VECTOR:"vector",PARENTHESIS:"parens",SQRT:"sqrt",ABS:"abs",FACTORIAL:"factorial",DOUBLEFACTORIAL:"dfactorial",LONG_PI:"3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196",LONG_E:"2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642742746639193200305992181741359662904357290033429526059563073813232862794349076323382988075319525101901",PI:Math.PI,E:Math.E,LOG:"log",LOG10:"log10",LOG10_LATEX:"log_{10}",MAX_EXP:2e5,SCIENTIFIC_MAX_DECIMAL_PLACES:14,SCIENTIFIC_IGNORE_ZERO_EXPONENTS:!0,TIMEOUT:500};F.CACHE.roots={};for(var n=2;n<=40;n++)for(var i=2;i<=40;i++){var s=S(n).pow(i);F.CACHE.roots[s+"-"+i]=n}var a,u=0;function l(){console.global&&console.global.tsDebugChannels&&console.global.tsDebugChannels.notimeout?c():(u=Date.now(),a=F.TIMEOUT)}function c(){u=0}function p0(){if(0!==u&&Date.now()>u+a)throw new Error("timeout")}function D(){this.elements=[]}D.prototype.append=function(e){this.elements.push(e)},D.prototype.getItems=function(){return this.elements},D.prototype.toString=function(){return d.pretty_print(this.elements)},D.prototype.dimensions=function(){return this.elements.length},D.prototype.text=function(t){return"("+this.elements.map(e=>e.text(t)).join(",")+")"},D.create=function(e){var t=new D;return e&&t.append(e),t},D.prototype.clone=function(e){var t=D.create();return t.elements=this.elements.map(e=>e.clone()),t},D.prototype.expand=function(t){return this.elements=this.elements.map(e=>d.expand(e,t)),this},D.prototype.evaluate=function(){return this.elements=this.elements.map(e=>d.evaluate(e,options)),this},D.prototype.map=function(n){var e=this.clone();return e.elements=e.elements.map((e,t)=>n(e,t+1)),e},D.prototype.add=function(e){return b("SAFE",function(){var n=e.elements||e;return this.elements.length!==n.length?null:this.map(function(e,t){return d.add(e,n[t-1])})},void 0,this)},D.prototype.subtract=function(e){return b("SAFE",function(){var n=e.elements||e;return this.elements.length!==n.length?null:this.map(function(e,t){return d.subtract(e,n[t-1])})},void 0,this)};function e(t){function e(e){this.name=t,this.message=void 0!==e?e:"",(e=new Error(this.message)).name=this.name,this.stack=e.stack}return e.prototype=Object.create(Error.prototype),e}function p(e){return-1!==L.indexOf(e)}function f(e){return W(e)?f(e.multiplier.toDecimal()):e%1!=0}function h(e){return e instanceof o}function m(e,n){function t(e,t){n[e]||(n[e]=new o0(0)),n[e]=d.add(n[e],t.clone())}return e=d.expand(e),n=n||{},e.each(function(e){if(e.isConstant("all"))t("constants",e);else if(e.group===G)t(e.value,e);else if(e.group!==j||e.fname!==h0&&""!==e.fname){if(e.group===H||e.group===j)return null;t(O(e).join(" "),e)}else m(e.args[0])}),n}function x(e){return(e=W(e)?e.multiplier:e).lessThan(0)}function g(e){return Math.min.apply(void 0,e)}function v(e,t){if(K(e))for(var n=e.length,r=0;r<n;r++)t.call(e,r);else for(var i in e)e.hasOwnProperty(i)&&t.call(e,i)}function w(e){for(var t=e.length,n=[],r=0;r<t;r++){var i=e[r];-1===n.indexOf(i)&&n.push(i)}return n}function q(e){function t(e){-1===L.indexOf(e)&&L.push(e)}"string"==typeof e?t(e):v(e,function(e){t(e)})}function A(e){if(K(e)){for(var t=new u0([]),n=0;n<e.length;n++)t.elements.push(A(e[n]));return t}return W(e)?e:d.parse(e)}function C(e){for(var t=c0[c0.length-1]||2;t<e;t++)b0(t)&&c0.push(t)}var B=t.N=1,V=t.P=2,G=t.S=3,H=t.EX=4,j=t.FN=5,X=t.PL=6,Z=t.CB=7,z=t.CP=8,I=F.CONST_HASH="#",f0=F.PARENTHESIS,$=F.SQRT,h0=F.ABS,m0=F.FACTORIAL,g0=F.DOUBLEFACTORIAL,U=[],d0={},L=[],_=[],R=[],Q=function(e,t){if(!F.suppress_errors)throw new(t||Error)(e)},v0=function(e){for(var t=e[0],n=1,r=e.length;n<r;n++)if(!e[n].equals(t))return!1;return!0},w0=function(e){_.push(e),F.SHOW_WARNINGS&&console&&console.warn&&console.warn(e)},T=function(e,t){if((t=t||"variable",-1===F.ALLOW_CHARS.indexOf(e))&&!F.VALIDATION_REGEX.test(e))throw new $0(e+" is not a valid "+t+" name")},y0=function(e){var t,n,r,i=Math.sign(e);return e=Math.abs(e),/\d+\.?\d*e[\+\-]*\d+/i.test(e)&&(r=(t=(n=String(e).toLowerCase().split("e")).pop())/(t=Math.abs(t)),n=n[0].split("."),e=-1==r?(t-=n[0].length)<0?n[0].slice(0,t)+"."+n[0].slice(t)+(2===n.length?n[1]:""):"0."+new Array(t+1).join("0")+n.join(""):((r=n[1])&&(t-=r.length),t<0?n[0]+r.slice(0,t)+"."+r.slice(t):n.join("")+new Array(t+1).join("0"))),i<0?"-"+e:e},b0=function(e){for(var t=Math.floor(Math.sqrt(e)),n=2;n<=t;n++)if(e%n==0)return!1;return!0},S0=function(e){return/^\d+\.?\d*$/.test(e)},W=function(e){return e instanceof o0},O=function(e,t,n){if(n=n||{c:[],add:function(e){-1===this.c.indexOf(e)&&isNaN(e)&&this.c.push(e)}},W(e)){var r=e.group,i=e.previousGroup;if(r===H&&O(e.power,t,n),r===z||r===Z||i===z||i===Z)for(var s in e.symbols)O(e.symbols[s],t,n);else if(r===G||i===G)"e"!==e.value&&"pi"!==e.value&&e.value!==F.IMAGINARY&&n.add(e.value);else if(r===X||i===X)O(A0(e.symbols),t,n);else if(r===H)isNaN(e.value)||n.add(e.value),O(e.power,t,n);else if(r===j&&!t)for(var o=0;o<e.args.length;o++)O(e.args[o],t,n)}return n.c.sort()},Y=function(e){return e instanceof u0},M0=function(e){return e instanceof D},J=function(e){return e instanceof l0},N0=function(e){return e instanceof n1},E0=function(e){return e.group===B||e.group===V},q0=function(e){return e.group===G&&e.multiplier.equals(1)&&e.power.equals(1)},K=function(e){return Array.isArray(e)},e0=function(e){return"number"==typeof e?Number.isInteger(e):void 0!==e&&/^[-+]?\d+e?\+?\d*$/gim.test(e.toString())},x0=function(e){return e&&String(e)},M=function(e){return"("+e+")"},y=function(){var n=[].slice.call(arguments);return n.shift().replace(/{(\d+)}/g,function(e,t){t=n[t];return"function"==typeof t?t():t})},P=Object.keys,A0=function(e,t,n){for(var r in e)break;return t?r:n?{key:r,obj:e[r]}:e[r]},C0=function(e,t,n){if(!t){var r=typeof e;if("string"!=r)return"function"==r&&(i=(r=e).name,T(i),!p(i))&&(i1.Math2[i]=r,d.functions[i]=[,r.length],R.includes(i)||R.push(i),!0);if(!/:?=/.test(e))return!1;r=F.FUNCTION_REGEX.exec(e);if(!r)return!1;var[,i,r,s]=r;e=i,t=r.split(",").map(e=>e.trim()),n=s}return e=e.trim(),T(e),!p(e)&&(t=(t=t||O(d.parse(n))).map(e=>e.trim()),d.functions[e]=[d.mapped_function,t.length,{name:e,params:t,body:n}],R.includes(e)||R.push(e),!0)},I0=function(e,t,n){var r,i;return t=String(t),e.group===z?(i=d.expand(e.clone()).stripVar(t),r=d.subtract(e.clone(),i.clone()),i=i):r=e.clone(),e=r.stripVar(t),t=d.divide(r.clone(),e.clone()),i=i||new o0(0),n?{a:e,x:t,ax:r,b:i}:[e,t,r,i]},U0=function(e,t){return e0(e)?e>=Number.MAX_VALUE?e.toString():Number(e):(t=void 0===t?14:t,Math.round(e*Math.pow(10,t))/Math.pow(10,t))},t0=function(e){return e%2==0},L0=function(e){return 1/(e%1)%2==0},_0=function(e,t){for(var n=typeof t,r=("function"==n&&"undefined"!=n||(t=function(e,t){return e===t}),[]);e.length;){var i=e[0];if(1===e.length){r.push(i);break}var s=[];r.push(i);for(var o=1;o<e.length;o++){var a=e[o];t(i,a)||s.push(a)}e=s}return r},R0=function(e,t){var n;return K(e)?n=e.splice(t,1)[0]:(n=e[t],delete e[t]),n},b=function(e,t,n,r){var i=F[e],n=(F[e]=void 0===n||!!n,t.call(r));return F[e]=i,n},T0=function(e){return[].slice.call(e)},n0=function(e,t){return b("PARSE2NUMBER",function(){return d.parse(e,t)},!0)},O0=function(e){for(var t=0;t<e.length;t++)if(e[t].group!==B)return!1;return!0},P0=function(e){for(var t=0;t<e.length;t++)if(!e[t].isPi()&&!e[t].isE()&&!e[t].isConstant(!0))return!1;return!0},k0=function(e,n,r){(n.isComposite()&&!e.isComposite()||n.isLinear()&&!e.isLinear())&&([e,n]=[n,e]);var i=new o0(0);return e.isLinear()?e.each(function(t){var e;n.isComposite()?n.isLinear()?n.each(function(e){e=d.multiply(d.parse(t),d.parse(e)),e=d.expand(d.parse(e),r);i=d.add(i,e)},!0):i=d.add(i,d.multiply(t,d.parse(n))):(e=d.multiply(d.parse(t),d.parse(n)),i=d.add(i,d.expand(e,r)))},!0):i=d.multiply(e,n),i},F0=e("DivisionByZero"),D0=e("ParseError"),B0=e("UndefinedError"),V0=e("OutOfFunctionDomainError"),G0=e("MaximumIterationsReached"),H0=e("NerdamerTypeError"),j0=e("ParityError"),X0=e("OperatorError"),Z0=e("OutOfRangeError"),z0=e("DimensionError"),$0=e("InvalidVariableNameError"),Q0=e("ValueLimitExceededError"),W0=e("NerdamerValueError"),Y0=e("SolveError"),J0=e("InfiniteLoopError"),K0=e("UnexpectedTokenError"),G0={DivisionByZero:F0,ParseError:D0,OutOfFunctionDomainError:V0,UndefinedError:B0,MaximumIterationsReached:G0,NerdamerTypeError:H0,ParityError:j0,OperatorError:X0,OutOfRangeError:Z0,DimensionError:z0,InvalidVariableNameError:$0,ValueLimitExceededError:Q0,NerdamerValueError:W0,SolveError:Y0,InfiniteLoopError:J0,UnexpectedTokenError:K0},r0={csc:function(e){return 1/Math.sin(e)},sec:function(e){return 1/Math.cos(e)},cot:function(e){return 1/Math.tan(e)},acsc:function(e){return Math.asin(1/e)},asec:function(e){return Math.acos(1/e)},acot:function(e){return Math.PI/2-Math.atan(e)},erf:function(e){var t=1/(1+.5*Math.abs(e)),t=1-t*Math.exp(-e*e-1.26551223+t*(1.00002368+t*(.37409196+t*(.09678418+t*(t*(.27886807+t*(t*(1.48851587+t*(.17087277*t-.82215223))-1.13520398))-.18628806)))));return 0<=e?t:-t},diff:function(t){return function(e){return(t(e+.001)-t(e-.001))/.002}},median:function(...e){e.sort(function(e,t){return e-t});var t=Math.floor(e.length/2);return e.length%2?e[t]:(e[t-1]+e[t])/2},fromContinued:function(e){for(var t=e.fractions.slice(),n=1/t.pop(),r=0,i=t.length;r<i;r++)n=1/(t.pop()+n);return e.sign*(e.whole+n)},continuedFraction:function(e,t){t=t||20;for(var n=Math.sign(e),r=Math.abs(e),i=Math.floor(r),s=r-i,o=0,a=!1,u={whole:i,sign:n,fractions:[]};!a&&0!==s;){var l=1/s,c=Math.floor(l);if(1e7<c)if(r0.fromContinued(u)-e<=Number.EPSILON)break;u.fractions.push(c),((s=l-c)<=1e-14||t-1<=o)&&(a=!0),o++}r=u.fractions.length-1;return 1===u.fractions[r]&&(u.fractions.pop(),u.fractions[--r]++),u},bigpow:function(e,t){e instanceof s0||(e=s0.create(e)),t instanceof s0||(t=s0.create(t));var n,r=new s0(0);return t.isInteger()?(r.num=e.num.pow(t.toString()),r.den=e.den.pow(t.toString())):(n=s0.create(Math.pow(e.num,t.num)),e=s0.create(Math.pow(e.den,t.num)),r.num=r0.nthroot(n,t.den.toString()),r.den=r0.nthroot(e,t.den)),r},gamma:function(e){var t=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7];if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*r0.gamma(1-e));--e;for(var n=t[0],r=1;r<9;r++)n+=t[r]/(e+r);var i=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(i,e+.5)*Math.exp(-i)*n},bigfactorial:function(e){for(var t=new S(1),n=2;n<=e;n++)t=t.times(n);return new s0(t)},bigLog:function(e){var t=["-253631954333118718762629409109262279926288908775918712466601196032/39970093576053625963957478139049824030906352922262642968060706375","0","24553090145869607172412918483124184864289170814122579923404694986469653261608528681589949629750677407356463601998534945057511664951799678336/35422621391945757431676178435630229283255250779216421054188228659061954317501699707236864189383591478024245495110561124597124995986978302375","369017335340917140706044240090243368728616279239227943871048759140274862131699550043150713059889196223917527172547/335894053932612728969975338549993764554481173661218585876475837409922537622385232776657791604345125227005476864000","24606853025626737903121303930100462245506322607985779603220820323211395607931699126390918477501325805513849611930008427268176602460462988972957593458726734897129954728102144/17750092415977639787139561330326170936321452137635322313122938207611787444311735251389066106937796085669460151963285086542745859461943369606018450213014148175716400146484375","399073568781976806715759409052286641738926636328983929439450824555613704676637191564699164303012247386095942144825603522401740680808466858044/247958349743620302021733249049411604982786755454514947379317600613433680222511897950658049325685140346169718465773927872179874971908848116625","1468102989495846944084741146947295378041808701256909016224309866143294556551407470861354311593351276612463858816796714569499021375899793849136855085849133702029337910502448189055357182595424959360/819363879309286303497217527375463120404739098260200279520788950777458900438307356738082930586032462601215802636320993648007907724899611296693997216938989854861043298494990214825163523387600982777","5896704855274661767824574093605344871722790278354431422729640950821239030785642943033153793245906863203822369276271050164634206965056233097479117980782641839669/3030306850569309344013726745100070601277982132543905537366562638553198167007159067544789592089960911065181606283478843359856123992707598685058297067179343872000","76631772943534985713873427262830314617912556928476573358548256872141516989538374761909611879922349479420014771499018155447198112155515453671128814488139633810493264352294560043912066253026059140653027326566801398784/36852092933388988649396042883218509607503204211148493545892849595498822817623842579026942621098851631842754395231561679671400197056377380063233740202370686144673585955581403046886083948450136247134308381940165804875","3159076083816399509754948610929467278257473888282947311280653574634802580912280940686954763313882823327077171624015737719617373932318151594325834524000275847475866299387913048/1437757485694188822758304467756419845842037623148461107362957994816554782989250555362514354661961482939226272309026092009962414616417412938087494467254146002233028411865234375","22266067259907364984531611601870291368272674573653403965630628996687370994139884833897773468149149664829922302484782423514167405397665098388400450149078982462318781750661005833037235183394221496186539779712428265837926417581952/9670030144664428565128962309657100138096047028794689249320859276197340398920725569428532293373676415359965773460364494998334259893079003125373872108770534788283842907318071170285038777091588292539102269617376180390982915567375","14604654564989239958569331443385369522850975185358647132770022716433280072271007767111036877803328768910274400515590151934676819262085211828028638417329558229123989556376108454497813055/6090614019162516693013973409650613208227889078878781039105047015752493519149314227721984436973374032279421344818329285207124280297611253861173835238379831004010748379874393292231671808","1901241885407696031217292877862925220917660047127261026827869027159993239567933534052663335498281439239753018507182016153657409777749792228538380379703411298411623469292891476969894084838876001545818141543890273256985768690847587711270930688/765116019778838839812655402103512685695769161212360553099732689795578904762091216998790589926057819838537805856579109910198553330075924857419395160755642371550113347465300208422126945265887065434116781678702741657275181694851670325469434625","139459806786604751793737926146840623607010208216289543036026206208962059593900745886202214788747453279179283344350478734275973878932538430194363355795823581315329311220701640235653288975569812161436/54371368534412517053056101353618694718215711767266376573138772968257303578467926450212293233332401067673270853953399269852376592855992724934941173346260129257754416412476202526978443681584633116375","1045669091124493070709683241190022970908640501171378776604126771144008324358233819560649021940145166254659028524319517244711645162132513416238958170819347361185944945680269442845829390112062101255500836072082817820950448463314034677353723256969344/396228259004446234921310936915931611736815598535963504660076315228798989932959459406702091180060429080345146735173591749448509810270759531977278642135591672189002006272326131885315743181289970885337574780897529347356567086535505950450897216796875","9912919238915437302006264477931031611447467070103973106567538528951878797932559935860738745374437522819124347510590800370471910492338584284092534264608801221235029062881964101996762011296996851893455828946521/3660537472668264151218961634689665210933936249986285290553357254224360417386515311493310199319523687171757653216994741150377508234317025158302057758196429623723072084157928224798322861732880034847243894784000","9263710175433181746575186369318246002919895649622127410824041370079225200282403368319370743363303164313395723904510539050157032684710468364067204876434546848634842333436957245275217583248805993142227630297924119330553308466662488683624783307023014909360640/3341177182697517248552428837661919299725031035849865632511882688786226888137634168024976033652753689210700218163621739078534353578510364301481093730054725078138658805025014615651043313990684347632166030359086885561104034510990826655289288319840595753002771","5116082230713622171832327542439052727465114322479570603905499496221224653983960598946033081212909066917137546065542953865612718836914393275681318667667521726785633638189373998191090501201427906618075889744489190209584/1805752553736060443820406101277706970767657006346276183748749630179442318063568286372320188433843729960294965366346522303898609655762491623098453269916163621089005711823488749297418113474056676109581110715068124438875","246569125619713282434448566970352231845414317018379160824176638351574938993535464763890962336882760882398479702237564384291290459961036068916857265499633061660562532011248501476114401629839742058389195725393702000011860799793778295606988057303225493814005789533570432/85307063020836305797178273029353623060860009152114361453434032434699636078115114412588719432277441055049132559782203988387794711585368296817222565434951256788867244687081233632650953850383220864394261763844194948389861147622944651546912394593164406926489862036343375","133672026303452911046163998480860917119290576658330909785707604886881155606725822685088929236266583416708668502760907677019598002175122453170574729028452721476464728566191464897928696630979863154661704374206171469014225143/45398130975270785045482567762871405072140548998125471025451666500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","6041693953360002800224091673336562508913199995987479264605216252220579740134601435770085920869376641180763419907442721705887169884230643795126568815123647603047739799302562095542459344811429882053086550900803768964612193941424128649976704727183797495759082741166938351872/2016766992122395667828553277997478570503475626107286343497917705446132017125079612756035254750822860815515899557855166824523851779156336235294914777307802256439645525835223691751931866188957324792276149549076500784191791380803500156776088683900346065830066370370083309875","705868391597244582764749229356331441978820024796066870551110486625729826111158236686696326058778874201639006234449557592353247542995871491078308187261304930042019640830629526023972693107193897009168955674240659026247094657679060/231848642748474339277532000336338632910990823562381469441716922006107433404523316252618490265927265734670539384485699132080062215196462178933963957679882342083893417545858074378754089719547920901917516016346211301054206383643383","101832160604157943093944673541651013907278188571533075311673249923948856034633446617630054761681006062910980371900782781226979391765818325065031889334563981235894369036439929651260587335544056975715076598739977065390678221999918899003881778449092038750712969437519295878491018112/32944277910571666002449086492515464541550138004002141571670657643770713783329063548790202120805341989608877739811787937782240802963962520261844114327432160788193314874913687387269408387417806176202979244637915812905426565263196954203487934225589622864145960079736633434831996625","10655703119271468913597640479490594180964700448340778168715956712130636958373270202484276402718566314881119559090842449610957974112230306343486091910217340665146602598568991520563987490686996746558858366002301982443029430290679385551/3398412687366638541233365137084722368200311117891192348532156645374786104142009695796409107380345795998400850838706661851176885183144928701608654514812261697598380070746520197171576610572921007069104300695592751543563472456384512000","1903039332876763837419920240543738799531131775028971323439870868730321221615515008394327723508670975623498588291298064320786970626232668956372004004897872810230178526101184611242511193415796638694370503100219710864543168952682617801833318493436174387568067811938490953495819438108686336/598806534367503338307287246320963280558134937382149405305466709787179429317914803617527827862441615350396864359976273212272586892074799651088317544101755361439294687323233086696182687664637422796995789967075271448560870681210580691574924544896656175563265378514188341796398162841796875","525573915563826130963525826191411949262846916750432019596028344808298471293378917508549164993368392834023782480702893643486699787870059946429810070222126260200026332874480239090370088123833491499400991181659445914352500247596757005142623368/163278727324937389095822405034435687776345799835442022795533783889356344755225815267819508608559076191292900367982490827396869405536484846115955581043091229202052407483776587687967125885665493681707461345895999542381476164157058393971431375","9263815657177858787273494705338516861045771674838057329170239610953039987023429736752079544014780707408666628475997291124805562998227296677616204140605356257712022384368492575381355563976330347792504605666631512343447560301417325154003481040250148561839861837778597346623630046623751094400/2843321709948499955095590862256744532227698001408929142548057792217790532624003190447363578048562448168721539177458065482170148482375585867230123873178100117094533143052886527452665480614620123764036974180917207421482431983407742154634391264619615289225747664532332469783301704643254076601","407959339726114455622180187758753007349209016396248763075759257357925636039752474207685682218422721827857994768023399625060206708378433960993946156803948655098667156937949174400873748557248801874735834957795040139401560494087476967548060208243867/123780218751812156744401121690996305978134694678934447237402511116731459214498784497436358160964198336874043702652746834763131444030185151143987331404604087778514863973633941401826334750268416015224906056576641018962863645043976537664227639296000","2547676391598917379516698439971914695230548782904479778605691338364453606537643088857116141939170899135026552016969320061900926954008522781162186995856580955090548471448276736878300717869625651893741316530109438876067419826217901657017506157997588944233677467357220316084583383623602865379325184/764562034757392298786420374672266498815021229519853724850874576419885380830752931701831256959159800764672605004880389358601658343203513177084389490286723240185146570925957286083025676875197029662038213216541352875570101363668917766225709569356861275434470568767077844675593176178611021135573625","186545352286463730559933346565311535598243666022232037054735807289501173444103692309735768703898330430135399033529355360391658728987379385732098960609744313878477967971557204207043802935782878745271859468248704012618254203101767841517569443555143252/55399179641621656233589820996143825959365789093262978988289445625153099592463372579496245442338653053662134699646413817866770218574795378644415019944304868289119443774932782235638737888469746745621382139263856603239588594078668393194675445556640625","664884440164786473344854955309049113269357314957985265728106924238588705533437169796551912202931185746193155801905841712503407258166135075966280435780812714252670362202091663287095423712596462690753468682634261029392794173636943978404002804413009590005984736612421172979101972556772005594499779860608/195485517776407145286424460448995460754674039560651791192647586550615878988380153730602665795647187884543361218962125172808792176382956599256188706636727418572541254480798303566840010217729386905041217793614214518363859058348249961790104618910877813067510758225302884815410347238200133693756493703875","2614957283934314904315471338485451166053664494383241929385424599389309215073267052860464009981063483440201193771607520572077231889699858482582363845275452280606276949653970992719332472370351170732899676316967244504534154616036371979031399425846100527685/761493664432749089312665480773496290658029971027686543404885407644062485746072719559288231362060149626237939029641098328278650939665665969011529293869562636656650999759724704272743235210867676873525147820749560155294022488994426729939894753293900972032","124843380518493746761140367283007507854364503961156704095198010255465940085534099747297600085903814014415830785663764373057896014399822131175202342399536439284123918855893825207202244831315575594886675813256448846863723093240955901916229136393454605455444105444987028391748121054399538064686074523506176/36022228212051654395480210378626648518430280334458144892889271272122662467638331091863215146548048144675657239846337165813938424387499358852301016926312083940212100001220180762189978024821166744964908871443681332664798940660421469519997746775275873085770018269706847741064037876137315001228315806659875","827992369063043155578730871896750570951766628472810506926098505028264552046829097082095665194000002802661600196840639204300804225352337632259980703832713031790922485730615305441309917696044954289187837653933158950774246017223571461858939407386087081525130831392/236805932823686534991153393869288530368011574665859226704279685567723830696754821658770176385138917722808377962346690757191122309876922069867472518117628639913077442806147910884267694879089753138429767401700283014143248445966474839193628309668702223994071394625","17347276886878323736540051321582548724378497839789943634071026331001588645519865992773157565595886250230140452154269197770615097377486013097979087647774513500701793885978192218455687078883766086309728287172567466406449372659680040183273634701092561727514713494914793425407149186041796935055187281744386432/4919325621804683623339606849970832094714371903709195539440424738973575902329797546592497378000858196173718145883783709223158260700365224756081275272021856393735663399552166737690038832550853145831185979094979556715294990257315369124065787473707136464772247917156232366320267601622617803514003753662109375","137984231830526866236186357461458917020538108058615632801298091031540729111527734872044790487396302545910108285921421417358113055522725197998483383380192391312304647004240060970929072498293210057120617332323445379424867965764749534125081131327565507524502163460761/38810445792642817561168950890315210470940006613819790543653745327778579787694809782601777514116858514049585074667085399925278459138508514838268321349069481334967221455722811414399738756151414906092225265355449011152267068726417045644222323488445626292574879744000","746567120547823334914136339633766098626636643449144032626270358619125402826113269699709721071135471625588981126637674402048519990010499180844665151971356149292818375448504122545400227696621572263621729512461528550588108384619064912224884465737417596190735966915167530332762203074440688676123756162572829692160/208334337057923929636884170505570363171441147899816815785150954417598643614152856767186132467069365605496210036171429712485182162940460120834349006784956522600679357307849981862006710239311750261522832996877712350330290831638640913932265004107623954913155144975252743257846945609734368518424172846119306643431","64649371728330695076928013661001819989330953381731372450140483779536126948957993261299287753791770622512248630224724990234903928056275080682537641377393210728546364176267034339221558641084730052304770498929958838997239635790469536857863963589118888238069738647239076/17903951498200212327802847425913723358452100686246224008745414214690047078122925247086521362329833307849817944645647750649290248110509395628305970523384831671737569872597295947593410067364379687588919135621621162007748635920864926867870502568935739725312687094047375","2454918942158003099688922026016393688092399295166304634317616773083386087532869193458590448918958337530406410803840837646465522656670050113548208618655070231274778592766244282964463702354872753657766121825196898916725498553882689210280080206627916046484942827487726300822318764058084323314109595329304407466188383616/674880185931325925966586583820010578979699141814417326552629206140252348822939845006845669570885271576698771404162512001549922909048916000017837898649100825976232784446638776021483802989797501705685620612986771521390439936066527738682396560462899753657942715306792783283782238662155922082005591512296007820682995125","74018558041066162916454010680594042518462756234254788158141115244349044958441521749277686851928706433556285971088455226217644009628399441967508838553345152310730562224910795446341601049647392069373970101491741830623078126344928804029524181578945586663110848142571149861/20204153620006780689923328634586091101021423979622170579036140596085566172775051595588438592742563923428900864000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","2127032036758045513335690185608563023954009095206088224487365541995326714285119384743928987635752931664240752323937321097955456543854943206092931247498833001499955456190701695430459583885125382086777607021670447795321669948733328973350279846928613949120929250312666393359442423066212311060931469017737106028339882830848/576612418511902928757340062840968526862381326698309578771238715462180282212422302261044980131594522407066369222998903808960617461164985318633518680304995784614308979881735537678182134128319596636920719106506829571072447362052319438091347699720147003209417806230149598345068078717948025207635448205253184540936478445125","35289653975561083576641954928762116897061274899517309102784750384002335187117263273488751066569234386120759866204372398611196356888479036949053282301027789530999737306501029700128744408015642211359442183943916106790666114870974212159410284751571905275610921784716184508440/9503006066880728386808143045924119024212377150217533250562188228062174064693375135306438120385877320162710918716613546077156389583384656340709638430674364232343609717735574035535102953482366914421205216675248471695111720986346092738728929878538430662191272737183832556131","102633551023964794485575491065909467125458972250222581133681080524371507544152979467328048718122409841060527545925136196267751819689935599599321090571687632103850847605493223603751038996548520557330016046032671961857623066292962260173840972332108111505971231021442896036760967107060309991355545554631003681544611731245475968/27459658121882266328752886605529964804078316737648012166874496015808620265471203512606463219297059547428855195782384236337998738233668399173746663289852416697917397644234441300570212555870401420579737973722145663287124151049692290432756231390864184491891697469874600345958989433125942336757049639797225309327019275689074625","10034393558388390065766795008210457368713365491566387292163814915435906649268119060550511145023450790393353937124495488860451123302412204483570913557762460385297770427946219119911920640306914453207097103853766023934602534502476962159682750262143380527529536498215384467975023/2667919902603322771586358077760621955455470781865624844984169443739075976572061827709528710108877015489050369589117491611045518221354793418884447632063538994046714401229510497599783726376490260140723032102883617341970952663947646017489439179953454964374887388652792446976000","248528145263843375390386172800048509380966183384567983242213959113927668429802237067505890436957693495616107089384741585283620097982859345081736730899912519273262934785992235852866637878831878448348444611412764161078458068549719800733237024285525816723480868704742804077255242682077291713092790250511567621735004237450946304/65676865669148624809340872151906045781446981664561196686217551358486802274698228825404698950974939545099727242259547145392352658637333562345477931951890984276718673618736565926663528625796412420753961231404680876558659735251469326707567479071881966875336951133475135427640218972722939427821842173216282390058040618896484375","7805448718805635696495809414501206964843262114470109146341305656318015059743127114324245035489577134938579856003956861881125856595981500593426840968087618241785931128978516340812066502964561231235073012672356530509663384739132686548934288703179479011016719045530855033205271548/2050525178024039744126592505352202216905491833360272553169520915020715464206141942151086176509423406413311520838568324134077402841030113427309725873344806030836314500267104070131451720947531994814710189000076651895520222646974590481497382830325485174899169093049299764813276375","3355325071293197839434119105039673324264765809771192815982246040415580387729382404624613875653005261578877047405365032178619450963731719777167015959920645055600439987161800547901539269321100559393048973255388860193948274255340335876890491746900991668165565729269698196233805991206691196045182214641935483083662356666996922240/876402579119117579582569839757462461050855174353108858954282915644790659429341853404829661899850841645529640454766173209897510988090318303454542547519850473808789222552969933222203420847859171250332350076509996295844203965564448154484566493395403967626596213792922784509892086361572955175655987334882030766001799867659814117","218871061991045868372866381545267589365410350294028138778572466235486397478028823720846191998825628156716190463263492304639890659254282445466806224943413446008645087186307985343574807361972238230520975439736199291019544576443791916302825193643774360055545186783819367378492631806297/56849560726416896431557940314760680962653658127458002233782028041537121216487790008085876994020812492987733987414743604239935223783349870516284048368761617736127892160849065895223288023531930411718807065209903593668117085505482007061969339237404945180379460053180570404846043136000","5008685108365226931582937964451700746853986170633433728409171904803795018146152804690759530990140552460596075588463394200510044617816085275660078502126507209302951286606953039953843685800941558212440519542602092919776366067720586295390886070120828199562643208637974347390938772070049344991272621102622931576339988103674070876518912/1293888539680354282541277646947380627241979967611883341823378331667976045287311988103163380651334828012840330710760757271860219584371109472132211215957402251594055009937397184768184517621978947384029376766290498101728971145633139541827544539988344772578184316843734267915665730981857376872622787627370859411909330227080697966353375","15388340113525711660227566446101909585796746979396093776960989868457211684028149502578116456785221720682202816140911944661051001675127262774824593420825587319436537346311831003212424497488485098543512314062112948777572038731823948224734505930748371522309451168088057190162878224801232/3954220582960831691377435160890656173654063611768428458807273708040518769541211737927975894584024448193835165167801976423275767590502552964407494549049777006346189436817215329891530811451811864579644894987864267389290848598289794977382504890216219362031324635609053075313568115234375","5099039333987561374222193551155323470675617979816941646196895589439391685938046865391119484510329634015275893520725135141878751153360264368353595348921951280561029028912953500944814771064409611917475818956659775131751121312316084465321917769679881052144364834485866477379437705913911371481828140817759401117780199246301705600020671104/1303503600297679371136943454060319958680553228879031326679449263682048703103464872914972900105569835004878963701599765030590097739639045890060548760692125546754294514068052902543220382104483822438283040090444827980927544440984823535260277595466339403795403200720622852069244768910603820007632395190204569927612348189089161551951106625","4902837141334073026145827027361937996261324349722726869116185158777439337041263482852376194988371853413467559557923410949898048139830183335197992754748294810838187068126867611615800383834975563313220497573778480109264178673389149671194149749735833378557143135481387904961537942569904075/1247045310545991266291285730016853118981099516935251861146038369985109288084420528171217942065832292739130145780833406014673689119563698528225048800794718789218267628507713621235056538202070171596177775095071513194885568843375526804796016261173388452184505503341132236719484809714335744","38114743522716832107917466438257616720476488812538316101658139632867788464381862291240727309611460187159930652186486096300862388591521625093237019662273764387591494074792574929490381910446287947994150655077877204446864004067956087975012773988833339521775463977233068498404144221045837190392670308437391686081418318624745039402145439223552/9647001083383999453668111809775451078976046488746916070976218645431946648087171586252172936600115032316383427265217993193444199863138429602138841976586190525451324093772097241349417938578878934577091671046050326087898259692917931230974174799815198493279413438192301437068820185757869608523761456160341754512329264442115351926967120404125","573695055225225727008803730767518906490704995929177617646275646884555707960986625481944101622708415415988844740028718027554452662358957933526173824325955904005404113684003841990198157072540659184995738719040024647370869010473254071681533880576462368600901824622431045529064651675640055917092/144509482511118816399089096021290587489594541280398871255876563615464628718527634679330291741479135415168539765887291789615790513527330600394937614433502341116068305347468133950204152174094704092402978083370792135432486240914953928188835819767755172666693219213868545854371103120604946200875","23876960329653589647925126180903391687666378233201794403339630995420215267415575142266707357255726330536094448314199602616026935251126469221925945960901748679919435908556550271504767784553484434363646489174587463466333864577705745452492395785557425904735048180164697040313528831173448025400634629163795223739061661461986923675833880378496/5986312408594306954013526197465608559068621248896320652512228238115589875514604632230098997609482248000888567135685167138762172475788060284232459813998201719590208742091697294562538265829954186149162974972471533202880368317237508987477069872431064075005305838801862900501819963793062041081601844759452202282545840716920793056488037109375","58168289917567723171226992383559866214094157894992327555495441698028867727845766488121900626912848698952863438654895252811583144479300382761129433911280049009362667380001406579175563745824368613319103673817094498117944856004415812877213722455299491145649879676787079744410765053845551958756701/14517067289347903655500020160671113450349743650636953726251191692074385521975132268313263723831804150872238173602847065423463131917373356798750100313145228608894881457107689499956903046984443545789053438946050974567665049237414588435796381674590098629779384355275820782532479708807512981504000","728621890568281859295409481422447012528302594365693410763821707074444799793690738137592101239862736313347273167450056625929591960610208335290882047413011571781161008296084630072829079783328937418641417642857196346026366370059522990813537731394823630207433267854616768658990289454635793326766697884798538576055949457122067828153655416688640/181030730759516991863708593747964787874073354051675597050399087612142539517308720603687322924426591889179726492403913356461908748733972707460063017057809060190437917851790767968877215795679844983288935075688219234885360839984681619084834228226744165610073685719017596630302462070188937998558312507638434329299017584329479516410907786681093","86855946923438322218622470067224691860808273886184997065663554841573982963995340977083049132518812923329423480393306918856650577072525633920456721265953575424233701929892019410099166322511413146891121248381648145391642571638857576890568882512129960291171866772665863159474602604647289052079991768/21485753507365901947528588896402264670781310878547726104482740647554738151100954835784115119035980523529677083504495839730499664052882400915208251594384038810917282207449860876251558307288700200910747338758723324686939379138206117634546981163355060740270734146780942696291669461182599512320099625","2158989152301022938148680102142188531448821359505188055264665167313418619665693092337665573150374231484840948447637297247277576415460889296724813940128955070240137590073233263168835678714131062764247434144994737610229909964847568491446606012581370840699582055341626266533733744293929658949697805855362114229666626620766245630122333733703618176/531794915405164005613733454597931482878479882704956110685223892325074211694837836221759995948610212818642789132749082430059593652854659130217225506942675608692701447738732031302987802196501895840510235161825501235133794449421919927396142470196961877376701957829921152848178076410141813926924749057304222282687697297216661687583257901415465125","139432548574396829074586704387656697097760057897628994548358619815052936481650396157428747411173567801047221928593253479330480454469358220685854351236980383914223693722868233819483137401339800304943891968050399345430243790898955416907228948287367356990263740207046902209563417267686591994743547621/34201151688775214071963206765436083445901621442002061707492082843232231754829227303539041286301398668437202547003300396162741375435703188500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","11008517174872833286150985180322584448162884832099344969609291070844193524816852920942383850580217443209402836100467940651581092350600329145627967515818684442171571156446321228596914355704205623857871497315955269266498229823278800717909321269179839084452384509142712677235552103459737790674103994445173074670347080506698168482564009465276165824768/2689223396936080856855299215659204161946704205931885125148201643087176556822542895325191478283706585400237901215485150928036895428721912118467760766508162631903585126377676412573187912443878232521444786090510891599171741773242011017926658231638022943018461086517502584854390836347781674626615709751386455292026775663545470794167629144456268750125","16108638074211260588800537540680707641986073914251424878121255234668558067988171568946079848860335948991834525552515669040163026131919804987340113244760738846884911038097907756220945883750502673899084880578229601870882631165510396775126850307838505063922101682333806284668762825609556049426829531780/3919363961344261777100658318137884299575193089462944554282218278496298610828757650104922583359642384253066896538203596057302203635134833545580869871333892935330950583664400555463557735723364497947986885146043017010159347046389604172186788902608216894094289769850517098027486468084407618748895626853","34420755849180279597302103726180110022640946692592540634353734157479505420320000324260530767186132260970572450489530034440214259559325114511265075416512316229177952140217732655405289808326341696986755141965043719344169685611217958619102774617224847284122901023774956887687026904767714958090256282893003000752947427857703259704682455375442735857024/8342030311716679826889917494957593165464748884572298173556257652389845294530325764837124998293398445804458613956489096007564811101361266196542129764287084823604897187311540561857741285793447174119667215803837719660675298308873496219385226998078648428368061868944322478384684509466965129972030932418920415308276430355882329457342937549162000252625","345888075261020004071220843714060353763382280664960929903544964118831237876694384053904571498830068831026644303797377762345709976595360421502594656308937649239978525713471393570536680412814805076323426256584504251728507416368609420882442293831684681071553766603478479006495757222912500012444787804577811/83505703731469734628961395063481893801938371516752417759131774530720075262459158384433785006689548434701904106312038822969658455364219435022841597243178757423598248565463985786213156556523685666430799283870548238467817226915680747412191245046634279766450629886904716776719219698922088211154187845632000","1061717830619177527082296723099890392273896386613997004874669053445943252046748251883532634529759169500795452576392700472771365240996842610207274128102329096619028487369622001737128463631016494371635687841733644339636164570819431573829173533941056258744442930643735587780907310433371453992062647737259587563398111688659657406089003293576961475848704/255359631537215747979895955806995352799574790340218399351168178555478073997876110889483456972687438702262017800167048243754141722496276537685853311434069991222324039005160057724073156957530106623908696241268268096879569794431919729620178375212905203484165745866913773304319069321426245521467122472046370356725530914587807274074293673038482666015625","274122944106300296738399632684955400761495830361663966466225652918683099779465438024846903286816813856490888796372134557295699980528187779624865098445756013563535339056233912394908544185885547842235097677765325396255649207317018754967666450708249125316192200151505568416495274671679500594656671785202496/65687592621976546250581560102201535533608158256953087745856906437400149205693427285162333502528793675585022025602144243543064185647792948495372442630333800126269123531636800213405254045262127593759539706750242430153456891792533267948231185296091297979933562727112487057234422009426868531651634706262125","7842680480716516803148821198697967237136721860017131244266974996267074742248599085253569637183007740566941125452215834642683053334607896723447140851344501084122965014242091312411884985569341166545074688756440728922408743841592658677792796881188604773469108807869960161395759837407978596679911066586626885830991556090978327508459276025943279064965688960/1872528612245648675720382138045071131304652050696842872529163720558126655075937845539792108048310219395746259570506175902206215101518698490144716531697689534559827422735649881381597761684154409796315455445459537515308174919488497154409643876490472215352056502193150125644288086294418253309947229151074464928874881827227706992859640236086417889990541889","5300824422251242070074569186825929119848111723012841627275830216301188228660779008353049603527567784119877706984722171178137272986345560485784907345500893648715341273841147320288851034078863843374665850852481747000237834238703248634174397792745914847774297223176674917912406659831206869442510948965571661/1261140476013707338477604677428573831791396352814802149994640617701773078174882455512668089072441176857892331468691160991310474734143842336092636848492066592397892638052212250229129355009939118431643425836944282456647571558383755315238500832868535816144280088644939696339160092963629012001958205063168000","2220223718762215584659309059880106334425515875615107369399767892051551634000614327272260081056973863669004224981561870246078120862256383581012183852291444462730018546753183156982897386563561418424093883164027305254176874653780425452987066512563140531367766900610414277825262239199580925879453806414860409441845631158680721091621460775043562065815179617536/526383206607841251253861841374779803798480623722760367843070466043030228662340154304405180907941079883976168609082254331465595267209149963786388600028701073430773581228212441424400748220833542964971495005714483235359479470452593264280645360131482713147116366500300066771223383007216182988263355451923333319170174755334598973202740108032097242475554128875","521891797109626296684891455959263713257353500867652268541535940159815152120871142196535233326890353914761242025931373491906127275561002910157909306979093246574207104081108188995072105948138299097848175016082947174156278439986705241571619793059501724269644447572323501261424770743329858038040685313621446524/123310256826873923765604825413207481739886340225713108649758575106598510022338480189649787216845041382860899099250547657534972156328080736149239332330143771138115695598493059325064119176038137294863053148618656356436332991079150723235214278848602671333076219529535123842212129829931654967367649078369140625","66086044538329677372986118727999622900471937619891337714357792768200341519193500393739322894033303245376225584865369486696276607060432449792893028061817203932068085863800494054274423512956136695211796751845295921015953538329385253280866669403169919614982155350899648626481405781514434761541281229159396787287553493046927448595964103589100429722948913403008/15562137339474350565671240515273666798063901504051979980452491653975250630723677279081058884163396938548780856293034775459223871281049026140999055923743471466471830572672766633086347312178711643724485955576579988182546105048041649947277672869613992334541438784737993706482731696809943027528882927942967419447250586964258807454003775693567366165507144866375","335377615394100148751647837967017467711612297170079949298328061159559939969228226474615711044891085626519877634842694983669611974807129333052471799687426665556738316626171408219730853872410792831871526174987402129691897433888027072807302411474690613948951673562473758814664346259109886876538510453475290967835/78715592752271462306588358880337347638000605031000575876214116610339827495261512281635361568951675037834544811575026718101166562072917855004822606752296233435017284127594847656529606648345533195437635894948829857913798336356647286032372695130461573940500785137424365840081503133157308796505622439791698116608","20090879701618729602554170716780970848925039917987945471322994867171660307998603515745066411687983450400412739285577269751603921163835619296822801840348319742203974023505186187060251544248644338412667631232247108675504629538319425769464277309915502144443973397371136256151336255138506001292355330875114245901820438821732843540725116728866301271466614762497024/4700223519410528857298732096729483544820841497820611795617923063440946097326817340637303431283005509904481323205480729806879570430868897342398783028649633951362398196137429076844504529051072393709154483678349272930361110568616112723747726853614661953537957117231900032044221535502745676310313569997665352252492568100075191900969170979460298189170486601502625","2904778979985524171206573028445379872240558084236464200857594814631031581387804621371822074061289363372523364167184697785570324832815972970658633551879143187709707164796663015180877412717910872234647704536817108676736661804878068078543241390828229923424191204586313620612539678930999769543756218765870513049986792/677408099044823641581658869221044375312077929976719183424865834811543737800956896926637625166844372424044003929341361734886232742770909683021563822987505236295727478159938135467975522336774471915167606673489722102077041330652185811196423400701795791669780695158730756241178262962515917389382302757366325768069625","31270155809329751863885224732454397292230969002004953832354065319735530624996254695453061851449600345977646455072512400760539747054003851289540339425848681804190284451253462663731135337775088379954403740058084949675460445909826322297817535400604180338201322667139062500269285493417563095365899631360901732684124930296643108551710704785906431324876072470231424/7269578038000504017073007978844992319987411732848567116655821196644382777088703228960020894756722675887473977480537577509061256138261063926845643360849217556370868752909531088361229374467207196928745673402380473721018157327193509586295879051411183657185176812738231456253321187419224704301236205478184115996135940848503487199394612616742961108684539794921875","432538822079707760382094121020421735679118830363764570640789368235407853152380328891350816400541189148550353337874309885334920995713154225799660601389784410911658967499100610376065640785585342035058364676314084595283850213942576431310823836792440218271879354669291052589804956435743500204185107215929849054782893113/100246574739326291035824954677502591279343311051719151327066341370995390423713403739043396503785261917771859220535505691760472395306543276314938287868734009582906895763073519374099272340577921671298878837400921045252035507925021904954445172372479744465666760762909731237634082051855588025732494461939980856983552000","1914333673689206389116942789116917579088664511118582610293383428712902211612554212779880638065888518488492298586641997844141510832940409501694726851666478650414191249534733087933879981733561565249818572204932715347752949087800778646065986244657260832234479202201129845117955957242616947361016603702640821256099895469088229339240402478576285854783063612307200/442333801076281757298117784528962837115323835962460661601905131618341609371649347131724700192551574625400701487125984359494804828935577124602622582550626336986871791407398609915208114339012374456785705161994343348351473385887949809051796407340988735853810174589261300681030826392672282630613354461927208579993042968520650313621522933214063366558703422757071","5704691626402072213006354545292364761246893919997531024861408248746241619817955824682639582830486790618668221530365426203424888737658778881721063941495350237419723855000515747725926735319471480027293210991869255971365522170749568996651406002311020883635577590045650037569906001924971041810547543163363976464780729932/1314240362076792592671773873754757443276256223533339004339330559325754574023619698171225777585408160438834449576526997055649849875516310105297894855264038450585295422343454458568152668980131977005808840141079502436391909349182185596381509091427752151860204235071122788499996991078935216686010888734471173124487937875","451219364084386208718456142329444023337343409261545444643031014769484085278440612677813682892926852469540118625738238137458321112005189595703619178533263706811689687213128887082197330137502064260105387500552856851972124172206996205919556553246133218441769325133725631665593372188755090094541462474970525820334385058333756591222492801647110594428922046641945259392/103648250172203340865458115839764297558925693061798169434516001775068769911768281084188883278842546791612199025413573394167639925287068809631958006622842716869211374513136766899877504136929177267362862319748507372147243911522667591375015611312165464514308451222180272935398828092646393830572838772085366567154646425598388620105539619174837489536378605144891769625","1591076564577634575701791393842535460875733974464805197283632670013516183281542903377750304419996681222758401497321278555686661981435637461350320471258386388843198706277657208526372100698700615835733712519332548607115875288787602084336341594576426630670911478276101702119972195558314357975365863803265163991961173/364433108410193393847203348728981296285742202617988970384277162225847256295865554341611171460436362780497179090329831885853324392923449579538286804729856000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","5307507148709435807261229345132535134848030343901300324623409721698217134932866488937772986386501538026693956121121771089740095760486362654754229904633476234090792827930433598453200536551779789049352131005222659995845427680686677324963223653949277037520711609343166926627713758990384011274777087968799793410506391884872456420041494598273703914689586637995139580794368/1212244290381524115082005575105703496583315188540177702780216570265159923654197746388568151706509243638302707511238539845531608313334248788980188054651601536067740709977678222790481348003085034888244447626347312094586389347535167903408519024105748523384932942441843118813819781347089702286481924493361058339731949844620763272778960860509570622673048786968660129650125","3046577098843580578619955603029073328361298436129791931304665777036152915858575282362742008136721284817899542475666054101957899858138590963789072530710775790433466847100422875906866496318804986202089528198912098377828580031852152997907433335176267300286466072997014023120087988748396598176622765923059385876855303940720/693911859077752895978833241338902695755528613729508555938416419864772385336777924892434701804078893822446727762077537955240605927550548046309823051841326355655848406646248595628715185413852040295631448250459076043816328082561248420925930431777502622148019371383254316636979070731427737764160145097293260938978413488819","155310926743873343426312607182060072939030765297630534544899230213054714482456829198485999782086944271490229412707980997432528653509945301574794242118433868747172279224118534460563400440670015323324602117517342201640016853927923976796453577048995243600967202462466681112804476672348206491490513419336308575442086511015101999847896197546900512764233674747415844045184/35278162986589659300679088538176070649273991865663041616088851923111175518405117391134863644540911005782372831496121355954470744169969774540892096320978686548284501139861783292226140413769665461494668479430833892857992401391262903582109993838728281915806394747833588629467613308837196269424421131934859079260185052081536487462257809987002198437182539441349474426375","46729591025621874782758519074451728476386657576036360734358719976400940301493939192083339293779149127132651616972817165172116269307276487158069293114860391502484125554406945249728802484128756924044633825692779783425628292959170597009935305429239702926898931975023598456207165067568919757902764815108751735753431153581849/10585868084079030838651390738371141142245086465033459640458366146849314274285871375459898014414833295804139979016362796357043372316321872357817727821559232353993714062535883074661734509440994664726425399880995133711038483607773782532430879196405793694658185175583691180757783597895616920432527125993118171361116684288000","3736372348124144720852190769710129461145889011598636925228657393934132828633132357232883470466940330848177425542748100211498184494252714616379450272611850068867816250209867530921278645286769418080018709947826876461419654782341309127709703626401211996255743831998918894661053669189312375159058718767082163156988766821194002596331826150321864927832618126580509732359424/844176851007504003627016945212023239308348428094023437269532743221937069345682900884618378849283002998220513307273333096775669556093005637615012750733216460458689282791632437851364674879152695438589692227159038555722539345972833161146108367329370564838671791241431125003401861887477969954740544092178721327724620450947646209914621007186497081420384347438812255859375","1258774755828991281578968023382624723772927642002016270484090409043454336040857926581316994594109169123354553321469500848146015719851609220423736153365139804086413284787598253618361769125996755159571523632747129480387254164008968993734442164892486441152227433281625391753702577143985047832519062595123255569172968685060844/283659859661671181526547833415653453506477950678651675193210969173130116121017723360258249430884213011988678011357458727603413521688184521573094783291496368005697481333739504490647194454695504722542014845706216224432373442438242355188461951883454664693262684873988061018976711201351382163527093784753398257094429403691625","84932063355292829988908961192574710493098897148701473172754949846455626381329456661808566365329266898990829247446356970454502007127269708487563279536825277374133681167235811080298134899629580318813382668399644553111080625918213250223197440426147821225593304993621451053135332451997633132772608233430131400186571793929377129211228689703376067763625568623535588709576320/19089978133324852910950469658566458037096027722326716800113107848115231563787455584278193954518442601810776347091253561956877155673550458955562102935555510392954425196165785410319126098393353878286400877305164869548380670204577544630353859009177051698096136470072137579698473017257397949994722015089768745013713383769765609613514021200888647472804720456494757423299627","802638881530832431828249604040579750916118423833791608589560402449036920165704012070349537114920882938466635598602387718300074733476150548724726460209016834416094317724261857969955414000155807312852092720310159572547644569797512233899495300028159721348599816083166712365215075728968005941610056018023633235372936903015771583/179951197386119079732438617407921535065140503043429174394605652913879982486051627760652197484142547447000508189455126493868229565647284332735552462525598465192073558793335913005459266977086104359621022691931002488052727597513413492393525660272900161375677499228252863529934576881596384036401784035248649026076581302370304000","25208742399375362881099811032135575360109715964024747212026245529087599633280142314962581193303683759605084995818253124445773115574470717199218828756449187055537877478033129862600982068782249943150019637186466260707552416433010545437321814115233841687700051830170191107127799355485920046505591193770164750886037885397478191534797655616745528343172318318678405576430544896/5637713398995569614196397857525646325234056219513202928587580534159596897880731043336790273040813044077153051260989730372846713618900145444802234629922717464041261370803598799826604841654608724727320798324006129524610666235998113655193642594744544226880944882342204407750193512869672849910003246504052298022468012594459974209940607450480609190841893267203392880360823875","732332637178584560220688900268566130246820235956768724845747830959547501950765063982943061181526237061809052444110437930100210105274824607344902764184151030827266142225894655531497849161692760385938786736436977268616029862577293984376170905024712952813234949508186306774257035535805330366742322777611063402455261391021097128/163377988152179636922409938163005948596822656868040662831003991395905185823836089887990201522673196719628247106777881741843786365701135555917263285268753605514812568258179391272113405920369587922702002732667842511108732068683407168090725712401954314293193572654347237716691784386690948494003094992876867763698101043701171875","22391374854299462107923583267570593886002658786775211597896252879708753450794332301142909715845151746786016535157797023153041007263258732991465037648536702217273897876864351559736449481285518249846264600935543582562018874574655740660800634883403597181876364712521253650744197321080655028374602772696770227741610874399454362583980465225235674816785988164157351243193265401728/4983275997188967758382167867656806681565521964135131710678447245984239733544941881418957694612909599261843693554043504855207170782744518943778096768859337980470219783210191765678908537645270392500777411134164918803949155037581108678968701961544979451081836872425574123683574475790997414488641534074873248802450108535183413970057319247033379016606809226547805269752123746375","21252344995592269775107236774689012760750850598567799560343535731251766780016530978663079386453430272698006977668063208502408607227544322945446079708000304179073184745623740466334127867464883762843346619853325415963062181018736410570113171387891518398846617197097407612852037905687899800932343156979591740310928257766081697645/4718515378484509142377558412184183991357747235892194234377932213613746008373918923611236346330189287336493794499188640380975364991548794341177060325509698404571318037298112293926833877103554546466055612498927474225619680186119313129604319096374924037870803554153458104225741255753314955115645304948564151765516183663634546688","76703085666560609319365659209445044957052359500745196718269665234646121134787807938680787341023203786904308047981099228357850016602203539979246579454229078497537148799349353250167621935384193502383187510928609818011142642954550330069991570983902841318203794113898871515702445720207144863877026526025447819537396146822201819435536435835285098485990260677737192230985069824/16989892821104122916312992616665764943723222199277412857053896319814438961475117951904867066845412639236790762432996309717924037467863024360211163971190006272168845197000304328480920483651558672879967350982199768255256753110375467976246339260326422891913564151453729285191351273342206198366624882195135056176502724912849575385576554208844814085228696838834665339811027625","40153831166521391225489894857551838468150576827129133168972859441122728710165233865309084872159583787083130713473702296122465319276461991457173085312407612757280915853584698420083436946976844240063731333638150599017886937783470942007376523947840104246927580254612991191040951001539641947153847776050138532219595746056076776809812/8873576113581065493273519627544307418139908640325227196912114520903505426722086265723900326735989771660987609604507503750212298754414472822477243293638486047313990878348820573874809636084574108909615044524663712495422565151340037564156235745628465172219286664653343193162657374410926171153516871765680561505768223660055617934625","200736374277835272485186523480177159453030082779872429648449412313247640312479214261681899286513818912991945046297334418102711629933437654377760028476767482162031641781499114859553677502002901248124750539270235098492377826240319766677856465093871367817683734079621359186477306173620331748496369122143019303740252461824523590096923561928354020960176605008889579578495073283712/44259440065125442964014453739391594153290923937737136823355312892557975399035370631521014554980129291582486968083228888083079118116286312583989433037097397252506140224404130371160608365777625538148303917306340620019882928744151294738308047800711028158277500317134537540772759486365658024194428796846364486187105343266398338060080611643110071184992193593643605709075927734375","488459049325494693259159444507437983381645757291858092983371672334043029615965882574409808932509285079401239403272414271652617474184321852388397021836909585659327974611273820676128650810907598106588433939541654215766888212287311943387232664417347883717203611092450971786083806323404432266197250919880225892099146722474124874256523/107455855466267410923480140898552598306699341366032095904938430084768624148829473848763761936703072253841751966906142283640379336131083461646777390874405323298406517250231389493084918065243079819898691146841695350589992171102939046740169198394671965069747042621265775948217054519855346617967866614303497258042439052681849864192000","8430374068596413768975326329313648683222744787097373111477788794692418932056901235174019333392845529821722488982447683794746518712070635063397464904489452840169472596494433874412726723065560358405027764015273789053064830528919091414531400589850704395887250756457780868677553068164933299802944396576360356896758745030955907258232257358056931680617626606715393885378887657377280/1850480358582748412767893656294669486390769246349349706200869446679212812264400876685764762211659843658541567071977813110496329850010288179702589501255367345935389050373021591572539260951149696801665953123597521983257852207280970577287472932167362521740230973547070264273850381896786822127290397075758780174083415923482640313277341120938690594859118603017930500014640169211239","58273615882491925540881784328370957720539797010816130007322211512070634295154626813477498607761260613353633996451797686143131893884559909668805628269959901044961666535533876340116728982072626875010391195372759135469446048394835148654407846242721443845351855234347422256700864370273092971804207514736924787577569355949601385705517152/12763172138328432984573837529764902730448666594097466544652830703737195804747682450548488162227364538052585484418491914323658215406327363805353540266048943197822838925184942600367647278764952826664684839953902567694832690683467635727409976388280092262839126779730168889686628630302519063225007497707028600865624133968363921915016625","2685278694947152969468407055109959900160804835228466214479525891103128459065131221736713585038130737099067040196326815283171857977706979990467444622550497565521863441617001097354649972660183038850033950647594754644997436624623325003537308428828750008305464174443210079059253920383411910911594636045517662796811001285984447671371943267419151220518726940455756833040934506414133888/586864816044968996825907488721678304211296267371936463272955488077666796280028127333229453342355554450708284934221461946991556216095213627059047984199091625921432110913096253352065238765240063555347292393427726758010888546427415276046238297382474708612526770055488323003698641493939145624184943388159614111350839555141202024991876221874110644879676602924730506882384603409121625","27700345710264347957758638741952394530538598225904772664391173119594616680996031886665218221392453628824570256438960349220263575741495285780845399187013582169907518462437966962923592601721119258663490655013419675469864809004562272799012227293974254329929404036071055528766397079743200179924243479370594973626764330855493789112414191/6040997839051213541001279276287478343874107660287651711609067205111574718442229224212245187655300348484144001298428958025052162253854676210451657425437588244676589965820312500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","80160269787574270953020489212619791839643207793889009503234879683494928396231769167082355143564723274576166638869430572977442020236299319718643894871736539109822173538266278165276591962215927816541165548699380129014840956895931285215480350321259054359835472320394089646764361802445068798451796525897304221529850133401768027469126408090577121172238802281079916258951770135485696/17444957084936455555074876721808241311651668802091828589911310253709517226715880722948267977560381436307152342821304525073651379763144281678911047276389231713860392794975453518107055568765009486973017341479560154792340888780337029481646046233967923289468141293699236815196553819373828280398488966665994092877680860643266914861837639322607761804740256920429518434353839878280875","2352816897072623416220002134476921108405735955266703519252095150412419264317091785317803024028565851487861978477208755211589867803009700996828082850796103789009194767813611798769297617674631277847910238088040257037678126316866517601388289837575778165301828137259948173292658462765645645868094197736382683775415645307647043205988394700/510973411316690313485681833991645423802776865720580280058344111363363091616558230182669376841383375321912553771027107891991318313938505988903735114191313214327683449514676737796942389784957658395806951715454372568523597420866050825822028817422805046287798054682484158011143949412956697442991898914560191411624040490122951328364833797","6403295584873165688372907494046202150046769667837790834896334486679541887567517050446119511695248926941383207478170182650927368177009669717288184903306689332746127845953193587519575304974203099873732502605739219028995266139383163062837007982999189114810534856227848568800302527760100163350814120545587074865568436789021082619398126713943637898657861949091545516403987546145915409024/1387794272010111535893205703999712437783041553900341112488641528986385462810448493444968969845352401058333929711237978223214186693177251566069419805757440174840170213159651962686467523533938145629444468366235554597245713128812532716616087753947246800626006504878203666972651384731498770435755225220796872155249202960801768048854869001310722927230237083418017482134588865244642658875","82993247683514419570466529457059660634483860665557779709153549045427987672829778520201315148149878525274005978368939092115193636113741972236218502664881450367443614971109677363668874484696543982239492409231870942414193419634675024621942196087473557914167832058111113476295926250739099284241826553737074679953551191767148712684157318697/17950946423927357725787689855263532224005643859095168852729513034456208872420513601894508438640531171097082516559962755244698695622824386001219435651555513795509616906355363573638916895074349491513539093024980575852693293474288638209680085037286354050958859425647536735341886663074581909148323105020337857959651624760873736590065664000","584891611376763781852144397260140844977346305541197362434227194779766612939978629636198589818106137319267243431810481928639442343946346034433828599323416877248326356345631611148749005937144684862502198147087702668524450709118588741606955966569427636630159793409544653944608958808602551061186799401212712216156799273254257486955348236914237644151956226336750212957092204830385441792/126256710861549838395499078249922986417488985866522660521294610280820007499099176190820291214370699289977888813109514854178180265382471972583921477022411657285850911270389720508719377071949050253246021921916685716353393018411683757067093259101151481189635423399611625009617884983318141463140199839724797412514785751549277231259345923662499623640886881048572831787168979644775390625","4743054867460856425399742072925732465660626340183690464743217147109403130730445842673866624947360862438925194786600531200056131309608642363389833474026007798643235346104937733349791667694862514383520689594596660275306247615314272223660862212527346572811422915223417783887717426641317921972456913534338708745549252254865615725859881457906376/1021840037832289788284691535543138164288462770384961802287250236519983887262771944174557087207566030730743075334169628971336358708580124427857321953981475719503574867471090607795242192417162791762511940848493176847925838738242153177311649130718886794249673254183907621449520415060660496225939963471753122766421338241291756892571824984344625","3784664074155769467702999785016514468281913375341134899878893061325465790589101335015569840325786070795267055386681356241209412947116340524588831510768864231937929260236754881829005065056310226407358204278658699999612596866156294195316867934035877283950841910726224355461522065773816109849107487214275801829843762482082803559183694631856772777313673086715631547326400170962722842240/813783281473223559981291694175087508812520505931454895884442580280342455516154674683217348039336712901850738745276445107477919518905155156380620466135946654952837573797479076027688866326359448543065305071605591497778941561986579230698384305536224430794233462949056326864499827444363206162251104552740175503996670997705423888382328014210171324376593090187604268086334796245552762333","1946671258536842642381655747294621776070051525209940130115769153666368932042152311477746728678182920842238801763565726086459485050237860693394471644023999467670017470376746609892484192072297938254898880354014176373253875722410186683852253828299669530022166361304397631667133689128358365296701757782382475692465977794960109690362462330857/417774039698408581013003883929127512062321623871486379101498968145670269174833505080260389860863417408848209525427705249526516766731427603641806256289098209429110794311660844125377702016056984573671024035213045475132134896835814746425864304907974005950155657789157496389234919107772201305672421982198984613601511388413381215220924416000","328578487723377153600821813410631465225159589727320893988991729306688663770697528156625398176929288628930496338036815910669579019719633124832162035588583242320537435554101841406566009219059042888412893352417446437227440076869427577701706713564212185163005644118869496869980925214424591264870388237079776503547314587137721633918824664946974571838634860386893404364499977966899068777016064/70382695927096628347637455030970644630942872888311870124896575877585692281624151103204551947776906510366521972834357031777287506848887607457751667816514216907338309372900327919413372044625602555866294337672022362865161523684052940126509854895320132828009551012639156341878073682501185688461720664801829933689280752623773789373199210473995823367199793407048741191786377993390965297664875","2617201476921368517857942326432090876874414269689140439151907982631768946799200744678055980827789859579196832718849393046147656447672531861353456343821196812881882023188898815179947651274131166835133965629115749368441605680383605331300030886676081418867305170012032824011912531673468215561506423833911621270680104083533917562622600478548/559567121085534865189976875600841717161617153776904752351231210970240323460800785728739412474960421770806162360125774000625035522428160837855944215417821324758873127567654244465281354654299068546570789547691342609793050301258532586131013585959164719533123826201937801986942606844854123769532447570107525081084531848318874835968017578125","636225736038986537559880265988431731529837451289737542395494683393492040808565905376235074534207026537145408562785279823547657299565440309510931336394031904920056464959974743525662459433889398003683078967642651812081450227654478095420306880762753401111260630654049389197602389949892636943971690212484981672010398108426002137114819838399222096538921225458913266993881960732663394566024064/135776510176793971074115131648637508758953050390591773574951317807919051619690313331192027871176160424663811116849856489187562728496099757910540362703888937768555824513740118941387831822900198029266206334350448626733139136083404404120210893986654422850183837974770675600952078956326317698998103770833069712616832650406225828969036781514645731022616236082175582937900731419575337473384125","266695771933124633677367149389643417608461366874310588884377151539325854547826373711099517873721616543570605935954334944030816383858485296542260152894035979141266909050267414072982042090341712035518685997484257326212454742816979806460287972757626105526907510197321350895873473656215941034605746494172316089636216915825022339855304925515685/56811706665210352283362623728191218698295056176625217939528332247537278605113496147630185544004654583441448319260578659922931798845493756189402805173037491645434052737405379674607517658118427614090338938517963215812444779184193933749520313676564187507594274551791388039139409235056119788261689087831209441779870873305232021728002651979776","3511806683161697708497547617957719390189982761002154386881580160856792742952365159764830433511949678304281539875366378131195670004345568047690216126001067194904446295336734931691743477531830892015690816210752795806120303198745685394015161323982229908105397857791180342330098240702332072396030780386362735967021055250450666535422528637737695053315137238368787607412459874094164027214953984/746741569878639983491390741637813989978804202898438708743258000150996080386381281307609038830698579358879333079215327202911977568726258527646560497079622703052765164031089590965199628534477381843079892123440214378949632707668935001371616475282883095939750704292616758568964786737752325652839226013335092148777788733453702438432279149298482004122593243860829060557386699231448957232420125","499543951252504651717279461487337168721376180441322735807713499521878076780205427598086756686061009718016175215146305489885835839673419698751530207404115002383180054704927695269921072232395828258826213554806570423602966743337801741633869267620843626804016742412046844770601322513184123515405692795346790813502805238635003099976693786012816/106032986203682550514602969462803214831559442358811656484036951559991322084935692953211120289352600484987931812632505499612220494311324679562152078883141464406938524087376964935494245010636163705698220308243980789514815579319533341929989455211613890905485981353837321342730307819060825125980500975023479813757024395422041501208805339176375","8540849722242122835873311629952985285477986765819584558233324868363310302206006773828897816547299245727087876984857726652932481899766510637403577175623031467933486823994040576431755172220921921877192006685053572215922347418846423419683723609799729359551828522978186208983138345476801247634773975311405913274552616037005854836040162212761099347518242200807692224460514057530656658616850816/1809694575992816440924165741094996511361288430727981159314194000585536832192004274726651828760263522962868944612215633976203596150606503849595633388319338251977160257979846235995654357082321611719654136058257458753105122024859078420173515189641515736029725847315662215778251370398007468665986604529263071981040014321717598469319370651877296085250322599247141397427185438573360443115234375","51377057693118720457387330519321684810411289582445982078756989158447711080414032055843805733348558621949380554029375294451303430269197115810494758213980833379214402452992657502777067850631862453239349835215260705131864911194740832694498014048717871429797341104227759557199716944554347879767916801106279081864127192611546757627038037780244683/10867246748205139797826516105458406878398263495890048637741584969144406206902037615496936724683237700974333817527350121106320991054058406504571347680049945745432432384570515723033245430148177097144850158758462968940525568041926860856763884474605057056550146491001458649244094211354153171337463406192651150028767064600270112838159624568832000","2517199821548153657910904242290029026229621935918771922146425373057248090467388430999870036608278542449661971830076845113363443421757278612394167195431759807908413353743377586893872930828548256216510734912027450642648789925142482023713336937258932978503310551945630359646777080073329099268529064437120002567758664419443374110941824106727218341795100740316967386497091058915066147604481280/531524260324016969370728057738851340792702640911631807178654723224511108065633433027773388768889035083734041289308124943130099580765995149865288328550751289346866467755881013217287175392101334538392596956248952430438673292186779006015549928829953979591250274457658042926539541422697852390294886719770034058916886894408015624288115732154492554105512936468520265305162358665491880968652687","937159485027553069020805864547349554547661693803137696125140510201297417077233061462068930061915381468160677500445535971818609631674361074587732183297775728389124966713749450996643183965795829780345678634356741756033039293590264355732129789110416943789326482663579413229893878422643110852069225671783017610387570935863228248464396615988222968188/197552642195166614912991396771845374656891854357948006221100585931656016640982345159207601253599235265353060942313995345483862152489766993442419668492877390774016299878943454249209917002169480134131612530977452579520564400124908392339263545911443803619972765231094502745980083350567509014991735227390978850048088378721210219321877150756855372125","5119346675109082499980756672052066247676641510661024682574296075659671743397880591881419516307292610449161239233139088348510165442597278965718490070997173182184417648987611422446347235659085092530927312760229499083348217392125906851921500360553758600756698605047197529446594606336369425040236883171542367713951500007600355406492128741649090501989105696576697387613035366083536629358444229248/1077349190930018641197987339365056771667455373500846354778079878558146320193384166982231171317419356136237346389570422332278447217033773023556383420372685049620361481309067017697564760747047839930422553324681218253359586320952896352245366885171583221864112040038531116947187482413031483309534553461613717398523132176948321964066833901215878133594739833910960843185464241840039390204295097875","58469980853327028628854378052548435225264353747414624620847476036979290604604988637469977624105451959796142112200285366199247075503424204044884512269071061176877225315884188402954249683107639777479663275428465242905314418930053869461904934138752031124685541853599407727446896558064252696813370692668496452783003306386669962110734257851955001481/12284458784412533668960387046583440199646081362484321078872891438551639470826582933879934711861551014258493898870867541349962531447724393381011633785884743889445407749238183080941846528000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","632694338036291086868292541736272151517212971647680989553388199374739841494700315711180961760384484042159533979873604395621016272772109619401112452105475906812313548587880899058905419220497456502543971131226430775692744506047039958551641270070996110661036371362526401525207493270590999387476275629412687473362310414634469788979236895300129227082421021999210841384596617452097273320509348159488/132710874087075221626157136110978536488168313127228703025408943153782802265472978945703742152954881438058373686972477195846162708986982742647038014147903817539418442869011995988024638278746664230046452545499722614320284478925059527086663455478374200352375121910000967044366831275681254530914306064535110528723482282501358749001657608122307686482720926189537227492041135055090784059994118192625","2022422468242151190347511883185841333968390991430363660248687284021524206079162212007263606819387821055183192871951076644707111802972354128011904720586729919826758651167984507804867954970064938022106484656560866447290934136610214175516487579122328055482392137619829739560923807880779865442016530712986750711199998190148885726144596663143651240/423528009127070458603837580844559347493775236970253513203186912091140251858605354218715508091394564000304400858761758838182654201653901408046974668599216804223721114331085507752600832390227068985693006017591304916519540245902645712532993889000048992026931475754508248265356181099817467608863068068953756055334213584649136541490530849577363647","150542201776735231618709653388506394887777837646651406023174643241783006776019388336318216053045300417086929061565868663031237502137150880313922488106751241006715449458736723129545400133450376339156062387859536289694727635468338235084533552501618659272047966040838509286942825414463511175531001410923014751124732748099355476332649458471135027773371541572374016038525336728276024676601778299264/31475618522527975728853391146702172347290819252268551219771201846701658848754300838383637247014705706066050673096278897933831272607774110183488615338021656923433335661890414740664480671162459271850877855521869741833030384682549648626038314686632195158507693321505500888988183270276134667071014075017317692121986144742473139078857816578133693776368882596780120407949076129685719314703426278875","162664351499283182546788129866259011542529017155637405328005084357078048074065548349602626724265307733005745244338982661090506394708170105916177679714664432754153795772811389612700051002336719842784098507498286260450939289109123759859710248621544296008356071415713931721102824434964336667980062728653562369697289761913925215639430496443820411811651/33956433298509232632327667206936379248172049619640091186698677954874297837764235300806836350019565970550533206216590639008637925266405524715041372407701947953283803854153876844320283735281209725651036513491246238622967031979233265136280687995181375582844780830517825595245506321879177965868747546127685256867456319112247572348416655367667187712000","27228583713734183629451808889147559240254570554044667607519238865891084165382075658707675405673276615039702916443152954157535195508033284355580742761569101934821088036084480297442018005972653124248838420021440899368869744141698556359295489470499243402799483082406238128875386939389123336303631993557844565927960009744780823166462314116039469622216263221278402673028225214534859076857413557466368/5675134787340359276387085910732530678163604187009567576895331134521132071092293139167824957253050637085885426100206370974479279292804959049999647539684766632278449357893560561608633329561385765035738071726214510832066885156767060324427330401967034889966727638276371320401053302413136551142103678412692111973028587922399670456670380189570979581674699102934733563330382821732200682163238525390625","1340937726818688387636018677960518622106989311577445614347061615417831160296369500704524022869612973331444242000788110133157689786976834913297544087249593601420972111789552905846168933014570399562460789075871112224533723259660967481288525220689577290386781169316008987012566216235876842757183233207943071523447855623001920854571597886491163165150556/279054368814522483241446594911968519760869180429079780837994812436395792594449929617293503975169489945136244602350941695478861584261665582123038340824700224583170270427163469762789603657025958695551448477050958557681299495041994050951692916032501884523150972841782658389836059236040091605838583126400660344344601879969354053137568588338096589095875","8910951660339249479517731530773509037034977353457185453617569046885132434552771722727442649095007828468878374139001808825741829728375370140505088133244952288239619141544661695065318568074863317054989982620944602245967155400712702259180443238473885690297281525960618905625084639870407113029712510345262279507055197024677292523214467306898573956604928730377318210588837126450942086527893437954864000/1851573255256476362977604759655284263358595254392797078730401113550522214182030016660458780180636930591149034499142464357511158868625309442843792189394292787657774627425816694628839987456477799348874853555586931850788645677998004186437300173080088839930384424797706381282430208961565555953254145002318893188197561315855286173276564036402546798318351229978103276843822345004757661005876638005274037","84997663352987536417038496128111159210386455419431137931308301989414462311135708114322046234708053448098538629166672456703651524480738219822858469100454933583774404032968304328859365484249897913676382909050450855222567147661842184538302991526635974158862033287154321908483007506326807469239745851379559259262425675035790574846229470041596801343087041/17634687575122715507915388096857069366146981156897230620371714518707518105157483283253374797127075689236298114335734874553183291806268149747826050838089931351158483980735336772879045027213982661634865556129548356487722537193914986994283729746578044621115589195066212043187229606921062007047940293972381121200723292297716621231320254309060321476608000","1648849257486312935416274009474520589799750757877252390543329851029437452988499485179026845292068377957697884739052491455807688429630524210823560524122596610276957537756142278585091315141096146341773982302888007751632401090642472506538817998043326415693840862261701364114923327286462650797963969289743571514890723145251583881752876340628073395708716735192690808352188867334842743895738955762067968/341580411902962140529547622267381834425264893226447658723654120920549166416114849731588552578626041597847002946105459812230979900480135423787717825697955152193526724029890829615845314765605770060975538542976523177976182401820926854406945392167140347444433885786340415437006775075196031433365827874254477351374236932624514469241634422312990555534789607377023339236417434574755566856489013828206625","4899626659231633406569362199187192352933567344960498139854460545644210119722856870634652562532083546344965166340063297647520613455037240144734014575196764021102614748218834054157165781057405100578668000290493431869797883155764963238760612333048336953434663867580862692267574574465371615023999531030446250351305046572267686566999209229202587258144318592/1013522377571209303732207048597964555261512342860326827024786500686692475697570284120359840724596444209277948648863014479460188496587721578075151793081823795161404110811480269106846359964436993190293615381593756076515012514100289406862487971220020752628653845345780766244842386136740768474703009091552043945843632199999007070800871588289737701416015625","362903847358088423032098939589019598036593525722040887883164115981767777873860799955715587436566233010543937498922435963385091400670303956612881974450548904906949032005878241638546734597308786514086678561900713741746905742866635779432216761799371793260025549698865319760786921444505323758235164807966277024031605673481480590193724980659448692487108892154809490199414370023696404259691299614147712/74959603173756091922435708504751461448318819548943586676159545028063979695880930926805574951275602951047845904770828900645717477098988124553474616764040938121171776556999069351772286262529729056288451037717198273521810585868307402693261479298923209587143468206907278220909447483738730657438961435587752873879244136801168836767273934997417156543866722171766794171623224855358640156858606843576125","8521348154958613550574095745596657249924328336262127244827955886474742319277424381360677655239017583606851483318951440691757875270001283229585075137091617073509041644097526047127618954293881264113694362598157456878784814696577083997902588926421675843291157049153701100218784481406086810264243143337016042301806376864424632290226377881206765051896745/1757584673254145109614914862134217345456065873908262753169404848658913774363650863904627183104777337461445063704655164325930891269843669860409763569362863600932267319335889540453302785099532688264425988677082044905948179153286276609910158854349711054144968131934713419772852663860893241364433872853338630216232313607969790083448433666334742108176384","1802461420562646993856730082999823508145602238125054717836501201545920604020389361370931345491160549787411668288359013059160331370751496329806488246135100776263777863399096485894306306621852596694700845918608199329091852956315870664531614358379176680326508877329862713333336188556181470928613423972314983964578645688876556351433429494008513812136152576866650152623510296911708111085518974142728903424/371238439252064016214448115231139360835481920731625321084601566992497057371416121407293286027832357816257507287295719261141426130159269433199862002841433235955835172774430690352481806933860390015899973299268361513643524088242973968537595085600335021120523852420135081643310663869327371821064862449426404044951571585406092523478861879148545678639697679215289523234342337347529225543852787599016265125","88795280670112240977945082069219541902481768504536167808816453021962616596410396813316064685579412429940019071114917828928080181638058444302439626425155946562362550070187433083541414569447612195370911498321149367969974762244140788494955146280201020345849385865084095189982291190135293114489407801749533448443222584092575861096946605418438181411489276/18262596223069549313969288693970246663726147886364354584825624311486557881239003216971630599389642752648815377795018130449384513824927138566203714891090017787258920529990523519479383032564209629983810866231367438270859421572641494420831435563580050954867101292568399107965982704216434467243223964964535464624988344342084084237484262612100980519602625","752911409358158070688133336918078236438086521781731735123294741731669530734909563155732092406099003582749182967246236657021875488130304108082404134004381196925042617909108654109138702993903561036987511410396567636331465803949049946947888490287210013788802287247422993384874670368649616782837096233384279817294778916419067404863458318451722971117669642134894906235066332205740872938406767767019265664/154635332883086377656813458754577288834216641577439356891585125701020579768315520324293435008561626926046988056302745604248220408154454267643222328696606367409715369481567213640103076112146615938180089303294709009813772509602954514391675152597458428326644988225555987883250642389550531163153338541870029415077982539614784206119074702022117790679351778993541426110436276530890609137713909149169921875","15286089077439918584953144558775765002061832952090847117286473868694909713791678395221438112006475047633028543501632631679316850512797978594476229228325228403849089079675681042224057234415951253954044235099139983386056610384489202589484570852048157272551098909455253037561994944665563291526597323199530997923272894119350512727802414680772513760081360291/3135161418037836259442831302977219750614726139657718770206960776514822107155928800694375522572523712277389679035632531727155957120566617736817225541673148354829212969778664144907503411589126111888917929495106029890532891919001138770210977012708107496187227751496980000137223047079127096028939624830654227758737339725345681745847598157538483308068864000","17723482381737693269787076798246423310802126092500438681864673375704464394105734049099094818738115345706100191580982712146882034618103161268453808819471603805345990162762722549964406042295355916458624836894291267553138041035528315839108252422478610879301656207772491548742981990469454529537049123948604931661837539943536878260665617524824604291547373872716194154198824107266275716083848262625068958720/3630091565725887087605600771358216927099748013831912080380983545872077197366172619225751217619097657405660172801849926220948413919823038425519006413005998509677472226729295278652284861834178791332630676772284971762683579047508016687969040658592436230062049051143001484384767836353233324570686249824980508520186643477313941054900197268584495128610811273834192099099592687485176400539748616360799518357","39160514032490258389003214587901781721548011632821053230881239001436341012396166857515197251499460842954863342641015306304854226194551189224721257664420778416733889030680295206179109679627522113592373938602737416822981698362363553492610842201005420727750505681358595340127099855823746410663750133019743170700888375554918213182862789028531284364877435896/8009919337434786244380818390213546866794958389603666737562053423775386173149395943310276429895991903753441584557917565343673605019989336264748588735390182130334278887642569515202100870042209261561001627386525182096090194076839370589780431326097965428311786635366819094633651297179987340498215947144870164066409654464551017761658775207392803825996394875","18188388167811476762477659006849121912679763597132233588170406666718758511478154418948855160838212151370453213943784067796172102916618102024199200086478021533171984254799008541948973652219533819511807681148179806051835318645591102296256347927018942348574774821478499092054497390790734798143983945096982240517058861467440217558586822663985584775920517755909444876443211404222400335500608733284461685888/3715278241795087610941547133490827711133909145414878217965273061493740719983191775105550559905283733134189195190321643965858771461560130864714477448011225816210219450040558581571206711791272284197614810026220745160693898421068168630870850392739817340370146186703867097982858560347971281142766235850971837330222970900661653800041795020382847588362774677568059355238174402415384788280852059532958121625","46353430636874284402376008361176880938798775506236714098123916668545331718677407145199311191108199195405139575147933283523305343027297808443653460575141799729554209181454676876263582758919969948546918471128299522715691694855904535448703118221685887195383025133924852224568922999317583667985459047407473419196367812949579858081181660610155317911318937349/9455890179897829052705408931064120820559254220394152447502395298827357144081378513080398823188243663943177539817982481713456798757563952162598464929784370305696420245648035222083207596797327498500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","13607414211126412689435920170832779523235279308039712294681570127241403406455725064605210473923965685858012114332021572088551127762628892611459785625407107300355287623761046438724706918300976102581928643740596336865698485838431972050267114940079353996100620311097561405192365496385584164725035842307146351211183443267583872067352881387294766804298681841402861626441205037637282007810811602289501477350144/2772205947240095684743358245950494400934136973845543049938212403703005150954425087866758842625041409060217562878157900197951382737615822655863548356735553650755342108183641353142157728364469706919993519071329069805875834057743793434164720370026073143626055293058601124362130539040404491770346043977106988100969901297669523170508321703496903672333781306743488573086901583022550356345156457496396749797875","23264350093315690507131500726914401771633259602904894387312742275462601574788485574913195967854009886824436237740789910851843045306673524324611130536719802717912615609109285261163220007241492964833933975789257681755002054890453747803418465119567389315754801791950553304034666399677630030683759466627797123971742061866928213780452325847848901682792886840980/4733430508316851445525799359992627142007028326865116523033957869609125212251136452396410236930025876982265915963089597825393317909648054808274488356887197933393799241941120691826916741647173843634076299630884655997401370400734954098249519111198509015387869462198674657171808841005212058822254513429836457539629035675822719720295352508916898476137111981397","538960934807826161927564251064896730663918579817797131801326848839524373936888402762331254883505157846659830555799909822861853145306547699817986010353774500545305596630924815657016569444824389893996399550343022444937690798126189162954188680257730893424775303801562327757655350002001080811866451425665301674688928515041429654624970707803336800125648742168380676815769457467038849213225206824671025803392/109517448833211208909213522579666376007937648875042608355810687327424621469323788799169718267715808580775296460944943658428295481347915131091297305260674731651980547668762317138753250458639043477453950774629862540017034566407286963562574188172753764978963685535201028286359818524519980885827473904574840285411260037264057197155527809916623487144493019982419606308144576939532055057697567269576800542875","24451481554350251656598350124163983489544445991992661049829014268366250968046589127810466483349378560701491445658725080497078590986743512397927747885285095846398852574219367580068049729894667374214861939897557930527646930793431512683750733092448862551580494245486308114129295467976874843852138144539250235632985676953662288536669286915983261820949386845806781/4962240683851186225340479316959605207278948397833849899236383273145853045488131674290332609876751222112917095096150531825255611911377071887145019702433883343849119017643117746273523770961304609989779231048095665388209125939879595509516490230961558353074751312876252070889983946768175488341370453053495319823381943793679003096504200440997908071027962806272000","166591964685609920525429719961758335887941461052357297159523350448241484106515158310298216150030768812873781356326923214637847449893575074813991141092681107583183275003570804134461187213143832123628701876041315736048451374824101256980832991214945762266748755723551899001458245164317581617731332466039757786839492869211248064662857987111284518155462148044812626055842061283907063784492325693994911811072/33765943466859756347231737285768516240749714264564410814839966011490233598006227246396923594069488496368994857718734549787000213944990695920130591750377483911116845697231074543526982580529937081378303555262933800375576494067959129682770065443667091668104132884375840812635624862495548888467575848428463895756394050252457592540570490061561616914443009224917652440212112452400106121785938739776611328125","142464729519206642943985715465196065680101634264787375740459792619754842396453535646509170066091478069799080172299369994438836484938378991283020978342879057271045033903518255546705211647900945143546293360496661466657600494787228476009216508124736254967761901224547269496682078470378676865981855568197705507111970901389105723589666709580851611656838285777566736/28839643075889294346635430272525349651555039807615358795334663734940126053968249608601725991946342449660829847322517564370606746964714098508298705743689729306507554363954348780144675937510900983622836770223945538844314468550644543502501484521561567788992156632892028591678742014134130878101553633195551605796158103033794695984958987367799607407626319024034625","380457154857422076784416625436182734840012277442496600178664323821064977485271288502806124740204295811759917468598315932331219906040253463960961995849761235911145436552991677050565022181516596464968316292789048809559129516930574340710998611088996508613850407294743457197519091160170604426002924022923388338999324182261954685794522778833029950214443271526469607532589775916381786492089432407550224137344640/76922142291839859196033215395526448408989799722090330866256930898223012427332209054699494033511478050536463051459450844520020426942553107946282832072826069342120835351421637970462054707566481086202287686453371483126873188020538661871147778312986131920021929455276187425940666580158173676284545586944833678819622895550345083175685846944633982680908505900099388037050135210936852210263717185637166725605577","79999800708369666670693340813609265988600461251844239982904928629083975986385235816587497657678297663151298709076884516168798694292862559083730259839524968813932151813233366175091317046758260934357096757322369138747731224414176608247605314668045838769433811781490030635374856042786947109101585097035794969502111354126773165391577217071956928171336060247633607/16154850265413610119312596299635391433380319311682208755390341659152160578366244774029302281068833963848811596545791104919556346810193385001196395489740571188884873246131813864782581356887110499639544662322008824704830818136660544673293865921754569356583698951612797219776290835161780326945625621758204931298948625885081325268123344406261740843197232316416000","26517014004241498798848003208133111307300592620947908933072661812816683085261359696887064436611747292468717739609776825664344064024535028242737616786238200200498291226984541942836459188328346609549239724653950302145388877472274074665166631509490297630344351573245265440164082334092997307729007429218385933622623935704482371360985836659823269511115937443161532987660855490906546130131716829909388620539153152/5348257529530073524280989257577050878033239486885664777340947102417077875628238501791711336803418503616042922880218860266611595594400020206192599559925169589023339295256084579966533260861249529670141854632965231468533448709363477120437277477668173149958267956654411822360053335695956270719680086524322530514249891157439878407417971839744392044064720476417844056346174795601710447583861127956455406902139625","71197348290771978405602732839537012310626009318133570890482364371056186523989330157966045289127980687764218363064941391483781008265266963537623770685390148810455244349859354857421474277963009857011653865476081389968122418691934354122230780300833008753686234433642072919923583176333668289998661499146617277981691372057042930131717336250309680764289256080895092/14342680993892886303954853579883363225921109635079605392320944523109187641283117181461662846411912306480691901515655220490850586434947504504317080144378185989596578890875561336496479576651516902048606328604696610314441229321219627021610788398730173161473456954861916116391687748151443335513249810808309201830214153565966339609616397865465842187404632568359375","342401018754023891059352629509715357053454506037284788725127073168445189422181540408896452651232759821766616850264122591225331120588918865882061344322996688880669665450231982002597398732201789017495427566260651180470635467002453249479483900268320570004293679361696197905823690145326531180324429318916092471863347575533714871355651558610515931373080997536792242278529575700808878786732127630024064418468916608/68894647682461956089382461406499759613691148650738957016015844830333168307020284281532026442272618372290646283794122772122665531108484704223311663270836645399554940741928358317884620420886609705267248656765357348477857852684140561714900614303731786621656041881975328169543884661780531057279582784036689401206706069028229798913082362331334839997133771880514515972024899408556517159759907883793675672065360125","190286571838805495686895463752492174798162827967490343625540320679760700551286395956241059969689020885714190883323266375067607282890063444652926151862650426323339187596278760962390404656342309737428214493422028545912504503974763216230927196187743439226243880933947417760147785405444976177822143722569696182520826218120595298059020305548681823408268556482981325/38242608291912408815838081993045123864617058390583394828737640036167893859507494091864963383596867701436244007905770284939991912884465101575490548813894148831966132970730263562113961685364216989999844961688441914455435934703797359360780356482629495214859917249465567846934284121032247250332634283689409883499295469118485912489058982596725212975311140618764288","15345379701153714436938289567639102307887273898834051456693981514956329731572600026866162286097662958712922836383881840211072389867463987895894067288699955858337488812343674818565432780224654423872618380928462939482247900055572079914753652915184313685270722583926261499687728814560680092231526501970431280783177357735398580700300402036873780385926225005561766822479878280891130232036389707452005183370152749056/3080426623087819678602049171756961824196425548529619576972793653585089380165862889092832375934535464160425580449193072125955685099151500755278763306599307218302635233595329082702148677300945556130106197481236122437978375963261172524503625593066102601042060541617791008722569799735202779005407381267021641545644264334109052258081225159748043792288699674153722046659880085850980843460715080965607434114275256125","36443601662144279337033484452272105547257065463167427418525882851507989449375452076227652634440476502702584889057376829320548464677623038648843251719168810701744338735202853412651160681259533015293997501525430222870696235141468274274064390273214484922080219643095978640300874086585386991338440415203863901714217818222666715642467237183267303214471854472286478344/7307237990148312451155090506264642657872224684879860008436735430879314349554023096366846856470375025555139219961666754780864835035902856314981482268319886395881809659368275720375576152008289949085453326722156553603358879420820012964006978808113307340321824660484441618487292138631579616351777191144073820686595597986548374588839763719082323114663844043046087375","1575294930860663922843149113097927168024893739962464327016763741314068438447271326302129681931564068796631337571133444163024224071270063174829664848259482066723104251718808936762938249028582992557822551950212098797718627418782376027133576209718376784834456568694813577764300716139817031545408608110880973380162736536313173329973171844528083756524804574267826691156368696436273087171467254161930265910972517504/315498546654512047637461608750018349421492986465373840347519942494904200733840189483934245529561231604050629653992944140351106887747105945984325466452136415067807666316202346895657914393512001212656936450425268507235863153258769360296536050028695266363553141327896064944506216017933135251875087069031098099192325817395958019524956320840925176589616439477134480262100237057953933117460110224783420562744140625","7692057599553133417225997786980128299372439542315125030077404519679450372805989755158000864378924877036225189784045171045139667691524763609840822628706422918926410377185494048355128046783294954373197082851501927410350313585640237550107070936498164597231431242858771457898152684298047446530220873884022213114819556822050178579707210264243087257050468000092842761/1538814487241112760739561704846381585063002784795057066438330325566843108114787083741788078680861495340026117682606689156065008672344707615420501964123121620401073675430690541617930520947170306763541251152854304975131871537939618684186766168376514664494488691311397307418298556185724993104760692216619178358268934740746932420562664234738576394742559349407744000","15190836470550557926140012263310230378455340797095100474720776113765300081463960235506950799869073894127884189857505951314428810423734978025409205413789025720642609035117121385453856877706229778165533034683130064865256448444765902482146676668197546098809055341050873494446231793312407516463576380102073171090898973046611572020564659042146465345334273595086941562425006763960197801018796906114925005810069684480/3035556598829526968124942916297025416522606357010637652635799096498208643970273828496655227572100159414352020909846298817521082538898702393916708804775798552206401718323929157863173504795127180177622667376867235806208021329981136637175570409791442328468473111768140746895005561471574356889047981458002257872092408771959478275534098789982899056118498417649167444480913552548249005268380838457505944462494874581","2923754549090941424546974281011770689534961442264350984393235983189168024079617848190236639328676436485460311093391982825027512234467853098757486086492333410753919927528867817406389678461354257841007722472106464785557179844602277350411593959136520732862935740433163383885526249897183805981219416420390137516812715245569037561966929572448247077578419534651990827044/583599691615378545100950777601104007812792435102945248411439102112424251478512952087517463400054567832353967731887062349496616445419782499817548928078665212077449420216892583997505908858360011413290038645573504472422610780073975450391707084016931661068694024023083417126286468909117254531307085545768412513447197205482285022417611018126886491416133665625891075125","441922815213568908489589193556560586318864326425397702047965372289295962228254658331201274291697626694859414786292266008476137667843874780506886929181835469302142365772763129838217316953835831059616268288399119642314758261677639945004547833810080700127847214666763863338091523753898362699222880772298183760217731228628442782431573977490761665091005756534420789258276075174436091798475838370152192077494553263232/88113527373573049332749294663402406454524640221866407165839162576979477138694653404281889227416977618913249275712917582743426231744980461918772793673202077716234026090308791893409200158969108910565467273725064769890443408324386897017825489615600787634985397885230455168591240328585041836771921929567914891379235573982442311269392541694564675053636078990836491104116280492254795616055818375774141667319774630875","91197133767962483852278456285591810579974783077874307589555559715577599604626819245000672929518645004771085106770784762994476973842713035791487204122653245797126906189270204029735872508462106527240320932458036231707311992868347221176460407003487373754014365881209649632547685657666691589606571865740595829983849941049450471212387808617247938941417000965198123059467/18163679611214677813643455199979098261849405189805364986036911945012016248297645596270602508015864371788974684317239728239847888960155365342460843559658233069613218442910226128113196984801126248862273503232000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","733396724434554481470656964167233690851279923085197144879644750437402627936723531635898542414136943003236478432848965516925891956615111678444586384493883113385335463639674699443808084827715994137410743992130712903997815471369201406683862985677774155704267039224546352414417632475628136460919900347977754644214725932476856018335195927604771408949980634142255497812566866795799230501026066145434755838336990365184/145912495644159810313026420025053989609942265686388630266226856650796088768164358961644113076809511566125145395699271530802891523741636707532676065833327082092521989958971154798465784847092870457944857590623097781956884297103961713362268264159015928554707158239398721416218953003215109202771651993622244788505649098445109438104466256408060944298437033058380804126574878377874459371251056800895394904459469832875","167606423853658713615749101123336326908381619586838606922565378505211386185130407423587264776519589295420758009764678759213587906216543160801059029133457062067529468464636376639307690657945597847080706144898920305379653754920571797771178341550808041652360635584401789901525709166172283390177673009483341826911179861584213314395893323035527116283758445038413646757280/33310364848744488727470761889861069993071965180756187311178124887286133554324042422503263994717993129539448310743598138364172889305532401505890384806078790034557049074169245078416704866867380089103064821732673967120808611636618526737138435792818828990403374766228037003927569643972203993263329403469747342204808360947840103843317533210523853631711601450617095736473","22466735478643771803624909352181817912387732117378538284107485621001246177152644141853604633676939694208131243081227668237716194316732125445041260568403752325416203858329469477774720998849334961751541191761521224644520742691981372782009394826739249604257098248751626957528543558542443122470657230835176462612530464044652140581367666271771882198747182114685116336512604038833327707163107207664705120728068987996560512/4460342260599110071819142535903990817893424192972341872394014748315090430999224107274777695306032783105944721337053156074851240201179902835353097683269298594190456286888326067932777720561181760369783486872666974623910515795208353605697065447942804414120030678603538761538385793829787734830129764152263691296719726909633580318897787729004972323599773548689272008712427926734258913271101899780538635213826239542884125","1972862002066252798837977155272535342727415329632252213508267781390870646909686724955861608046325765650407340102472833428905279473185818898693854344138403744757857928883601637909604082588338869612221777263582365745419719805587946558326048087138197694016224613118304623864709183681172362693106460535117459192992832969130895829916210933710820035479169562970982784580861/391262854245936198649509275719624152305206807261382621390946060636032376057385723427601113233050260359684153963520782285097664628279596618521963444574543409076428660874564026651742234728997339844161514273669735686516761239076529088145208958938384732800586298943281728435207452253170935715239392534815683367114290676180839217919539381651841151674859715992309727232000","25408691426286653276004556426513401767718328640048945917745783225459709487487356095164164652218100925888847689099153320777389381851598236046402124684511968385325107497047025485302333503075085562533472482645023963717347867696861885363417595298751490212495932766872748125111115039311507374363000062513977436921772096443948159289707996749061007112458126301618769295162649600673247799961118662602756889448152517364992/5033870770817104909025512331238419776407331281944565644457345507262881100618908405924951559853352841154730802006750688581603270849880756026262217651685813584900300357685874044482329601894134443542753690048962260914642678445058891387041919581376195543193199307524572671344323361282633828144708683536721118910549933336800461248338059209853766305058943888965279863852107507075916981165164543199352920055389404296875","616565940481577765011174617619124841631603944267256178093555235591208387588894068005162766513720546626399308168923904625210748051788652328072241494243040185611373035059619136712559505023703153194815611268503291295059648269772663939137446253437248541496631852986499688052678961495116210133458596866684413931188348798244969797973846568160999564540652111599082181871436/122025682149627484528651507368051367620578469392233875493556828623437869650284356703295836998178256875766319508797903923638967073687991229708051285605187358616531926112736402511567721889845693991963610192161413692928378708223712791930113386840109729368772998347036090902364801014045328348830748307179590755723160142468563977011700764517880467116766150322736003147125","979882056834583241477188686550561625289337025747787132773853690143359657519481397575561812727394470125172272246774578404543257210124412718725081536309818383310896102958167337333430555168671327992395916735022711297435263157670501117734412587691271084981140167017421900852550822579410636184333142944411060788723653596377015359036101170054828623669169047118551010102258802465554033173968468183492058271365801755986560/193732066620504775981759812703028757608600125742477178751189607602983198559778039141192492589734277739017909889924488699372940787977794555519474807920198944109549023547259912324279741006975129518191081373554817584214941629021088206977532599055014150433581544599721903881284581257812850697423350805715586436114842183295730680490110793225514602133304729484547181740290534056445482186430729398701311563285494964645419","1138059441890428903336718712159907364975959482163004276901676063186939296217569849990951930955270849692775077813359573394435924934540269310629731801376134549169322946310756738187834128956671195358413024062230774111935109203207768898525882417078119314003162592087920755572050993355843681931139257303484526223461840939880759908449181135029327442039666513325916729112853/224777393704985303260433439401503507705148576727364388720387174977154204629336985298082893443205223017966145098064861566754244624732671470935725326043491911142467178027013112527668183783450932992534517827863293825061296257420183669383719043873666284378647952385401303733274771042385666436214517205678674213118374889121542369996042313879258622144464565403138392064000","614262617634904509410555695398092190166323289787703954329113412647342230855826568873946233136303566178604275296873234926652080462259552775254755109931312516616838091852915397846984381183732773411263828600108443070778861986849272794442105107285234729077818614332155890946804257724112143631642663084660012362691100872465148864413343598067567142977134846266425075195546265101720326272502009234689388355365794889444257557504/121200854655310345878069155190734381476914416893031941761756379148622591310152793328910334357724762079139509813381997287954319983165971628429295803162563856219211627796200599196263868781937234015821367575512548522790158101892507996780675863234181700253545912643548466256938936835469646114659598727592390628209362096738343417775009361678599075671154405137663077798419897932404104579113056038271753988669813988076515476125","106893445531995430131837569895703697604978445859412739331042151546083234373443601923983714252801103551874986033841637079479794895452077803182698291822629713500021995241940133037200268381793282318691568234728329378829301282121562652452936297422136961147432559766896143081059518238234777055931999714973999553456547746825617168005650221542417216291412324174772893635832/21070287546583154895102927029203125577385528350171457634203261197137238923923245382493868134869009844094435068284335909266152042903157700510534904847257436666980671067329084409346149729385625108233234542133838924281113454526471855573271066865534480974484196644173270141056470857666632902827625475719738076524047736123182255306429677688129231682978570461273193359375","1112742798776748551928744983308584493817112400536084744850969025063360679785378789764875076529575583792571198510306186417773101346425704969671256564494135750783642910394213727189639661184379341961737135764570942961692159177189753139209638929302928699705042832922774012622017270172331722295881412111812933593370743210214549038212395941675257558442878012136484052827439007483777859391215222647499741572327725689840850048/219121905514652575155579185322367175400669386131891843382447432851122462422992147756333729893028362013318264155489537138133372703295804002840920402482110260590055749843170064921843460498824128274420925357547023876488939786863662801268798987685503391058250902634999352652063668663245829496836853509616873246554292796823779397317819134891873583857621623143253788854530146303641400986028503534408870194989478421253057625","983995170259637497940121707857673268620603982844439610076334749792119502557380361624096960070148627663305171311646851566811683351232268240169848810658089698606409195744471343416197434926513684882439596141368794175162315633192028977211909698595778839497844847281262559899914504080092844816319298286511436690429175757804604673752838786852277255064434365401871903307643705/193579499709739777577893639665643417521924510242119561765932078835121983190401762561436208758210519231103767232899529457440602166918701550386152070813526760823513884391055054076485295945972185402977095815609448651316824455250005505410192101148149284756928250258632031981439345164037318129987999546683113483700660879431801728391911161900686707231543216283304182063038464","30691013076836380319652884848585431917439358375118437035944950498156836885409110087616602043242747413728866747975631727566613593257623099549583001362246649928075859944695060947434885707102684568632559339383409378997568182445019183928058902445738702610436187907199482604867148445903921474846103586253320950728989228898324829144701782792767763794895137313050381112872972806712570559942583906619373159053654481250809168128/6031936190594376585238407905469035598668211679521553144958053099463931217856780171872253258738635531385711702176347575597387389685526098889278278029314982721284691198967204664771178761416891317672705719303088746953644978471289001577698554025410820041497108311270431130911021653860874238212040640737171103823631718483572464361276703378587106311153455557896527384426327053165214814954154328483257657424873929502112904625","33633002641218571027682690377239300567277297301791434890431645909447040830457253186262970747405514897340315490970846553666201190386457221846694126637998462873786334837901001833771510353365825087187582807843940479192544772559118293851131234910638705258664901225494129023244916125545283621607920983287799648992632814461828998517949449887522866259724675318233522060729654796/6603800575190864815125307817934327053530311915572323544225173935830559756077637251538096164499112411672913910767032482188570876526606118068929913515497400397562722669603861813453418621246538114872330536044519242663538662076583511078523573320035084744399535581216815034837553165853576616422592790103728141443697362408727056813977234078214386771115586436985105038873998875","9090550743395453237608373761422705922989356346696677314277463900103283296889488490217663400349361962695279888433677856471792856853109469433355422802663947305503479561493033851081993247556828544308258821557994512133708656174864544457143793106703578476914924328960109390350040954158797845288786321215010324565010420734044059968931558099077932776525974187717655105951506223649947806568984848883258144616897526257038550656/1783219994432430133950472014582130883873515063182143523712063859964133099770763874744121895885645346884371273930727450069430704145915261127061538288702855011220545530326588799412076879985026006593893648911637986337776174555198865379578424838210466703683642106934154603710587408512357351455891557594977191641529451749437270208258072920514602243985184744955476557012910446023911358037761232253615162335336208343505859375","396226087129511787616470716244996965529391571019620342657409150252952330537366537352182763477820160355931003174946109480036915624974500187179367618457008802667089004678925595775249725629495848146669773574395699032785024522882892752987825063933573399691764866816284097232869198405981830106568826923407996367321353003569052419999880089180418759265274331299787468134974811/77651132902382550540201641628906752945078964002822585000619340261128555048628863996784740469908853602590877726845475670110127527874088625214912598995012971630852593597027649154487264595100300180591016581254965295280089902497540043916128232871685159131211213497239568483141031137909208031392464815187505714066235868748950184065923236670418822911614780061752905170944000","1288523130900767412477856952035690867153496584747510253984686336382980221603917538996138294311274357713893956725672062832264871415025750136690143411884111580335458539824573239771267043414225271729141508235839982033182605445173050590151912297720800168687369852280323356691345317649445843078291369394324862039143247087442309135074453265658730028145500871559458519282433012494054724678302957276371418936282902434203225600/252284450515080370603949213084529993395050575951188044032908270470514999880554862449223347761507020354321422785760279154913310488296485989979706208254206974075438570521939826124860483842758137231373182496438568202110337751291106165654945352183167578675508602832478752400011567482434301614269579368882858973850914513870297071866544875650189106576672289734326492492059816669288907018095832842249738081022227281715919357","559506782175368748187145067236900803925823792088293851453005882621173124590368101213652371965740365119375069053747415415684193092607523211636912074219215053809881814859129515591479780669511533619258835199715146655774919418434080807837587396115955105126806762961292429904380132116986984435528307613054828929294602185927322238461491059740342387266084431988727321711184308176/109446188216864405154936682374609448082436347600301765944233278303643744736544109262794383069197271409398615846380701459882784547857821831816863216080069944818453908760476475874319791512782445408136169878207358663250499628002971644430164185578966399908622640732411885568638054229180673755690889471388585521113862492432946110902070139679164884208988489955874131206343597375","365842109776085256207829452385781129402656684569922320812625438296958174120084800064669048017227033185969596458778213306152397766619692644694641677223213185977626940193107608138827771259334379895020377700759789774994800008933137569543592829220611543060189849601828342989023692876182148818363689293009174358168826340010491728715549904988196347316703985894355217235339548078187164176255405596310602921647203428200269666176/71497266937783826306774367225149833789788300609530680399994804704196212252148324552193149332755057982662844988588678159610516634667597707204818296457616315484973288944637139939912166034691155272078609876888919170894915224022982785138928008133003473320018151370486895637936102520353951511525996197267572355782608352075229547764732602557133494648237258900273354364050662921889937355682486287799239363976556848320046933875","59378684894605773397070783936113244261297966863668546282887298999811950599772732377979382620766180662159460666220894896896564357533604962977968843474062092083279165837424210591042655271577974272394203253875965589611493384384257117088518521598379301169916060951350650621757237206805037261878212424267780312614942173870651684587166691539909068452932891649554575072205080763/11593916877920131260484148322810317629326850763057953025674154928920977965095141485536566217873796019006709247938019404840440511433467040918770165456925609124166970862430104329357419669175323763143377917913760028500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","440706629842402075137926797732405268015915199334341565218443748798479563505125605478061664327658137598204192554352688830679475840386882350034150077506804799859586772904929402683276898098601814091430598259347980573084686932949502809068565420937301632494387691284902026088950093888426872222813857928092871267130505744095697172494119689779474840037266295586359244899477781345249657455186847452249040895151288114085352974933708544/85971876318334010542313048056773419567285701852816309711738644074302467763075671531248793080425349570584102078764464196653843973936119037322000695949209283327606280423406302517302874806092835694196353778161663338667091195199032831587897410329509487165187753418615356836636352319310103639079123698118997500068644500893282438137614420288839230827096109835206605385673197123994357393257304049093683934224826006704198171592304125","13220371178312284248107863849287558696210741535280184003301555188086761767176560823174196915070378763091889333203635784037294769747641959860810039816533609140662043493962707445564057197150603226797446933532133956054671103942520142568674339411250001585991743608723150284270101326419464088290151483823061613403673956918458456165552482913079283537536214967294211244361353060/2576683013797055224377707713704899315377379548630511095136568220145808780162671473907260623503552385384482723173913562423316997528913651044277418227616447815609873991028073011738113927961824632868956802271260292075825561646156680740323686126811928372672670917332613490241615850953660246271541592056143611581223295045062157404996958100136358649109693659623847024011265147","1538372578072246705266078247950089219881197139399081643650271348770110178217959856819170325400476655944115553238940541695152110949081675985299189913515975242840473616169775880272489805123124548256666658584129873597192213080038937409046114908719298170078476325423466734429870048697383304265342125425087105698152643145531760853127801123272389134514333752173173161562273487752064850461823726948588221913540799816489566883798912/299566102446745552813544808169323270315327122249327394279467999308669285416179486075255023523726449428151807672528368606071047812907935426406886253284580296349349558797128593446316786243666290649442956134448480598303527795996222703837663605600624271807461605295956674925277658331760000117761013381199880905748188151556184620779667670278558839116983636972680749836497346863752662521197700717702790359162307617024566689271625","281696937222363685333688097915539146272117417024070728031063821781398985795813333650547982965341298894634762289669256129805545549280355643122501181852136332529515756074502902204877664395456278205770206019663082511098956468724829475220996427130295010430751942126263620206886404244432409164651524408198286831329682605959881993845189585640874220032515465014097345759490750307207/54806274927935495596891312029173862473687610099325998583092091915101265393157631244775387832621032230434007486602816972765210205596482942091518459849775458089575743699797096697542306049628939919466378189656065461708686421130956996965004776108499273871055615413566043083634090083096967567965373203683231171594922347812966905149873265654962896456451681332216735396249206784000","228506238533410805238253122961471637501498406104430046727793420497895852412513560203475440156216063574654372726194215013407325207763369075250819386897086702757125418327084312933061738392406321003231853349865003322697360659712771167066453430309997639548320673279964210730701373707765051246595806673865646607841876463608039111252607452843372970797479959213447237540830563469297144446069689149549515457318899981763489792/44418759813188470246596822974281932219088697005123285598909329328419879212164564561558656547678211265529803086702843380128457744445765859393426675396393053094588240457569380155526179040891009717323059641035189017918495485630657360525410506453554255734005459614858972904374739673834145083512160883402151636664208253116362089211658645312778404886460203600762546810897889629330022309705583438699250109493732452392578125","2396110297187570506257836426251930521245117960980667897194680897478996322590925380310917400763581787981992131769075961259393685331523600287377841990678117113566991100720996059187144934569703045966210306282348527729533806882408323961336166190162075154579344185244957673138372347997134388801085788353482276257401005734929059700346687783400772331280644647089520646562669857652648/465370154262863030800729180763091967573522779260407615567563274096037297593764955820626213827962697601334935773802201919483657310282236100250543992334865461800976838791035335861420892967699843608855185710753433852279737724446294443337363478679601049432404435672469098850676302728116369979460222148206944323730586138087862719386327396334468302608499235112520318322763857676375","1188272888075247520453568790651819187486389546755745961952033150576243575862120569399808467067800830890874391487822723879717525264875722720416173276963170672622214121308038530968291758445510982186014289745026439477197148445087614813262170975056866881909056450023324743409114115141145340480846088869807540798073417035168139476153897066325127540609756310068558610112731607522096096821938163134080426356894899245575410494080/230586762395914863625709048789913840511134004337945700368117795195769576856434588144361459740833007125516905017415184787078710001969815416281381427387949263792200577791644278234661952852149216540491852757174842146376788280677956350901082838474705227642420261641783722891948710833898248566893322144435457967452449965772543077421407816225704952270697016152452032506898311260979594550143344971416786595888053149375287120733","1072184299258468249004114536023934869518152618369895613271618698908405514630154819453979477077738526673716264830106745031385951736108376866253955319711026042389282009348594845497252059906901748860111986811345742998968284077119165082435598381810306691078037018432766116865792677955520465319184311529667642995217214507658693259694586107847099911341219913576038605872218680562047/207882129535607118520818565811162643811811563516006836924341123976848022970024793004700710992938987476728640943834012473687892481059618823520721737479364352887178017866425027953255856440099446112508663603319745066750522936408781591578321031173620445865113295407603090322283539974563690157418931060565698315406021569491751612761888641141446406531645379264720684248398299136000","158094023904374464057702010126993231151433474361820266584020400101533651587072432728050776506672527718975042616651177034635188178967462982926261516748842073587981953038445977514446838733557926696939591069712397947055261777416704028506441173540338327591514650398349069348381309688677335132100441905603664282735310299686268721634369502296867409514777359935022301425165750780988231639828675424239931533849896744198012747670272/30626384366513923671063955469537776291182594080083494737341604579575446319190916924682809546024369330706012653799783122328775875399363759308193432327358837772825609356553955350401725689682838701996446404559005896479618311357573203081153855961484398360670837599853294627153740224543175497655414585918231215639906924313779933211774291565425360415684556655021031131349317390382320286092667852173815259422737956767922154798375","12216278924286401897470540169822542417611356797676160128176706721343511598951866107858729405615631246003458062949723290192242594609994613705183460814797527214549142043573863947658832694800184691222426521703728394203722420336773310908687071670107794543022567943478843065246011544888390757810534211554666736239506503613750756246364621509359804902243487113673014588325806249988332/2364584127734680580481708368927921125934330000162935118371174269642831409084634375654239735054363928748162229294829526339927907778510530444646754603322373712788147193691037688552857183116332292048731726305451516954679277320777955342295564000586923227775208580772868590742136150431152495718132142742153643081187691849828217592954519485869135930755646768375299870967864990234375","578939195017447864385837341975558679292903716580114421030538728778491606282153588930983966100514147976321305616196463174070345884292672842497715966933722088536619333912687108737657068701352918582656105418491672377271304970407730786932913490869797471081081431072836814581099271832696990064828717287258860166842791984158634684078346453202928137987930328826212011774670396356151265781053547412633310327737900786639842674288716416/111966291649651600701875186827360807558960817589719096407887999108024557254221008849510152469119211567152616745769256123968832250104006560061907741567034087109512483357851919402017950812795426393415409198268246337542639470834168040295134130657073201020340432236723824670803498949071870597039309004562024033656488150406105175401372709011082725359382691270659245312133919518760328422827067578306005644825927050994860723405473375","8041514821545833865350873212853873042112343327573364523948780030849543753072688526717886590013028227714585965095216381829914996539132359247488639692828639170075726301411777307168737667077730792892326979446426349813642680537699905651125068091362135055902152994216233622733424128982011248923051410141033146604688083721413402395290842738021365861670415833356403364696759583009635/1553937833499559104910551811592138833189892464446761247731330672284191313590708439680460540329836344767557599746234213006493842842879398684745864919973051635127080738612248150108793397855113122368507483429209127035263504194847798809612278864438287815470711036548695032421148125849669175729331459149833945183228413961985381338162155596008680906676498435954178226973272371625984","12059659399309169167301353842123191409306995788633965680414620302285606896146667751472818541537183787935352700725982053536032930866708413010971856856768384974849695774437178790890015242323873769697407411558706626105140596160049735605389301414460825674631122462760014451298494875244754354054447697502521388381253293175367558014453865905104467382184997528879171136492277222127399012368677604910497789360212571238146627048080568400384/2328494054002703067219004484782931471919751585969487160602269605916676223315055450845942763690581877771159615428854802721943114463834992106300185328876910271612375509166975628540839858771078495267566008071532876816826751069408153323840515037497664871689085370699991860738368371510578076683395101062439493831773194498579620513073693022191702398601471237166387045790480861932005012807234071429628725981935147069738988682858417182625","683009426705008850682549700382901603742691705123356866338951397347368059105140826655486518416578697931244347554322654428162554903861783227680935341690740579867651545205562690172425016836559678937794312287639193745517811234257062356826622207475918293015140472942579713388671782202262396642735640315948612572908444501108579457520714632371056288874351015666995549139003946314085696/131769214246522869780429817236150406548549044658474416909806179734873399109656411633488099249198882165279745627038984487365589625562901914030850178330133080409420340227179447548044572594184601425691821617928130423410997853384425373999967759499571890326740433081063424903098252502791477854302204200941376983295622430177445507316706609802292121282957519571162158620971952084486375","1418116259749091420309271913909337143756589314597557128553117870573928055109322864794169592355058370891251425125187770724828108988587888087023982451205475980371440423992838481547236638456717520835668859093413956339261802305597694403381021863258753441889536361061407579332570493634254542013337999844407181346815549594836374497512447969751514466481466717590255369810506813543577735080228718660747940956248427356785784199073569408/273368882980516556922532339653303822104510203916024760371844491705599093435133738774975538364241630079468712981056336655766117378160822393876348755370711942273876284944422610974149712212944211513462921649872232656449940987552227525504529710373144228818606127541937831103642415534318303187393593236209298242574677293352798419428712873685798636474667204083938875672934235816396371477146089168375198141802684403955936431884765625","546411077581845999248238069684194831621691193366466972898628141511422317954477211865167402284211971296286346492698354214043840080181702652132835681239302798339667835439189275457116051279366194551632712819028177402221815140045210690908631767786711675029194359998826252332434573121740830827417293557234891406021102083555472155479148332697839972702631641910213821827820374586459319/105246945889799140338072754365901705544530661781295362563214285953881890233987516230568663143342952799036341701952267011236663118111226623815975847494372076420199418712941018288738590264475520229651370015377608638075866459684692488079223686296541020897904588347083045723167762682959422858996673894180805702299907478685374065593161226849447131100462022089783265346597553176576000","2398330640958841474772606439916070050977544535580605737383995160447105736276950196885906408317628083110923322157113892928963237845914017845444295040924101784423382681801754191301860383927129006953354739240926643562987838836997453985855576402628166875869041032631651591871962852884189548538272285387092843044669499688035134181859376665409767886188304314888753894905317929877238322615838524354191263502347881033855441181420399360/461588070868590122892265681879734295007029130965626060552783760068897000195207878227714842617470320231527222074701444349530952699708435668339712860464533455345665068841333232359698449088497137068713309811942968433868609329301082001752617420002377892756821532220676085014874112083615054550278903960627185675459015343606391094523511117705747842645927349130302549554534056269331809016770715819934970200483161548527932617036185253","6041015879424725383006424536130409209607854044642113747266098198777011981328765528361630516108680392500990580908509403483891763219659726090675140672989657743882183951954294745396417829943469201306594018454995862321821016087416840247422350906412007336103086620396467456181771583200365740253389107968122850063607085957109965406634738740996318415514360956028575560979203447735121436/1161752799109428422288020947061281540989708937450568100764830251908850596717606701047413407636907934320789870175907792017513896999208892282137299070761467096211814586909598705615312819596495636017728313513520193786266452836805291464826226833593878504804389728477191170027729963773716267868284479768397603444919008915279522376004326398403851684761808785381609370767169521034383625","13240077436443988749179508462267267187169441948722358165090554769250505713747934643200804819418670147225695324432684266924694524337920816452346599774452681831320005286326986675907899608537972384924882996757503264622991355949039882526389342174307168805166215838138277557052303430492669193939212362638263582899713198716541723383138016564027766560215944409353427176135895982596327685665844815618402881202645610620284792793420780517248/2544223084468158291883698813309541801455311468982232546872485444308211415529998472787377800559884210837213042932180479090277285630234238711851480232520137856848809986631784843528381778520727465146661792797924458540957133423665746229799675650290296217658444899605236550972043549278128087645211909479009099766619355677984218929672461506691980442071860591767266913041147587815452007726513853820116629482732060593116624596368806566625","1953999166296955830935495158735359200362904181792947794529339487489730042568305997099959302322956898299616194932283060554261566410988618045107398092345476532371402134206635235570281738377188438407703089325315446371127042537576093536896282955524842632708645655481028161471313608974238110718242273935956977555610147714316158486553633871312187084618154014921190595222799283957140353/375191165084882521037046014569185165885459082629136124177286500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"];if(t[e])return s0.quick.apply(null,t[e].split("/"));e=new s0(e);for(var n=new s0(0),r=e.subtract(new s0(1)),i=e.add(new s0(1)),s=0;s<80;s++)var o=new s0(2*s+1),a=r0.bigpow(r.divide(i),o),o=o.clone().invert().multiply(a),n=n.add(o);return n.multiply(new s0(2))},factorial:function(e){var t=e%1==0;if(t&&e<0)return NaN;if(!t)return r0.gamma(e+1);for(var n=1,r=2;r<=e;r++)n*=r;return n},dfactorial:function(e){if(e0(e)){var t=e%2==0,n=t?e/2:(e+1)/2,r=new s0(1);if(t)for(var i=1;i<=n;i++)r=r.multiply(new s0(2).multiply(new s0(i)));else for(i=1;i<=n;i++)r=r.multiply(new s0(2).multiply(new s0(i)).subtract(new s0(1)))}else r=Math.pow(2,(1+2*e-Math.cos(Math.PI*e))/4)*Math.pow(Math.PI,(Math.cos(Math.PI*e)-1)/4)*r0.gamma(1+e/2);return r},GCD:function(){for(var e=w([].slice.call(arguments).map(function(e){return Math.abs(e)})).sort(),t=Math.abs(e.shift()),n=e.length;0<n--;)for(var r=Math.abs(e.shift());;){if(0===(t%=r)){t=r;break}if(0===(r%=t))break}return t},QGCD:function(){for(var e=[].slice.call(arguments),t=e[0],n=1;n<e.length;n++){var r=e[n],i=t.isNegative()&&r.isNegative()?-1:1,t=r.gcd(t);i<0&&t.negate()}return t},LCM:function(e,t){return e*t/r0.GCD(e,t)},pow:function(e,t){return e<0&&Math.abs(t)<1?1/t%2==0?NaN:-Math.pow(Math.abs(e),t):Math.pow(e,t)},factor:function(e){e=Number(e);var t,n=Math.sign(e),r=(e=Math.abs(e),r0.ifactor(e)),i=new o0;for(t in i.symbols={},i.group=Z,r){var s=new o0(1);s.group=V,s.value=t,s.power=new o0(r[t]),i.symbols[t]=s}return i.updateHash(),1===e&&(i=new o0(e)),n<0&&i.negate(),i},sfactor:function(e,t){t=t||{};for(var n=Math.floor(Math.sqrt(e)),r=(c0[c0.length-1]<n&&e<1e6&&C(n),c0.length),i=0;i<r;i++)for(var s=c0[i];e%s==0;)e/=s,t[s]=(t[s]||0)+1;return 1<e&&(t[e]=1),t},ifactor:function(a){var t=new S(a);if("0"===(a=String(a)))return{0:1};var e=(a=new S(a)).sign?-1:1,n=(a=a.abs(),{});if(a.lt("65536"))n=r0.sfactor(a,n);else{var r=function(e){e.isPrime()?n[e]=(n[e]||0)+1:n=r0.sfactor(e,n)};try{for(var u=0;!a.abs().equals(1);){if(a.isPrime()){r(a);break}var i=function e(t){for(var n=new S(t),r=2,i=new S(t),s=new S(1);s.equals(1);){for(var o=0;o<=r&&s.equals(1);o++){if(1e3<u++)throw new Error("stopping");i=i.pow(2).add(1).mod(a),s=S.gcd(i.minus(n).abs(),a)}r*=2,n=i}return s.equals(a)?e(t+1):s}(2);r(i),a=a.divide(i)}}catch(e){if("timeout"===e.message)throw e;n={},r(t)}}return-1==e&&(t=g(P(n)),n["-"+t]=n[t],delete n[t]),n},boxfactor:function(e,t){t=t||200;for(var n,r,i=Math.floor(5/12*e),s=0,o=!1;n=Math.floor(e/i),0!=(r=e%i);){if(o)return[e,1];i=Math.max(r,i-r),o=t<++s}return[n,i,s]},fib:function(e){for(var t=Math.sign(e),n=(e=Math.abs(e),t=t0(e)?t:Math.abs(t),0),r=1,i=1,s=2;s<=e;s++)i=n+r,n=r,r=i;return i*t},mod:function(e,t){return e%t},integer_part:function(e){return Math.sign(e)*Math.floor(Math.abs(e))},simpson:function(e,t,n,r){for(var i=function(e,t,n){var r=e(t);return r=isNaN(r)?e(1===n?t+1e-12:t-1e-12):r},s=(r=r||1e-4,Math.abs(Math.floor((n-t)/r))),o=(s%2!=0&&s++,(n-t)/s),a=i(e,t,1),u=!1,l=t+o,c=1;c<s;c++)a+=(u?2:4)*i(e,l,1),u=!u,l+=o;return(a+i(e,l,2))*(o/3)},num_integrate:function(t,n,r,e,i){if(i<0)throw new Error("max depth cannot be negative");function s(e,t,n,r,i){var s={maxDepthCount:0,nanEncountered:!1},o=(void 0===r&&(r=1e-9),void 0===i&&(i=45),e(t)),a=e(.5*(t+n)),u=e(n),e=function e(t,n,r,i,s,o,a,u,l,c,p){if(p.nanEncountered)return NaN;var f,h,m,g=r-n,d=t(n+.25*g),v=t(r-.25*g);if(isNaN(d))p.nanEncountered=!0;else if(isNaN(v))p.nanEncountered=!0;else if(a=((m=(f=g*(i+4*d+s)/12)+(h=g*(s+4*v+o)/12))-a)/15,!(p.maxDepthCount>1e3*l))return l<c?(p.maxDepthCount++,m+a):Math.abs(a)<u?m+a:(a=e(t,n,m=n+.5*g,i,d,s,f,.5*u,l,c+1,p),isNaN(a)||(n=e(t,m,r,s,v,o,h,.5*u,l,c+1,p),isNaN(n))?(p.nanEncountered=!0,NaN):a+n)}(e,t,n,o,a,u,(o+4*a+u)*(n-t)/6,r,i,1,s);if(0<s.maxDepthCount&&w0("integrate-adaptive-simpson: Warning: maximum recursion depth ("+i+") reached "+s.maxDepthCount+" times"),s.nanEncountered)throw new Error("Function does not converge over interval!");return e}var o;try{o=s(t,n,r,e,i)}catch(e){if("timeout"===e.message)throw e;return r0.simpson(t,n,r)}return U0(o,12)},Ci:function(e){for(var t=0,n=1;n<20;n++){var r=2*n;t+=Math.pow(-1,n)*Math.pow(e,r)/(r*r0.factorial(r))}return Math.log(e)+.5772156649015329+t},Si:function(e){for(var t=0,n=0;n<20;n++){var r=2*n;t+=Math.pow(-1,n)*Math.pow(e,1+r)/((1+r)*r0.factorial(1+r))}return t},Ei:function(e){if(0===Number(e))return-1/0;for(var t=0,n=1;n<30;n++)t+=Math.pow(e,n)/(n*r0.factorial(n));return.5772156649015329+Math.abs(Math.log(e))+t},Shi:function(e){for(var t,n,r=0,i=0;i<30;i++)n=1+(t=2*i),r+=Math.pow(e,n)/(n*n*r0.factorial(t));return r},Chi:function(e){var t=function(e){return(Math.cosh(e)-1)/e};return Math.log(e)+.5772156649015329+r0.num_integrate(t,.002,e,.001)},Li:function(e){return r0.Ei(r0.bigLog(e))},gamma_incomplete:function(e,t){for(var n=e-1,r=0,t=t||0,i=0;i<n;i++)r+=Math.pow(t,i)/r0.factorial(i);return r0.factorial(n)*Math.exp(-t)*r},step:function(e){return 0<e?1:e<0?0:.5},rect:function(e){return.5===(e=Math.abs(e))?e:.5<e?0:1},sinc:function(e){return e.equals(0)?1:Math.sin(e)/e},tri:function(e){return 1<=(e=Math.abs(e))?0:1-e},nthroot:function(e,t){if(e instanceof s0||(e=new s0(e.toString())),(t=t instanceof s0?t:new s0(t.toString())).equals(1))return e;var n=e.divide(new s0(2)),r=new s0(1e-15),i=t.clone().invert(),s=t.subtract(new s0(1));do{var o=r0.bigpow(n,s),o=i.multiply(e.divide(o).subtract(n)).toDecimal(25),a=s0.create(o);if(u)break;var n=n.add(a),o=a.toDecimal(),u=!!l&&l===o,l=o}while(a.abs().gte(r));return n},sqrt:function(e){e instanceof s0||(e=new s0(e));var t,n,r,i=0,s=!1,o=new s0(1e-20),a=e.divide(new s0(2));do{if(1e3<i)throw new Error("Unable to calculate square root for "+e)}while(a=a.add(e.divide(a)).divide(new s0(2)),a=new s0(a.decimal(30)),t=e.subtract(a.multiply(a)),r=!!n&&n.equals(t),(t.clone().abs().lessThan(o)||r)&&(s=!0),n=t,i++,!s);return a}};function i0(e,m,t,n){var r="hash"===m,g=void 0,i=r?void 0:m,s="decimal"===i||"decimals"===i;function o(e){switch(m){case"decimals":case"decimal":return g=g||function(e){return!1},e.valueOf();case"recurring":g=g||function(e){return-1!==e.indexOf("'")};var t=e.toString();if(0===(f=/^-?\d+(?:\/\d+)?$/.exec(t)).length)return t;var n=f[0].split("/"),r=!1,i=Number(n[0]);i<0&&(i=-i,r=!0);var s=(s=Number(n[1]))||1,o=10*(i-(h=Math.floor(i/s))*s);for(h=h.toString()+".";o&&o<s;)o*=10,h+="0";for(var a="",u=[],l=0;;){if(void 0!==u[o])return(r?"-":"")+(h+a.slice(0,u[o])+"'"+a.slice(u[o])+"'").replace("'0'","").replace(/\.$/,"");var c=Math.floor(o/s),p=o-c*s;u[o]=l,a+=c.toString(),l+=1,o=10*p}case"mixed":g=g||function(e){return-1!==e.indexOf("/")};var f,h,t=e.toString();return 0===(f=/^-?\d+(?:\/\d+)?$/.exec(t)).length?t:(n=f[0].split("/"),i=new S(n[0]),(t=new S(n[1])).equals(0)&&(t=new S(1)),h=(f=i.divmod(t)).quotient,i=f.remainder,t="-"===n[0][0]||h.equals(0)||i.equals(0)?"":"+",(h.equals(0)?"":h.toString())+t+(i.equals(0)?"":i.toString()+"/"+n[1]));case"scientific":return g=g||function(e){return!1},new N(e.valueOf()).toString(F.SCIENTIFIC_MAX_DECIMAL_PLACES);default:return g=g||function(e){return-1!==e.indexOf("/")},e.toString()}}if(s&&void 0===n&&(n=F.DEFAULT_DECP),W(e)){var a,u,l="",c="",p="",f=e.group||t,h=e.value;switch(r||("-1"==(a=o(e.multiplier))&&"-1"===String(e.multiplier)&&(p="-",a="1"),"1"!=a&&(l=a),"1"!=(a=e.power?o(e.power):"")&&(c=W(a)?i0(a,i):a)),f){case B:var l="",d=n&&s?e.multiplier.toDecimal(n):o(e.multiplier),h="-1"==String(e.multiplier)?"1":d,c="";break;case X:h=e.collectSymbols().map(function(e){e=i0(e,i,t,n);return e="0"==e?"":e}).sort().join("+").replace(/\+\-/g,"-");break;case z:h=e.collectSymbols().map(function(e){e=i0(e,i,t,n);return e="0"==e?"":e}).sort().join("+").replace(/\+\-/g,"-");break;case Z:h=e.collectSymbols(function(e){var t=e.group;return(t===X||t===z)&&e.power.equals(1)&&e.multiplier.equals(1)?M(i0(e,i)):i0(e,i)}).join("*");break;case H:var d=e.previousGroup,v=e.power.group;d===X&&(h=e.collectSymbols(i0,i).join("+").replace("+-","-")),d===B||d===G||d===j||r||(h=M(h)),v!==z&&v!==Z&&v!==X&&"1"==e.power.multiplier.toString()||!c||(c=M(c))}f===j&&(h=e.fname+M(e.args.map(function(e){return i0(e,i)}).join(","))),f===j&&e.fname in E&&(a=i0(e.args[0]),u=i0(e.args[1]),e.args[0].isComposite()&&(a=M(a)),e.args[1].isComposite()&&(u=M(u)),h=a+E[e.fname]+u),c&&f!==H&&g(c)&&(c=M(c)),((f===z||f===X)&&(l&&"1"!=l||"-"===p)||(f===Z||f===z||f===X)&&c&&"1"!=c||!r&&f===V&&-1==h||e.fname===f0)&&(h=M(h));var w=p+(l=n&&("decimal"===m||"decimals"===m&&l)?l.toString().includes("e")?(a=l.toExponential(),u=l.toPrecision(n),a.length<u.length?a:u):U0(l,n):l);if(l&&g(l)&&(w=M(w)),l&&(w+="*"),c=c<0?M(c):c){if("e"===h&&F.E_TO_EXP)return w+"exp"+M(c);c=F.POWER_OPERATOR+c}p=w+(h=f===H&&"-"===h.charAt(0)?M(h):h);return(p=e.parens?M(p):p)+c}if(Y(e)){for(var y=e.elements.length,w=[],b=0;b<y;b++)w.push(e.elements[b].text(m));return"["+w.join(",")+"]"}try{return e.toString()}catch(e){if("timeout"===e.message)throw e;return""}}function o(e){this.symbol=e}function N(e){return this instanceof N?((e=String(void 0===e?0:e)).startsWith("-")?(this.sign=-1,e=e.substr(1,e.length)):this.sign=1,N.isScientific(e)?this.fromScientific(e):this.convert(e),this):new N(e)}function s0(t){if(t instanceof s0)return t;if(void 0===t)return this;try{if(e0(t))try{this.num=S(t),this.den=S(1)}catch(e){if("timeout"===e.message)throw e;return s0.simple(t)}else{var e=t instanceof k?t1.quickConversion(t):t1.convert(t);this.num=new S(e[0]),this.den=new S(e[1])}}catch(e){if("timeout"===e.message)throw e;return s0.simple(t)}}function o0(e){p0();var t="Infinity"===e;return this instanceof o0?(e instanceof k&&(e=e.toString()),/^(\-?\+?\d+)\.?\d*e?\-?\+?\d*/i.test(e)||e instanceof k?(this.group=B,this.value=I,this.multiplier=new s0(e)):(this.group=G,T(e),this.value=e,this.multiplier=new s0(1),this.imaginary=e===F.IMAGINARY,this.isInfinity=t),this.power=new s0(1),this):new o0(e)}function e1(){var x=this,n={},o={names:[],actions:[]};function r(e,t){this.start=e,this.end=t}function N(e,t,n){if(this.type=t,this.value=e,void 0!==n&&(this.column=n+1),t===N.OPERATOR){var r,i=E[e];for(r in i)this[r]=i[r]}else t===N.FUNCTION&&(this.precedence=N.MAX_PRECEDENCE,this.leftAssoc=!1)}r.prototype.isConstant=function(){return this.start.isConstant()&&this.end.isConstant()},r.prototype.text=function(){return i0(this.start)+":"+i0(this.end)},N.prototype.toString=function(){return this.value},N.prototype.toString=function(){return this.is_prefix?"`"+this.value:this.value},N.OPERATOR="OPERATOR",N.VARIABLE_OR_LITERAL="VARIABLE_OR_LITERAL",N.FUNCTION="FUNCTION",N.UNIT="UNIT",N.KEYWORD="KEYWORD",N.MAX_PRECEDENCE=999,this.classes={Collection:D,Slice:r,Token:N};var S={prec:void 0,cos:function(e,t){var n=x.parse(Math.cos(e)*Math.cosh(t)),e=x.parse(Math.sin(e)*Math.sinh(t));return x.subtract(n,x.multiply(e,o0.imaginary()))},sin:function(e,t){var n=x.parse(Math.sin(e)*Math.cosh(t)),e=x.parse(Math.cos(e)*Math.sinh(t));return x.subtract(n,x.multiply(e,o0.imaginary()))},tan:function(e,t){var n=x.parse(Math.sin(2*e)/(Math.cos(2*e)+Math.cosh(2*t))),e=x.parse(Math.sinh(2*t)/(Math.cos(2*e)+Math.cosh(2*t)));return x.add(n,x.multiply(e,o0.imaginary()))},sec:function(e,t){e=this.removeDen(this.cos(e,t));return x.subtract(e[0],x.multiply(e[1],o0.imaginary()))},csc:function(e,t){e=this.removeDen(this.sin(e,t));return x.add(e[0],x.multiply(e[1],o0.imaginary()))},cot:function(e,t){e=this.removeDen(this.tan(e,t));return x.subtract(e[0],x.multiply(e[1],o0.imaginary()))},acos:function(e,t){e=this.fromArray([e,t]),t=x.pow(e.clone(),new o0(2)),t=x.expand(t),t=x.multiply(L(x.subtract(new o0(1),t)),o0.imaginary()),e=R(x.expand(x.add(e.clone(),t)));return x.expand(x.multiply(o0.imaginary().negate(),e))},asin:function(e,t){return x.subtract(x.parse("pi/2"),this.acos(e,t))},atan:function(e,t){return e.equals(0)&&(t.equals(1)||t.equals(-1))?x.parse(`${o0.infinity()}*${F.IMAGINARY}*`+t):(e=S.fromArray([e,t]),t=x.expand(x.multiply(o0.imaginary(),e.clone())),e=R(x.expand(x.subtract(new o0(1),t.clone()))),t=R(x.expand(x.add(new o0(1),t.clone()))),x.expand(x.multiply(x.divide(o0.imaginary(),new o0(2)),x.subtract(e,t))))},asec:function(e,t){e=this.removeDen([e,t]);return e[1].negate(),this.acos.apply(this,e)},acsc:function(e,t){e=this.removeDen([e,t]);return e[1].negate(),this.asin.apply(this,e)},acot:function(e,t){e=this.removeDen([e,t]);return e[1].negate(),this.atan.apply(this,e)},cosh:function(e,t){var n=x.parse(Math.cosh(e)*Math.cos(t)),e=x.parse(Math.sinh(e)*Math.sin(t));return x.add(n,x.multiply(e,o0.imaginary()))},sinh:function(e,t){var n=x.parse(Math.sinh(e)*Math.cos(t)),e=x.parse(Math.cosh(e)*Math.sin(t));return x.add(n,x.multiply(e,o0.imaginary()))},tanh:function(e,t){var n=x.parse(Math.sinh(2*e)/(Math.cos(2*t)+Math.cosh(2*e))),t=x.parse(Math.sin(2*t)/(Math.cos(2*t)+Math.cosh(2*e)));return x.subtract(n,x.multiply(t,o0.imaginary()))},sech:function(e,t){e=this.removeDen(this.cosh(e,t));return x.subtract(e[0],x.multiply(e[1],o0.imaginary()))},csch:function(e,t){e=this.removeDen(this.sinh(e,t));return x.subtract(e[0],x.multiply(e[1],o0.imaginary()))},coth:function(e,t){e=this.removeDen(this.tanh(e,t));return x.add(e[0],x.multiply(e[1],o0.imaginary()))},acosh:function(e,t){var e=this.fromArray([e,t]),t=L(x.add(e.clone(),new o0(1))),n=L(x.subtract(e.clone(),new o0(1)));return x.expand(R(x.add(e,x.expand(x.multiply(t,n)))))},asinh:function(e,t){e=this.fromArray([e,t]),t=L(x.add(new o0(1),x.expand(x.pow(e.clone(),new o0(2)))));return x.expand(R(x.add(e,t)))},atanh:function(e,t){e=this.fromArray([e,t]),t=R(x.add(e.clone(),new o0(1))),e=R(x.subtract(new o0(1),e));return x.expand(x.divide(x.subtract(t,e),new o0(2)))},asech:function(e,t){e=this.removeDen([e,t]);return e[1].negate(),this.acosh.apply(this,e)},acsch:function(e,t){e=this.removeDen([e,t]);return e[1].negate(),this.asinh.apply(this,e)},acoth:function(e,t){e=this.removeDen([e,t]);return e[1].negate(),this.atanh.apply(this,e)},sqrt:function(e){var t=e.realpart(),e=e.imagpart(),n=o0.hyp(t,e),t=x.add(t.clone(),n),n=L(x.multiply(new o0(2),t.clone()));return x.add(x.divide(t.clone(),n.clone()),x.multiply(x.divide(e,n),o0.imaginary()))},log:function(e,t){var n=R(o0.hyp(e,t)),t=F.USE_BIG?o0(k.atan2(t.multiplier.toDecimal(),e.multiplier.toDecimal())):Math.atan2(t,e),e=x.parse(t);return x.add(n,x.multiply(o0.imaginary(),e))},erf(e,t){return x.symfunction("erf",[e])},removeDen:function(e){var t,e=K(e)?(t=e[0],e[1]):(t=e.realpart(),e.imagpart()),n=Math.pow(t,2)+Math.pow(e,2);return[x.parse(t/n),x.parse(e/n)]},fromArray:function(e){return x.add(e[0],x.multiply(o0.imaginary(),e[1]))},evaluate:function(e,t){var n,r=e.power.sign();return e.power=e.power.abs(),e.power.greaterThan(1)&&(e=x.expand(e)),r=r<0?(n=(r=this.removeDen(e))[0],r[1]):(n=e.realpart(),e.imagpart()),n.isConstant("all")&&r.isConstant("all")?this[t].call(this,n,r):x.symfunction(t,[e])}},A=this.trig={cos:function(e){if(e.equals("pi")&&e.multiplier.den.equals(2))return new o0(0);if(F.PARSE2NUMBER){if(e.equals(new o0(F.PI/2)))return new o0(0);if(e.isConstant())return F.USE_BIG?new o0(k.cos(e.multiplier.toDecimal())):new o0(Math.cos(e.valueOf()));if(e.isImaginary())return S.evaluate(e,"cos")}var t,n,r,i;return e.equals(0)?new o0(1):(n=!1,r=d(e.multiplier.toDecimal()),i=e.multiplier.abs(),e.multiplier=i,e.isPi()&&e.isLinear()&&(e0(i)?t=new o0(t0(i)?1:-1):(Number(i.num),2===(i=Number(i.den))?t=new o0(0):3===i?(t=x.parse("1/2"),n=!0):4===i?(t=x.parse("1/sqrt(2)"),n=!0):6===i?(t=x.parse("sqrt(3)/2"),n=!0):t=x.symfunction("cos",[e]))),!n||2!==r&&3!==r||t.negate(),t||x.symfunction("cos",[e]))},sin:function(e){if(F.PARSE2NUMBER){if(e.isConstant())return e%Math.PI==0?new o0(0):F.USE_BIG?new o0(k.sin(e.multiplier.toDecimal())):new o0(Math.sin(e.valueOf()));if(e.isImaginary())return S.evaluate(e,"sin")}var t,n,r,i,s;return e.equals(0)?new o0(0):(n=!1,r=d(e.multiplier.toDecimal()),i=e.multiplier.sign(),s=e.multiplier.abs(),e.multiplier=s,e.equals("pi")?t=new o0(0):e.isPi()&&e.isLinear()&&(e0(s)?t=new o0(0):(s.num,2==(s=s.den)?(t=new o0(1),n=!0):3==s?(t=x.parse("sqrt(3)/2"),n=!0):4==s?(t=x.parse("1/sqrt(2)"),n=!0):6==s?(t=x.parse("1/2"),n=!0):t=x.multiply(new o0(i),x.symfunction("sin",[e])))),t=t||x.multiply(new o0(i),x.symfunction("sin",[e])),!n||3!==r&&4!==r||t.negate(),t)},tan:function(e){if(F.PARSE2NUMBER){if(e%Math.PI==0&&e.isLinear())return new o0(0);if(e.isConstant())return F.USE_BIG?new o0(k.tan(e.multiplier.toDecimal())):new o0(Math.tan(e.valueOf()));if(e.isImaginary())return S.evaluate(e,"tan")}var t,n=!1,r=d(e.multiplier.toDecimal()),i=e.multiplier;if(e.multiplier=i,e.isPi()&&e.isLinear())if(e0(i))t=new o0(0);else{i.num;i=i.den;if(2==i)throw new B0("tan is undefined for "+e.toString());3==i?(t=x.parse("sqrt(3)"),n=!0):4==i?(t=new o0(1),n=!0):6==i?(t=x.parse("1/sqrt(3)"),n=!0):t=x.symfunction("tan",[e])}return t=t||x.symfunction("tan",[e]),!n||2!==r&&4!==r||t.negate(),t},sec:function(e){if(F.PARSE2NUMBER)return e.isConstant()?F.USE_BIG?new o0(new k(1).dividedBy(k.cos(e.multiplier.toDecimal()))):new o0(r0.sec(e.valueOf())):e.isImaginary()?S.evaluate(e,"sec"):x.parse(y("1/cos({0})",e));var t,n=!1,r=d(e.multiplier.toDecimal()),i=e.multiplier.abs();if(e.multiplier=i,e.isPi()&&e.isLinear())if(e0(i))t=new o0(t0(i)?1:-1);else{i.num;i=i.den;if(2==i)throw new B0("sec is undefined for "+e.toString());3==i?(t=new o0(2),n=!0):4==i?(t=x.parse("sqrt(2)"),n=!0):6==i?(t=x.parse("2/sqrt(3)"),n=!0):t=x.symfunction("sec",[e])}return!n||2!==r&&3!==r||t.negate(),t=t||x.symfunction("sec",[e])},csc:function(e){if(F.PARSE2NUMBER)return e.isConstant()?F.USE_BIG?new o0(new k(1).dividedBy(k.sin(e.multiplier.toDecimal()))):new o0(r0.csc(e.valueOf())):e.isImaginary()?S.evaluate(e,"csc"):x.parse(y("1/sin({0})",e));var t,n=!1,r=d(e.multiplier.toDecimal()),i=e.multiplier.sign(),s=e.multiplier.abs();if(e.multiplier=s,e.isPi()&&e.isLinear()){if(e0(s))throw new B0("csc is undefined for "+e.toString());s.num;s=s.den;2==s?(t=new o0(1),n=!0):3==s?(t=x.parse("2/sqrt(3)"),n=!0):4==s?(t=x.parse("sqrt(2)"),n=!0):6==s?(t=new o0(2),n=!0):t=x.multiply(new o0(i),x.symfunction("csc",[e]))}return t=t||x.multiply(new o0(i),x.symfunction("csc",[e])),!n||3!==r&&4!==r||t.negate(),t},cot:function(e){if(F.PARSE2NUMBER)return e%(Math.PI/2)==0?new o0(0):e.isConstant()?F.USE_BIG?new o0(new k(1).dividedBy(k.tan(e.multiplier.toDecimal()))):new o0(r0.cot(e.valueOf())):e.isImaginary()?S.evaluate(e,"cot"):x.parse(y("1/tan({0})",e));var t,n=!1,r=d(e.multiplier.toDecimal()),i=e.multiplier;if(e.multiplier=i,e.isPi()&&e.isLinear()){if(e0(i))throw new B0("cot is undefined for "+e.toString());i.num;i=i.den;2==i?t=new o0(0):3==i?(t=x.parse("1/sqrt(3)"),n=!0):4==i?(t=new o0(1),n=!0):6==i?(t=x.parse("sqrt(3)"),n=!0):t=x.symfunction("cot",[e])}return t=t||x.symfunction("cot",[e]),!n||2!==r&&4!==r||t.negate(),t},acos:function(e){if(F.PARSE2NUMBER){var t;if(e.isConstant())return e.gt(1)||e.lt(-1)?(t=e.toString(),T(n0(`pi/2-asin(${t})`))):F.USE_BIG?new o0(k.acos(e.multiplier.toDecimal())):new o0(Math.acos(e.valueOf()));if(e.isImaginary())return S.evaluate(e,"acos")}return x.symfunction("acos",arguments)},asin:function(e){if(F.PARSE2NUMBER){var t,n;if(e.isConstant())return e.gt(1)||e.lt(-1)?(t=F.IMAGINARY,n=e.multiplier.toDecimal(),T(n0(t+`*log(sqrt(1-${n}^2)-${t}*${n})`))):F.USE_BIG?new o0(k.asin(e.multiplier.toDecimal())):new o0(Math.asin(e.valueOf()));if(e.isImaginary())return S.evaluate(e,"asin")}return x.symfunction("asin",arguments)},atan:function(e){var t;if(e.equals(0))t=new o0(0);else{if(F.PARSE2NUMBER)return e.isConstant()?F.USE_BIG?new o0(k.atan(e.multiplier.toDecimal())):new o0(Math.atan(e.valueOf())):e.isImaginary()?S.evaluate(e,"atan"):x.symfunction("atan",arguments);t=e.equals(-1)?x.parse("-pi/4"):x.symfunction("atan",arguments)}return t},asec:function(e){if(F.PARSE2NUMBER){if(e.equals(0))throw new V0("Input is out of the domain of sec!");if(e.isConstant())return A.acos(e.invert());if(e.isImaginary())return S.evaluate(e,"asec")}return x.symfunction("asec",arguments)},acsc:function(e){if(F.PARSE2NUMBER){if(e.isConstant())return A.asin(e.invert());if(e.isImaginary())return S.evaluate(e,"acsc")}return x.symfunction("acsc",arguments)},acot:function(e){if(F.PARSE2NUMBER){if(e.isConstant())return new x.add(x.parse("pi/2"),A.atan(e).negate());if(e.isImaginary())return S.evaluate(e,"acot")}return x.symfunction("acot",arguments)},atan2:function(e,t){if(e.equals(0)&&t.equals(0))throw new B0("atan2 is undefined for 0, 0");return F.PARSE2NUMBER&&e.isConstant()&&t.isConstant()?new o0(Math.atan2(e,t)):x.symfunction("atan2",arguments)}},e=this.trigh={cosh:function(e){if(F.PARSE2NUMBER){if(e.isConstant())return new o0(Math.cosh(e.valueOf()));if(e.isImaginary())return S.evaluate(e,"cosh")}return x.symfunction("cosh",arguments)},sinh:function(e){if(F.PARSE2NUMBER){if(e.isConstant())return new o0(Math.sinh(e.valueOf()));if(e.isImaginary())return S.evaluate(e,"sinh")}return x.symfunction("sinh",arguments)},tanh:function(e){if(F.PARSE2NUMBER){if(e.isConstant())return new o0(Math.tanh(e.valueOf()));if(e.isImaginary())return S.evaluate(e,"tanh")}return x.symfunction("tanh",arguments)},sech:function(e){return F.PARSE2NUMBER?e.isConstant()?new o0(Math.sech(e.valueOf())):e.isImaginary()?S.evaluate(e,"sech"):x.parse(y("1/cosh({0})",e)):x.symfunction("sech",arguments)},csch:function(e){return F.PARSE2NUMBER?e.isConstant()?new o0(Math.csch(e.valueOf())):e.isImaginary()?S.evaluate(e,"csch"):x.parse(y("1/sinh({0})",e)):x.symfunction("csch",arguments)},coth:function(e){return F.PARSE2NUMBER?e.isConstant()?new o0(Math.coth(e.valueOf())):e.isImaginary()?S.evaluate(e,"coth"):x.parse(y("1/tanh({0})",e)):x.symfunction("coth",arguments)},acosh:function(e){e=F.PARSE2NUMBER&&e.isImaginary()?S.evaluate(e,"acosh"):F.PARSE2NUMBER?n0(x.parse(y(F.LOG+"(({0})+sqrt(({0})^2-1))",e.toString()))):x.symfunction("acosh",arguments);return e},asinh:function(e){e=F.PARSE2NUMBER&&e.isImaginary()?S.evaluate(e,"asinh"):F.PARSE2NUMBER?n0(x.parse(y(F.LOG+"(({0})+sqrt(({0})^2+1))",e.toString()))):x.symfunction("asinh",arguments);return e},atanh:function(e){e=F.PARSE2NUMBER&&e.isImaginary()?S.evaluate(e,"atanh"):F.PARSE2NUMBER?n0(x.parse(y("(1/2)*"+F.LOG+"((1+({0}))/(1-({0})))",e.toString()))):x.symfunction("atanh",arguments);return e},asech:function(e){e=F.PARSE2NUMBER&&e.isImaginary()?S.evaluate(e,"asech"):F.PARSE2NUMBER?n0(R(x.add(e.clone().invert(),L(x.subtract(x.pow(e,new o0(-2)),new o0(1)))))):x.symfunction("asech",arguments);return e},acsch:function(e){e=F.PARSE2NUMBER&&e.isImaginary()?S.evaluate(e,"acsch"):F.PARSE2NUMBER?n0(x.parse(y(F.LOG+"((1+sqrt(1+({0})^2))/({0}))",e.toString()))):x.symfunction("acsch",arguments);return e},acoth:function(e){e=F.PARSE2NUMBER&&e.isImaginary()?S.evaluate(e,"acoth"):F.PARSE2NUMBER?e.equals(1)?o0.infinity():n0(x.divide(R(x.divide(x.add(e.clone(),new o0(1)),x.subtract(e.clone(),new o0(1)))),new o0(2))):x.symfunction("acoth",arguments);return e}},E={"\\":{precedence:8,operator:"\\",action:"slash",prefix:!0,postfix:!(this.units={}),leftAssoc:!0,operation:function(e){return e}},"!!":{precedence:7,operator:"!!",action:"dfactorial",prefix:!1,postfix:!0,leftAssoc:!0,operation:function(e){return x.symfunction(F.DOUBLEFACTORIAL,[e])}},"!":{precedence:7,operator:"!",action:"factorial",prefix:!1,postfix:!0,leftAssoc:!0,operation:u},"^":{precedence:6,operator:"^",action:"pow",prefix:!1,postfix:!1,leftAssoc:!0},"**":{precedence:6,operator:"**",action:"pow",prefix:!1,postfix:!1,leftAssoc:!0},"%":{precedence:4,operator:"%",action:"percent",prefix:!1,postfix:!0,leftAssoc:!0,overloaded:!0,overloadAction:"mod",overloadLeftAssoc:!1,operation:function(e){return x.divide(e,new o0(100))}},"*":{precedence:4,operator:"*",action:"multiply",prefix:!1,postfix:!1,leftAssoc:!1},"/":{precedence:4,operator:"/",action:"divide",prefix:!1,postfix:!1,leftAssoc:!1},"+":{precedence:3,operator:"+",action:"add",prefix:!0,postfix:!1,leftAssoc:!1,operation:function(e){return e}},plus:{precedence:3,operator:"plus",action:"add",prefix:!0,postfix:!1,leftAssoc:!1,operation:function(e){return e}},"-":{precedence:3,operator:"-",action:"subtract",prefix:!0,postfix:!1,leftAssoc:!1,operation:function(e){return e.negate()}},"=":{precedence:2,operator:"=",action:"equals",prefix:!1,postfix:!1,leftAssoc:!1},"==":{precedence:1,operator:"==",action:"eq",prefix:!1,postfix:!1,leftAssoc:!1},"<":{precedence:1,operator:"<",action:"lt",prefix:!1,postfix:!1,leftAssoc:!1},"<=":{precedence:1,operator:"<=",action:"lte",prefix:!1,postfix:!1,leftAssoc:!1},">":{precedence:1,operator:">",action:"gt",prefix:!1,postfix:!1,leftAssoc:!1},"=>":{precedence:1,operator:"=>",action:"gte",prefix:!1,postfix:!1,leftAssoc:!1},",":{precedence:0,operator:",",action:"comma",prefix:!1,postfix:!1,leftAssoc:!1},":":{precedence:0,operator:",",action:"assign",prefix:!1,postfix:!1,leftAssoc:!1,vectorFn:"slice"},":=":{precedence:0,operator:",",action:"function_assign",prefix:!1,postfix:!1,leftAssoc:!0}},q={"(":{type:"round",id:1,is_open:!0,is_close:!1},")":{type:"round",id:2,is_open:!1,is_close:!0},"[":{type:"square",id:3,is_open:!0,is_close:!1,maps_to:"vector"},"]":{type:"square",id:4,is_open:!1,is_close:!0},"{":{type:"curly",id:5,is_open:!0,is_close:!1,maps_to:"Set"},"}":{type:"curly",id:6,is_open:!1,is_close:!0}},C=this.functions={cos:[A.cos,1],sin:[A.sin,1],tan:[A.tan,1],sec:[A.sec,1],csc:[A.csc,1],cot:[A.cot,1],acos:[A.acos,1],asin:[A.asin,1],atan:[A.atan,1],arccos:[A.acos,1],arcsin:[A.asin,1],arctan:[A.atan,1],asec:[A.asec,1],acsc:[A.acsc,1],acot:[A.acot,1],atan2:[A.atan2,2],acoth:[e.acoth,1],asech:[e.asech,1],acsch:[e.acsch,1],sinh:[e.sinh,1],cosh:[e.cosh,1],tanh:[e.tanh,1],asinh:[e.asinh,1],sech:[e.sech,1],csch:[e.csch,1],coth:[e.coth,1],acosh:[e.acosh,1],atanh:[e.atanh,1],log10:[,1],exp:[function(e){if(e.fname===F.LOG&&e.isLinear())return x.pow(e.args[0],o0.create(e.multiplier));return x.parse(y("e^({0})",e))},1],radians:[function(e){return x.parse(y("({0})*pi/180",e))},1],degrees:[function(e){return x.parse(y("({0})*180/pi",e))},1],min:[function(){var e=[].slice.call(arguments);return v0(e)?e[0]:O0(e)?new o0(Math.min.apply(null,e)):F.SYMBOLIC_MIN_MAX&&P0(e)?m("min",e):x.symfunction("min",e)},-1],max:[function(){var e=[].slice.call(arguments);return v0(e)?e[0]:O0(e)?new o0(Math.max.apply(null,e)):F.SYMBOLIC_MIN_MAX&&P0(e)?m("max",e):x.symfunction("max",e)},-1],erf:[,1],floor:[,1],ceil:[,1],trunc:[,1],Si:[,1],step:[,1],rect:[,1],sinc:[function(e){if(F.PARSE2NUMBER)return e.isConstant()?new o0(r0.sinc(e)):x.parse(y("sin({0})/({0})",e));return x.symfunction("sinc",[e])},1],tri:[,1],sign:[function(e){return e.isConstant(!0)?new o0(Math.sign(n0(e))):x.symfunction("sign",arguments)},1],Ci:[,1],Ei:[,1],Shi:[,1],Chi:[,1],Li:[,1],fib:[,1],fact:[u,1],factorial:[u,1],continued_fraction:[function(e,t){e=n0(e);if(e.isConstant())return e=r0.continuedFraction(e,t),t=u0.fromArray(e.fractions.map(function(e){return new o0(e)})),u0.fromArray([new o0(e.sign),new o0(e.whole),t]);return x.symfunction("continued_fraction",arguments)},[1,2]],dfactorial:[,1],gamma_incomplete:[,[1,2]],round:[g,[1,2]],scientific:[function(e,t){return e.scientific=t||10,e},[1,2]],mod:[t,2],pfactor:[_,1],vector:[function(){return new u0([].slice.call(arguments))},-1],matrix:[function(){return l0.fromArray(arguments)},-1],Set:[function(){return n1.fromArray(arguments)},-1],imatrix:[function(e){return l0.identity(e)},-1],parens:[function(e){if(F.PARSE2NUMBER)return e;return x.symfunction("parens",[e])},-1],sqrt:[L,1],cbrt:[s,1],nthroot:[l,2],log:[R,[1,2]],expand:[function(e,t){return T(e,t=t||{expand_denominator:!0,expand_functions:!0})},1],abs:[U,1],invert:[function(e){if(J(e))return e.invert();Q("invert expects a matrix")},1],determinant:[function(e){if(J(e))return e.determinant();return e},1],size:[function(e){var t;J(e)?t=[new o0(e.cols()),new o0(e.rows())]:Y(e)||N0(e)?t=new o0(e.elements.length):Q("size expects a matrix or a vector");return t},1],transpose:[function(e){if(J(e))return e.transpose();Q("function transpose expects a matrix")},1],dot:[function(e,t){J(e)&&(e=new u0(e));J(t)&&(t=new u0(t));return Y(e)&&Y(t)?e.dot(t):x.multiply(e.clone(),t.clone())},2],cross:[function(e,t){J(e)&&(e=new u0(e));J(t)&&(t=new u0(t));return Y(e)&&Y(t)?e.cross(t):x.multiply(e.clone(),t.clone())},2],vecget:[function(e,t){return t.isConstant()&&e0(t)?e.elements[t]:x.symfunction("vecget",arguments)},2],vecset:[function(e,t,n){return t.isConstant?(e.elements[t]=n,e):x.symfunction("vecset",arguments)},3],vectrim:[function(e,n){return n=void 0===n?1e-14:n,e=e.clone(),n=Number(n),e.elements.sort(function(e,t){return t.group-e.group}),e.elements=_0(e.elements,function(e,t){return Number(x.subtract(n0(e),n0(t)).abs())<=n}),e},[1,2]],matget:[function(e,t,n){return t.isConstant()&&n.isConstant()?e.elements[t][n]:x.symfunction("matget",arguments)},3],matset:[function(e,t,n,r){return e.elements[t][n]=r,e},4],matgetrow:[function(e,t){return t.isConstant()?new l0(e.elements[t]):x.symfunction("matgetrow",arguments)},2],matsetrow:[function(e,t,n){if(!t.isConstant())return x.symfunction("matsetrow",arguments);if(e.elements[t].length!==n.elements.length)throw new z0("Matrix row must match row dimensions!");e=e.clone();return e.elements[t]=n.clone().elements,e},3],matgetcol:[function(e,r){if(!r.isConstant())return x.symfunction("matgetcol",arguments);r=Number(r);var i=l0.fromArray([]);return e.each(function(e,t,n){n===r&&i.elements.push([e.clone()])}),i},2],matsetcol:[function(n,r,e){if(!r.isConstant())return x.symfunction("matsetcol",arguments);if(r=Number(r),n.rows()!==e.elements.length)throw new z0("Matrix column length must match number of rows!");return e.each(function(e,t){n.set(t-1,r,e.elements[0].clone())}),n},3],rationalize:[i,1],IF:[function(e,t,n){"boolean"!=typeof e&&E0(e)&&(e=!!Number(e));return e?t:n},3],is_in:[function(e,t){if(J(e)){for(var n=0,r=e.rows();n<r;n++)for(var i=0,s=e.cols();i<s;i++)if(e.elements[n][i].equals(t))return new o0(1)}else if(e.elements)for(n=0,r=e.elements.length;n<r;n++)if(e.elements[n].equals(t))return new o0(1);return new o0(0)},2],realpart:[c,1],imagpart:[p,1],conjugate:[f,1],arg:[h,1],polarform:[function(e){var t;return e=o0.toPolarFormArray(e),t=e[1],e=e[0],t=x.parse(y("e^({0}*({1}))",F.IMAGINARY,t)),x.multiply(e,t)},1],rectform:[function(e){var t,n,r,i,s,o=e.clone();try{return t=I0(e,"e",!0),n=x.divide(t.x.power,o0.imaginary()),r=n0(A.tan(n)),x.pow(t.a,new o0(2)),i=r.getDenom(!0),s=r.getNum(),o0.hyp(s,i).equals(t.a)?x.add(i,x.multiply(o0.imaginary(),s)):o}catch(e){if("timeout"===e.message)throw e;return o}},1],sort:[function(e,n){n=n?n.toString():"asc";function r(e){return e.group===B?e.multiplier:e.group===j?""===e.fname?r(e.args[0]):e.fname:e.group===G?e.power:e.value}return new u0((Y(e)?e.elements:e.collectSymbols()).sort(function(e,t){e=r(e),t=r(t);return"desc"===n?t-e:e-t}))},[1,2]],integer_part:[,1],union:[function(e,t){return e.union(t)},2],contains:[function(e,t){return e.contains(t)},2],intersection:[function(e,t){return e.intersection(t)},2],difference:[function(e,t){return e.difference(t)},2],intersects:[function(e,t){return new o0(Number(e.intersects(t)))},2],is_subset:[function(e,t){return new o0(Number(e.is_subset(t)))},2],print:[function(){T0(arguments).map(function(e){console.log(e.toString())})},-1]};this.error=Q,this.override=function(e,t){n[e]||(n[e]=[]),n[e].push(this[e]),this[e]=t},this.restore=function(e){this[e]&&(this[e]=n[e].pop())},this.extend=function(e,n,r){var i,s=this;"function"==typeof this[e]&&"function"==typeof n&&(i=this[e],this[e]=function(e,t){return W(e)&&W(t)&&!r?i.call(s,e,t):n.call(s,e,t,i)})},this.symfunction=function(e,t){var n=new o0(e);return n.group=j,"object"==typeof t&&(t=[].slice.call(t)),n.args=t,n.fname=e===f0?"":e,n.updateHash(),n},this.callfunction=function(e,t,n){var r,i,s=C[e],n=(s||Q("Nerdamer currently does not support the function "+e),s[1]||n),o=s[0],a=(t instanceof Array||(t=void 0!==t?[t]:[]),-1!==n&&(a=(r=K(n))?n[0]:n,r=r?n[1]:n,n=e+" requires a {0} of {1} arguments. {2} provided!",(i=t.length)<a&&Q(y(n,"minimum",a,i)),r<i)&&Q(y(n,"maximum",r,i)),O0(t)),n=o?o.apply(s[2],t):(o=function(e){for(var t=F.FUNCTION_MODULES,n=t.length,r=0;r<n;r++){var i=t[r];if(e in i)return i[e]}Q("The function "+e+" is undefined!")}(e),F.PARSE2NUMBER&&a?v(o.apply(o,t)):x.symfunction(e,t));return n},this.operator_filter_regex=(e="^\\"+Object.keys(E).filter(function(e){if(1===e.length)return e}).join("\\"),new RegExp("(["+e+"])\\s+(["+e+"])")),this.setOperator=function(e,t,n){var r=e.operator;if(E[r]=e,t&&(this[e.action]=t),x[r]=e.operation,e.action||e.prefix||e.postif||(e.action=r),"over"===n||"under"===n){var i,s=e.precedence;for(i in E){var o=E[i];("over"===n?o.precedence>=s:o.precedence>s)&&o.precedence++}}},this.getOperator=function(e){return E[e]},this.aliasOperator=function(e,t){var n,r={},i=E[e];for(n in i)r[n]=i[n];r.operator=t,this.setOperator(r)},this.getOperators=function(){return E},this.getBrackets=function(){return q};function a(e){this.type=e.type,this.value=e.value,this.left=e.left,this.right=e.right}this.initConstants=function(){this.CONSTANTS={E:new o0(F.E),PI:new o0(F.PI)}},this.pretty_print=function(e){var t;return Array.isArray(e)?(t=e.map(e=>x.pretty_print(e)).join(", "),"vector"===e.type?"vector<"+t+">":"("+t+")"):e.toString()},this.peekers={pre_operator:[],post_operator:[],pre_function:[],post_function:[]},this.callPeekers=function(e){if(F.callPeekers)for(var t=this.peekers[e],n=T0(arguments).slice(1).map(x0),r=0;r<t.length;r++)t[r].apply(null,n)},this.tokenize=function(n){for(var e in n=(n=String(n)).trim().replace(/\s+/g," "),q){var t=new RegExp(q[e].is_close?"\\s+\\"+e:"\\"+e+"\\s+","g");n=n.replace(t,e)}for(var r,u=0,i=n.length,s=0,o=[],a=[o],l=a[0],c=0,p=[],f=!1,h=function(e,t){var n=[];void 0!==e&&(n.type=e),n.column=t,a.push(n),l.push(n),l=n,c++},m=function(){a.pop(),l=a[--c]},g=function(e,t){(t=void 0===t?n.substring(s,e):t)in x.units?l.push(new N(t,N.UNIT,s)):""!==t&&l.push(new N(t,N.VARIABLE_OR_LITERAL,s))},d=function(e){l.push(new N(e,N.FUNCTION,s))},v=function(e){s=e+1};u<i;u++){var w,y=n.charAt(u);if(y in E){g(u);var b=l[0]&&S0(l[0]),b=(f&&s<u&&","!==y&&!(b&&"*"===y)&&(f=!1,m()),v(u+1),function(e){for(var t=(e=void 0!==e?e:u)+1;n.charAt(t++)in E;);return n.substring(e,t-1)}(u)),u=(s=s+b.length-2)-1;l.push.apply(l,function(e){for(var t=u-e.length,n=[],r=e.charAt(0),i=1,s=e.length;i<s;i++)var o=e.charAt(i),a=r+o,r=(a in E?a:(n.push(new N(r,N.OPERATOR,t+i)),o));return n.push(new N(r,N.OPERATOR,t+i)),n}(b))}else if(y in q){var S,b=q[y];if(b.is_open)p.push([b,s]),(S=n.substring(s,u))in C?d(S):""!==S&&l.push(new N(S,N.VARIABLE_OR_LITERAL,s)),h(b.maps_to,u);else if(b.is_close){var M=p.pop();if(!M)throw new j0("Missing open bracket for bracket at: "+(u+1));if(M[0].id!==b.id-1)throw new j0("Parity error");g(u),m()}v(u)}else" "===y&&(M=n.substring(s,u),y=n.charAt(u+1),f?(M in E?l.push(new N(M,N.OPERATOR,u)):(g(void 0,M),m(),((w=y in E)&&"-"===E[y].value||!w)&&l.push(new N("*",N.OPERATOR,u))),f=!1):(S=n.substring(s,u))in C?(f=!0,d(S),h()):S in E?l.push(new N(S,N.OPERATOR,u)):(g(void 0,S),y=n.charAt(u+1),""===M||""===y||M in E||y in E||l.push(new N("*",N.OPERATOR,u))),v(u))}if(p.length)throw r=p.pop(),new j0("Missing closed bracket for bracket at "+(r[1]+1));return g(u),o},this.toRPN=function(e){for(var t=e.type,n=e.length,r=[],i=[],s=[],o=function(e,t){for(;e.length;)t.push(e.pop())},a=0;a<n;a++){var u=e[a];if(u.type!==N.OPERATOR)break;if(!u.prefix)throw new X0("Not a prefix operator");u.is_prefix=!0,i.push(u)}for(;a<n;a++){var l=e[a];if(l.type===N.OPERATOR){var c=l;for(c.overloaded&&(h=e[a+1])&&h.type===N.VARIABLE_OR_LITERAL&&(c.postfix=!1,c.action=c.overloadAction,c.leftAssoc=c.overloadLeftAssoc);i.length;){var p=i[i.length-1];if(!(p.precedence>c.precedence||!c.leftAssoc&&p.precedence===c.precedence))break;r.push(i.pop())}if(("vector"===t||"set"===t)&&"vectorFn"in c&&(c.action=c.vectorFn),c.postfix){var f=e[a-1];if(!f)throw new X0("Unexpected prefix operator '"+l.value+"'! at "+l.column);if(f.type===N.OPERATOR&&!f.postfix)throw new X0("Unexpected prefix operator '"+f.value+"'! at "+f.column)}else do{var h,m=!!(h=e[a+1])&&h.type===N.OPERATOR;if(m){if(!h.prefix)throw new X0("A prefix operator was expected at "+h.column);h.is_prefix=!0,s.push(h),a++}}while(m);for((c.is_prefix?s:i).push(c);s.length&&(c.leftAssoc||!c.leftAssoc&&s[s.length-1].precedence>=c.precedence);)i.push(s.pop())}else l.type===N.VARIABLE_OR_LITERAL?(0===r.length&&o(s,i),r.push(l),(f=i[i.length-1])&&f.leftAssoc||o(s,r)):l.type===N.FUNCTION?i.push(l):l.type===N.UNIT&&r.push(l);Array.isArray(l)&&(r.push(this.toRPN(l)),l.type)&&r.push(new N(l.type,N.FUNCTION,l.column))}return o(i,r),o(s,r),r},this.parseRPN=function(e,t){try{for(var n in t=t||{})t[n]=x.parse(t[n],{});F.PARSE2NUMBER&&("e"in t||(t.e=new o0(F.E)),"pi"in t||(t.pi=new o0(F.PI)));for(var r=[],i=0,s=e.length;i<s;i++){var o,a,u,l,c,p,f,h,m=e[i];if(m=Array.isArray(m)?this.parseRPN(m,t):m)if(m.type===N.OPERATOR)if(m.is_prefix||m.postfix)r.push(m.operation(r.pop()));else{var g=r.pop(),d=r.pop();if(void 0===d)throw new X0(m+" is not a valid postfix operator at "+m.column);var v="comma"===m.action,w=(d instanceof n1&&!v&&(d=u0.fromSet(d)),g instanceof n1&&!v&&(g=u0.fromSet(g)),this.callPeekers("pre_operator",d,g,m),x[m.action](d,g));this.callPeekers("post_operator",w,d,g,m),r.push(w)}else m.type===N.FUNCTION?(a=(o=r.pop()).parent,o instanceof D||(o=D.create(o)),u=m.value,l=o.getItems(),this.callPeekers("pre_function",u,l),c=x.callfunction(u,l),this.callPeekers("post_function",c,u,l),(p=e[i+1])&&p.type===N.OPERATOR&&p.value,a&&(c.parent=a),r.push(c)):((h=m.value)in F.ALIASES?m=x.parse(F.ALIASES[m]):m.type===N.VARIABLE_OR_LITERAL?m=new o0(h):m.type===N.UNIT&&((m=new o0(h)).isUnit=!0),h in x.CONSTANTS?(f=m,m=new o0(x.CONSTANTS[h])):h in t&&h!==t[h].toString()?(f=m,m=t[h].clone()):h in d0&&(f=m,m=d0[h].clone()),f&&(m.subbed=f),r.push(m))}var y=r[0];if(-1!==["undefined","string","number"].indexOf(typeof y))throw new K0("Unexpected token!");return y}catch(t){if("timeout"===t.message)throw t;throw[V0].forEach(function(e){if(t instanceof e)throw new e(t.message+": "+m.column)}),new D0(t.message+": "+m.column)}},a.prototype.toString=function(){var e=this.left?this.left.toString()+"---":"",t=this.right?"---"+this.right.toString():"";return e+"("+this.value+")"+t},a.prototype.toHTML=function(e,t){e=e||0,t=void 0===t?4:t;function n(e){return" ".repeat(t*e)}var r="",i=this.left?n(e+1)+"<li>\n"+this.left.toHTML(e+2,t)+n(e+1)+"</li> \n":"",s=this.right?n(e+1)+"<li>\n"+this.right.toHTML(e+2,t)+n(e+1)+"</li>\n":"",r=n(e)+'<div class="'+this.type.toLowerCase()+'"><span>'+this.value+"</span></div>"+n(e)+"\n";return(i||s)&&(r+=n(e)+"<ul>\n"+i+s+n(e)+"</ul>\n"),r+=""},this.tree=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];if(Array.isArray(r))r=this.tree(r),t.push(r);else if(r.type===N.OPERATOR)r.is_prefix||r.postfix?(s=r.is_prefix?"left":"right",i=t.pop(),(r=new a(r))[s]=i):((r=new a(r)).right=t.pop(),r.left=t.pop()),t.push(r);else if(r.type===N.FUNCTION){r=new a(r);var i,s=t.pop();if(r.right=s,"object"===r.value)if(i=t[t.length-1]){for(;i.right;)i=i.right;i.right=r;continue}t.push(r)}else t.push(new a(r))}return t[0]},this.parse=function(e,t){e=function(e){e=String(e);for(var t=0;t<o.actions.length;t++)e=o.actions[t].call(this,e);for(e=e.replace(/\s+/g," "),e=(e=/e/gi.test(e)?e.replace(/\-*\d+\.*\d*e\+?\-?\d+/gi,function(e){return y0(e)}):e).replace(F.IMPLIED_MULTIPLICATION_REGEX,function(){var e=arguments[4],t=arguments[1],n=arguments[2],r=arguments[3],i="",s="*";return t+(s=(i=e.charAt(r).match(/[\+\-\/\*]/)?i:e.charAt(r-1)).match(/[a-z]/i)?"":s)+n}).replace(/([a-z0-9_]+)/gi,function(e,t){return!(!1!==F.USE_MULTICHARACTER_VARS||t in C)&&isNaN(t)?t.split("").join("*"):t}).replace(/\)\(/g,")*(")||"0";;)if(e===(e=e.replace(/([a-z0-9_]+)(\()|(\))([a-z0-9]+)/gi,function(e,t,n,r,i){t=t||r,r=n||i;return t in C?t+r:t+"*"+r})))break;return e}(e),t=t||{};e=this.tokenize(e),e=this.toRPN(e);return this.parseRPN(e,t)},this.toObject=function(e){var a=function(e){for(var t=[],n=0,r=e.length;n<r;n++){var i,s=e[n],o=s.value;s.type===N.VARIABLE_OR_LITERAL?t.push(new o0(o)):s.type===N.FUNCTION?(n++,(i=x.symfunction(o,a(e[n]))).isConversion=!0,t.push(i)):s.type===N.OPERATOR?t.push(o):t.push(a(s))}return t};return a(x.tokenize(e))};function M(e){for(var t=0,n=[[]],r=0,i=e.length;r<i;r++)","===e[r]?n[++t]=[]:n[t].push(e[r]);return n}function I(e){return e.replace(/^\\left\((.+)\\right\)$/g,function(e,t){return t||e})}function U(e){if(e.isInfinity)return o0.infinity();if(e.multiplier.lessThan(0)&&e.multiplier.negate(),e.isImaginary()){var t=e.realpart(),n=e.imagpart();if(t.isConstant()&&n.isConstant())return L(x.add(x.pow(t,new o0(2)),x.pow(n,new o0(2))))}else{if(E0(e)||t0(e.power))return e;if(q0(e)&&"string"==typeof e.value&&e.value.startsWith("baseunit_"))return e}e.isComposite()&&(r=[],e.each(function(e){r.push(e.multiplier)}),r0.QGCD.apply(null,r).lessThan(0))&&(e.multiplier=e.multiplier.multiply(new s0(-1)),e.distributeMultiplier());var r,t=x.parse(e.multiplier);return e.toUnitMultiplier(),x.multiply(t,x.symfunction(h0,[e]))}function u(e){var n,r,t,i,s;return Y(e)?(n=new u0,e.each(function(e,t){n.set(t-1,u(e))}),n):J(e)?(r=new l0,e.each(function(e,t,n){r.set(t,n,u(e))}),r):F.PARSE2NUMBER&&e.isConstant()?v(e0(e)?r0.bigfactorial(e):r0.gamma(e.multiplier.add(new s0(1)).toDecimal())):e.isConstant()&&e.getDenom().equals(2)?(i=e.getNum(),i=e.multiplier.isNegative()?(s=x.subtract(i.negate(),new o0(1)).multiplier.divide(new s0(2)),t=x.pow(new o0(-4),new o0(s)).multiplier.multiply(r0.bigfactorial(s)),r0.bigfactorial(new s0(2).multiply(s))):(s=x.add(i,new o0(1)).multiplier.divide(new s0(2)),t=r0.bigfactorial(new s0(2).multiply(s)),x.pow(new o0(4),new o0(s)).multiplier.multiply(r0.bigfactorial(s))),s=t.divide(i),x.multiply(x.parse("sqrt(pi)"),new o0(s))):x.symfunction(m0,[e])}function t(e,t){var n;return e.isConstant()&&t.isConstant()?((n=new o0(1)).multiplier=n.multiplier.multiply(e.multiplier.mod(t.multiplier)),n):(n=x.divide(e.clone(),t.clone()),e0(n)?new o0(0):x.symfunction("mod",[e,t]))}function i(e){var t,n,r,i,s;return e.isComposite()?(t=new o0(0),e.each(function(e){s=e.getNum(),n=e.getDenom(),i=t.getNum(),r=t.getDenom(),i=x.multiply(n,i),s=x.multiply(s,r),i=x.expand(x.add(i,s)),s=x.multiply(r,n),t=x.divide(i,s)},!0),t):e}function L(e){W(e)||(e=x.parse(e));var t=x.symfunction("sqrt",[e]);if(e.group===H)return x.symfunction($,[e]);var n=(e=""===e.fname&&e.power.equals(1)?e.args[0]:e).multiplier.sign()<0;if(F.PARSE2NUMBER){if(e.isConstant()&&!n)return new o0(k.sqrt(e.multiplier.toDecimal()));if(e.isImaginary())return S.sqrt(e);if(e.group===G)return x.symfunction("sqrt",[e])}var r,i=e.isConstant();if(e.group===Z&&e.isLinear()){var s=L(o0(e.multiplier));for(a in e.symbols){var o=e.symbols[a];s=x.multiply(s,L(o))}c=s}else if(e.fname===$){var a=e.args[0],u=e.multiplier;a.setPower(e.power.multiply(new s0(.25))),c=a,u.equals(1)||(c=x.multiply(L(x.parse(u)),c))}else if(e.power.isInteger())if(e.multiplier<0&&e.group===G)var u=x.parse(e.multiplier).negate(),l=x.parse(e).toUnitMultiplier().negate(),c=x.multiply(x.symfunction(F.SQRT,[l]),L(u));else{var l=e.power.sign(),p=(e.power=e.power.abs(),i&&e.multiplier.lessThan(0)&&(r=o0.imaginary(),e.multiplier=e.multiplier.abs()),e.multiplier.toDecimal()),u=Math.abs(p),i=Math.sqrt(u);if(e0(i))s=new o0(i);else if(e0(p)){var f=r0.ifactor(p),h=1;for(o in f){var m,g=(d=f[o])-d%2;g&&(m=Math.pow(o,g),h*=Math.pow(o,g/2),p/=m)}s=x.multiply(x.symfunction($,[new o0(p)]),new o0(h))}else{for(var d,v=[new o0(e.multiplier.num),new o0(e.multiplier.den)],w=[new o0(1),new o0(1)],y=[new o0(1),new o0(1)],b=0;b<2;b++)_(d=v[b]).each(function(e){var t=(e=o0.unwrapPARENS(e)).clone().toLinear(),e=Number(e.power),n=e%2;w[b]=x.multiply(w[b],x.pow(t,new o0((e-n)/2))),y[b]=x.multiply(y[b],L(x.pow(t,new o0(n))))});s=x.divide(x.multiply(w[0],y[0]),x.multiply(w[1],y[1]))}c=(e=e.toUnitMultiplier(!0)).isOne()?e:t0(e.power.toString())?x.pow(e.clone(),new o0(.5)):x.symfunction($,[e]),l<0&&c.power.negate(),s&&(c=x.multiply(s,c)),r&&(c=x.multiply(r,c))}else e.setPower(e.power.multiply(new s0(.5))),c=e;return n&&F.PARSE2NUMBER&&c.text()!==t.text()?x.parse(c):c}function s(e){var t,n,r;return e.isConstant(!0)?l(e,new o0(3)):(n=e.power/3,r=x.pow(x.parse(e.multiplier),new o0(1/3)),e=e.toUnitMultiplier(),e0(n)?t=x.pow(e.toLinear(),x.parse(n)):e.group===Z?(t=new o0(1),e.each(function(e){t=x.multiply(t,s(e))})):t=x.symfunction("cbrt",[e]),x.multiply(r,t))}function l(e,t,n,r){if((t=n0(x.parse(t))).equals(0))throw new B0("Unable to calculate nthroots of zero");if(e<0&&t0(t))throw new Error("Cannot calculate nthroot of negative number for even powers");if(!e.isConstant(!0))return x.symfunction("nthroot",arguments);void 0===r&&(r=!0),n=n||25;var i,s=(e=e.group!==B?n0(e):e).sign();return s<0&&(e=U(e)),e0(e)&&t.isConstant()?(e=e<0x10000000000000000?s0.create(Math.pow(e,1/t)):r0.nthroot(e,t),r&&(i=new o0(e)),i=new o0(e.toDecimal(n)),x.multiply(new o0(s),i)):void 0}function _(e){if(e.greaterThan(9999999999998891e26)||e.equals(-1))return e;if(e.equals(Math.PI))return new o0(Math.PI);if((e=n0(e.clone())).isConstant()){var t=new o0(1),n=e.toString();if(e0(n)){var r,i=r0.ifactor(n);for(r in i)var s=i[r],t=x.multiply(t,x.symfunction("parens",[new o0(r).setPower(new s0(s))]))}else{n=_(new o0(e.multiplier.num)),e=_(new o0(e.multiplier.den));t=x.multiply(x.symfunction("parens",[n]),x.symfunction("parens",[e]).invert())}}else t=x.symfunction("pfactor",arguments);return t}function c(e){return e.realpart()}function p(e){return e.imagpart()}function f(e){var t=e.realpart(),e=e.imagpart();return x.add(t,x.multiply(e.negate(),o0.imaginary()))}function h(e){var t=e.realpart(),e=e.imagpart();return t.isConstant()&&e.isConstant()?new o0(Math.atan2(e,t)):x.symfunction("atan2",[e,t])}function h(e){var t=e.realpart(),e=e.imagpart();return t.isConstant()&&e.isConstant()?e.equals(0)&&t.equals(1)?x.parse("0"):e.equals(1)&&t.equals(0)?x.parse("pi/2"):e.equals(0)&&t.equals(-1)?x.parse("pi"):e.equals(-1)&&t.equals(0)?x.parse("-pi/2"):e.equals(1)&&t.equals(1)?x.parse("pi/4"):e.equals(1)&&t.equals(-1)?x.parse("pi*3/4"):e.equals(-1)&&t.equals(1)?x.parse("-pi/4"):e.equals(-1)&&t.equals(-1)?x.parse("-pi*3/4"):new o0(Math.atan2(e,t)):x.symfunction("atan2",[e,t])}function m(e,t){var n,r;for(t.map(function(e){e.numVal=n0(e).multiplier});;){if((r=t.length)<2)return t[0];n=t.pop(),r=t[r-2],("min"===e?n.numVal<r.numVal:n.numVal>r.numVal)&&(t.pop(),t.push(n))}}function R(e,t){if(e.equals(1))return new o0(0);var n,r,i;if(e.fname===$&&e.multiplier.equals(1))n=x.divide(R(e.args[0]),new o0(2)),e.power.sign()<0&&n.negate();else{if(e.equals(0))throw new B0(F.LOG+"(0) is undefined!");if(e.isImaginary())return S.evaluate(e,F.LOG);e.isConstant()&&void 0!==t&&t.isConstant()?n=new o0(Math.log(e)/Math.log(t)):e.group===H&&e.power.multiplier.lessThan(0)||"-1"===e.power.toString()?(e.power.negate(),n=R(e).negate()):"e"===e.value&&e.multiplier.equals(1)?(t=e.power,n=W(t)?t:new o0(t)):e.group===j&&"exp"===e.fname?(i=e.args[0],n=e.multiplier.equals(1)?x.multiply(i,new o0(e.power)):x.symfunction(F.LOG,[e])):F.PARSE2NUMBER&&E0(e)?((e=x.parse(e)).multiplier.lessThan(0)&&(e.negate(),r=x.multiply(new o0(Math.PI),new o0("i"))),n=new o0(Math.log(e.multiplier.toDecimal())),r&&(n=x.add(n,r))):(e.power.equals(1)||e.contains("e")||!e.multiplier.isOne()||(i=e.group===H?e.power:new o0(e.power),e.toLinear()),n=1<arguments.length&&v0(arguments)?new o0(1):x.symfunction(F.LOG,arguments),i&&(n=x.multiply(i,n)))}return n}function g(e,t){var n,r=t&&t.isConstant()||void 0===t;return e.isConstant()&&r?(r=e,t&&t.lessThan(0)&&(t=U(t),r=(e=Number(e).toExponential().toString().split("e"))[0],n=e[1]),e=new o0(U0(r,Number(t||0))),x.multiply(e,x.pow(new o0(10),new o0(n||0)))):x.symfunction("round",arguments)}function d(e){e%=2;return 0<=(e=e<0?2+e:e)&&e<=.5?1:.5<e&&e<=1?2:1<e&&e<=1.5?3:4}function v(t){var e;if(!isFinite(t))return n=Math.sign(t),(e=new o0(String(Math.abs(t)))).multiplier=e.multiplier.multiply(new s0(n)),e;if(W(t))return t;if("number"==typeof t)try{t=s0.simple(t)}catch(e){if("timeout"===e.message)throw e;t=new s0(t)}var n=new o0(0);return n.multiplier=t,n}function T(e,t){if(Array.isArray(e))return e.map(function(e){return T(e,t)});if(e.expand)return e.expand(t);if(t=t||{},e.group===j&&""===e.fname)return c=T(e.args[0],t),n=T(x.pow(c,x.parse(e.power)),t),x.multiply(x.parse(e.multiplier),n).distributeMultiplier();if(-1!==[B,V,G].indexOf(e.group))return e;var n=e.clone();try{var r,i,s,o=e.multiplier.toString(),a=Number(e.power),u=e;if(e.isComposite()&&e0(e.power)&&0<e.power){for(var l=a-1,c=new o0(0),p=(e.each(function(e){c=x.add(c,T(x.parse(e),t))}),x.parse(c)),f=0;f<l;f++)p=k0(p,c,t);u=x.multiply(x.parse(o),p).distributeMultiplier()}else e.group===j&&!0===t.expand_functions?(r=[],e.args.forEach(function(e){r.push(T(e,t))}),u=x.pow(x.symfunction(e.fname,r),x.parse(e.power)),u=x.multiply(u,x.parse(e.multiplier))):e.isComposite()&&e0(e.power)&&e.power<0&&!0===t.expand_denominator?(e=e.invert(),(u=T(e,t)).invert()):e.group===Z?(i=function(e){switch(e.group){case z:return 0;case X:return 1;case Z:return 2;case j:return 3;default:return 4}},s=e.collectSymbols().sort(function(e,t){return i(t)-i(e)}).map(function(e){return T(x.pow(e,x.parse(a)),t)}),c=s.pop(),(u=c.isComposite()&&c.isLinear()?(s.forEach(function(e){c=k0(c,e,t)}),c.isComposite()?(1<c.power&&(c=T(x.pow(c,x.parse(c.power)),t)),x.multiply(x.parse(o),c).distributeMultiplier()):c):(u=c,s.forEach(function(e){u=x.multiply(u,e)}),x.multiply(u,x.parse(o)).distributeMultiplier())).group===Z&&(u=x.parse(u))):u=e;return u}catch(e){if("timeout"===e.message)throw e}return n}function O(e){var t,n;return!W(e.power)&&e.power.absEquals(.5)?(t=e.power.sign(),n=L(e.group===V?new o0(e.value):e.toLinear()),t<0&&n.invert(),n):e}function P(e){if(e.group===V){var t=e.value,n=function(e){if(p0(),b0(e))return[e];for(var t=e,n=1,r=[];n<t;){p0();var i=e/n,s=Math.floor(i);if(i-s<=2220446049250313e-31&&1<n){if(b0(n)&&(-1===c0.indexOf(n)&&c0.push(n),r.push(n)),b0(s)){r.push(s);break}t=s}n++}return r.sort(function(e,t){return e-t})}(t)[0];if(!n)return w0("Unable to compute prime factors. This should not happen. Please review and report."),e;t=new s0(Math.log(t)/Math.log(n)).multiply(e.power);if(t.den>e.power.den)return e;e=e0(t)?o0(Math.pow(n,t)):new o0(n).setPower(t)}return e}this.toTeX=function(e,t){var n=!0===(t=t||{}).decimals?"decimals":void 0,r="string"==typeof e?this.toObject(e):e,i=[],s=void 0===t.cdot?"\\cdot":t.cdot,r=function(e){for(var t=[];e.length;){var n,r,i=e.shift(),s=e[0],o=K(s),a="-"===s;"^"===i&&("+"===s?e.shift():o&&"+"===s[0]&&s.shift(),o)&&1===s.length&&e.unshift(e.shift()[0]),"^"===i&&(o&&"-"===s[0]||a)?(a=t.pop(),r="1","*"===(n=t[t.length-1])?(t.pop(),r=t.pop()):K(n)&&(r=t.pop()),t.push(r,"/",a,i),(o?s:e).shift(),o&&1===s.length&&t.push(e.shift()[0])):t.push(i)}return t}(r);if(K(r)){for(var o,a,u=[],l=0;l<r.length;l++)o=r[l],"^"===r[l+1]?(a=r[l+2],u.push(a0.braces(this.toTeX([o]))+"^"+a0.braces(this.toTeX([a]))),l+=2):u.push(o);r=u}for(var l=0,c=r.length;l<c;l++){var p=r[l];if(W(p="*"===p?s:p))if(p.group===j){var f,h=p.fname;if(h===$)g="\\sqrt"+a0.braces(this.toTeX(p.args));else if(h===h0)g=a0.brackets(this.toTeX(p.args),"abs");else if(h===f0)g=a0.brackets(this.toTeX(p.args),"parens");else if(h===F.LOG10)g="\\"+F.LOG10_LATEX+"\\left( "+this.toTeX(p.args)+"\\right)";else if("integrate"===h)var m=M(p.args),g="\\int "+(d=a0.braces(this.toTeX(m[0])))+"\\, d"+(v=this.toTeX(m[1]));else if("defint"===h){var m=M(p.args),d=a0.braces(this.toTeX(m[0])),v=this.toTeX(m[3]);g="\\int\\limits_{"+this.toTeX(m[1])+"}^{"+this.toTeX(m[2])+"} "+d+"\\, d"+v}else if("diff"===h){m=M(p.args),v="",d=a0.braces(this.toTeX(m[0]));if(1===m.length){for(var w=[],y=0;y<m[0].length;y++)3===m[0][y].group&&w.push(m[0][y].value);w.sort(),v=0<w.length?"\\frac{d}{d "+w[0]+"}":"\\frac{d}{d x}"}else v=2===m.length?"\\frac{d}{d "+m[1]+"}":"\\frac{d^{"+m[2]+"}}{d "+this.toTeX(m[1])+"^{"+m[2]+"}}";g=v+"\\left("+d+"\\right)"}else if("sum"===h||"product"===h){var b=[[],[],[],[]],y=0;for(l=0;l<p.args.length;l++)","===p.args[l]?y++:b[y].push(p.args[l]);g=("sum"===h?"\\sum_":"\\prod_")+a0.braces(this.toTeX(b[1])+" = "+this.toTeX(b[2])),g+="^"+a0.braces(this.toTeX(b[3]))+a0.braces(this.toTeX(b[0]))}else g="limit"===h?(f=M(p.args).map(function(e){return Array.isArray(e)?x.toTeX(e.join("")):x.toTeX(String(e))}),"\\lim_"+a0.braces(f[1]+"\\to "+f[2])+" "+a0.braces(f[0])):h===m0||h===g0?this.toTeX(p.args)+(h===m0?"!":"!!"):a0.latex(p,n);i.push(g)}else i.push(a0.latex(p,n));else K(p)?i.push(a0.brackets(this.toTeX(p))):i.push("/"===p?a0.frac(I(i.pop()),I(this.toTeX([r[++l]]))):p)}return i.join(" ")},this.expand=T,this.round=g,this.clean=function t(e){var n,r,i,s,o,a,u,l=e.group;return l===z?(r=e.getNum(),i=e.getDenom()||new o0(1),s=Number(e.power),o=new o0(1),1===Math.abs(s)&&(i.each(function(e){e.group===Z?o=x.multiply(o,t(e.getDenom())):e.power.lessThan(0)&&(o=x.multiply(o,t(e.clone().toUnitMultiplier())))}),a=new o0(0),i.each(function(e){a=x.add(x.divide(e,o.clone()),a)}),o.invert(),r.isComposite()?(u=new o0(0),r.each(function(e){u=x.add(x.multiply(t(e),o.clone()),u)})):u=x.multiply(o,r),n=x.divide(u,a))):l===Z?(n=new o0(1),e.each(function(e){n=x.multiply(n,x.clean(e))})):l===j&&1===e.args.length&&e.args[0].isConstant()&&(n=b("PARSE2NUMBER",function(){return x.parse(e)},!0)),n=n||e},this.sqrt=L,this.cbrt=s,this.abs=U,this.log=R,this.rationalize=i,this.nthroot=l,this.arg=h,this.conjugate=f,this.imagpart=p,this.realpart=c,this.getFunction=function(e){return C[e][0]},this.addPreprocessor=function(e,t,n,r){var i=o.names,s=o.actions;if("function"!=typeof t)throw new PreprocessorError("Incorrect parameters. Function expected!");n?r?(i.splice(n,0,e),s.splice(n,0,t)):(i[n]=e,s[n]=t):(i.push(e),s.push(t))},this.getPreprocessors=function(){for(var e={},t=0,n=e.names.length;t<n;t++)e[e.names[t]]={order:t,action:e.actions[t]};return e},this.removePreprocessor=function(e,t){e=o.names.indexOf(e);t?(R0(o.names,e),R0(o.actions,e)):(o.names[e]=void 0,o.actions[e]=void 0)},this.mapped_function=function(){for(var e={},t=this.params,n=0;n<t.length;n++)e[t[n]]=String(arguments[n]);return x.parse(this.body,e)},this.add=function(i,n){var e=W(i),t=W(n);if(e&&t){if(i.unit||n.unit)return x.Unit.add(i,n);if(i.isInfinity||n.isInfinity){var r=i.multiplier.lessThan(0),s=n.multiplier.lessThan(0);if(i.isInfinity&&n.isInfinity&&r!==s)throw new B0("("+i+")+("+n+") is not defined!");r=o0.infinity();return s&&r.negate(),r}if(i.isComposite()&&i.isLinear()&&n.isComposite()&&n.isLinear()&&(i.distributeMultiplier(),n.distributeMultiplier(),n.length>i.length)&&i.group===n.group&&([i,n]=[n,i]),i.multiplier.equals(0))return n;if(n.multiplier.equals(0))return i;if(i.isConstant()&&n.isConstant()&&F.PARSE2NUMBER)return c=new o0(i.multiplier.add(n.multiplier).toDecimal(F.PRECISION));var s=i.group,r=n.group,o=i.power.toString(),a=n.power.toString();if(s<r||s===r&&a<o&&0<a)return this.add(n,i);s===Z&&r===X&&i.value===n.value&&(w=i,i=n,n=w,s=i.group,r=n.group,o=i.power.toString(),a=n.power.toString());var u,l,c,o=o===a,a=i.value,p=n.value,f=i.isComposite(),h=n.isComposite();if(f&&(u=i0(i,"hash")),h&&(l=i0(n,"hash")),s===z&&r===z&&n.isLinear()&&!i.isLinear()&&u!==l)return this.add(n,i);s===X&&r===X&&(a=u,p=l);var m,h=s===V&&r===B,g=i.value===n.multiplier.toString(),p=a===p||u===l&&void 0!==u||h&&g;if(p&&o&&s===r)if(h&&(n=n.convert(V)),s!==X||r!==G&&r!==V)if((c=i).multiplier.isOne()&&n.multiplier.isOne()&&s===z&&i.isLinear()&&n.isLinear())for(var d in n.symbols){var v=n.symbols[d];c.attach(v)}else c.multiplier=c.multiplier.add(n.multiplier);else i.distributeMultiplier(),c=i.attach(n);else if(p&&s!==X)s===z&&r===X?(n.insert(i,"add"),c=n):(c=o0.shell(X).attach([i,n])).value=s===X?u:a;else if(f&&i.isLinear()){g=s===r,o=s===X&&r===X;if(o&&(g=i.value===n.value),i.distributeMultiplier(),n.isComposite()&&n.isLinear()&&g){for(var d in n.distributeMultiplier(),n.symbols){v=n.symbols[d];i.attach(v)}c=i}else o&&i.value!==l||s===X&&!p?(c=o0.shell(z).attach([i,n])).updateHash():c=i.attach(n)}else s===j&&i.fname===$&&r!==H&&n.power.equals(.5)&&(m=n.multiplier.clone(),(n=L(n.toUnitMultiplier().toLinear())).multiplier=m),2===i.length&&2===n.length&&t0(i.power)&&t0(n.power)?c=x.add(T(i),T(n)):(c=o0.shell(z).attach([i,n])).updateHash();return 1===(c=c.multiplier.equals(0)?new o0(0):c).length&&(m=c.multiplier,(c=A0(c.symbols)).multiplier=c.multiplier.multiply(m)),c}t&&!e&&(w=i,i=n,n=w,w=t,e=w);var w,y,h=J(n);if(e&&h){var b=new l0;n.eachElement(function(e,t,n){b.set(t,n,x.add(i.clone(),e))}),n=b}else if(J(i)&&h)n=i.add(n);else if(e&&Y(n))n.each(function(e,t){n.elements[--t]=x.add(i.clone(),n.elements[t])});else if(Y(i)&&Y(n))n.each(function(e,t){n.elements[--t]=x.add(i.elements[t],n.elements[t])});else{if(Y(i)&&J(n))return x.add(n,i);if(J(i)&&Y(n)){if(n.elements.length===i.rows())return b=new l0,y=i.cols(),n.each(function(e,t){var n=[];if(Y(e))for(var r=0;r<y;r++)n.push(x.add(i.elements[t-1][r].clone(),e.elements[r].clone()));else for(r=0;r<y;r++)n.push(x.add(i.elements[t-1][r].clone(),e.clone()));b.elements.push(n)}),b;Q("Dimensions must match!")}}return n},this.subtract=function(i,r){var s,o,e=W(i),t=W(r);if(e&&t)return i.unit||r.unit?x.Unit.subtract(i,r):this.add(i,r.negate());if(t&&Y(i))r=i.map(function(e){return x.subtract(e,r.clone())});else if(e&&Y(r))r=r.map(function(e){return x.subtract(i.clone(),e)});else if(Y(i)&&Y(r)||M0(i)&&M0(r))i.dimensions()===r.dimensions()?r=i.subtract(r):x.error("Unable to subtract vectors/collections. Dimensions do not match.");else if(J(i)&&Y(r)){if(r.elements.length===i.rows())return o=new l0,s=i.cols(),r.each(function(e,t){for(var n=[],r=0;r<s;r++)n.push(x.subtract(i.elements[t-1][r].clone(),e.clone()));o.elements.push(n)}),o;Q("Dimensions must match!")}else{if(Y(i)&&J(r))return o=r.clone().negate(),x.add(o,i);J(i)&&J(r)?r=i.subtract(r):J(i)&&t?(o=new l0,i.each(function(e,t,n){o.set(t,n,x.subtract(e,r.clone()))}),r=o):e&&J(r)&&(o=new l0,r.each(function(e,t,n){o.set(t,n,x.subtract(i.clone(),e))}),r=o)}return r},this.multiply=function(i,n){var e=W(i),t=W(n);if(e&&n instanceof D)n.elements.push(i);else{if(e&&t){if(n.isUnit)m=i.clone(),i.unit=n;else{if(i.unit||n.unit)return x.Unit.multiply(i,n);if(i.isInfinity||n.isInfinity){if(i.equals(0)||n.equals(0))throw new B0(i+"*"+n+" is undefined!");if(n.power.lessThan(0)){if(i.isInfinity)throw new B0("Infinity/Infinity is not defined!");return new o0(0)}var r=i.multiplier.multiply(n.multiplier).sign(),s=o0.infinity();if(i.isConstant()||n.isConstant()||i.isInfinity&&n.isInfinity)return r<0&&s.negate(),s}if(i.multiplier.equals(0)||n.multiplier.equals(0))return new o0(0);if(i.isOne())return n.clone();if(n.isOne())return i.clone();if(i.isConstant()&&n.isConstant()&&F.PARSE2NUMBER){let e;var s=new k(i.multiplier.toDecimal()),o=new k(n.multiplier.toDecimal());if(s.isZero()||o.isZero()){var a=new k(String(i.multiplier.num)),u=new k(String(i.multiplier.den));const c=new k(String(n.multiplier.num)),p=new k(String(n.multiplier.den));e=new o0(a.times(c).dividedBy(u).dividedBy(p))}else{var l=s.times(o).toFixed();e=new o0(l)}return e}if(n.group>i.group&&n.group!==z)return this.multiply(n,i);i.group===Z&&n.group===X&&i.value===n.value&&(l=i,i=n,n=l);var a=i.group,u=n.group,c=n.multiplier.num,p=n.multiplier.den,o=(a!==j||i.fname!==$||n.isConstant()||i.args[0].value!==n.value||i.args[0].multiplier.lessThan(0)?a===j&&i.fname===$&&i.multiplier.equals(1)&&i.power.equals(-1)&&n.isConstant()&&i.args[0].equals(n)&&(i=x.symfunction($,[n.clone()]),n=new o0(1)):(s=i.power,o=x.parse(i.multiplier),(i=x.multiply(o,i.args[0].clone())).setPower(new s0(.5).multiply(s)),a=i.group),i.value),s=n.value,r=new s0(i.sign()),f=a===V&&u===B&&n.multiplier.equals(i.value),h=(f?new s0(1).multiply(i.multiplier):i.multiplier.multiply(n.multiplier)).abs(),m=i.clone().toUnitMultiplier();if(n=n.clone().toUnitMultiplier(!0),a===j&&u===j){var g=i.args[0].clone(),d=n.args[0].clone();if(i.fname===$&&n.fname===$&&i.isLinear()&&n.isLinear()){var v=x.divide(g,d).invert();v.gt(1)&&e0(v)&&(m=x.multiply(i.args[0].clone(),L(v.clone())),n=new o0(1))}else if(i.fname===m0&&n.fname===m0&&!g.isConstant()&&!d.isConstant()&&n.power<0){var v=x.subtract(g.clone(),d.clone());if(v.isConstant()){if(l=new o0(1),v<0){for(var w=0,y=Math.abs(v);w<=y;w++){var b=x.add(g.clone(),new o0(w));l=x.multiply(l,b)}m=x.multiply(x.pow(g,new o0(i.power)),x.pow(l,new o0(n.power)))}else{for(w=0,y=Math.abs(v);w<=y;w++){b=x.add(d.clone(),new o0(w));l=x.multiply(l,b)}m=x.multiply(x.pow(l,new o0(i.power)),x.pow(d,new o0(n.power)))}n=new o0(1)}}}if(o===s&&a===X&&a===u&&(o=i.text("hash"),s=n.text("hash")),(o=u===H&&n.previousGroup===X&&a===X?i0(i,"hash",H):o)!==s&&!f||a===X&&(u===G||u===V||u===j)||a===X&&u===Z)if(a===Z&&i.isLinear())if(u===Z&&n.distributeExponent(),u===Z&&n.isLinear()){for(var b in n.symbols){var S=n.symbols[b];m=m.combine(S)}m.multiplier=m.multiplier.multiply(n.multiplier)}else m.combine(n);else a!==B?a===Z?(m.distributeExponent(),m.combine(n)):n.isOne()||(v=n.multiplier.clone(),n.toUnitMultiplier(),(m=o0.shell(Z).combine([m,n])).multiplier=m.multiplier.multiply(v)):m=n.clone().toUnitMultiplier(!0);else{o=i.power,s=n.power,f=W(o),v=W(s),f=f||v;a===X&&u!==X&&n.previousGroup!==X&&o.equals(1)?(m=new o0(0),i.each(function(e){m=x.add(m,x.multiply(e,n.clone()))},!0)):(m.power=f?x.add(W(o)?o:new o0(o),W(s)?s:new o0(s)):a===B?o:o.add(s),m.power.equals(0)&&(m=m.convert(B)),f&&m.convert(H),i.imaginary&&n.imaginary&&t0(m.power%2)&&(m=new o0(1),h.negate()),m.group!==H&&m.previousGroup&&(m.previousGroup=void 0),m.multiplier=m.multiplier.multiply(n.multiplier))}m.group===V&&(v=Math.log(m.value),u=Math.log(c)/v,a=Math.log(p)/v,o=h.num/c,s=h.den/p,0!=u&&e0(u)&&e0(o)&&(m.power=m.power.add(new s0(u)),h.num/=c),0!=a)&&e0(a)&&e0(s)&&(m.power=m.power.subtract(new s0(a)),h.den/=p),1===m.length&&(l=m.multiplier,(m=A0(m.symbols)).multiplier=m.multiplier.multiply(l));f=m.power.toString();t0(f)&&m.fname===$?(r*=m.sign(),v=m.power,m=m.args[0],m=x.multiply(new o0(h),x.pow(m,new o0(v.divide(new s0(2))))),r<0&&m.negate()):(m.multiplier=m.multiplier.multiply(h).multiply(r),m.group===z&&m.isImaginary()&&m.distributeMultiplier()),m.group===V&&e0(m.power.toDecimal())&&(m=m.convert(B))}return m}t&&!e&&(l=i,i=n,n=l,l=t,e=l);var M,o=J(n),u=J(i);if(e&&o){var N=new l0;n.eachElement(function(e,t,n){N.set(t,n,x.multiply(i.clone(),e))}),n=N}else if(u&&o)n=i.multiply(n);else if(e&&Y(n))n.each(function(e,t){n.elements[--t]=x.multiply(i.clone(),n.elements[t])});else if(Y(i)&&Y(n))n.each(function(e,t){n.elements[--t]=x.multiply(i.elements[t],n.elements[t])});else{if(Y(i)&&J(n))return this.multiply(n,i);if(J(i)&&Y(n)){if(n.elements.length===i.rows())return N=new l0,M=i.cols(),n.each(function(e,t){for(var n=[],r=0;r<M;r++)n.push(x.multiply(i.elements[t-1][r].clone(),e.clone()));N.elements.push(n)}),N;Q("Dimensions must match!")}}}return n},this.divide=function(r,i){var e,t,s,n,o=W(r),a=W(i);if(o&&a){if(r.unit||i.unit)return x.Unit.divide(r,i);if(i.equals(0))throw new F0("Division by zero not allowed!");return r.isConstant()&&i.isConstant()?(n=r.clone()).multiplier=n.multiplier.divide(i.multiplier):(i.invert(),n=x.multiply(r,i)),n}return n=Y(r),e=Y(i),o&&e?i=i.map(function(e){return x.divide(r.clone(),e)}):n&&a?i=r.map(function(e){return x.divide(e,i.clone())}):n&&e?r.dimensions()===i.dimensions()?i=i.map(function(e,t){return x.divide(r.elements[--t],e)}):x.error("Cannot divide vectors. Dimensions do not match!"):(n=J(r),t=J(i),n&&a?(s=new l0,r.eachElement(function(e,t,n){s.set(t,n,x.divide(e,i.clone()))}),i=s):o&&t?(s=new l0,i.eachElement(function(e,t,n){s.set(t,n,x.divide(r.clone(),e))}),i=s):n&&t?(s=new l0,r.rows()===i.rows()&&r.cols()===i.cols()?(r.eachElement(function(e,t,n){s.set(t,n,x.divide(e,i.elements[t][n]))}),i=s):x.error("Dimensions do not match!")):n&&e&&(r.cols()===i.dimensions()?(s=new l0,r.eachElement(function(e,t,n){s.set(t,n,x.divide(e,i.elements[t].clone()))}),i=s):x.error("Unable to divide matrix by vector."))),i},this.pow=function(r,i){var s,e=W(r),t=W(i);if(e&&t){if(r.unit||i.unit)return x.Unit.pow(r,i);if(r.group===j&&r.fname===h0&&t0(i))return l=r.multiplier.clone(),(n=x.pow(r.args[0],i)).multiplier=l,n;if(r.isInfinity||i.isInfinity){if(r.isInfinity&&i.isInfinity)throw new B0("("+r+")^("+i+") is undefined!");if(r.isConstant()&&i.isInfinity){if(r.equals(0)){if(i.lessThan(0))throw new B0("0^Infinity is undefined!");return new o0(0)}if(r.equals(1))throw new B0("1^"+i.toString()+" is undefined!");if(i.lessThan(0))return new o0(0);if(!r.lessThan(0))return o0.infinity()}if(r.isInfinity&&i.isConstant()){if(i.equals(0))throw new B0(r+"^0 is undefined!");return i.lessThan(0)?new o0(0):x.multiply(o0.infinity(),x.pow(new o0(r.sign()),i.clone()))}}var n=r.equals(0),o=i.equals(0);if(n&&o)throw new B0("0^0 is undefined!");if(n&&i.isConstant()&&i.multiplier.greaterThan(0))return new o0(0);if(o)return new o0(1);var a,n=i.isConstant(),o=r.isConstant(),u=i.isInteger(),l=r.multiplier,c=r.clone();if(o&&n&&r.equals(0)&&i.lessThan(0))throw new B0("Division by zero is not allowed!");if(F.PARSE2NUMBER&&o&&n&&r.sign()<0&&L0(i))return S=Math.PI*i,b=new o0(Math.cos(S)),S=x.multiply(o0.imaginary(),new o0(Math.sin(S))),x.add(b,S);if(F.PARSE2NUMBER&&r.isImaginary()&&n&&e0(i)&&!i.lessThan(0))if(b=r.realpart(),S=r.imagpart(),b.isConstant("all")&&S.isConstant("all"))return a=F.USE_BIG?o0(k.atan2(m.multiplier.toDecimal(),y.multiplier.toDecimal()).times(i.toString())):Math.atan2(S,b)*i,a=new o0(a),y=x.pow(o0.hyp(b,S),i),p=x.multiply(y.clone(),x.trig.cos(a.clone())),h=x.multiply(y,x.trig.sin(a)),x.add(p,x.multiply(o0.imaginary(),h));if(c.toUnitMultiplier(),c.group!==j||c.fname!==$||n?(q=l.sign(),L0(i)&&q<0&&(c.negate(),(c=x.symfunction(f0,[c])).negate()),c.multiplyPower(i)):((w=c.args[0]).multiplyPower(new o0(.5)),w.multiplier.multiply(c.multiplier),w.multiplyPower(i),c=w),o&&n&&F.PARSE2NUMBER){q<0&&(r.negate(),g=i.multiplier.den.equals(2)?new o0(F.IMAGINARY):e0(i.multiplier)?t0(i.multiplier)?new o0(1):new o0(-1):t0(i.multiplier.den)?x.pow(x.symfunction(f0,[new o0(q)]),i.clone()):new o0(Math.pow(q,i.multiplier.num)));var p=Math.pow(r.multiplier.toDecimal(),i.multiplier.toDecimal());c=0!==p||r.multiplier.equals(0)?new o0(p):(h=new k(r.multiplier.toDecimal()),o=new k(i.multiplier.toDecimal()),new o0(h.pow(o).toFixed())),g&&(c=x.multiply(c,g))}else if(u&&!l.equals(1)){if(i.abs().gt(F.MAX_EXP))return i.sign()<0?new o0(0):o0.infinity();var f=i.multiplier.toDecimal(),p=Math.sign(f),h=(f=Math.abs(f),new s0(1));h.num=l.num.pow(f),h.den=l.den.pow(f),p<0&&h.invert(),c.multiplier=c.multiplier.multiply(h)}else{var m,g,d,v,w,y,b,S,M,N,E,q=r.sign();i.isConstant()&&r.isConstant()&&!i.multiplier.den.equals(1)&&q<0?c=i.multiplier.den.equals(2)?(m=new o0(F.IMAGINARY),r.negate(),i.lessThan(0)&&(m.negate(),i.negate()),x.multiply(x.pow(r,i),m)):((N=r.clone()).multiplier.negate(),c=x.pow(x.symfunction(f0,[new o0(q)]),i.clone()),o=x.pow(new o0(N.multiplier.num),i.clone()),g=x.pow(new o0(N.multiplier.den),i.clone()),y=x.divide(o,g),x.multiply(c,y)):F.PARSE2NUMBER&&i.isImaginary()?(b=i.realpart(),S=i.imagpart(),N=r.clone().toLinear(),p=x.pow(N.clone(),b),h=R(N.clone()),m=A.cos(x.multiply(S.clone(),h)),o=x.multiply(A.sin(x.multiply(S,R(N))),o0.imaginary()),c=x.multiply(p,x.add(m,o)),c=x.expand(x.parse(c))):(d=O(new o0((g=r.group===B&&q<0)?l.num:Math.abs(l.num)).setPower(i.clone())),v=O(new o0(l.den).setPower(i.clone()).invert()),r.imaginary&&(u?(w=Math.sign(i),f=U(i),c=new o0(t0(M=f%4)?-1:F.IMAGINARY),(0===M||w<0&&1===M||0<w&&3===M)&&c.negate()):(y=i.multiplier.multiply(s0.quick(1,2)),b=Math.pow(-1,y.num),c=t0(y.den)?new o0(-1).setPower(y,!0):new o0(b))),q<0&&!g&&c.negate(),n&&r.group!==H&&(h=t0(i.multiplier.den),S=t0(r.power),M=c.power.toDecimal(),N=t0(M),h)&&S&&!N&&("1"===M||1===M?"string"==typeof c.value&&c.value.startsWith("baseunit_")||(c=x.symfunction(h0,[c])):c=e0(M)?x.multiply(x.symfunction(h0,[c.clone().toLinear()]),c.clone().setPower(new s0(M-1))):(f=c.power,x.symfunction(h0,[c.toLinear()]).setPower(f)),F.POSITIVE_MULTIPLIERS)&&c.fname===h0&&(c=c.args[0]),i.equals(2)&&c.group===Z&&(E=new o0(1),c.each(function(e){E=x.multiply(E,x.pow(e,i))}),c=E))}return c=O(c),(c=d&&v?x.multiply(c,P(x.multiply(d,v))):c).fname===$?(m=((p=c.group===H)?c.power.multiplier:c.power).toString(),t0(m)&&(o=p?x.divide(c.power,new o0(2)):new o0(c.power.divide(new s0(2))),l=c.multiplier,(c=x.pow(c.args[0],o)).multiplier=c.multiplier.multiply(l))):!F.IGNORE_E&&c.isE()&&c.group===H&&c.power.contains("pi")&&c.power.contains(F.IMAGINARY)&&i.group===Z&&(a=i.stripVar(F.IMAGINARY),c=x.add(A.cos(a),x.multiply(o0.imaginary(),A.sin(a)))),c}return Y(r)&&t?r=r.map(function(e){return x.pow(e,i.clone())}):J(r)&&t?(s=new l0,r.eachElement(function(e,t,n){s.set(t,n,x.pow(e,i.clone()))}),r=s):e&&J(i)&&(s=new l0,i.eachElement(function(e,t,n){s.set(t,n,x.pow(r.clone(),e))}),r=s),r},this.comma=function(e,t){return(e=e instanceof D?e:D.create(e)).append(t),e},this.mod=t,this.slice=function(e,t){return new r(e,t)},this.equals=function(e,t){return e.group===G||e.isLinear()||Q("Cannot set equality for "+e.toString()),d0[e.value]=t.clone(),t},this.percent=function(e){return x.divide(e,new o0(100))},this.assign=function(e,n){if(e instanceof D&&n instanceof D)return e.elements.map(function(e,t){return x.assign(e,n.elements[t])}),u0.fromArray(n.elements);var t;if(e.parent)return(t=e.parent).elements[t.getter]=n,delete t.getter,t;if(e.group!==G)throw new W0("Cannot complete operation. Incorrect LH value for "+e);return d0[e.value]=n},this.function_assign=function(e,t){var n=e.elements.pop();return C0(n,e.elements,t)};function w(e){return new o0(!0===e?1:0)}this.eq=function(e,t){return w(e.equals(t))},this.gt=function(e,t){return w(e.gt(t))},this.gte=function(e,t){return w(e.gte(t))},this.lt=function(e,t){return w(e.lt(t))},this.lte=function(e,t){return w(e.lte(t))},this.factorial=function(e){return this.symfunction(m0,[e])},this.dfactorial=function(e){return this.symfunction(g0,[e])}}F.FUNCTION_MODULES.push(r0),q(r0),Math.sign=Math.sign||function(e){return 0===(e=+e)||isNaN(e)?e:0<e?1:-1},Math.cosh=Math.cosh||function(e){e=Math.exp(e);return(e+1/e)/2},Math.sech=Math.sech||function(e){return 1/Math.cosh(e)},Math.csch=Math.csch||function(e){return 1/Math.sinh(e)},Math.coth=Math.coth||function(e){return 1/Math.tanh(e)},Math.sinh=Math.sinh||function(e){e=Math.exp(e);return(e-1/e)/2},Math.tanh=Math.tanh||function(e){return e===1/0?1:e===-1/0?-1:((e=Math.exp(2*e))-1)/(e+1)},Math.asinh=Math.asinh||function(e){return e===-1/0?e:Math.log(e+Math.sqrt(e*e+1))},Math.acosh=Math.acosh||function(e){return Math.log(e+Math.sqrt(e*e-1))},Math.atanh=Math.atanh||function(e){return Math.log((1+e)/(1-e))/2},Math.log10=Math.log10||function(e){return Math.log(e)*Math.LOG10E},Math.trunc=Math.trunc||function(e){return isNaN(e)?NaN:0<e?Math.floor(e):Math.ceil(e)},o.getExpression=function(e,t){"last"!==e&&e||(e=U.length);e=U[(e="first"===e?1:e)-1];return e&&new o(e)},(o.prototype={text:function(e,t){return t=t||F.EXPRESSION_DECP,e=e||"decimals",this.symbol.text_?this.symbol.text_(e):i0(this.symbol,e,void 0,t)},latex:function(e){return this.symbol.latex?this.symbol.latex(e):a0.latex(this.symbol,e)},valueOf:function(){return this.symbol.valueOf()},evaluate:function(){var e,t,n,r;return Y(this.symbol)&&0===this.symbol.dimensions()?this:(n=1,"string"==typeof(e=arguments[0])?t="%"===e.charAt(0)?o.getExpression(e.substr(1)).text():e:e instanceof o||W(e)?t=e.text():(t=this.symbol.text(),n--),r=arguments[n]||{},new o(b("PARSE2NUMBER",function(){return d.parse(t,r)},!0)))},buildFunction:function(e){return r1.build(this.symbol,e)},isNumber:function(){return E0(this.symbol)},isInfinity:function(){return Math.abs(this.symbol.multiplier)===1/0},isImaginary:function(){return n0(d.parse(this.symbol)).isImaginary()},variables:function(){return O(this.symbol)},toString:function(){try{return K(this.symbol)?"["+this.symbol.toString()+"]":this.symbol.toString()}catch(e){if("timeout"===e.message)throw e;return""}},toDecimal:function(e){F.precision=e;e=i0(this.symbol,"decimals");return F.precision=void 0,e},isFraction:function(){return f(this.symbol)},isPolynomial:function(){return this.symbol.isPoly()},sub:function(e,t){return new o(this.symbol.sub(d.parse(e),d.parse(t)))},operation:function(e,t){return h(t)?t=t.symbol:W(t)||(t=d.parse(t)),new o(d[e](this.symbol.clone(),t.clone()))},add:function(e){return this.operation("add",e)},subtract:function(e){return this.operation("subtract",e)},multiply:function(e){return this.operation("multiply",e)},divide:function(e){return this.operation("divide",e)},pow:function(e){return this.operation("pow",e)},expand:function(){return new o(d.expand(this.symbol))},each:function(e,t){if(this.symbol.each)this.symbol.each(e,t);else if(K(this.symbol))for(t=0;t<this.symbol.length;t++)e.call(this.symbol,this.symbol[t],t);else e.call(this.symbol)},eq:function(e){W(e)||(e=d.parse(e));try{return d.subtract(this.symbol.clone(),e).equals(0)}catch(e){if("timeout"===e.message)throw e;return!1}},lt:function(e){W(e)||(e=d.parse(e));try{return n0(d.subtract(this.symbol.clone(),e)).lessThan(0)}catch(e){if("timeout"===e.message)throw e;return!1}},gt:function(e){W(e)||(e=d.parse(e));try{return n0(d.subtract(this.symbol.clone(),e)).greaterThan(0)}catch(e){if("timeout"===e.message)throw e;return!1}},gte:function(e){return this.gt(e)||this.eq(e)},lte:function(e){return this.lt(e)||this.eq(e)},numerator:function(){return new o(this.symbol.getNum())},denominator:function(){return new o(this.symbol.getDenom())},hasFunction:function(e){return this.symbol.containsFunction(e)},contains:function(e){return this.symbol.contains(e)}}).toTeX=o.prototype.latex,N.prototype={fromScientific:function(e){e=String(e).toLowerCase().split("e");return this.coeff=e[0],this.exponent=e[1],this},convert:function(e){var e=e.split("."),t=e[0]||"",e=e[1]||"",t=N.removeLeadingZeroes(t),e=N.removeTrailingZeroes(e),n=t.length,r=t+e,i=N.leadingZeroes(r).length,n=(this.exponent=n-(i+1),N.removeLeadingZeroes(r)),i=(this.coeff=n.charAt(0)+"."+(n.substr(1,n.length)||"0"),this.coeff.split(".")[1]||"");return this.decp="0"===i?0:i.length,this.dec=e,this.wholes=t,this},round:function(e){var t,n,r=this.copy();return 0===(e=Number(e))?r.coeff=r.coeff.charAt(0):(t=this.coeff.substring(0,e+1),n=(e=this.coeff.substring(e+1,e+3)).charAt(0),4<e.charAt(1)&&n++,r.coeff=t+n),r},copy:function(){var e=new N(0);return e.coeff=this.coeff,e.exponent=this.exponent,e.sign=this.sign,e},toString:function(e){return e=F.SCIENTIFIC_IGNORE_ZERO_EXPONENTS&&0===this.exponent&&this.decp<e?0===this.decp?this.wholes:this.coeff:(e=void 0===e?this.coeff:N.round(this.coeff,Math.min(e,this.decp||1)),0===this.exponent?e:e+"e"+this.exponent),(-1===this.sign?"-":"")+e}},N.isScientific=function(e){return/\d+\.?\d*e[\+\-]*\d+/i.test(e)},N.leadingZeroes=function(e){e=e.match(/^(0*).*$/);return e?e[1]:""},N.removeLeadingZeroes=function(e){e=e.match(/^0*(.*)$/);return e?e[1]:""},N.removeTrailingZeroes=function(e){var t=e.match(/0*$/);return t?e.substring(0,e.length-t[0].length):""},N.round=function(e,t){e=U0(e,t),t-=String(e).split(".").pop().length;return 0<t&&(e+=new Array(1+t).join(0)),e},s0.create=function(e){var t;return e instanceof s0||(e=new s0(e=(t="-"===(e=e.toString()).charAt(0))?e.substr(1,e.length-1):e),t&&e.negate()),e},s0.isFrac=function(e){return e instanceof s0},s0.quick=function(e,t){var n=new s0;return n.num=new S(e),n.den=new S(t),n},s0.simple=function(e){for(var e=String(y0(e)).split("."),t=e.join(""),n=1,r=(e[1]||"").length,i=0;i<r;i++)n+="0";return s0.quick(t,n).simplify()},s0.prototype={multiply:function(e){var t;return this.isOne()?e.clone():e.isOne()?this.clone():((t=this.clone()).num=t.num.multiply(e.num),t.den=t.den.multiply(e.den),t.simplify())},divide:function(e){if(e.equals(0))throw new F0("Division by zero not allowed!");return this.clone().multiply(e.clone().invert()).simplify()},subtract:function(e){return this.clone().add(e.clone().neg())},neg:function(){return this.num=this.num.multiply(-1),this},add:function(e){var t=this.den,n=e.den,r=this.clone(),i=r.num,e=e.num;return t.equals(n)?r.num=i.add(e):(r.num=i.multiply(n).add(e.multiply(t)),r.den=t.multiply(n)),r.simplify()},mod:function(e){var t=this.clone(),e=e.clone();return t.num=t.num.multiply(e.den),t.den=t.den.multiply(e.den),e.num=e.num.multiply(this.den),e.den=e.den.multiply(this.den),t.num=t.num.mod(e.num),t.simplify()},simplify:function(){var e=S.gcd(this.num,this.den);return this.num=this.num.divide(e),this.den=this.den.divide(e),this},clone:function(){var e=new s0;return e.num=new S(this.num),e.den=new S(this.den),e},decimal:function(e){var t=this.num.isNegative()?"-":"";if(this.num.equals(this.den))return"1";e=e||F.PRECISION,e++;for(var n=[],r=this.num.abs(),i=this.den,s=0;s<e;s++){var o=r.divide(i),a=r.subtract(o.multiply(i));if(n.push(o),a.equals(0))break;r=a.times(10)}var u=n.shift();if(0===n.length)return t+u.toString();if(s===e){for(var l=[],s=0;s<2;s++)l.unshift(n.pop());n.push(Math.round(l.join(".")))}return t+(u.toString()+"."+n.join(""))},toDecimal:function(e){return(e=e||F.PRECISION)?this.decimal(e):this.num/this.den},qcompare:function(e){return[this.num.multiply(e.den),e.num.multiply(this.den)]},equals:function(e){isNaN(e)||(e=new s0(e));e=this.qcompare(e);return e[0].equals(e[1])},absEquals:function(e){isNaN(e)||(e=new s0(e));e=this.qcompare(e);return e[0].abs().equals(e[1])},greaterThan:function(e){isNaN(e)||(e=new s0(e));e=this.qcompare(e);return e[0].gt(e[1])},gte:function(e){return this.greaterThan(e)||this.equals(e)},lte:function(e){return this.lessThan(e)||this.equals(e)},lessThan:function(e){isNaN(e)||(e=new s0(e));e=this.qcompare(e);return e[0].lt(e[1])},isInteger:function(){return this.den.equals(1)},negate:function(){return this.num=this.num.multiply(-1),this},invert:function(){var e,t=this.den;return this.num.equals(0)||(e=this.num.isNegative(),this.den=this.num.abs(),this.num=t,e&&(this.num=this.num.multiply(-1))),this},isOne:function(){return this.num.equals(1)&&this.den.equals(1)},sign:function(){return this.num.isNegative()?-1:1},abs:function(){return this.num=this.num.abs(),this},gcd:function(e){return s0.quick(S.gcd(e.num,this.num),S.lcm(e.den,this.den))},toString:function(){return this.den.equals(1)?this.num.toString():this.num.toString()+"/"+this.den.toString()},valueOf:function(){return F.USE_BIG?new k(this.num.toString()).div(new k(this.den.toString())):this.num/this.den},isNegative:function(){return this.toDecimal()<0}},o0.imaginary=function(){var e=new o0(F.IMAGINARY);return e.imaginary=!0,e},o0.infinity=function(e){var t=new o0("Infinity");return-1===e&&t.negate(),t},o0.shell=function(e,t){t=new o0(t);return t.group=e,t.symbols={},t.length=0,t},o0.unwrapSQRT=function(e,t){var n,r=e.power;return e.fname===$&&(e.isLinear()||t)&&((n=e.args[0].clone()).power=n.power.multiply(new s0(.5)),n.multiplier=n.multiplier.multiply(e.multiplier),e=n,t)&&(e.power=r.multiply(new s0(.5))),e},o0.hyp=function(e,t){return e=e||new o0(0),t=t||new o0(0),d.sqrt(d.add(d.pow(e.clone(),new o0(2)),d.pow(t.clone(),new o0(2))))},o0.toPolarFormArray=function(e){var t=e.realpart(),e=e.imagpart();return[o0.hyp(t,e),t.equals(0)?d.parse("pi/2"):d.trig.atan(d.divide(e,t))]},o0.unwrapPARENS=function(e){var t;return""===e.fname?((t=e.args[0]).power=t.power.multiply(e.power),t.multiplier=t.multiplier.multiply(e.multiplier),""===e.fname?o0.unwrapPARENS(t):t):e},o0.create=function(e,t){return d.parse("("+e+")^("+(t=void 0===t?1:t)+")")},o0.prototype={pushMinus:function(){let e=this;if((this.group===Z||this.group===z||this.group===X)&&this.multiplier.lessThan(0)&&!t0(this.power)){var t,n=(e=this.clone()).multiplier.clone();for(t in n.negate(),e.toUnitMultiplier(),e.symbols)if(e.symbols[t]=e.symbols[t].clone().negate(),e.group===Z)break;0<e.length&&e.each(e=>e.pushMinus()),e=d.parse(e),e=d.multiply(d.parse(n),e)}return e},getNth:function(e){var t=n0(d.pow(d.parse(this.multiplier),d.parse(e).invert())),n=d.parse(U0(t));return n0(d.pow(n,d.parse(e))).equals(d.parse(this.multiplier))?n:t},isToNth:function(t){var n,e=this.getNth(t),e=e0(e);return this.group===Z?(n=!0,this.each(function(e){e.isToNth(t)||(n=!1)})):n=this.group===B||e0(d.divide(d.parse(this.power),d.parse(t))),e&&n},isSquare:function(){return this.isToNth(2)},isCube:function(){return this.isToNth(3)},isSimple:function(){return this.power.equals(1)&&this.multiplier.equals(1)},powSimp:function(){if(this.group!==Z)return this.clone();var t=[];this.multiplier.sign();if(this.each(function(e){e=e.power;W(e)||e.equals(1)||t.push(e)}),0===t.length)return this.clone();var e,n=new s0(g(t)),r=this.multiplier.sign(),i=this.multiplier.clone().abs(),s=r0.ifactor(i),o=new s0(1),a=new s0(1);for(e in s){var u=new s0(s[e]);u.lessThan(n)||(u=u.divide(n).subtract(new s0(1)),a=a.multiply(new s0(e))),o=o.multiply(d.parse(M(e)+"^"+M(u)).multiplier)}var l=new o0(a),i=(this.each(function(e){(e=e.clone()).power=e.power.divide(n),l=d.multiply(l,e)}),d.symfunction(f0,[l]));return i.power=n,i.multiplier=r<0?o.negate():o,i},equals:function(e){return W(e)||(e=new o0(e)),this.value===e.value&&this.power.equals(e.power)&&this.multiplier.equals(e.multiplier)&&this.group===e.group},abs:function(){var e=this.clone();return e.multiplier.abs(),e},gt:function(e){return W(e)||(e=new o0(e)),this.isConstant()&&e.isConstant()&&this.multiplier.greaterThan(e.multiplier)},gte:function(e){return W(e)||(e=new o0(e)),this.equals(e)||this.isConstant()&&e.isConstant()&&this.multiplier.greaterThan(e.multiplier)},lt:function(e){return W(e)||(e=new o0(e)),this.isConstant()&&e.isConstant()&&this.multiplier.lessThan(e.multiplier)},lte:function(e){return W(e)||(e=new o0(e)),this.equals(e)||this.isConstant()&&e.isConstant()&&this.multiplier.lessThan(e.multiplier)},isPoly:function(e){var t=this.group,n=this.power;if(e0(n)&&!(n<0)){if(t===B||t===G||this.isConstant(!0))return!0;n=O(this);if(t===Z&&1===n.length){var r=n[0];if(r)for(var i in this.symbols){var s=this.symbols[i];if(s.group===j&&!s.args[0].isConstant())return!1;if(!s.contains(r)&&!s.isConstant(!0))return!1}return!0}if(this.isComposite()||t===Z&&e){if(!e&&1<n.length)return!1;for(var i in this.symbols)if(!this.symbols[i].isPoly(e))return!1;return!0}}return!1},stripVar:function(t,e){var n;return this.group!==X&&this.group!==G||this.value!==t?this.group===Z&&this.isLinear()?(n=new o0(1),this.each(function(e){e.contains(t,!0)||(n=d.multiply(n,e.clone()))}),n.multiplier=n.multiplier.multiply(this.multiplier)):this.group!==z||this.isLinear()?this.group===z&&this.isLinear()?(n=new o0(0),this.each(function(e){e.contains(t)||((e=e.clone()).multiplier=e.multiplier.multiply(this.multiplier),n=d.add(n,e))}),n.equals(0)&&(n=new o0(this.multiplier))):n=this.group===H&&this.power.contains(t,!0)||this.group===j&&this.contains(t)?new o0(this.multiplier):this.clone():n=new o0(this.multiplier):n=new o0(e?0:this.multiplier),n},toArray:function(n,r){r=r||{arr:[],add:function(e,t){var n=this.arr[t];this.arr[t]=n?d.add(n,e):e}};var e=this.group;if(e===G&&this.contains(n))r.add(new o0(this.multiplier),this.power);else if(e===Z){var t=this.stripVar(n),i=d.divide(this.clone(),t.clone()),i=i.isConstant()?0:i.power;r.add(t,i)}else if(e===X&&this.value===n)this.each(function(e,t){r.add(e.stripVar(n),t)});else if(e===z)this.each(function(e){e.toArray(n,r)});else{if(this.contains(n))throw new H0("Cannot convert to array! Exiting");r.add(this.clone(),0)}r=r.arr;for(var s=0;s<r.length;s++)r[s]||(r[s]=new o0(0));return r},hasFunc:function(e){var t=this.group===j||this.group===H;if(t&&!e||t&&this.contains(e))return!0;if(this.symbols)for(var n in this.symbols)if(this.symbols[n].hasFunc(e))return!0;return!1},sub:function(t,n){t=W(t)?t.clone():d.parse(t),n=W(n)?n.clone():d.parse(n),t.group!==B&&t.group!==V||Q("Cannot substitute a number. Must be a variable");var r,e=!1,i=t.multiplier.equals(1),s=this.multiplier.clone();if(this.value===t.value&&(this.group!==X&&t.group!==X||this.group===X&&t.group===X))(i||t.multiplier.equals(this.multiplier))&&(t.isLinear()?r=n:t.power.equals(this.power)&&(r=n,e=!0),t.multiplier.equals(this.multiplier))&&(s=new s0(1));else if(this.group===Z||this.previousGroup===Z)r=new o0(1),this.each(function(e){e=d.parse(e.sub(t,n));r=d.multiply(r,e)});else if(this.isComposite()){var o=this.clone();if(t.isComposite()&&o.isComposite()&&o.isLinear()&&t.isLinear()){var a,u=function(e,t){for(var n in e.symbols){n=e.symbols[n];if(n.isComposite()&&u(n,t)||n.equals(t))return!0}return!1};for(a in t.symbols)if(!u(o,t.symbols[a]))return o.clone();r=d.add(d.subtract(o.clone(),t),n)}else r=new o0(0),o.each(function(e){r=d.add(r,e.sub(t,n))})}else if(this.group===H)r=d.parse(this.value).sub(t,n);else if(this.group===j){for(var l=[],c=0;c<this.args.length;c++){var p=this.args[c];W(p)||(p=d.parse(p)),l.push(p.sub(t,n))}r=d.symfunction(this.fname,l)}return r?(e||(i=this.group===H?this.power.sub(t,n):d.parse(this.power),r=d.pow(r,i)),r.multiplier=r.multiplier.multiply(s),r):this.clone()},isMonomial:function(){if(this.group!==G){if(this.group!==Z)return!1;for(var e in this.symbols)if(this.symbols[e].group!==G)return!1}return!0},isPi:function(){return this.group===G&&"pi"===this.value},sign:function(){return this.multiplier.sign()},isE:function(){return"e"===this.value},isSQRT:function(){return this.fname===$},isConstant:function(t,n){if(n&&this.group===Z)for(var e in this.symbols)if(this.symbols[e].isConstant(!0))return!0;var r;if("functions"===t&&this.isComposite())return r=!0,this.each(function(e){e.isConstant(t,n)||(r=!1)},!0),r;if("all"===t&&(this.isPi()||this.isE()))return!0;if(t&&this.group===j){for(var i=0;i<this.args.length;i++)if(!this.args[i].isConstant(t))return!1;return!0}return t?E0(this):this.value===I},isImaginary:function(){if(this.imaginary)return!0;if(this.symbols)for(var e in this.symbols)if(this.symbols[e].isImaginary())return!0;return!1},realpart:function(){var t;return this.isConstant()?this.clone():this.imaginary?new o0(0):this.isComposite()?(t=new o0(0),this.each(function(e){t=d.add(t,e.realpart())}),t):this.isImaginary()?new o0(0):this.clone()},imagpart:function(){if(this.group===G&&this.isImaginary()){let e=this;return this.power.isNegative()&&((e=this.clone()).power.negate(),e.multiplier.negate()),new o0(e.multiplier)}var t;return this.isComposite()?(t=new o0(0),this.each(function(e){t=d.add(t,e.imagpart())}),t):this.group===Z?this.stripVar(F.IMAGINARY):new o0(0)},isInteger:function(){return this.isConstant()&&this.multiplier.isInteger()},isLinear:function(e){if(e){if(this.isConstant())return!0;if(this.group===G)return this.value!==e||this.power.equals(1);if(this.isComposite()&&this.power.equals(1)){for(var t in this.symbols)if(!this.symbols[t].isLinear(e))return!1;return!0}return this.group===Z&&this.symbols[e]?this.symbols[e].isLinear(e):!1}return this.power.equals(1)},containsFunction:function(e){if("string"==typeof e&&(e=[e]),this.group===j&&-1!==e.indexOf(this.fname))return!0;if(this.symbols)for(var t in this.symbols)if(this.symbols[t].containsFunction(e))return!0;return!1},multiplyPower:function(e){var t,n;return this.group===B&&this.multiplier.equals(1)||(t=this.power,this.group!==H&&e.group===B?(n=e.multiplier,this.group!==B||n.isInteger()||this.convert(V),this.power=t.equals(1)?n.clone():t.multiply(n),this.group===V&&e0(this.power)&&(this.value=Math.pow(this.value,this.power),this.toLinear(),this.convert(B))):(this.group!==H&&(t=new o0(t),this.convert(H)),this.power=d.multiply(t,e))),this},setPower:function(e,t){var n;return this.group===B&&this.multiplier.equals(1)||(this.group!==H||W(e)?(n=!1,W(e)&&(e.group===B?e=e.multiplier:n=!0),n=n?H:V,this.power=e,this.group===B&&n&&this.convert(n,t)):(this.group=this.previousGroup,delete this.previousGroup,this.group===B?(this.multiplier=new s0(this.value),this.value=I):this.power=e)),this},isInverse:function(){return this.group===H?this.power.multiplier.lessThan(0):this.power<0},clone:function(e){var t,n=e||new o0(0),r=["value","group","length","previousGroup","imaginary","fname","args","isInfinity","scientific"],i=r.length;if(this.symbols)for(var s in n.symbols={},this.symbols)n.symbols[s]=this.symbols[s].clone();for(t=0;t<i;t++)void 0!==this[r[t]]&&(n[r[t]]=this[r[t]]);return n.power=this.power.clone(),n.multiplier=this.multiplier.clone(),this.isConversion&&(n.isConversion=this.isConversion),this.isUnit&&(n.isUnit=this.isUnit),n},toUnitMultiplier:function(e){return this.multiplier.num=new S(this.multiplier.num.isNegative()&&e?-1:1),this.multiplier.den=new S(1),this},toLinear:function(){return this.power.equals(1)||this.setPower(new s0(1)),this},each:function(e,t){if(this.symbols)for(var n in this.symbols){var r=this.symbols[n];if(r.group===X&&t)for(var i in r.symbols)e.call(n,r.symbols[i],i);else e.call(this,r,n)}else e.call(this,this,this.value)},valueOf:function(){return this.group===B?this.multiplier.valueOf():0===this.power?1:0===this.multiplier?0:i0(this,"decimals")},contains:function(e,t){e=String(e);var n=this.group;if(this.value===e)return!0;if(this.symbols)for(var r in this.symbols)if(this.symbols[r].contains(e,t))return!0;if(n===j||this.previousGroup===j)for(var i=0;i<this.args.length;i++)if(this.args[i].contains(e,t))return!0;if(n===H){if(t&&this.power.contains(e,t))return!0;if(this.value===e)return!0}return this.value===e},negate:function(){return this.multiplier.negate(),this.group!==z&&this.group!==X||this.distributeMultiplier(),this},invert:function(e,t){return e||(this.multiplier=this.multiplier.invert()),W(this.power)?this.power.negate():this.group===Z&&t?this.each(function(e){return e.invert()}):this.power&&this.group!==B&&this.power.negate(),this},distributeMultiplier:function(e){e=e?this.power.absEquals(1):this.power.equals(1);if(this.symbols&&e&&this.group!==Z&&!this.multiplier.equals(1)){for(var t in this.symbols){t=this.symbols[t];t.multiplier=t.multiplier.multiply(this.multiplier),t.distributeMultiplier()}this.toUnitMultiplier()}return this},distributeExponent:function(){if(!this.power.equals(1)){var e,t=this.power;for(e in this.symbols){var n=this.symbols[e];n.group===H?n.power=d.multiply(n.power,new o0(t)):W(this.symbols[e].power)?this.symbols[e].power=d.multiply(this.symbols[e].power,new o0(t)):this.symbols[e].power=this.symbols[e].power.multiply(t)}this.toLinear()}return this},convert:function(e,t){var n;return j<e?(n=this.clone(),this.symbols={},(e===Z?n:this).toUnitMultiplier(),this.group===j&&(n.args=this.args,delete this.args,delete this.fname),this.isImgSymbol&&delete this.isImgSymbol,this.toLinear(),this.symbols[n.keyForGroup(e)]=n,this.group=e,this.length=1):e===H?this.group===B&&this.multiplier.equals(1)||(this.group!==H&&(this.previousGroup=this.group),this.group===B?(this.value=this.multiplier.num.toString(),this.toUnitMultiplier()):this.value=i0(this,"hash"),this.group=H):e===B?(n=this.multiplier.toDecimal(),this.symbols&&(this.symbols=void 0),new o0(this.group===V?n*Math.pow(this.value,this.power):n).clone(this)):e===V&&this.group===B&&(this.value=t?this.multiplier.num.toString():Math.abs(this.multiplier.num.toString()),this.toUnitMultiplier(!t),this.group=V),this},insert:function(e,t){var n,r;return W(e)||Q("Object "+e+" is not of type Symbol!"),this.symbols&&(n=this.group,j<n)&&(r=(n=e.keyForGroup(n))in this.symbols&&this.symbols[n],"add"===t?(t=n,r?(this.symbols[t]=d.add(r,e),this.symbols[t].multiplier.equals(0)&&(delete this.symbols[t],this.length--,0===this.length)&&(this.convert(B),this.multiplier=new s0(0))):(this.symbols[n]=e,this.length++)):(e.group===V&&e0(e.power)&&e.convert(B),e.group!==H?(this.multiplier=this.multiplier.multiply(e.multiplier),e.toUnitMultiplier()):(e.parens=e.multiplier.lessThan(0),this.multiplier=this.multiplier.multiply(e.multiplier.clone().abs()),e.toUnitMultiplier(!0)),r&&((e=d.multiply(R0(this.symbols,n),e)).isConstant()&&(this.multiplier=this.multiplier.multiply(e.multiplier),e=new o0(1)),this.length--),e.isOne(!0)?e.multiplier.lessThan(0)&&this.negate():(this.symbols[n]=e,this.length++)),0===this.length&&this.convert(B),this.group!==z&&this.group!==Z||this.updateHash()),this},attach:function(e){if(K(e)){for(var t=0;t<e.length;t++)this.insert(e[t],"add");return this}return this.insert(e,"add")},combine:function(e){if(K(e)){for(var t=0;t<e.length;t++)this.insert(e[t],"multiply");return this}return this.insert(e,"multiply")},updateHash:function(){if(this.group!==B)if(this.group===j){for(var e="",t=this.args,n=this.fname===f0,r=0;r<t.length;r++)e+=(0===r?"":",")+i0(t[r]);var i=n?"":this.fname;this.value=i+(n?e:M(e))}else this.group!==G&&this.group!==X&&(this.value=i0(this,"hash"))},keyForGroup:function(e){var t,n=this.group;if(n===B)t=this.value;else if(n===G||n===V)t=e===X?this.power.toDecimal():this.value;else if(n===j)t=e===X?this.power.toDecimal():i0(this,"hash");else{if(n===X)return t=e===Z?i0(this,"hash"):e===z?this.power.equals(1)?this.value:M(i0(this,"hash"))+F.POWER_OPERATOR+this.power.toDecimal():e===X?this.power.toString():this.value;n===z?(e===z&&(t=i0(this,"hash")),t=e===X?this.power.toDecimal():this.value):n===Z?t=e===X?this.power.toDecimal():i0(this,"hash"):n===H&&(t=e===X?i0(this.power):i0(this,"hash"))}return t},collectSymbols:function(e,t,n,r){var i=[];if(this.symbols)for(var s in this.symbols){s=this.symbols[s];!r||s.group!==X&&s.group!==z?i.push(e?e(s,t):s):i=i.concat(s.collectSymbols())}else i.push(this);return i.sort(n=null===n?void 0:n)},collectSummandSymbols:function(e,t,n,r){var i=[];if(this.symbols&&this.group!==Z)for(var s in this.symbols){s=this.symbols[s];!r||s.group!==X&&s.group!==z?i.push(e?e(s,t):s):i=i.concat(s.collectSymbols())}else i.push(this);return i.sort(n=null===n?void 0:n)},latex:function(e){return a0.latex(this,e)},text:function(e){return i0(this,e)},isOne:function(e){return this.group===B?this.multiplier[e?"absEquals":"equals"](1):this.power.equals(0)},isComposite:function(){var e=this.group,t=this.previousGroup;return e===z||e===X||t===X||t===z},isCombination:function(){var e=this.group,t=this.previousGroup;return e===Z||t===Z},lessThan:function(e){return this.multiplier.lessThan(e)},greaterThan:function(e){return W(e)||(e=new o0(e)),!(!this.isConstant(!0)||!e.isConstant(!0))&&this.multiplier.greaterThan(e.multiplier)},getDenom:function(){var e=this.clone();if((e=this.group===Z&&this.power.lessThan(0)?d.expand(e):e).power.lessThan(0)||e.group===H&&e.power.multiplier.lessThan(0)){var t,n=d.parse(e.multiplier.den);(t=e.toUnitMultiplier()).power.negate(),t=d.multiply(n,t)}else if(e.group===Z)for(var r in t=d.parse(e.multiplier.den),e.symbols){var i=e.symbols[r];(i.power<0||i.group===H&&i.power.multiplier.lessThan(0))&&(t=d.multiply(t,e.symbols[r].clone().invert()))}else t=d.parse(e.multiplier.den);return t},getNum:function(){var t,e=this.clone();return(e=e.group===Z&&e.power.lessThan(0)?d.expand(e):e).power.greaterThan(0)&&e.group!==Z||e.group===H&&e.power.multiplier.greaterThan(0)?t=d.multiply(d.parse(e.multiplier.num),e.toUnitMultiplier()):e.group===Z?(t=d.parse(e.multiplier.num),e.each(function(e){(0<e.power||e.group===H&&0<e.power.multiplier)&&(t=d.multiply(t,e.clone()))})):t=d.parse(e.multiplier.num),t},toString:function(){return this.text()}};var t1={convert:function(e,t){var n,r,i,s;return 0===e?s=[0,1]:e<1e-6||1e20<e?(n=this.quickConversion(Number(e)))[1]<=1e20?(i=e/(r=Math.abs(e)),(s=this.fullConversion(r.toFixed((n[1]+"").length-1)))[0]=s[0]*i):s=n:s=this.fullConversion(e),s},quickConversion:function(e){var t,n;return e=e,N.isScientific(e)&&(e=y0(e)),n="","-"===(t=(e="string"!=typeof(e=e)?e.toString():e).charAt(0))?(e=e.substr(1,e.length),n="-"):"+"===t&&(e=e.substr(1,e.length)),e=1===(n=(t={sign:n,value:e}).value.split(".")).length?n[0]:n[0]+n[1],n=n[1]?n[1].length:0,n="1"+"0".repeat(n),"0"!==e&&(e=e.replace(/^0+/,"")),[t.sign+e,n]},fullConversion:function(e){for(var t=!1,n=0,r=1,i=1,s=0,o=0,a=e;!t;){1e4<++o&&(t=!0);var u=Math.floor(a),l=n+u*i,c=r+u*s,u=a-u;u<1e-16&&(t=!0),a=1/u,n=i,r=s,i=l,s=c,(Math.abs(l/c-e)<1e-16||30<o)&&(t=!0)}return[l,c]}},a0={parser:function(){var e,t=["classes","setOperator","getOperators","getBrackets","tokenize","toRPN","tree","units"],n=new e1;for(e in n)-1===t.indexOf(e)&&delete n[e];return n.setOperator({precedence:8,operator:"\\",action:"slash",prefix:!0,postfix:!1,leftAssoc:!0,operation:function(e){return e}}),n.setOperator({precedence:8,operator:"\\,",action:"slash_comma",prefix:!0,postfix:!1,leftAssoc:!0,operation:function(e){return e}}),n.getBrackets()["{"].maps_to=void 0,n}(),space:"~",dot:" \\cdot ",latex:function(e,t){if((e=e.clone?e.clone():e)instanceof d.classes.Collection&&(e=e.elements),K(e)){for(var n=[],r=0;r<e.length;r++){var i=e[r];W(i)||(i=d.parse(i)),n.push(this.latex(i,t))}return this.brackets(n.join(", "),"square")}if(J(e)){for(var s="\\begin{pmatrix}\n",r=0;r<e.elements.length;r++){for(var o=[],a=e.elements[r],u=0;u<a.length;u++)o.push(this.latex(a[u],t));s+=o.join(" & "),r<e.elements.length-1&&(s+="\\\\\n")}return s+="\\end{pmatrix}"}if(Y(e)){for(s="\\left[",r=0;r<e.elements.length;r++)s+=this.latex(e.elements[r],t)+" "+(r!==e.elements.length-1?",\\,":"");return s+="\\right]"}if(N0(e)){for(s="\\{",r=0;r<e.elements.length;r++)s+=this.latex(e.elements[r],t)+" "+(r!==e.elements.length-1?",\\,":"");return s+="\\}"}var l,c,p,f="decimal"===t||"decimals"===t,h=(e=e.clone()).power,m=x(h),g=e.multiplier.lessThan(0);return e.group===V&&f?String(e.multiplier.toDecimal()*Math.pow(e.value,e.power.toDecimal())):(e.multiplier=e.multiplier.abs(),l=f?[String(e.multiplier.toDecimal()),""]:[e.multiplier.num,e.multiplier.den],c=this.value(e,m,t,g),m&&h.negate(),f?(p=W(h)?a0.latex(h,t):String(h.toDecimal()),"1"===String(p)&&(p="")):p=W(h)?this.latex(h,t):this.formatFrac(h,!0),(f=["",""])[m?1:0]=p,((g?"-":"")+this.set(l,c,f,e.group===Z)).replace(/\+\-/gi,"-"))},greek:{alpha:"\\alpha",beta:"\\beta",gamma:"\\gamma",delta:"\\delta",epsilon:"\\epsilon",zeta:"\\zeta",eta:"\\eta",theta:"\\theta",iota:"\\iota",kappa:"\\kappa",lambda:"\\lambda",mu:"\\mu",nu:"\\nu",xi:"\\xi",omnikron:"\\omnikron",pi:"\\pi",rho:"\\rho",sigma:"\\sigma",tau:"\\tau",upsilon:"\\upsilon",phi:"\\phi",chi:"\\chi",psi:"\\psi",omega:"\\omega",Gamma:"\\Gamma",Delta:"\\Delta",Epsilon:"\\Epsilon",Theta:"\\Theta",Lambda:"\\Lambda",Xi:"\\Xi",Pi:"\\Pi",Sigma:"\\Sigma",Phi:"\\Phi",Psi:"\\Psi",Omega:"\\Omega"},symbols:{arccos:"\\arccos",cos:"\\cos",csc:"\\csc",exp:"\\exp",ker:"\\ker",limsup:"\\limsup",min:"\\min",sinh:"\\sinh",arcsin:"\\arcsin",cosh:"\\cosh",deg:"\\deg",gcd:"\\gcd",lg:"\\lg",ln:"\\ln",Pr:"\\Pr",sqrt:"\\sqrt",sup:"\\sup",arctan:"\\arctan",cot:"\\cot",det:"\\det",hom:"\\hom",lim:"\\lim",log:"\\log",LN:"\\LN",sec:"\\sec",tan:"\\tan",arg:"\\arg",coth:"\\coth",dim:"\\dim",inf:"\\inf",liminf:"\\liminf",max:"\\max",sin:"\\sin",tanh:"\\tanh"},value:function(n,e,r,t){var i,s,o,a,u,l,c=n.group,p=n.previousGroup,f=["",""],e=e?1:0;if(n.isInfinity)f[e]="\\infty";else if(c===G||c===V||p===G||p===V||p===B){(q=this.formatSubscripts(n.value)).replace&&(q=q.replace(/(.+)_$/,"$1\\_"));var h=String(q).split("_"),m=this.greek[h[0]];m&&(h[0]=m,q=h.join("_")),(n=this.symbols[h[0]])&&(h[0]=n,q=h.join("_")),f[e]=q}else if(c===j||p===j){for(var g,d,v,w=[],m=n.fname,y=0;y<n.args.length;y++){var b,S="string"==typeof(b=n.args[y])?b:this.latex(b,r);w.push(S)}m===$?f[e]="\\sqrt"+this.braces(w.join(",")):m===h0?f[e]=this.brackets(w.join(","),"abs"):m===f0?f[e]=this.brackets(w.join(","),"parens"):"limit"===m?f[e]=" \\lim\\limits_{"+w[1]+" \\to "+w[2]+"} "+w[0]:"integrate"===m?f[e]="\\int"+this.braces(w[0])+this.braces("d"+w[1]):"defint"===m?f[e]="\\int\\limits_"+this.braces(w[1])+"^"+this.braces(w[2])+" "+w[0]+" d"+w[3]:m===m0||m===g0?((b=n.args[0]).power.equals(1)&&(b.isComposite()||b.isCombination())&&(w[0]=this.brackets(w[0])),f[e]=w[0]+(m===m0?"!":"!!")):"floor"===m?f[e]="\\left \\lfloor"+this.braces(w[0])+"\\right \\rfloor":"ceil"===m?f[e]="\\left \\lceil"+this.braces(w[0])+"\\right \\rceil":m===F.LOG&&1<w.length?f[e]="\\mathrm"+this.braces(F.LOG)+"_"+this.braces(w[1])+this.brackets(w[0]):m===F.LOG10?f[e]="\\mathrm"+this.braces(F.LOG)+"_"+this.braces(10)+this.brackets(w[0]):"sum"===m?(g=w[0],d=w[2],v=w[3],f[e]="\\sum\\limits_{"+this.braces(w[1])+"="+this.braces(d)+"}^"+this.braces(v)+" "+this.braces(g)):"product"===m?(g=w[0],d=w[2],v=w[3],f[e]="\\prod\\limits_{"+this.braces(w[1])+"="+this.braces(d)+"}^"+this.braces(v)+" "+this.braces(g)):"nthroot"===m?f[e]="\\sqrt["+w[1]+"]"+this.braces(w[0]):"mod"===m?f[e]=w[0]+" \\bmod "+w[1]:"realpart"===m?f[e]="\\operatorname{Re}"+this.brackets(w[0]):"imagpart"===m?f[e]="\\operatorname{Im}"+this.brackets(w[0]):(h=""!==m?"\\mathrm"+this.braces(m.replace(/_/g,"\\_")):"",n.isConversion?f[e]=h+this.brackets(w.join(""),"parens"):f[e]=h+this.brackets(w.join(","),"parens"))}else if(n.isComposite()){for(var M=n.collectSymbols().sort(c===z||p===z?function(e,t){return t.group-e.group}:function(e,t){e=W(e.power)?-1:e.power;return(W(t.power)?-1:t.power)-e}),N=[],E=M.length,y=0;y<E;y++)N.push(a0.latex(M[y],r));var q=N.join("+");f[e]=n.isLinear()&&n.multiplier.equals(1)&&!t?q:this.brackets(q,"parens")}else c!==Z&&p!==H&&p!==Z||(c===Z&&n.distributeExponent(),i=[],s=[],o=[],a=[],l=u=0,d=function(e,t,n){if(1<n&&0<t.length)for(var r=t.length,i=0;i<r;i++){var s=t[i],o=e[s];/^\\left\(.+\\right\)\^\{.+\}$/g.test(o)||/^\\left\(.+\\right\)$/g.test(o)||(e[s]=a0.brackets(o,"parens"))}return e},n.each(function(e){var t;(x(e.power)?(t=a0.latex(e.invert(),r),l++,e.isComposite()&&(1!=n.multiplier.den&&1==Math.abs(e.power)&&(t=a0.brackets(t,"parens")),o.push(i.length)),i):(t=a0.latex(e,r),u++,e.isComposite()&&(1!=n.multiplier.num&&1==Math.abs(e.power)&&(t=a0.brackets(t,"parens")),a.push(s.length)),s)).push(t)}),d(s,a,u),f[0]=s.join(this.dot),d(i,o,l),f[1]=i.join(this.dot));return f},set:function(e,t,n,r){function i(e){return/^\\left\(.+\\right\)$/.test(e)}n=n&&this.formatP(n),r&&(s=n[0],n[0]=""),t=this.merge(t,n);var s,n=e[0],e=e[1],o=t[0],t=t[1],n=(o&&1===Number(n)&&(n=""),1===Number(e)&&(e=""),this.join(n,o,i(o)?"":this.dot)),o=this.join(e,t,i(t)?"":this.dot);return n&&o?(e=this.frac(n,o),r&&s?this.brackets(e)+s:e):n},merge:function(e,t){for(var n=[],r=0;r<2;r++)n[r]=e[r]+t[r];return n},join:function(e,t,n){return e||t?e&&!t?e:t&&!e?t:e+n+t:""},formatSubscripts:function(e){for(var t=e.toString().split("_"),n="";1<t.length;)0<t.length&&(n="_"+this.braces(t.pop()+n));return t[0]+n},formatP:function(e){for(var t=0;t<2;t++){var n=e[t];n&&(e[t]="^"+this.braces(n))}return e},formatFrac:function(e,t){var n=e.num.toString(),e=e.den.toString();return t&&"1"===n&&"1"===e?"":"1"===e?n:this.frac(n,e)},frac:function(e,t){return"\\frac"+this.braces(e)+this.braces(t)},braces:function(e){return"{"+e+"}"},brackets:function(e,t){t={parens:["(",")"],square:["[","]"],brace:["{","}"],abs:["|","|"],angle:["\\langle","\\rangle"]}[t=t||"parens"];return"\\left"+t[0]+e+"\\right"+t[1]},filterTokens:function(e){for(var t=[],n=(K(e)&&(t.type=e.type),["\\","left","right","big","Big","large","Large"]),r=0,i=e.length;r<i;r++){var s=e[r],o=e[r+1];"\\"===s.value&&"\\"===o.value?t.push(s):K(s)?t.push(a0.filterTokens(s)):-1===n.indexOf(s.value)&&t.push(s)}return t},parse:function(e){function t(){return a0.parse(o())}function n(e){return e in s?s[e]:"*"===e&&"&"===i[a+1].value?(o(2),","):"&"===e?(o(),","):"\\"===e?"],[":e}var r="",i=this.filterTokens(e),s={cdot:"",times:"",infty:"Infinity"},o=function(e){return i[void 0===e?++a:a+=e]},a=0;for(u=i.length;a<u;a++){var u,l,c,p,f,h,m,g=i[a];"frac"===g.value?r+=t()+"/"+t():g.value in a0.symbols?g.value===$&&"vector"===i[a+1].type&&"Set"===i[a+2].type?(p=t(),r+=t()+"^"+M("1/"+p)):r+=g.value+t():"int"===g.value?(h=t(),a++,c=n((c=o().value).substring(1,c.length)),r+="integrate"+M(h+","+c)):"int_"===g.value?(u=t(),a++,void 0===(l=o().value)&&(a--,l=t()),h=t(),"differentialD"===(c=","===(c=o().value)?o().value:c)&&(a++,c=o().value),"mathrm"===c&&(a++,c=o().value),r+="defint"+M(h+","+u+","+l+","+c)):g.value&&g.value.startsWith("int_")?(u=g.value.replace("int_",""),console.log("uppernow"),a++,void 0===(l=o().value)&&(a--,l=t()),h=t(),"differentialD"===(c=","===(c=o().value)?o().value:c)&&(a++,c=o().value),"mathrm"===c&&(a++,c=o().value),r+="defint"+M(h+","+u+","+l+","+c)):"mathrm"===g.value?r+=(h=i[++a][0].value)+t():"sum_"===g.value||"prod_"===g.value?(p="sum_"===g.value?"sum":"product",m=o(),a++,f=t(),h=t(),r+=p+M([h,n(m[0]),n(m[2]),n(f)].join(","))):"lim_"===g.value?(m=o(),r+="limit"+M([t(),n(m[0]),n(m[2])].join(","))):"begin"===g.value?(m=o(),Array.isArray(m)&&"matrix"===m[0].value&&(r+="matrix([")):"end"===g.value?(m=o(),Array.isArray(m)&&"matrix"===m[0].value&&(r+="])")):Array.isArray(g)?r+=n(a0.parse(g)):r+=n(g.value.toString())}return M(r)}};function u0(e){this.multiplier=new s0(1),Y(e)?this.elements=e.items.slice(0):K(e)?this.elements=e.slice(0):J(e)?1===e.elements.length?(this.elements=[...e.elements[0]],this.rowVector=!0):1<e.elements.length&&Array.isArray(e.elements[0])&&1===e.elements[0].length&&(this.elements=e.elements.map(e=>e[0]),this.rowVector=!1):this.elements=[].slice.call(arguments)}function l0(){this.multiplier=new s0(1);var e=arguments,t=e.length,n=[];if(J(e))for(o=0;o<t;o++)n.push(e[o].slice(0));else for(var r,i,s,o=0;o<t;o++)r=e[o],Y(r)&&(r=r.elements),s=(r=K(r)?r:[r]).length,i&&i!==s&&Q("Unable to create Matrix. Row dimensions do not match!"),n.push(r),i=s;this.elements=n}function n1(e){if(this.elements=[],e=Y(e)?e:u0.fromArray(arguments))for(var t=e.elements,n=0,r=t.length;n<r;n++)this.add(t[n])}u0.arrayPrefill=function(e,t){var n=[];t=t||0;for(var r=0;r<e;r++)n[r]=t;return n},u0.fromArray=function(e){var t=new u0;return t.elements=e,t},u0.fromSet=function(e){return u0.fromArray(e.elements)},u0.prototype={custom:!0,e:function(e){return e<1||e>this.elements.length?null:this.elements[e-1]},set:function(e,t){W(t)||(t=new o0(t)),this.elements[e]=t},dimensions:function(){return this.elements.length},modulus:function(){return b("SAFE",function(){return d.pow(this.dot(this.clone()),new o0(.5))},void 0,this)},eql:function(e){var t=this.elements.length,n=e.elements||e;if(t!==n.length)return!1;do{if(Math.abs(d.subtract(this.elements[t-1],n[t-1]).valueOf())>PRECISION)return!1}while(--t);return!0},clone:function(){for(var e=new u0,t=this.elements.length,n=0;n<t;n++)e.elements.push(this.elements[n].clone());return e.rowVector=this.rowVector,e},expand:function(t){return this.elements=this.elements.map(e=>d.expand(e,t)),this},map:function(n){var r=[];return this.each(function(e,t){r.push(n(e,t))}),new u0(r)},each:function(e){for(var t,n=this.elements.length,r=n;e(this.elements[t=r-n],1+t),--n;);},toUnitVector:function(){return b("SAFE",function(){var t=this.modulus();return 0===t.valueOf()?this.clone():this.map(function(e){return d.divide(e,t)})},void 0,this)},angleFrom:function(o){return b("SAFE",function(){var n,r,i,e,t,s=o.elements||o;return this.elements.length!==s.length||(n=new o0(0),r=new o0(0),i=new o0(0),this.each(function(e,t){n=d.add(n,d.multiply(e,s[t-1])),r=d.add(r,d.multiply(e,e)),i=d.add(i,d.multiply(s[t-1],s[t-1]))}),r=d.pow(r,new o0(.5)),i=d.pow(i,new o0(.5)),0===(e=d.multiply(r,i)).valueOf())?null:((t=(e=d.divide(n,e)).valueOf())<-1&&(e=-1),1<t&&(e=1),new o0(Math.acos(e)))},void 0,this)},isParallelTo:function(e){e=this.angleFrom(e).valueOf();return null===e?null:e<=PRECISION},isAntiparallelTo:function(e){e=this.angleFrom(e).valueOf();return null===e?null:Math.abs(e-Math.PI)<=PRECISION},isPerpendicularTo:function(e){e=this.dot(e);return null===e?null:Math.abs(e)<=PRECISION},add:function(e){return b("SAFE",function(){var n=e.elements||e;return this.elements.length!==n.length?null:this.map(function(e,t){return d.add(e,n[t-1])})},void 0,this)},subtract:function(e){return b("SAFE",function(){var n=e.elements||e;return this.elements.length!==n.length?null:this.map(function(e,t){return d.subtract(e,n[t-1])})},void 0,this)},multiply:function(t){return this.map(function(e){return e.clone()*t.clone()})},x:function(e){return this.multiply(e)},dot:function(r){return b("SAFE",function(){var e=r.elements||r,t=new o0(0),n=this.elements.length;if(n!==e.length)return null;for(;t=d.add(t,d.multiply(this.elements[n-1],e[n-1])),--n;);return t},void 0,this)},cross:function(e){var t=e.elements||e;if(3!==this.elements.length||3!==t.length)return null;const n=this.rowVector&&e.rowVector;var r=this.elements;return b("SAFE",function(){var e=new u0([d.subtract(d.multiply(r[1],t[2]),d.multiply(r[2],t[1])),d.subtract(d.multiply(r[2],t[0]),d.multiply(r[0],t[2])),d.subtract(d.multiply(r[0],t[1]),d.multiply(r[1],t[0]))]);return e.rowVector=n,e},void 0,this)},toUnitMultiplier:function(){return this},max:function(){for(var e,t=0,n=this.elements.length,r=n;e=r-n,Math.abs(this.elements[e].valueOf())>Math.abs(t.valueOf())&&(t=this.elements[e]),--n;);return t},magnitude:function(){var t=new o0(0);return this.each(function(e){t=d.add(t,d.pow(e,new o0(2)))}),d.sqrt(t)},indexOf:function(e){for(var t,n=null,r=this.elements.length,i=r;t=i-r,null===n&&this.elements[t].valueOf()===e.valueOf()&&(n=1+t),--r;);return n},text_:function(e,t){t=i0(this,t);return(this.rowVector?"[":"")+t+(this.rowVector?"]":"")},text:function(e,t){t=i0(this,t);return(this.rowVector?"[":"")+t+(this.rowVector?"]":"")},toString:function(){return this.text()},latex:function(e){for(var t=[],n=0;n<this.elements.length;n++)t.push(a0.latex.call(a0,this.elements[n],e));return"["+t.join(", ")+"]"}},l0.identity=function(e){for(var t=new l0,n=0;n<e;n++){t.elements.push([]);for(var r=0;r<e;r++)t.set(n,r,new o0(n===r?1:0))}return t},l0.fromArray=function(e){function t(e){return l0.apply(this,e)}return t.prototype=l0.prototype,new t(e)},l0.zeroMatrix=function(e,t){for(var n=new l0,r=0;r<e;r++)n.elements.push(u0.arrayPrefill(t,new o0(0)));return n},(l0.prototype={custom:!0,get:function(e,t){if(this.elements[e])return this.elements[e][t]},map:function(r,i){var s=new l0;return this.each(function(e,t,n){s.set(t,n,r.call(s,e),i)}),s},set:function(e,t,n,r){this.elements[e]||(this.elements[e]=[]),this.elements[e][t]=r||W(n)?n:new o0(n)},cols:function(){return this.elements[0].length},rows:function(){return this.elements.length},row:function(e){return!e||e>this.cols()?[]:this.elements[e-1]},col:function(e){var t=this.rows(),n=[];if(!(e>this.cols())&&e)for(var r=0;r<t;r++)n.push(this.elements[r][e-1]);return n},eachElement:function(e){for(var t,n=this.rows(),r=this.cols(),i=0;i<n;i++)for(t=0;t<r;t++)e.call(this,this.elements[i][t],i,t)},determinant:function(){if(!this.isSquare())return null;for(var e,t=this.toRightTriangular(),n=t.elements[0][0],r=t.elements.length-1,i=r;n=d.multiply(n,t.elements[e=i-r+1][e]),--r;);return n},isSquare:function(){return this.elements.length===this.elements[0].length},isSingular:function(){return this.isSquare()&&0===this.determinant()},augment:function(e){var t=this.rows();t!==e.rows()&&Q("Cannot augment matrix. Rows don't match.");for(var n=0;n<t;n++)this.elements[n]=this.elements[n].concat(e.elements[n]);return this},clone:function(){for(var e=this.rows(),t=this.cols(),n=new l0,r=0;r<e;r++){n.elements[r]=[];for(var i=0;i<t;i++){var s=this.elements[r][i];n.elements[r][i]=W(s)?s.clone():s}}return n},toUnitMultiplier:function(){return this},expand:function(t){return this.eachElement(e=>d.expand(e,t)),this},evaluate:function(t){return this.eachElement(e=>d.evaluate(e,t)),this},invert:function(){return this.isSquare()||Q("Matrix is not square!"),b("SAFE",function(){var e,t,n,r,i,s,o,a=this.elements.length,u=a,l=l0.identity(a),c=this.augment(l).toRightTriangular(),p=c.elements[0].length,f=[];do{for(i=[],n=p,f[e=a-1]=[],s=c.elements[e][e];o=d.divide(c.elements[e][r=p-n],s.clone()),i.push(o),u<=r&&f[e].push(o),--n;);for(c.elements[e]=i,t=0;t<e;t++){for(i=[],n=p;i.push(d.subtract(c.elements[t][r=p-n].clone(),d.multiply(c.elements[e][r].clone(),c.elements[t][e].clone()))),--n;);c.elements[t]=i}}while(--a);return l0.fromArray(f)},void 0,this)},toRightTriangular:function(){return b("SAFE",function(){var e,t,n,r=this.clone(),i=this.elements.length,s=i,o=this.elements[0].length;do{if(0===r.elements[t=s-i][t].valueOf())for(var a=1+t;a<s;a++)if((e=r.elements[a][t])&&0!==e.valueOf()){for(l=[],c=o;l.push(d.add(r.elements[t][n=o-c].clone(),r.elements[a][n].clone())),--c;);r.elements[t]=l;break}if(0!==r.elements[t][t].valueOf())for(a=1+t;a<s;a++){for(var u=d.divide(r.elements[a][t].clone(),r.elements[t][t].clone()),l=[],c=o;l.push((n=o-c)<=t?new o0(0):d.subtract(r.elements[a][n].clone(),d.multiply(r.elements[t][n].clone(),u.clone()))),--c;);r.elements[a]=l}}while(--i);return r},void 0,this)},transpose:function(){var e,t,n,r=this.elements.length,i=this.elements[0].length,s=new l0,o=i;do{for(s.elements[e=i-o]=[],t=r;s.elements[e][n=r-t]=this.elements[n][e].clone(),--t;);}while(--o);return s},canMultiplyFromLeft:function(e){e=(J(e)?e.elements:e).length;return this.elements[0].length===e},sameSize:function(e){return this.rows()===e.rows()&&this.cols()===e.cols()},multiply:function(g){return b("SAFE",function(){var e=g.elements||g;if(!this.canMultiplyFromLeft(e)){if(this.sameSize(g)){for(var t=new l0,n=this.rows(),r=0;r<n;r++){var i=d.multiply(new u0(this.elements[r]),new u0(g.elements[r]));t.elements[r]=i.elements}return t}return null}var s,o,a,u,l,c=this.elements.length,p=c,f=e[0].length,h=this.elements[0].length,m=[];do{m[r=p-c]=[],s=f;do{for(o=f-s,a=new o0(0),u=h;a=d.add(a,d.multiply(this.elements[r][l=h-u],e[l][o])),--u;);}while(m[r][o]=a,--s)}while(--c);return l0.fromArray(m)},void 0,this)},add:function(i,s){var o=new l0;return this.sameSize(i)&&this.eachElement(function(e,t,n){var r=d.add(e.clone(),i.elements[t][n].clone());s&&(r=s.call(o,r,e,i.elements[t][n])),o.set(t,n,r)}),o},subtract:function(i,s){var o=new l0;return this.sameSize(i)&&this.eachElement(function(e,t,n){var r=d.subtract(e.clone(),i.elements[t][n].clone());s&&(r=s.call(o,r,e,i.elements[t][n])),o.set(t,n,r)}),o},negate:function(){return this.each(function(e){return e.negate()}),this},toVector:function(){var e;return 1===this.rows()||1===this.cols()?((e=new u0).elements=this.elements,e):this},toString:function(e,n){var t=this.rows(),r=[];for(var i=0;i<t;i++)r.push("["+this.elements[i].map(function(e){var t=n?e.multiplier.toDecimal():e.toString();return void 0!==e?t:""}).join(",")+"]");return"matrix"+M(r.join(","))},text:function(){return"matrix("+this.elements.map(e=>"["+e.toString("")+"]")+")"},latex:function(i){var s=this.cols(),o=this.elements;return y("\\begin{vmatrix}{0}\\end{vmatrix}",function(){var e,t=[];for(e in o){for(var n=[],r=0;r<s;r++)n.push(a0.latex.call(a0,o[e][r],i));t.push(n.join(" & "))}return t.join(" \\cr ")})}}).each=l0.prototype.eachElement,n1.fromArray=function(e){function t(e){return n1.apply(this,e)}return t.prototype=n1.prototype,new t(e)},n1.prototype={add:function(e){this.contains(e)||this.elements.push(e.clone())},contains:function(e){for(var t=0;t<this.elements.length;t++){var n=this.elements[t];if(e.equals(n))return!0}return!1},each:function(e){for(var t=this.elements,n=new n1,r=0,i=t.length;r<i;r++){var s=t[r];e.call(this,s,n,r)}return n},clone:function(){var t=new n1;return this.each(function(e){t.add(e.clone())}),t},union:function(e){var t=this.clone();return e.each(function(e){t.add(e)}),t},difference:function(e){var t=this.clone();return e.each(function(e){t.remove(e)}),t},remove:function(e){for(var t=0,n=this.elements.length;t<n;t++)if(this.elements[t].equals(e))return R0(this.elements,t),!0;return!1},intersection:function(e){var t=new n1,n=this;return e.each(function(e){n.contains(e)&&t.add(e)}),t},intersects:function(e){return 0<this.intersection(e).elements.length},is_subset:function(e){for(var t=e.elements,n=0,r=t.length;n<r;n++)if(!this.contains(t[n]))return!1;return!0},toString:function(){return"{"+this.elements.join(",")+"}"}};function r(n,e,r,t){l();try{var i=!1;if(C0(n))return nerdamer;n instanceof o&&(n=n.toString()),(r=K(r)?r:void 0===r?[]:[r]).forEach(function(e){var t;"numer"===e?i=!0:(t=d.functions[r])&&1===t[1]&&(n=e+`(${n})`)});var s=b("PARSE2NUMBER",function(){return d.parse(n,e)},i||F.PARSE2NUMBER);return t?U[t-1]=s:U.push(s),new o(s)}finally{c()}}var r1={dependencies:{_rename:{"Math2.factorial":"factorial"},factorial:{"Math2.gamma":r0.gamma},gamma_incomplete:{"Math2.factorial":r0.factorial},Li:{"Math2.Ei":r0.Ei,"Math2.bigLog":r0.bigLog,Frac:s0},Ci:{"Math2.factorial":r0.factorial},Ei:{"Math2.factorial":r0.factorial},Si:{"Math2.factorial":r0.factorial},Shi:{"Math2.factorial":r0.factorial},Chi:{isInt:e0,nround:U0,"Math2.num_integrate":r0.num_integrate},factor:{"Math2.ifactor":r0.ifactor,Symbol:o0},num_integrate:{"Math2.simpson":r0.simpson,nround:U0},fib:{even:t0}},reformat:{diff:function(e,t){var n=e.args[1].toString(),e="var f = "+r1.build(e.args[0].toString(),[n])+";";return t[1]+="var diff = "+r0.diff.toString()+";",t[1]+=e,["diff(f)("+n+")",t]}},getProperName:function(e){return{continued_fraction:"continuedFraction"}[e]||e},compileDependencies:function(e,t){var n,r,i=r1.dependencies[e],s=t&&t[1]?t[1]:"",o=t&&t[0]?t[0]:{};for(n in i)"object"!=typeof i[n]&&(s+="var "+(1<(r=n.split(".")).length?r[1]:r[0])+"="+i[n]+";",o[n]=r.pop());return[o,s]},getArgsDeps:function(e,t){for(var n=e.args,r=0;r<n.length;r++)e.args[r].each(function(e){e.group===j&&(t=r1.compileDependencies(e.fname,t))});return t},build:function(e,t){e=b("PARSE2NUMBER",function(){return d.parse(e)},!0);function l(s,o){function e(e){var t,e=e===Z?"*":"+",n=[];for(t in s.symbols){var r=s.symbols[t],i=l(r,o)[0];r.isComposite()&&(i=M(i)),n.push(i)}return(e=n.join(e))&&!s.multiplier.equals(1)?M(e):e}function t(e){return e=e in Math?"Math."+e:(e=r1.getProperName(e),-1===c.indexOf(e)&&(o.push("var "+e+" = "+r0[e].toString()+"; "),c.push(e)),e),e+=M(s.args.map(function(e){return l(e,o)[0]}).join(","))}""===s.fname&&(s=o0.unwrapPARENS(s)),o=o||[];var n,r,i=[],a=s.group,u="";return a===B?i.push(s.multiplier.toDecimal()):s.multiplier.equals(-1)?u="-":s.multiplier.equals(1)||i.push(s.multiplier.toDecimal()),a===G||a===V?n=s.value:a===j?(p=r1.compileDependencies(s.fname,p),p=r1.getArgsDeps(s,p),n=r1.reformat[s.fname]?(r=r1.reformat[s.fname](s,p),p=r[1],r[0]):t(s.fname)):a===H?(r=s.previousGroup)===B||r===G?n=s.value:r===j?(n=t(s.fname),p=r1.compileDependencies(s.fname,p),p=r1.getArgsDeps(s,p)):n=e(s.previousGroup):n=e(s.group),s.group===B||s.power.equals(1)||(a=l(d.parse(s.power)),o.push(a[1]),n="Math.pow"+M(n+","+a[0])),n&&i.push(u+n),[i.join("*"),o.join("").replace(/\n+\s+/g," ")]}var n,r=O(e),c=[],p=[],i=(t&&(r=t),l(e));for(n in p[0]){var s=p[0][n];i[1]=i[1].replace(n,s),p[1]=p[1].replace(n,s)}return new Function(r,(p[1]||"")+i[1]+" return "+i[0]+";")}},Z0=(q(d.CONSTANTS),q(d.functions),d.initConstants(),d.error||(d.error=Q),F.LOG_FNS={log:d.functions.log,log10:d.functions.log10},{allSame:v0,allNumeric:function(e){for(var t=0;t<e.length;t++)if(!S0(e[t]))return!1;return!0},arguments2Array:T0,armTimeout:l,arrayAddSlices:function(e,t){t=t||20;var n=[];n.push(e[0]);for(var r=0;r<e.length-1;r++)for(var i=e[r],s=(e[r+1]-i)/t,o=0;o<t;o++)n.push(i+=s);return n},arrayClone:function(e){for(var t=[],n=e.length,r=0;r<n;r++)t[r]=e[r].clone();return t},arrayMax:function(e){return Math.max.apply(void 0,e)},arrayMin:g,arrayEqual:function(e,t){if(e.sort(),t.sort(),e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},arrayUnique:w,arrayGetVariables:function(e){for(var t=O(e[0],null,null,!0),n=1,r=e.length;n<r;n++)t=t.concat(O(e[n]));return t=w(t).sort()},arraySum:function(e,t){for(var n=new o0(0),r=0;r<e.length;r++)var i=e[r],n=d.add(n,W(i)?i:d.parse(i));return t?Number(n):n},block:b,build:r1.build,checkTimeout:p0,clearU:function(e){e=L.indexOf(e);-1!==e&&(L[e]=void 0)},comboSort:function(e,t){for(var n=e.length,r=[],i=0;i<e.length;i++)r.push([e[i],t[i]]);r.sort(function(e,t){return e[0]-t[0]});for(var s=[],o=[],i=0;i<n;i++)s.push(r[i][0]),o.push(r[i][1]);return[s,o]},compare:function(e,t,n){for(var r,i={},s=0;s<n.length;s++)i[n[s]]=new o0(Math.floor(5*Math.random())+1);return b("PARSE2NUMBER",function(){r=d.parse(e,i).equals(d.parse(t,i))}),r},convertToVector:A,customError:e,customType:function(e){return void 0!==e&&e.custom},decompose_fn:I0,disarmTimeout:c,each:v,evaluate:n0,even:t0,evenFraction:L0,fillHoles:function(e,t){t=t||e.length;for(var n=0;n<t;n++)e[n]||(e[n]=new o0(0));return e},firstObject:A0,format:y,generatePrimes:C,getCoeffs:function(e,r,t){var i=[];e.each(function(e){var t,e=e.contains(r)?(t=e.stripVar(r),d.divide(e.clone(),t.clone()).power.toDecimal()):(t=e,0),n=i[e];i[e]=n?d.add(n,t):t},!0);for(var n=0;n<i.length;n++)i[n]||(i[n]=new o0(0));return i},getU:function(e){for(var t="u",n=0,r=O(e);-1!==L.indexOf(t)||-1!==r.indexOf(t);)t="u"+n++;for(var i=0,s=L.length;i<=s;i++)if(!L[i]){L[i]=t;break}return t},importFunctions:function(){var e,t={};for(e in d.functions)t[e]=d.functions[e][0];return t},inBrackets:M,isArray:K,isExpression:h,isFraction:f,isInt:e0,isMatrix:J,isNegative:x,isNumericSymbol:E0,isPrime:b0,isReserved:p,isSymbol:W,isVariableSymbol:q0,isVector:Y,isCollection:M0,keys:P,knownVariable:function(e,t){var n={};return n[e]=t,n},nroots:function(e){var t,n;if(e.group===j&&""===e.fname?(t=o0.unwrapPARENS(d.parse(e).toLinear()),n=d.parse(e.power)):e.group===V&&(t=d.parse(e.value),n=d.parse(e.power)),t&&n&&t.group===B&&n.group===B&&t.multiplier.isNegative())for(var r=[],i=o0.toPolarFormArray(n0(e))[0],s=d.arg(t),o=n.multiplier.den.toString(),a=n.multiplier.num.toString(),u=0;u<o;u++){var l=n0(d.parse(y("(({0})+2*pi*({1}))/({2})",s,u,o))).multiplier.toDecimal();r.push(n0(d.parse(y("(({0})^({1})*(cos({3})+({2})*sin({3})))^({4})",i,o,F.IMAGINARY,l,a))))}else e.isConstant(!0,!0)?(t=e.sign(),s=n0(e.abs()),r=[(n=d.sqrt(s)).clone(),n.negate()],t<0&&(r=r.map(function(e){return d.multiply(e,o0.imaginary())}))):r=[d.parse(e)];return u0.fromArray(r)},remove:R0,reserveNames:q,range:function(e,t,n){var r=[];n=n||1;for(var i=e;i<=t;i++)r.push(i*n);return r},round:U0,sameSign:function(e,t){return e<0==t<0},scientificToDecimal:y0,separate:m,stringReplace:function(e,t,n,r){return e.substr(0,t)+r+e.substr(n,e.length)},text:i0,validateName:T,variables:O,warn:w0}),i1={groups:t,Symbol:o0,Expression:o,Collection:D,Frac:s0,Vector:u0,Matrix:l0,Parser:e1,Scientific:N,Fraction:t1,Math2:r0,LaTeX:a0,Utils:Z0,PARSER:d,PARENTHESIS:f0,Settings:F,err:Q,bigInt:S,bigDec:k,exceptions:G0};return r.rpn=function(e){return d.tokenize(d.toRPN(e))},r.convertToLaTeX=function(e,t){return d.toTeX(e,t)},r.convertFromLaTeX=function(e){e=(e=(e=(e=e.replace(/_([A-Za-z0-9])/g,(...e)=>e[0]+" ")).replace(/\^([A-Za-z0-9])/g,(...e)=>"^{"+e[1]+"}")).replace(/(\\[A-Za-z]+)(\d)/g,(...e)=>e[1]+"{"+e[2]+"}")).replace(/(\\[A-Za-z]+{.*?})(\d)/g,(...e)=>e[1]+"{"+e[2]+"}");e=a0.parse(d.tokenize(e));return new o(d.parse(e))},r.version=function(t){if(t)try{return i1[t].version}catch(e){if("timeout"===e.message)throw e;return"No module named "+t+" found!"}return"1.1.16"},r.getWarnings=function(){return _},r.setConstant=function(e,t){if(T(e),!p(e))if("delete"===t||""===t)delete d.CONSTANTS[e];else{if(isNaN(t))throw new H0("Constant must be a number!");d.CONSTANTS[e]=t}return this},r.getConstant=function(e){return String(d.CONSTANTS[e])},r.clearConstants=function(){return d.initConstants.bind(d),this},r.setFunction=function(e,t,n){if(C0(e,t,n))return this;throw new Error("Failed to set function!")},r.clearFunctions=function(){for(var e of R)delete i1.Math2[e],delete d.functions[e];return this},r.getCore=function(){return i1},r.getExpression=r.getEquation=o.getExpression,r.reserved=function(e){return e?L:L.join(", ")},r.clear=function(e,t){return"all"===e?U=[]:"last"===e?U.pop():"first"===e?U.shift():(e=e?e-1:U.length,!0===t?U[e]=void 0:R0(U,e)),this},r.flush=function(){return this.clear("all"),this},r.expressions=function(e,t,n){for(var r=e?{}:[],i=0;i<U.length;i++){var s=t?a0.latex(U[i],n):i0(U[i],n);e?r[i+1]=s:r.push(s)}return r},r.functions=function(e,t){for(var n=e?{}:[],r=0;r<R.length;r++){var i,s,o=R[r],a=d.functions[o][2];a?{params:i,body:s}=a:(a=i1.Math2[o].toString(),[,i]=/\((.*?)\)/.exec(a),i=i.split(",").map(e=>e.trim()),s="{JavaScript}");a=i0(o+"("+i.join(", ")+")="+s,t);e?n[r+1]=a:n.push(a)}return n},r.register=function(e){var t=this.getCore();if(K(e))for(var n=0;n<e.length;n++)e&&this.register(e[n]);else if(e&&-1===F.exclude.indexOf(e.name)){if(e.dependencies)for(n=0;n<e.dependencies.length;n++)if(!t[e.dependencies[n]])throw new Error(y("{0} requires {1} to be loaded!",e.name,e.dependencies[n]));var r=e.parent,i=e.build.call(t);r&&(t[r]||(t[e.parent]={}),("nerdamer"===r?this:t[r])[e.name]=i),e.visible&&(d.functions[e.name]=[i,e.numargs])}},r.validateName=T,r.validVarName=function(e){try{return T(e),-1===L.indexOf(e)}catch(e){if("timeout"===e.message)throw e;return!1}},r.supported=function(){return P(d.functions)},r.numEquations=r.numExpressions=function(){return U.length},r.setVar=function(e,t){return T(e),e in d.CONSTANTS&&Q("Cannot set value for constant "+e),"delete"===t||""===t?delete d0[e]:d0[e]=W(t)?t:d.parse(t),this},r.getVar=function(e){return d0[e]},r.clearVars=function(){return d0={},this},r.load=function(e){return e.call(this),this},r.getVars=function(e,t){var n={};if("object"===(e=e||"text"))n=d0;else for(var r in d0)"latex"===e?n[r]=d0[r].latex(t):"text"===e&&(n[r]=d0[r].text(t));return n},r.set=function(e,t){if("object"==typeof e)for(var n in e)r.set(n,e[n]);-1!==["SAFE"].indexOf(e)&&Q("Cannot modify setting: "+e),"PRECISION"===e?(k.set({precision:t}),21<(F.PRECISION=t)&&this.set("USE_BIG",!0)):"USE_LN"===e&&!0===t?(F.LOG="LN",F.LOG10="log",d.functions.log=F.LOG_FNS.log10,d.functions.log[0]=function(e){return e.isConstant()?new o0(Math.log10(e)):d.symfunction(F.LOG10,[e])},d.functions.LN=F.LOG_FNS.log,delete d.functions.log10):F[e]=t},r.get=function(e){return F[e]},r.updateAPI=function(e){for(var t in d.functions)t in r&&!e||(r[t]=function(n){return function(){for(var e=[].slice.call(arguments),t=0;t<e.length;t++)e[t]=d.parse(e[t]);return new o(b("PARSE2NUMBER",function(){return d.callfunction(n,e)}))}}(t))},r.replaceFunction=function(e,t,n){var r=d.functions[e],n=void 0===n?r[1]:n;d.functions[e]=[t.call(void 0,r[0],i1),n]},r.setOperator=function(e,t){d.setOperator(e,t)},r.getOperator=function(e){return d.getOperator(e)},r.aliasOperator=function(e,t){d.aliasOperator(e,t)},r.tree=function(e){return d.tree(d.toRPN(d.tokenize(e)))},r.htmlTree=function(e,t){return'<div class="tree">\n <ul>\n <li>\n'+this.tree(e).toHTML(3,t)+"\n </li>\n </ul>\n</div>"},r.addPeeker=function(e,t){d.peekers[e]&&d.peekers[e].push(t)},r.removePeeker=function(e,t){R0(d.peekers[e],t)},r.parse=function(e){return String(e).split(";").map(function(e){return d.parse(e)})},r.updateAPI(),r}({bigInt:function(){var Q=function(o){"use strict";var v=1e7,P=7,t=9007199254740992,n=f(t),k=Math.log(t);function u(e,t){return void 0===e?u[0]:void 0===t||10==+t?O(e):j(e,t)}function l(e,t){this.value=e,this.sign=t,this.isSmall=!1}function c(e){this.value=e,this.sign=e<0,this.isSmall=!0}function p(e){return-t<e&&e<t}function f(e){return e<1e7?[e]:e<1e14?[e%1e7,Math.floor(e/1e7)]:[e%1e7,Math.floor(e/1e7)%1e7,Math.floor(e/1e14)]}function w(e){h(e);var t=e.length;if(t<4&&x(e,n)<0)switch(t){case 0:return 0;case 1:return e[0];case 2:return e[0]+e[1]*v;default:return e[0]+(e[1]+e[2]*v)*v}return e}function h(e){for(var t=e.length;0===e[--t];);e.length=t+1}function y(e){for(var t=new Array(e),n=-1;++n<e;)t[n]=0;return t}function m(e){return 0<e?Math.floor(e):Math.ceil(e)}function r(e,t){for(var n,r=e.length,i=t.length,s=new Array(r),o=0,a=v,u=0;u<i;u++)n=e[u]+t[u]+o,s[u]=n-(o=a<=n?1:0)*a;for(;u<r;)n=e[u]+o,s[u++]=n-(o=n===a?1:0)*a;return 0<o&&s.push(o),s}function g(e,t){return e.length>=t.length?r(e,t):r(t,e)}function i(e,t){for(var n,r=e.length,i=new Array(r),s=v,o=0;o<r;o++)n=e[o]-s+t,t=Math.floor(n/s),i[o]=n-t*s,t+=1;for(;0<t;)i[o++]=t%s,t=Math.floor(t/s);return i}function d(e,t){for(var n,r=e.length,i=t.length,s=new Array(r),o=0,a=v,u=0;u<i;u++)o=(n=e[u]-o-t[u])<0?(n+=a,1):0,s[u]=n;for(u=i;u<r;u++){if(!((n=e[u]-o)<0)){s[u++]=n;break}n+=a,s[u]=n}for(;u<r;u++)s[u]=e[u];return h(s),s}function s(e,t,n){for(var r,i=e.length,s=new Array(i),o=-t,a=v,u=0;u<i;u++)r=e[u]+o,o=Math.floor(r/a),s[u]=(r%=a)<0?r+a:r;return"number"==typeof(s=w(s))?new c(s=n?-s:s):new l(s,n)}function b(e,t){for(var n,r,i=e.length,s=t.length,o=y(i+s),a=v,u=0;u<i;++u)for(var l=e[u],c=0;c<s;++c)n=l*t[c]+o[u+c],r=Math.floor(n/a),o[u+c]=n-r*a,o[u+c+1]+=r;return h(o),o}function S(e,t){for(var n,r=e.length,i=new Array(r),s=v,o=0,a=0;a<r;a++)n=e[a]*t+o,o=Math.floor(n/s),i[a]=n-o*s;for(;0<o;)i[a++]=o%s,o=Math.floor(o/s);return i}function M(e,t){for(var n=[];0<t--;)n.push(0);return n.concat(e)}function a(e,t,n){return new l(e<v?S(t,e):b(t,f(e)),n)}function N(e){for(var t,n=e.length,r=y(n+n),i=v,s=0;s<n;s++){for(var o,a=0-(o=e[s])*o,u=s;u<n;u++)t=o*e[u]*2+r[s+u]+a,a=Math.floor(t/i),r[s+u]=t-a*i;r[s+n]=a}return h(r),r}function E(e,t){for(var n,r=e.length,i=y(r),s=v,o=0,a=r-1;0<=a;--a)o=(n=o*s+e[a])-(n=m(n/t))*t,i[a]=0|n;return[i,0|o]}function q(e,t){var t=O(t),n=e.value,r=t.value;if(0===r)throw new Error("Cannot divide by zero");if(e.isSmall)return t.isSmall?[new c(m(n/r)),new c(n%r)]:[u[0],e];if(t.isSmall){if(1===r)return[e,u[0]];if(-1==r)return[e.negate(),u[0]];var i,s,o=Math.abs(r);if(o<v)return s=w((i=E(n,o))[0]),a=i[1],e.sign&&(a=-a),"number"==typeof s?[new c(s=e.sign!==t.sign?-s:s),new c(a)]:[new l(s,e.sign!==t.sign),new c(a)];r=f(o)}var a=x(n,r);if(-1===a)return[u[0],e];if(0===a)return[u[e.sign===t.sign?1:-1],u[0]];s=(i=(n.length+r.length<=200?function(e,t){var n,r,i,s,o,a,u,l=e.length,c=t.length,p=v,f=y(t.length),h=t[c-1],m=Math.ceil(p/(2*h)),g=S(e,m),d=S(t,m);for(g.length<=l&&g.push(0),d.push(0),h=d[c-1],r=l-c;0<=r;r--){for(n=p-1,g[r+c]!==h&&(n=Math.floor((g[r+c]*p+g[r+c-1])/h)),a=d.length,o=s=i=0;o<a;o++)i+=n*d[o],u=Math.floor(i/p),s+=g[r+o]-(i-u*p),i=u,s=s<0?(g[r+o]=s+p,-1):(g[r+o]=s,0);for(;0!==s;){for(--n,o=i=0;o<a;o++)i=(i+=g[r+o]-p+d[o])<0?(g[r+o]=i+p,0):(g[r+o]=i,1);s+=i}f[r]=n}return g=E(g,m)[0],[w(f),w(g)]}:function(e,t){for(var n,r,i,s,o,a=e.length,u=t.length,l=[],c=[],p=v;a;)if(c.unshift(e[--a]),h(c),x(c,t)<0)l.push(0);else{for(i=c[(r=c.length)-1]*p+c[r-2],s=t[u-1]*p+t[u-2],u<r&&(i=(i+1)*p),n=Math.ceil(i/s);!(x(o=S(t,n),c)<=0)&&--n;);l.push(n),c=d(c,o)}return l.reverse(),[w(l),w(c)]})(n,r))[0];o=e.sign!==t.sign,a=i[1],n=e.sign;return[s="number"==typeof s?new c(s=o?-s:s):new l(s,o),a="number"==typeof a?new c(a=n?-a:a):new l(a,n)]}function x(e,t){if(e.length!==t.length)return e.length>t.length?1:-1;for(var n=e.length-1;0<=n;n--)if(e[n]!==t[n])return e[n]>t[n]?1:-1;return 0}function A(e){e=e.abs();return!e.isUnit()&&(!!(e.equals(2)||e.equals(3)||e.equals(5))||!(e.isEven()||e.isDivisibleBy(3)||e.isDivisibleBy(5))&&(!!e.lesser(49)||void 0))}function C(e,t){for(var n,r,i,s=e.prev(),o=s,a=0;o.isEven();)o=o.divide(2),a++;e:for(r=0;r<t.length;r++)if(!e.lesser(t[r])&&!(i=Q(t[r]).modPow(o,e)).equals(u[1])&&!i.equals(s)){for(n=a-1;0!=n;n--){if((i=i.square().mod(e)).isUnit())return!1;if(i.equals(s))continue e}return!1}return!0}l.prototype=Object.create(u.prototype),c.prototype=Object.create(u.prototype),l.prototype.plus=l.prototype.add=function(e){var t,n,e=O(e);return this.sign!==e.sign?this.subtract(e.negate()):(t=this.value,n=e.value,e.isSmall?new l(i(t,Math.abs(n)),this.sign):new l(g(t,n),this.sign))},c.prototype.plus=c.prototype.add=function(e){var e=O(e),t=this.value;if(t<0!==e.sign)return this.subtract(e.negate());var n=e.value;if(e.isSmall){if(p(t+n))return new c(t+n);n=f(Math.abs(n))}return new l(i(n,Math.abs(t)),t<0)},l.prototype.minus=l.prototype.subtract=function(e){var t,n,r,e=O(e);return this.sign!==e.sign?this.add(e.negate()):(t=this.value,n=e.value,e.isSmall?s(t,Math.abs(n),this.sign):(e=t,t=n,n=this.sign,0<=x(e,t)?r=d(e,t):(r=d(t,e),n=!n),"number"==typeof(r=w(r))?new c(r=n?-r:r):new l(r,n)))},c.prototype.minus=c.prototype.subtract=function(e){var t,e=O(e),n=this.value;return n<0!==e.sign?this.add(e.negate()):(t=e.value,e.isSmall?new c(n-t):s(t,Math.abs(n),0<=n))},l.prototype.negate=function(){return new l(this.value,!this.sign)},c.prototype.negate=function(){var e=this.sign,t=new c(-this.value);return t.sign=!e,t},l.prototype.abs=function(){return new l(this.value,!1)},c.prototype.abs=function(){return new c(Math.abs(this.value))},l.prototype.times=l.prototype.multiply=function(e){var t,e=O(e),n=this.value,r=e.value,i=this.sign!==e.sign;if(e.isSmall){if(0===r)return u[0];if(1===r)return this;if(-1===r)return this.negate();if((e=Math.abs(r))<v)return new l(S(n,e),i);r=f(e)}return e=n.length,t=r.length,new l((0<-.012*e-.012*t+15e-6*e*t?function e(t,n){var r,i,s,o,a;return(r=Math.max(t.length,n.length))<=30?b(t,n):(r=Math.ceil(r/2),a=t.slice(r),t=t.slice(0,r),i=n.slice(r),s=e(t,n=n.slice(0,r)),o=e(a,i),t=e(g(t,a),g(n,i)),h(a=g(g(s,M(d(d(t,s),o),r)),M(o,2*r))),a)}:b)(n,r),i)},c.prototype._multiplyBySmall=function(e){return p(e.value*this.value)?new c(e.value*this.value):a(Math.abs(e.value),f(Math.abs(this.value)),this.sign!==e.sign)},l.prototype._multiplyBySmall=function(e){return 0===e.value?u[0]:1===e.value?this:-1===e.value?this.negate():a(Math.abs(e.value),this.value,this.sign!==e.sign)},c.prototype.times=c.prototype.multiply=function(e){return O(e)._multiplyBySmall(this)},l.prototype.square=function(){return new l(N(this.value),!1)},c.prototype.square=function(){var e=this.value*this.value;return p(e)?new c(e):new l(N(f(Math.abs(this.value))),!1)},c.prototype.divmod=l.prototype.divmod=function(e){e=q(this,e);return{quotient:e[0],remainder:e[1]}},c.prototype.over=c.prototype.divide=l.prototype.over=l.prototype.divide=function(e){return q(this,e)[0]},c.prototype.remainder=c.prototype.mod=l.prototype.remainder=l.prototype.mod=function(e){return q(this,e)[1]},c.prototype.pow=l.prototype.pow=function(e){var t,n,e=O(e),r=this.value,i=e.value;if(0===i)return u[1];if(0===r)return u[0];if(1===r)return u[1];if(-1===r)return e.isEven()?u[1]:u[-1];if(e.sign)return u[0];if(!e.isSmall)throw new Error("The exponent "+e.toString()+" is too large.");if(this.isSmall&&p(e=Math.pow(r,i)))return new c(m(e));for(t=this,n=u[1];;){if(!0&i&&(n=n.times(t),--i),0===i)break;i/=2,t=t.square()}return n},c.prototype.modPow=l.prototype.modPow=function(e,t){if(e=O(e),(t=O(t)).isZero())throw new Error("Cannot take modPow with modulus 0");for(var n=u[1],r=this.mod(t);e.isPositive();){if(r.isZero())return u[0];e.isOdd()&&(n=n.multiply(r).mod(t)),e=e.divide(2),r=r.square().mod(t)}return n},l.prototype.compareAbs=function(e){var e=O(e),t=this.value,n=e.value;return e.isSmall?1:x(t,n)},c.prototype.compareAbs=function(e){var e=O(e),t=Math.abs(this.value),n=e.value;return e.isSmall?t===(n=Math.abs(n))?0:n<t?1:-1:-1},l.prototype.compareTo=l.prototype.compare=function(e){var t,n;return e===1/0?-1:e===-1/0?1:(e=O(e),t=this.value,n=e.value,this.sign!==e.sign?e.sign?1:-1:e.isSmall?this.sign?-1:1:x(t,n)*(this.sign?-1:1))},c.prototype.compareTo=c.prototype.compare=function(e){var t,n;return e===1/0?-1:e===-1/0?1:(e=O(e),t=this.value,n=e.value,e.isSmall?t==n?0:n<t?1:-1:t<0!==e.sign?t<0?-1:1:t<0?1:-1)},c.prototype.eq=c.prototype.equals=l.prototype.eq=l.prototype.equals=function(e){return 0===this.compare(e)},c.prototype.neq=c.prototype.notEquals=l.prototype.neq=l.prototype.notEquals=function(e){return 0!==this.compare(e)},c.prototype.gt=c.prototype.greater=l.prototype.gt=l.prototype.greater=function(e){return 0<this.compare(e)},c.prototype.lt=c.prototype.lesser=l.prototype.lt=l.prototype.lesser=function(e){return this.compare(e)<0},c.prototype.geq=c.prototype.greaterOrEquals=l.prototype.geq=l.prototype.greaterOrEquals=function(e){return 0<=this.compare(e)},c.prototype.leq=c.prototype.lesserOrEquals=l.prototype.leq=l.prototype.lesserOrEquals=function(e){return this.compare(e)<=0},l.prototype.isEven=function(){return 0==(1&this.value[0])},c.prototype.isEven=function(){return 0==(1&this.value)},l.prototype.isOdd=function(){return 1==(1&this.value[0])},c.prototype.isOdd=function(){return 1==(1&this.value)},l.prototype.isPositive=function(){return!this.sign},c.prototype.isPositive=function(){return 0<this.value},l.prototype.isNegative=function(){return this.sign},c.prototype.isNegative=function(){return this.value<0},l.prototype.isUnit=function(){return!1},c.prototype.isUnit=function(){return 1===Math.abs(this.value)},l.prototype.isZero=function(){return!1},c.prototype.isZero=function(){return 0===this.value},c.prototype.isDivisibleBy=l.prototype.isDivisibleBy=function(e){var e=O(e),t=e.value;return 0!==t&&(1===t||(2===t?this.isEven():this.mod(e).equals(u[0])))},c.prototype.isPrime=l.prototype.isPrime=function(e){var t=A(this);if(t!==o)return t;var t=this.abs(),n=t.bitLength();if(n<=64)return C(t,[2,325,9375,28178,450775,9780504,1795265022]);for(var n=Math.log(2)*n,r=Math.ceil(!0===e?2*Math.pow(n,2):n),i=[],s=0;s<r;s++)i.push(Q(s+2));return C(t,i)},c.prototype.isProbablePrime=l.prototype.isProbablePrime=function(e){var t=A(this);if(t!==o)return t;for(var n=this.abs(),r=e===o?5:e,i=[],s=0;s<r;s++)i.push(Q.randBetween(2,n.minus(2)));return C(n,i)},c.prototype.modInv=l.prototype.modInv=function(e){for(var t,n,r,i=Q.zero,s=Q.one,o=O(e),a=this.abs();!a.equals(Q.zero);)t=o.divide(a),n=i,r=o,i=s,o=a,s=n.subtract(t.multiply(s)),a=r.subtract(t.multiply(a));if(o.equals(1))return-1===i.compare(0)&&(i=i.add(e)),this.isNegative()?i.negate():i;throw new Error(this.toString()+" and "+e.toString()+" are not co-prime")},l.prototype.next=function(){var e=this.value;return this.sign?s(e,1,this.sign):new l(i(e,1),this.sign)},c.prototype.next=function(){var e=this.value;return e+1<t?new c(e+1):new l(n,!1)},l.prototype.prev=function(){var e=this.value;return this.sign?new l(i(e,1),!0):s(e,1,this.sign)},c.prototype.prev=function(){var e=this.value;return-t<e-1?new c(e-1):new l(n,!0)};for(var I=[1];2*I[I.length-1]<=v;)I.push(2*I[I.length-1]);var U=I.length,L=I[U-1];function F(e){return("number"==typeof e||"string"==typeof e)&&+Math.abs(e)<=v||e instanceof l&&e.value.length<=1}function _(e,t,n){t=O(t);for(var r=e.isNegative(),i=t.isNegative(),s=r?e.not():e,o=i?t.not():t,a=0,u=0,l=null,c=null,p=[];!s.isZero()||!o.isZero();)a=(l=q(s,L))[1].toJSNumber(),r&&(a=L-1-a),u=(c=q(o,L))[1].toJSNumber(),s=l[0],o=c[0],p.push(n(a,u=i?L-1-u:u));for(var f=0!==n(r?1:0,i?1:0)?Q(-1):Q(0),h=p.length-1;0<=h;--h)f=f.multiply(L).add(Q(p[h]));return f}c.prototype.shiftLeft=l.prototype.shiftLeft=function(e){if(!F(e))throw new Error(String(e)+" is too large for shifting.");if((e=+e)<0)return this.shiftRight(-e);var t=this;if(t.isZero())return t;for(;U<=e;)t=t.multiply(L),e-=U-1;return t.multiply(I[e])},c.prototype.shiftRight=l.prototype.shiftRight=function(e){var t;if(!F(e))throw new Error(String(e)+" is too large for shifting.");if((e=+e)<0)return this.shiftLeft(-e);for(var n=this;U<=e;){if(n.isZero()||n.isNegative()&&n.isUnit())return n;n=(t=q(n,L))[1].isNegative()?t[0].prev():t[0],e-=U-1}return(t=q(n,I[e]))[1].isNegative()?t[0].prev():t[0]},c.prototype.not=l.prototype.not=function(){return this.negate().prev()},c.prototype.and=l.prototype.and=function(e){return _(this,e,function(e,t){return e&t})},c.prototype.or=l.prototype.or=function(e){return _(this,e,function(e,t){return e|t})},c.prototype.xor=l.prototype.xor=function(e){return _(this,e,function(e,t){return e^t})};var D=1<<30,B=(v&-v)*(v&-v)|D;function R(e){e=e.value,e="number"==typeof e?e|D:e[0]+e[1]*v|B;return e&-e}function V(e,t){return e=O(e),t=O(t),e.greater(t)?e:t}function G(e,t){return e=O(e),t=O(t),e.lesser(t)?e:t}function H(e,t){if(e=O(e).abs(),t=O(t).abs(),e.equals(t))return e;if(e.isZero())return t;if(t.isZero())return e;for(var n,r,i=u[1];e.isEven()&&t.isEven();)n=Math.min(R(e),R(t)),e=e.divide(n),t=t.divide(n),i=i.multiply(n);for(;e.isEven();)e=e.divide(R(e));do{for(;t.isEven();)t=t.divide(R(t))}while(e.greater(t)&&(r=t,t=e,e=r),!(t=t.subtract(e)).isZero());return i.isUnit()?e:e.multiply(i)}c.prototype.bitLength=l.prototype.bitLength=function(){var e=this;return 0===(e=e.compareTo(Q(0))<0?e.negate().subtract(Q(1)):e).compareTo(Q(0))?Q(0):Q(function e(t,n){var r,i;return n.compareTo(t)<=0?(r=(i=e(t,n.square(n))).p,i=i.e,(n=r.multiply(n)).compareTo(t)<=0?{p:n,e:2*i+1}:{p:r,e:2*i}):{p:Q(1),e:0}}(e,Q(2)).e).add(Q(1))};var j=function(e,t){for(var n=e.length,r=Math.abs(t),i=0;i<n;i++){var s=e[i].toLowerCase();if("-"!==s&&/[a-z0-9]/.test(s))if(/[0-9]/.test(s)&&r<=+s){if("1"!==s||1!==r)throw new Error(s+" is not a valid digit in base "+t+".")}else if(s.charCodeAt(0)-87>=r)throw new Error(s+" is not a valid digit in base "+t+".")}if(2<=t&&t<=36&&n<=k/Math.log(t)){var o=parseInt(e,t);if(isNaN(o))throw new Error(s+" is not a valid digit in base "+t+".");return new c(parseInt(e,t))}t=O(t);var a=[],o="-"===e[0];for(i=o?1:0;i<e.length;i++){var u=(s=e[i].toLowerCase()).charCodeAt(0);if(48<=u&&u<=57)a.push(O(s));else if(97<=u&&u<=122)a.push(O(s.charCodeAt(0)-87));else{if("<"!==s)throw new Error(s+" is not a valid character");for(u=i;">"!==e[++i];);a.push(O(e.slice(u+1,i)))}}return X(a,t,o)};function X(e,t,n){for(var r=u[0],i=u[1],s=e.length-1;0<=s;s--)r=r.add(e[s].times(i)),i=i.times(t);return n?r.negate():r}function Z(e){return e<=35?"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e):"<"+e+">"}function T(e,t){if((t=Q(t)).isZero()){if(e.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(t.equals(-1))return e.isZero()?{value:[0],isNegative:!1}:e.isNegative()?{value:[].concat.apply([],Array.apply(null,Array(-e)).map(Array.prototype.valueOf,[1,0])),isNegative:!1}:((n=Array.apply(null,Array(+e-1)).map(Array.prototype.valueOf,[0,1])).unshift([1]),{value:[].concat.apply([],n),isNegative:!1});var n=!1;if(e.isNegative()&&t.isPositive()&&(n=!0,e=e.abs()),t.equals(1))return e.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(+e)).map(Number.prototype.valueOf,1),isNegative:n};for(var r=[],i=e;i.isNegative()||0<=i.compareAbs(t);){var i=(s=i.divmod(t)).quotient,s=s.remainder;s.isNegative()&&(s=t.minus(s).abs(),i=i.next()),r.push(s.toJSNumber())}return r.push(i.toJSNumber()),{value:r.reverse(),isNegative:n}}function z(e,t){e=T(e,t);return(e.isNegative?"-":"")+e.value.map(Z).join("")}function $(e){if(p(+e)){var t=+e;if(t===m(t))return new c(t);throw new Error("Invalid integer: "+e)}var t="-"===e[0],n=(e=t?e.slice(1):e).split(/e/i);if(2<n.length)throw new Error("Invalid integer: "+n.join("e"));if(2===n.length){var r=n[1];if((r=+(r="+"===r[0]?r.slice(1):r))!==m(r)||!p(r))throw new Error("Invalid integer: "+r+" is not a valid exponent.");var n=n[0],i=n.indexOf(".");if(0<=i&&(r-=n.length-i-1,n=n.slice(0,i)+n.slice(i+1)),r<0)throw new Error("Cannot include negative exponent part for integers");e=n+=new Array(r+1).join("0")}if(!/^([0-9][0-9]*)$/.test(e))throw new Error("Invalid integer: "+e);for(var s=[],o=e.length,a=P,u=o-a;0<o;)s.push(+e.slice(u,o)),(u-=a)<0&&(u=0),o-=a;return h(s),new l(s,t)}function O(e){if("number"!=typeof e)return"string"==typeof e?$(e):e;if(p(e)){if(e!==m(e))throw new Error(e+" is not an integer.");return new c(e)}return $(e.toString())}l.prototype.toArray=function(e){return T(this,e)},c.prototype.toArray=function(e){return T(this,e)},l.prototype.toString=function(e){if(10!==(e=e===o?10:e))return z(this,e);for(var t,n=this.value,r=n.length,i=String(n[--r]);0<=--r;)t=String(n[r]),i+="0000000".slice(t.length)+t;return(this.sign?"-":"")+i},c.prototype.toString=function(e){return 10!=(e=e===o?10:e)?z(this,e):String(this.value)},l.prototype.toJSON=c.prototype.toJSON=function(){return this.toString()},l.prototype.toJSNumber=l.prototype.valueOf=function(){return parseInt(this.toString(),10)},c.prototype.toJSNumber=c.prototype.valueOf=function(){return this.value};for(var e=0;e<1e3;e++)u[e]=new c(e),0<e&&(u[-e]=new c(-e));return u.one=u[1],u.zero=u[0],u.minusOne=u[-1],u.max=V,u.min=G,u.gcd=H,u.lcm=function(e,t){return e=O(e).abs(),t=O(t).abs(),e.divide(H(e,t)).multiply(t)},u.isInstance=function(e){return e instanceof l||e instanceof c},u.randBetween=function(e,t){var n=G(e=O(e),t=O(t)),r=V(e,t).subtract(n).add(1);if(r.isSmall)return n.add(Math.floor(Math.random()*r));for(var i=[],s=!0,o=r.value.length-1;0<=o;o--){var a=s?r.value[o]:v,u=m(Math.random()*a);i.unshift(u),u<a&&(s=!1)}return i=w(i),n.add("number"==typeof i?new c(i):new l(i,!1))},u.fromArray=function(e,t,n){return X(e.map(O),O(t||10),n)},u}();return"undefined"!=typeof module&&module.hasOwnProperty("exports")&&(module.exports=Q),"function"==typeof define&&define.amd&&define("big-integer",[],function(){return Q}),Q}(),bigDec:function(e){"use strict";var c,F,t,s,o=9e15,m=1e9,g="0123456789abcdef",r="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",i="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",a={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-o,maxE:o,crypto:!1},y=!0,u="[DecimalError] ",h=u+"Invalid argument: ",D=u+"Precision limit exceeded",B=u+"crypto unavailable",I=Math.floor,d=Math.pow,V=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,G=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,H=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,j=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,U=1e7,L=7,X=r.length-1,v=i.length-1,l={name:"[object Decimal]"};function b(e){var t,n,r,i=e.length-1,s="",o=e[0];if(0<i){for(s+=o,t=1;t<i;t++)r=e[t]+"",(n=L-r.length)&&(s+=p(n)),s+=r;o=e[t],(n=L-(r=o+"").length)&&(s+=p(n))}else if(0===o)return"0";for(;o%10==0;)o/=10;return s+o}function w(e,t,n){if(e!==~~e||e<t||n<e)throw Error(h+e)}function S(e,t,n,r){for(var i,s,o=e[0];10<=o;o/=10)--t;return--t<0?(t+=L,i=0):(i=Math.ceil((t+1)/L),t%=L),o=d(10,L-t),s=e[i]%o|0,null==r?t<3?(0==t?s=s/100|0:1==t&&(s=s/10|0),n<4&&99999==s||3<n&&49999==s||5e4==s||0==s):(n<4&&s+1==o||3<n&&s+1==o/2)&&(e[i+1]/o/100|0)==d(10,t-2)-1||(s==o/2||0==s)&&0==(e[i+1]/o/100|0):t<4?(0==t?s=s/1e3|0:1==t?s=s/100|0:2==t&&(s=s/10|0),(r||n<4)&&9999==s||!r&&3<n&&4999==s):((r||n<4)&&s+1==o||!r&&3<n&&s+1==o/2)&&(e[i+1]/o/1e3|0)==d(10,t-3)-1}function M(e,t,n){for(var r,i,s=[0],o=0,a=e.length;o<a;){for(i=s.length;i--;)s[i]*=t;for(s[0]+=g.indexOf(e.charAt(o++)),r=0;r<s.length;r++)n-1<s[r]&&(void 0===s[r+1]&&(s[r+1]=0),s[r+1]+=s[r]/n|0,s[r]%=n)}return s.reverse()}l.absoluteValue=l.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)},l.ceil=function(){return O(new this.constructor(this),this.e+1,2)},l.comparedTo=l.cmp=function(e){var t,n,r=this,i=r.d,s=(e=new r.constructor(e)).d,o=r.s,a=e.s;if(!i||!s)return o&&a?o!==a?o:i===s?0:!i^o<0?1:-1:NaN;if(!i[0]||!s[0])return i[0]?o:s[0]?-a:0;if(o!==a)return o;if(r.e!==e.e)return r.e>e.e^o<0?1:-1;for(t=0,n=(a=i.length)<(r=s.length)?a:r;t<n;++t)if(i[t]!==s[t])return i[t]>s[t]^o<0?1:-1;return a===r?0:r<a^o<0?1:-1},l.cosine=l.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+L,r.rounding=1,n=function(e,t){var n,r=t.d.length,r=r<32?(1/k(4,n=Math.ceil(r/3))).toString():(n=16,"2.3283064365386962890625e-10");e.precision+=n,t=P(e,1,t.times(r),new e(1));for(var i=n;i--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}(r,Y(r,n)),r.precision=e,r.rounding=t,O(2==s||3==s?n.neg():n,e,t,!0)):new r(1):new r(NaN)},l.cubeRoot=l.cbrt=function(){var e,t,n,r,i,s,o,a,u,l,c=this,p=c.constructor;if(!c.isFinite()||c.isZero())return new p(c);for(y=!1,(s=c.s*d(c.s*c,1/3))&&Math.abs(s)!=1/0?r=new p(s.toString()):(n=b(c.d),(s=((e=c.e)-n.length+1)%3)&&(n+=1==s||-2==s?"0":"00"),s=d(n,1/3),e=I((e+1)/3)-(e%3==(e<0?-1:2)),(r=new p(n=s==1/0?"5e"+e:(n=s.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=c.s),o=(e=p.precision)+3;;)if(l=(u=(a=r).times(a).times(a)).plus(c),r=N(l.plus(c).times(a),l.plus(u),o+2,1),b(a.d).slice(0,o)===(n=b(r.d)).slice(0,o)){if("9999"!=(n=n.slice(o-3,o+1))&&(i||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(O(r,e+1,1),t=!r.times(r).times(r).eq(c));break}if(!i&&(O(a,e+1,0),a.times(a).times(a).eq(c))){r=a;break}o+=4,i=1}return y=!0,O(r,e,p.rounding,t)},l.decimalPlaces=l.dp=function(){var e,t=this.d,n=NaN;if(t){if(n=((e=t.length-1)-I(this.e/L))*L,e=t[e])for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},l.dividedBy=l.div=function(e){return N(this,new this.constructor(e))},l.dividedToIntegerBy=l.divToInt=function(e){var t=this.constructor;return O(N(this,new t(e),0,1,1),t.precision,t.rounding)},l.equals=l.eq=function(e){return 0===this.cmp(e)},l.floor=function(){return O(new this.constructor(this),this.e+1,3)},l.greaterThan=l.gt=function(e){return 0<this.cmp(e)},l.greaterThanOrEqualTo=l.gte=function(e){e=this.cmp(e);return 1==e||0===e},l.hyperbolicCosine=l.cosh=function(){var e,t,n,r=(a=this).constructor,i=new r(1);if(!a.isFinite())return new r(a.s?1/0:NaN);if(a.isZero())return i;t=r.precision,n=r.rounding,r.precision=t+Math.max(a.e,a.sd())+4,r.rounding=1;for(var s,o=(o=a.d.length)<32?(1/k(4,e=Math.ceil(o/3))).toString():(e=16,"2.3283064365386962890625e-10"),a=P(r,1,a.times(o),new r(1),!0),u=e,l=new r(8);u--;)s=a.times(a),a=i.minus(s.times(l.minus(s.times(l))));return O(a,r.precision=t,r.rounding=n,!0)},l.hyperbolicSine=l.sinh=function(){var e,t,n,r=(o=this).constructor;if(!o.isFinite()||o.isZero())return new r(o);if(e=r.precision,t=r.rounding,r.precision=e+Math.max(o.e,o.sd())+4,r.rounding=1,(n=o.d.length)<3)o=P(r,2,o,o,!0);else for(var i,s=16<(s=1.4*Math.sqrt(n))?16:0|s,o=P(r,2,o=o.times(1/k(5,s)),o,!0),a=new r(5),u=new r(16),l=new r(20);s--;)i=o.times(o),o=o.times(a.plus(i.times(u.times(i).plus(l))));return O(o,r.precision=e,r.rounding=t,!0)},l.hyperbolicTangent=l.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,N(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)},l.inverseCosine=l.acos=function(){var e=this,t=e.constructor,n=e.abs().cmp(1),r=t.precision,i=t.rounding;return-1!==n?0===n?e.isNeg()?A(t,r,i):new t(0):new t(NaN):e.isZero()?A(t,r+4,i).times(.5):(t.precision=r+6,t.rounding=1,e=e.asin(),n=A(t,r+4,i).times(.5),t.precision=r,t.rounding=i,n.minus(e))},l.inverseHyperbolicCosine=l.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,y=!1,n=n.times(n).minus(1).sqrt().plus(n),y=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)},l.inverseHyperbolicSine=l.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,y=!1,n=n.times(n).plus(1).sqrt().plus(n),y=!0,r.precision=e,r.rounding=t,n.ln())},l.inverseHyperbolicTangent=l.atanh=function(){var e,t,n,r=this,i=r.constructor;return r.isFinite()?0<=r.e?new i(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=i.precision,t=i.rounding,n=r.sd(),Math.max(n,e)<2*-r.e-1?O(new i(r),e,t,!0):(i.precision=n=n-r.e,r=N(r.plus(1),new i(1).minus(r),n+e,1),i.precision=e+4,i.rounding=1,r=r.ln(),i.precision=e,i.rounding=t,r.times(.5))):new i(NaN)},l.inverseSine=l.asin=function(){var e,t,n,r=this,i=r.constructor;return r.isZero()?new i(r):(e=r.abs().cmp(1),t=i.precision,n=i.rounding,-1!==e?0===e?((e=A(i,t+4,n).times(.5)).s=r.s,e):new i(NaN):(i.precision=t+6,i.rounding=1,r=r.div(new i(1).minus(r.times(r)).sqrt().plus(1)).atan(),i.precision=t,i.rounding=n,r.times(2)))},l.inverseTangent=l.atan=function(){var e,t,n,r,i,s,o,a,u,l=this,c=l.constructor,p=c.precision,f=c.rounding;if(l.isFinite()){if(l.isZero())return new c(l);if(l.abs().eq(1)&&p+4<=v)return(o=A(c,p+4,f).times(.25)).s=l.s,o}else{if(!l.s)return new c(NaN);if(p+4<=v)return(o=A(c,p+4,f).times(.5)).s=l.s,o}for(c.precision=a=p+10,c.rounding=1,e=n=Math.min(28,a/L+2|0);e;--e)l=l.div(l.times(l).plus(1).sqrt().plus(1));for(y=!1,t=Math.ceil(a/L),r=1,u=l.times(l),o=new c(l),i=l;-1!==e;)if(i=i.times(u),s=o.minus(i.div(r+=2)),i=i.times(u),void 0!==(o=s.plus(i.div(r+=2))).d[t])for(e=t;o.d[e]===s.d[e]&&e--;);return n&&(o=o.times(2<<n-1)),y=!0,O(o,c.precision=p,c.rounding=f,!0)},l.isFinite=function(){return!!this.d},l.isInteger=l.isInt=function(){return!!this.d&&I(this.e/L)>this.d.length-2},l.isNaN=function(){return!this.s},l.isNegative=l.isNeg=function(){return this.s<0},l.isPositive=l.isPos=function(){return 0<this.s},l.isZero=function(){return!!this.d&&0===this.d[0]},l.lessThan=l.lt=function(e){return this.cmp(e)<0},l.lessThanOrEqualTo=l.lte=function(e){return this.cmp(e)<1},l.logarithm=l.log=function(e){var t,n,r,i,s,o,a,u,l=this.constructor,c=l.precision,p=l.rounding;if(null==e)e=new l(10),t=!0;else{if(n=(e=new l(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(n=this.d,this.s<0||!n||!n[0]||this.eq(1))return new l(n&&!n[0]?-1/0:1!=this.s?NaN:n?0:1/0);if(t)if(1<n.length)s=!0;else{for(i=n[0];i%10==0;)i/=10;s=1!==i}if(y=!1,o=C(this,a=c+5),r=t?x(l,a+10):C(e,a),S((u=N(o,r,a,1)).d,i=c,p))do{if(o=C(this,a+=10),r=t?x(l,a+10):C(e,a),u=N(o,r,a,1),!s){+b(u.d).slice(i+1,i+15)+1==1e14&&(u=O(u,c+1,0));break}}while(S(u.d,i+=10,p));return y=!0,O(u,c,p)},l.minus=l.sub=function(e){var t,n,r,i,s,o,a,u,l,c,p,f=this,h=f.constructor;if(e=new h(e),!f.d||!e.d)return f.s&&e.s?f.d?e.s=-e.s:e=new h(e.d||f.s!==e.s?f:NaN):e=new h(NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(l=f.d,p=e.d,a=h.precision,u=h.rounding,!l[0]||!p[0]){if(p[0])e.s=-e.s;else{if(!l[0])return new h(3===u?-0:0);e=new h(f)}return y?O(e,a,u):e}if(n=I(e.e/L),f=I(f.e/L),l=l.slice(),s=f-n){for(o=((c=s<0)?(t=l,s=-s,p):(t=p,n=f,l)).length,s>(r=Math.max(Math.ceil(a/L),o)+2)&&(s=r,t.length=1),t.reverse(),r=s;r--;)t.push(0);t.reverse()}else{for((c=(r=l.length)<(o=p.length))&&(o=r),r=0;r<o;r++)if(l[r]!=p[r]){c=l[r]<p[r];break}s=0}for(c&&(t=l,l=p,p=t,e.s=-e.s),o=l.length,r=p.length-o;0<r;--r)l[o++]=0;for(r=p.length;s<r;){if(l[--r]<p[r]){for(i=r;i&&0===l[--i];)l[i]=U-1;--l[i],l[r]+=U}l[r]-=p[r]}for(;0===l[--o];)l.pop();for(;0===l[0];l.shift())--n;return l[0]?(e.d=l,e.e=q(l,n),y?O(e,a,u):e):new h(3===u?-0:0)},l.modulo=l.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?O(new r(n),r.precision,r.rounding):(y=!1,9==r.modulo?(t=N(n,e.abs(),0,3,1)).s*=e.s:t=N(n,e,0,r.modulo,1),t=t.times(e),y=!0,n.minus(t))},l.naturalExponential=l.exp=function(){return f(this)},l.naturalLogarithm=l.ln=function(){return C(this)},l.negated=l.neg=function(){var e=new this.constructor(this);return e.s=-e.s,O(e)},l.plus=l.add=function(e){var t,n,r,i,s,o,a,u,l,c,p=this,f=p.constructor;if(e=new f(e),!p.d||!e.d)return p.s&&e.s?p.d||(e=new f(e.d||p.s===e.s?p:NaN)):e=new f(NaN),e;if(p.s!=e.s)return e.s=-e.s,p.minus(e);if(l=p.d,c=e.d,a=f.precision,u=f.rounding,l[0]&&c[0]){if(s=I(p.e/L),r=I(e.e/L),l=l.slice(),i=s-r){for(o=(i<0?(n=l,i=-i,c):(n=c,r=s,l)).length,i>(o=(s=Math.ceil(a/L))>o?s+1:o+1)&&(i=o,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for((o=l.length)-(i=c.length)<0&&(i=o,n=c,c=l,l=n),t=0;i;)t=(l[--i]=l[i]+c[i]+t)/U|0,l[i]%=U;for(t&&(l.unshift(t),++r),o=l.length;0==l[--o];)l.pop();e.d=l,e.e=q(l,r)}else c[0]||(e=new f(p));return y?O(e,a,u):e},l.precision=l.sd=function(e){var t;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(h+e);return this.d?(t=Z(this.d),e&&this.e+1>t&&(t=this.e+1)):t=NaN,t},l.round=function(){var e=this.constructor;return O(new e(this),this.e+1,e.rounding)},l.sine=l.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+L,r.rounding=1,n=function(e,t){var n,r=t.d.length;if(r<3)return P(e,2,t,t);n=16<(n=1.4*Math.sqrt(r))?16:0|n,t=P(e,2,t=t.times(1/k(5,n)),t);for(var i,s=new e(5),o=new e(16),a=new e(20);n--;)i=t.times(t),t=t.times(s.plus(i.times(o.times(i).minus(a))));return t}(r,Y(r,n)),r.precision=e,r.rounding=t,O(2<s?n.neg():n,e,t,!0)):new r(NaN)},l.squareRoot=l.sqrt=function(){var e,t,n,r,i,s,o=this.d,a=this.e,u=this.s,l=this.constructor;if(1!==u||!o||!o[0])return new l(!u||u<0&&(!o||o[0])?NaN:o?this:1/0);for(y=!1,r=0==(u=Math.sqrt(+this))||u==1/0?(((t=b(o)).length+a)%2==0&&(t+="0"),u=Math.sqrt(t),a=I((a+1)/2)-(a<0||a%2),new l(t=u==1/0?"5e"+a:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+a)):new l(u.toString()),n=(a=l.precision)+3;;)if(r=(s=r).plus(N(this,s,n+2,1)).times(.5),b(s.d).slice(0,n)===(t=b(r.d)).slice(0,n)){if("9999"!=(t=t.slice(n-3,n+1))&&(i||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(O(r,a+1,1),e=!r.times(r).eq(this));break}if(!i&&(O(s,a+1,0),s.times(s).eq(this))){r=s;break}n+=4,i=1}return y=!0,O(r,a,l.rounding,e)},l.tangent=l.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,(n=n.sin()).s=1,n=N(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,O(2==s||4==s?n.neg():n,e,t,!0)):new r(NaN)},l.times=l.mul=function(e){var t,n,r,i,s,o,a,u,l,c=this.constructor,p=this.d,f=(e=new c(e)).d;if(e.s*=this.s,!(p&&p[0]&&f&&f[0]))return new c(!e.s||p&&!p[0]&&!f||f&&!f[0]&&!p?NaN:p&&f?0*e.s:e.s/0);for(n=I(this.e/L)+I(e.e/L),(u=p.length)<(l=f.length)&&(s=p,p=f,f=s,o=u,u=l,l=o),s=[],r=o=u+l;r--;)s.push(0);for(r=l;0<=--r;){for(t=0,i=u+r;r<i;)a=s[i]+f[r]*p[i-r-1]+t,s[i--]=a%U|0,t=a/U|0;s[i]=(s[i]+t)%U|0}for(;!s[--o];)s.pop();return t?++n:s.shift(),e.d=s,e.e=q(s,n),y?O(e,c.precision,c.rounding):e},l.toBinary=function(e,t){return J(this,2,e,t)},l.toDecimalPlaces=l.toDP=function(e,t){var n=this.constructor,r=new n(this);return void 0===e?r:(w(e,0,m),void 0===t?t=n.rounding:w(t,0,8),O(r,e+r.e+1,t))},l.toExponential=function(e,t){var n=this,r=n.constructor,r=void 0===e?E(n,!0):(w(e,0,m),void 0===t?t=r.rounding:w(t,0,8),E(n=O(new r(n),e+1,t),!0,e+1));return n.isNeg()&&!n.isZero()?"-"+r:r},l.toFixed=function(e,t){var n=this.constructor,t=void 0===e?E(this):(w(e,0,m),void 0===t?t=n.rounding:w(t,0,8),E(n=O(new n(this),e+this.e+1,t),!1,e+n.e+1));return this.isNeg()&&!this.isZero()?"-"+t:t},l.toFraction=function(e){var t,n,r,i,s,o,a,u,l,c,p=this.d,f=this.constructor;if(!p)return new f(this);if(u=n=new f(1),r=a=new f(0),l=(s=(t=new f(r)).e=Z(p)-this.e-1)%L,t.d[0]=d(10,l<0?L+l:l),null==e)e=0<s?t:u;else{if(!(o=new f(e)).isInt()||o.lt(u))throw Error(h+o);e=o.gt(t)?0<s?t:u:o}for(y=!1,o=new f(b(p)),l=f.precision,f.precision=s=p.length*L*2;c=N(o,t,0,1,1),1!=(i=n.plus(c.times(r))).cmp(e);)n=r,r=i,i=u,u=a.plus(c.times(i)),a=i,i=t,t=o.minus(c.times(i)),o=i;return i=N(e.minus(n),r,0,1,1),a=a.plus(i.times(u)),n=n.plus(i.times(r)),a.s=u.s=this.s,p=N(u,r,s,1).minus(this).abs().cmp(N(a,n,s,1).minus(this).abs())<1?[u,r]:[a,n],f.precision=l,y=!0,p},l.toHexadecimal=l.toHex=function(e,t){return J(this,16,e,t)},l.toNearest=function(e,t){var n=(r=this).constructor,r=new n(r);if(null==e){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),void 0===t?t=n.rounding:w(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(y=!1,r=N(r,e,0,t,1).times(e),y=!0,O(r)):(e.s=r.s,r=e),r},l.toNumber=function(){return+this},l.toOctal=function(e,t){return J(this,8,e,t)},l.toPower=l.pow=function(e){var t,n,r,i,s,o,a=this,u=a.constructor,l=+(e=new u(e));if(!(a.d&&e.d&&a.d[0]&&e.d[0]))return new u(d(+a,l));if((a=new u(a)).eq(1))return a;if(r=u.precision,s=u.rounding,e.eq(1))return O(a,r,s);if((t=I(e.e/L))>=e.d.length-1&&(n=l<0?-l:l)<=9007199254740991)return i=z(u,a,n,r),e.s<0?new u(1).div(i):O(i,r,s);if((o=a.s)<0){if(t<e.d.length-1)return new u(NaN);if(0==(1&e.d[t])&&(o=1),0==a.e&&1==a.d[0]&&1==a.d.length)return a.s=o,a}return(t=0!=(n=d(+a,l))&&isFinite(n)?new u(n+"").e:I(l*(Math.log("0."+b(a.d))/Math.LN10+a.e+1)))>u.maxE+1||t<u.minE-1?new u(0<t?o/0:0):(y=!1,u.rounding=a.s=1,n=Math.min(12,(t+"").length),(i=(i=f(e.times(C(a,r+n)),r)).d&&S((i=O(i,r+5,1)).d,r,s)&&+b((i=O(f(e.times(C(a,(t=r+10)+n)),t),t+5,1)).d).slice(r+1,r+15)+1==1e14?O(i,r+1,0):i).s=o,y=!0,O(i,r,u.rounding=s))},l.toPrecision=function(e,t){var n=this,r=n.constructor,t=void 0===e?E(n,n.e<=r.toExpNeg||n.e>=r.toExpPos):(w(e,1,m),void 0===t?t=r.rounding:w(t,0,8),E(n=O(new r(n),e,t),e<=n.e||n.e<=r.toExpNeg,e));return n.isNeg()&&!n.isZero()?"-"+t:t},l.toSignificantDigits=l.toSD=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(w(e,1,m),void 0===t?t=n.rounding:w(t,0,8)),O(new n(this),e,t)},l.toString=function(){var e=this.constructor,e=E(this,this.e<=e.toExpNeg||this.e>=e.toExpPos);return this.isNeg()&&!this.isZero()?"-"+e:e},l.truncated=l.trunc=function(){return O(new this.constructor(this),this.e+1,1)},l.valueOf=l.toJSON=function(){var e=this.constructor,e=E(this,this.e<=e.toExpNeg||this.e>=e.toExpPos);return this.isNeg()?"-"+e:e};var N=function(e,t,n,r,i,s){var o,a,u,l,c,p,f,h,m,g,d,v,w,y,b,S,M,N,E,q=e.constructor,x=e.s==t.s?1:-1,A=e.d,C=t.d;if(!(A&&A[0]&&C&&C[0]))return new q(e.s&&t.s&&(A?!C||A[0]!=C[0]:C)?A&&0==A[0]||!C?0*x:x/0:NaN);for(a=s?(c=1,e.e-t.e):(s=U,I(e.e/(c=L))-I(t.e/c)),N=C.length,S=A.length,m=(x=new q(x)).d=[],u=0;C[u]==(A[u]||0);u++);if(C[u]>(A[u]||0)&&a--,null==n?(w=n=q.precision,r=q.rounding):w=i?n+(e.e-t.e)+1:n,w<0)m.push(1),p=!0;else{if(w=w/c+2|0,u=0,1==N){for(C=C[l=0],w++;(u<S||l)&&w--;u++)y=l*s+(A[u]||0),m[u]=y/C|0,l=y%C|0;p=l||u<S}else{for(1<(l=s/(C[0]+1)|0)&&(C=_(C,l,s),A=_(A,l,s),N=C.length,S=A.length),b=N,d=(g=A.slice(0,N)).length;d<N;)g[d++]=0;for((E=C.slice()).unshift(0),M=C[0],C[1]>=s/2&&++M;l=0,(o=R(C,g,N,d))<0?(v=g[0],1<(l=(v=N!=d?v*s+(g[1]||0):v)/M|0)?1==(o=R(f=_(C,l=s<=l?s-1:l,s),g,h=f.length,d=g.length))&&(l--,T(f,N<h?E:C,h,s)):(0==l&&(o=l=1),f=C.slice()),(h=f.length)<d&&f.unshift(0),T(g,f,d,s),-1==o&&(o=R(C,g,N,d=g.length))<1&&(l++,T(g,N<d?E:C,d,s)),d=g.length):0===o&&(l++,g=[0]),m[u++]=l,o&&g[0]?g[d++]=A[b]||0:(g=[A[b]],d=1),(b++<S||void 0!==g[0])&&w--;);p=void 0!==g[0]}m[0]||m.shift()}if(1==c)x.e=a,F=p;else{for(u=1,l=m[0];10<=l;l/=10)u++;x.e=u+a*c-1,O(x,i?n+x.e+1:n,r,p)}return x};function _(e,t,n){var r,i=0,s=e.length;for(e=e.slice();s--;)r=e[s]*t+i,e[s]=r%n|0,i=r/n|0;return i&&e.unshift(i),e}function R(e,t,n,r){var i,s;if(n!=r)s=r<n?1:-1;else for(i=s=0;i<n;i++)if(e[i]!=t[i]){s=e[i]>t[i]?1:-1;break}return s}function T(e,t,n,r){for(var i=0;n--;)e[n]-=i,i=e[n]<t[n]?1:0,e[n]=i*r+e[n]-t[n];for(;!e[0]&&1<e.length;)e.shift()}function O(e,t,n,r){var i,s,o,a,u,l,c,p,f=e.constructor;e:if(null!=t){if(!(c=e.d))return e;for(i=1,a=c[0];10<=a;a/=10)i++;if((s=t-i)<0)s+=L,o=t,u=(l=c[p=0])/d(10,i-o-1)%10|0;else if((p=Math.ceil((s+1)/L))>=(a=c.length)){if(!r)break e;for(;a++<=p;)c.push(0);l=u=0,o=(s%=L)-L+(i=1)}else{for(l=a=c[p],i=1;10<=a;a/=10)i++;u=(o=(s%=L)-L+i)<0?0:l/d(10,i-o-1)%10|0}if(r=r||t<0||void 0!==c[p+1]||(o<0?l:l%d(10,i-o-1)),u=n<4?(u||r)&&(0==n||n==(e.s<0?3:2)):5<u||5==u&&(4==n||r||6==n&&(0<s?0<o?l/d(10,i-o):0:c[p-1])%10&1||n==(e.s<0?8:7)),t<1||!c[0])return c.length=0,u?(t-=e.e+1,c[0]=d(10,(L-t%L)%L),e.e=-t||0):c[0]=e.e=0,e;if(0==s?(c.length=p,a=1,p--):(c.length=p+1,a=d(10,L-s),c[p]=0<o?(l/d(10,i-o)%d(10,o)|0)*a:0),u)for(;;){if(0==p){for(s=1,o=c[0];10<=o;o/=10)s++;for(o=c[0]+=a,a=1;10<=o;o/=10)a++;s!=a&&(e.e++,c[0]==U)&&(c[0]=1);break}if(c[p]+=a,c[p]!=U)break;c[p--]=0,a=1}for(s=c.length;0===c[--s];)c.pop()}return y&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e<f.minE&&(e.e=0,e.d=[0])),e}function E(e,t,n){var r,i,s,o;return e.isFinite()?(i=e.e,o=(s=b(e.d)).length,t?(n&&0<(r=n-o)?s=s.charAt(0)+"."+s.slice(1)+p(r):1<o&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):i<0?(s="0."+p(-i-1)+s,n&&0<(r=n-o)&&(s+=p(r))):o<=i?(s+=p(i+1-o),n&&0<(r=n-i-1)&&(s=s+"."+p(r))):((r=i+1)<o&&(s=s.slice(0,r)+"."+s.slice(r)),n&&0<(r=n-o)&&(i+1===o&&(s+="."),s+=p(r))),s):Q(e)}function q(e,t){var n=e[0];for(t*=L;10<=n;n/=10)t++;return t}function x(e,t,n){if(X<t)throw y=!0,n&&(e.precision=n),Error(D);return O(new e(r),t,1,!0)}function A(e,t,n){if(v<t)throw Error(D);return O(new e(i),t,n,!0)}function Z(e){var t=e.length-1,n=t*L+1;if(t=e[t]){for(;t%10==0;t/=10)n--;for(t=e[0];10<=t;t/=10)n++}return n}function p(e){for(var t="";e--;)t+="0";return t}function z(e,t,n,r){var i,s=new e(1),o=Math.ceil(r/L+4);for(y=!1;;){if(n%2&&K((s=s.times(t)).d,o)&&(i=!0),0===(n=I(n/2))){n=s.d.length-1,i&&0===s.d[n]&&++s.d[n];break}K((t=t.times(t)).d,o)}return y=!0,s}function $(e){return 1&e.d[e.d.length-1]}function n(e,t,n){for(var r,i=new e(t[0]),s=0;++s<t.length;){if(!(r=new e(t[s])).s){i=r;break}i[n](r)&&(i=r)}return i}function f(e,t){var n,r,i,s,o,a,u,l=0,c=0,p=0,f=e.constructor,h=f.rounding,m=f.precision;if(!e.d||!e.d[0]||17<e.e)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(u=null==t?(y=!1,m):t,a=new f(.03125);-2<e.e;)e=e.times(a),p+=5;for(u+=r=Math.log(d(2,p))/Math.LN10*2+5|0,n=s=o=new f(1),f.precision=u;;){if(s=O(s.times(e),u,1),n=n.times(++c),b((a=o.plus(N(s,n,u,1))).d).slice(0,u)===b(o.d).slice(0,u)){for(i=p;i--;)o=O(o.times(o),u,1);if(null!=t)return f.precision=m,o;if(!(l<3&&S(o.d,u-r,h,l)))return O(o,f.precision=m,h,y=!0);f.precision=u+=10,n=s=a=new f(1),c=0,l++}o=a}}function C(e,t){var n,r,i,s,o,a,u,l,c,p,f,h=1,m=e,g=m.d,d=m.constructor,v=d.rounding,w=d.precision;if(m.s<0||!g||!g[0]||!m.e&&1==g[0]&&1==g.length)return new d(g&&!g[0]?-1/0:1!=m.s?NaN:g?0:m);if(c=null==t?(y=!1,w):t,d.precision=c+=10,r=(n=b(g)).charAt(0),!(Math.abs(s=m.e)<15e14))return l=x(d,c+2,w).times(s+""),m=C(new d(r+"."+n.slice(1)),c-10).plus(l),d.precision=w,null==t?O(m,w,v,y=!0):m;for(;r<7&&1!=r||1==r&&3<n.charAt(1);)r=(n=b((m=m.times(e)).d)).charAt(0),h++;for(s=m.e,1<r?(m=new d("0."+n),s++):m=new d(r+"."+n.slice(1)),u=o=m=N((p=m).minus(1),m.plus(1),c,1),f=O(m.times(m),c,1),i=3;;){if(o=O(o.times(f),c,1),b((l=u.plus(N(o,new d(i),c,1))).d).slice(0,c)===b(u.d).slice(0,c)){if(u=u.times(2),0!==s&&(u=u.plus(x(d,c+2,w).times(s+""))),u=N(u,new d(h),c,1),null!=t)return d.precision=w,u;if(!S(u.d,c-10,v,a))return O(u,d.precision=w,v,y=!0);d.precision=c+=10,l=o=m=N(p.minus(1),p.plus(1),c,1),f=O(m.times(m),c,1),i=a=1}u=l,i+=2}}function Q(e){return String(e.s*e.s/0)}function W(e,t){var n,r,i;for(0<(r=(t=-1<(n=t.indexOf("."))?t.replace(".",""):t).search(/e/i))?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);r++);for(i=t.length;48===t.charCodeAt(i-1);--i);if(t=t.slice(r,i)){if(i-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%L,n<0&&(r+=L),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=L;r<i;)e.d.push(+t.slice(r,r+=L));t=t.slice(r),r=L-t.length}else r-=i;for(;r--;)t+="0";e.d.push(+t),y&&(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 P(e,t,n,r,i){var s,o,a,u,l=e.precision,c=Math.ceil(l/L);for(y=!1,u=n.times(n),a=new e(r);;){if(o=N(a.times(u),new e(t++*t++),l,1),a=i?r.plus(o):r.minus(o),r=N(o.times(u),new e(t++*t++),l,1),void 0!==(o=a.plus(r)).d[c]){for(s=c;o.d[s]===a.d[s]&&s--;);if(-1==s)break}s=a,a=r,r=o,o=s}return y=!0,o.d.length=c+1,o}function k(e,t){for(var n=e;--t;)n*=e;return n}function Y(e,t){var n,r=t.s<0,e=A(e,e.precision,1),i=e.times(.5);if((t=t.abs()).lte(i))return s=r?4:1,t;if((n=t.divToInt(e)).isZero())s=r?3:2;else{if((t=t.minus(n.times(e))).lte(i))return s=$(n)?r?2:3:r?4:1,t;s=$(n)?r?1:4:r?3:2}return t.minus(e).abs()}function J(e,t,n,r){var i,s,o,a,u,l,c,p,f=e.constructor,h=void 0!==n;if(h?(w(n,1,m),void 0===r?r=f.rounding:w(r,0,8)):(n=f.precision,r=f.rounding),e.isFinite()){for(h?(i=2,16==t?n=4*n-3:8==t&&(n=3*n-2)):i=t,0<=(o=(l=E(e)).indexOf("."))&&(l=l.replace(".",""),(p=new f(1)).e=l.length-o,p.d=M(E(p),10,i),p.e=p.d.length),s=a=(c=M(l,10,i)).length;0==c[--a];)c.pop();if(c[0]){if(o<0?s--:((e=new f(e)).d=c,e.e=s,c=(e=N(e,p,n,r,0,i)).d,s=e.e,u=F),o=c[n],f=i/2,u=u||void 0!==c[n+1],u=r<4?(void 0!==o||u)&&(0===r||r===(e.s<0?3:2)):f<o||o===f&&(4===r||u||6===r&&1&c[n-1]||r===(e.s<0?8:7)),c.length=n,u)for(;++c[--n]>i-1;)c[n]=0,n||(++s,c.unshift(1));for(a=c.length;!c[a-1];--a);for(o=0,l="";o<a;o++)l+=g.charAt(c[o]);if(h){if(1<a)if(16==t||8==t){for(o=16==t?4:3,--a;a%o;a++)l+="0";for(a=(c=M(l,i,t)).length;!c[a-1];--a);for(o=1,l="1.";o<a;o++)l+=g.charAt(c[o])}else l=l.charAt(0)+"."+l.slice(1);l=l+(s<0?"p":"p+")+s}else if(s<0){for(;++s;)l="0"+l;l="0."+l}else if(++s>a)for(s-=a;s--;)l+="0";else s<a&&(l=l.slice(0,s)+"."+l.slice(s))}else l=h?"0p+0":"0";l=(16==t?"0x":2==t?"0b":8==t?"0o":"")+l}else l=Q(e);return e.s<0?"-"+l:l}function K(e,t){return e.length>t&&(e.length=t,1)}function e0(e){return new this(e).abs()}function t0(e){return new this(e).acos()}function n0(e){return new this(e).acosh()}function r0(e,t){return new this(e).plus(t)}function i0(e){return new this(e).asin()}function s0(e){return new this(e).asinh()}function o0(e){return new this(e).atan()}function a0(e){return new this(e).atanh()}function u0(e,t){e=new this(e),t=new this(t);var n,r=this.precision,i=this.rounding,s=r+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(n=t.s<0?A(this,r,i):new this(0)).s=e.s:!e.d||t.isZero()?(n=A(this,s,1).times(.5)).s=e.s:n=t.s<0?(this.precision=s,this.rounding=1,n=this.atan(N(e,t,s,1)),t=A(this,s,1),this.precision=r,this.rounding=i,e.s<0?n.minus(t):n.plus(t)):this.atan(N(e,t,s,1)):(n=A(this,s,1).times(0<t.s?.25:.75)).s=e.s:n=new this(NaN),n}function l0(e){return new this(e).cbrt()}function c0(e){return O(e=new this(e),e.e+1,2)}function p0(e){if(!e||"object"!=typeof e)throw Error(u+"Object expected");for(var t,n,r=!0===e.defaults,i=["precision",1,m,"rounding",0,8,"toExpNeg",-o,0,"toExpPos",0,o,"maxE",0,o,"minE",-o,0,"modulo",0,9],s=0;s<i.length;s+=3)if(t=i[s],r&&(this[t]=a[t]),void 0!==(n=e[t])){if(!(I(n)===n&&i[s+1]<=n&&n<=i[s+2]))throw Error(h+t+": "+n);this[t]=n}if(t="crypto",r&&(this[t]=a[t]),void 0!==(n=e[t])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(h+t+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(B);this[t]=!0}else this[t]=!1}return this}function f0(e){return new this(e).cos()}function h0(e){return new this(e).cosh()}function m0(e,t){return new this(e).div(t)}function g0(e){return new this(e).exp()}function d0(e){return O(e=new this(e),e.e+1,3)}function v0(){var e,t,n=new this(0);for(y=!1,e=0;e<arguments.length;)if((t=new this(arguments[e++])).d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return y=!0,new this(1/0);n=t}return y=!0,n.sqrt()}function w0(e){return e instanceof c||e&&"[object Decimal]"===e.name||!1}function y0(e){return new this(e).ln()}function b0(e,t){return new this(e).log(t)}function S0(e){return new this(e).log(2)}function M0(e){return new this(e).log(10)}function N0(){return n(this,arguments,"lt")}function E0(){return n(this,arguments,"gt")}function q0(e,t){return new this(e).mod(t)}function x0(e,t){return new this(e).mul(t)}function A0(e,t){return new this(e).pow(t)}function C0(e){var t,n,r,i,s=0,o=new this(1),a=[];if(void 0===e?e=this.precision:w(e,1,m),r=Math.ceil(e/L),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));s<r;)429e7<=(i=t[s])?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:a[s++]=i%1e7;else{if(!crypto.randomBytes)throw Error(B);for(t=crypto.randomBytes(r*=4);s<r;)214e7<=(i=t[s]+(t[s+1]<<8)+(t[s+2]<<16)+((127&t[s+3])<<24))?crypto.randomBytes(4).copy(t,s):(a.push(i%1e7),s+=4);s=r/4}else for(;s<r;)a[s++]=1e7*Math.random()|0;for(r=a[--s],e%=L,r&&e&&(i=d(10,L-e),a[s]=(r/i|0)*i);0===a[s];s--)a.pop();if(s<0)a=[n=0];else{for(n=-1;0===a[0];n-=L)a.shift();for(r=1,i=a[0];10<=i;i/=10)r++;r<L&&(n-=L-r)}return o.e=n,o.d=a,o}function I0(e){return O(e=new this(e),e.e+1,this.rounding)}function U0(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function L0(e){return new this(e).sin()}function _0(e){return new this(e).sinh()}function R0(e){return new this(e).sqrt()}function T0(e,t){return new this(e).sub(t)}function O0(e){return new this(e).tan()}function P0(e){return new this(e).tanh()}function k0(e){return O(e=new this(e),e.e+1,1)}return(c=function e(t){var n,r,i;function s(e){var t,n,r,i=this;if(!(i instanceof s))return new s(e);if(!(e instanceof(i.constructor=s))){if("number"==(r=typeof e)){if(0===e)return i.s=1/e<0?-1:1,i.e=0,void(i.d=[0]);if(e<0?(e=-e,i.s=-1):i.s=1,e===~~e&&e<1e7){for(t=0,n=e;10<=n;n/=10)t++;return void(y?s.maxE<t?(i.e=NaN,i.d=null):t<s.minE?(i.e=0,i.d=[0]):(i.e=t,i.d=[e]):(i.e=t,i.d=[e]))}return 0*e!=0?(e||(i.s=NaN),i.e=NaN,void(i.d=null)):W(i,e.toString())}if("string"!=r)throw Error(h+e);return 45===(n=e.charCodeAt(0))?(e=e.slice(1),i.s=-1):(43===n&&(e=e.slice(1)),i.s=1),(j.test(e)?W:function(e,t){var n,r,i,s,o,a,u,l;if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(G.test(t))n=16,t=t.toLowerCase();else if(V.test(t))n=2;else{if(!H.test(t))throw Error(h+t);n=8}for(o=0<=(s=(t=0<(s=t.search(/p/i))?(u=+t.slice(s+1),t.substring(2,s)):t.slice(2)).indexOf(".")),r=e.constructor,o&&(s=(a=(t=t.replace(".","")).length)-s,i=z(r,new r(n),s,2*s)),s=t=(l=M(t,n,U)).length-1;0===l[s];--s)l.pop();return s<0?new r(0*e.s):(e.e=q(l,t),e.d=l,y=!1,o&&(e=N(e,i,4*a)),u&&(e=e.times(Math.abs(u)<54?d(2,u):c.pow(2,u))),y=!0,e)})(i,e)}i.s=e.s,y?!e.d||e.e>s.maxE?(i.e=NaN,i.d=null):e.e<s.minE?(i.e=0,i.d=[0]):(i.e=e.e,i.d=e.d.slice()):(i.e=e.e,i.d=e.d&&e.d.slice())}if(s.prototype=l,s.ROUND_UP=0,s.ROUND_DOWN=1,s.ROUND_CEIL=2,s.ROUND_FLOOR=3,s.ROUND_HALF_UP=4,s.ROUND_HALF_DOWN=5,s.ROUND_HALF_EVEN=6,s.ROUND_HALF_CEIL=7,s.ROUND_HALF_FLOOR=8,s.EUCLID=9,s.config=s.set=p0,s.clone=e,s.isDecimal=w0,s.abs=e0,s.acos=t0,s.acosh=n0,s.add=r0,s.asin=i0,s.asinh=s0,s.atan=o0,s.atanh=a0,s.atan2=u0,s.cbrt=l0,s.ceil=c0,s.cos=f0,s.cosh=h0,s.div=m0,s.exp=g0,s.floor=d0,s.hypot=v0,s.ln=y0,s.log=b0,s.log10=M0,s.log2=S0,s.max=N0,s.min=E0,s.mod=q0,s.mul=x0,s.pow=A0,s.random=C0,s.round=I0,s.sign=U0,s.sin=L0,s.sinh=_0,s.sqrt=R0,s.sub=T0,s.tan=O0,s.tanh=P0,s.trunc=k0,(t=void 0===t?{}:t)&&!0!==t.defaults)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],n=0;n<i.length;)t.hasOwnProperty(r=i[n++])||(t[r]=this[r]);return s.config(t),s}(a)).default=c.Decimal=c,r=new c(r),i=new c(i),"function"==typeof define&&define.amd?define(function(){return c}):"undefined"!=typeof module&&module.exports?("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator&&(l[Symbol.for("nodejs.util.inspect.custom")]=l.toString,l[Symbol.toStringTag]="Decimal"),module.exports=c):(e=e||("undefined"!=typeof self&&self&&self.self==self?self:window),t=e.Decimal,c.noConflict=function(){return e.Decimal=t,c},e.Decimal=c),c}(this)});"undefined"!=typeof module&&(module.exports=nerdamer),"undefined"!=typeof module&&(nerdamer=require("./nerdamer.core.js"),require("./Calculus.js")),function(){"use strict";var f=0,H=nerdamer.getCore(),j=H.PARSER,h=H.groups.N,c=H.groups.P,X=H.groups.S,p=H.groups.EX,C=H.groups.FN,w=H.groups.PL,Z=H.groups.CP,I=H.groups.CB,U=H.Utils.keys,L=H.Utils.even,z=H.Utils.variables,u=H.Utils.format,y=H.Utils.round,$=H.Frac,_=H.Utils.isInt,Q=H.Symbol,W=H.Settings.CONST_HASH,m=H.Utils.importFunctions();H.Utils.evaluate;function Y(e,t,n){if(H.Utils.isSymbol(e))this.parse(e),this.variable=this.variable||t;else if(isNaN(e))"string"==typeof e&&this.parse(j.parse(e));else{if(n=n||0,void 0===t)throw new H.exceptions.InvalidVariableNameError("Polynomial expects a variable name when creating using order");this.coeffs=[],this.coeffs[n]=e,this.fill(e)}}function R(){this.factors={},this.length=0}function J(e,t,n){this.terms=t||[],this.coeff=e,this.map=n,this.sum=new H.Frac(0),this.image=void 0}Y.fromArray=function(e,t){if(void 0===t)throw new H.exceptions.InvalidVariableNameError("A variable name must be specified when creating polynomial from array");var n=new Y;return n.coeffs=e,n.variable=t,n},Y.fit=function(e,t,n,r,i,s){var o=new Array(i+1),a=n-t;o[0]=t,a-=(o[i]=e)*Math.pow(r,i);for(var u=i-1;0<u;u--){var l=Math.pow(r,u),c=a/l,c=Math.sign(c)*Math.floor(Math.abs(c));a-=c*l,o[u]=c}if(0!==a)return null;for(u=0;u<o.length;u++)o[u]=new $(o[u]);return Y.fromArray(o,s)},Y.prototype={parse:function(e,t){if(this.variable=z(e)[0],!e.isPoly())throw H.exceptions.NerdamerTypeError("Polynomial Expected! Received "+H.Utils.text(e));if(t=t||[],(e=e.power.absEquals(1)?e:j.expand(e)).group===H.groups.N)t[0]=e.multiplier;else if(e.group===H.groups.S)t[e.power.toDecimal()]=e.multiplier;else for(var n in e.symbols){var n=e.symbols[n],r=n.power;if(H.Utils.isSymbol(r))throw new H.exceptions.NerdamerTypeError("power cannot be a Symbol");r=n.group===h?0:r.toDecimal(),n.symbols?this.parse(n,t):t[r]=n.multiplier}this.coeffs=t,this.fill()},fill:function(e){e=Number(e)||0;for(var t=this.coeffs.length,n=0;n<t;n++)void 0===this.coeffs[n]&&(this.coeffs[n]=new $(e));return this},trim:function(){for(var e=this.coeffs.length;e--;){var t=this.coeffs[e],n=t.equals(0);if(!t||!n)break;if(0===e)break;this.coeffs.pop()}return this},modP:function(e){for(var t=this.coeffs.length,n=0;n<t;n++){var r=this.coeffs[n];if(r<0){for(var i,s=n;s<t;s++)if(0<this.coeffs[s]){i=this.coeffs[s];break}if(i){for(;n<s;s--)this.coeffs[s]=this.coeffs[s].subtract(new $(1)),this.coeffs[s-1]=this.coeffs[s-1].add(new $(e));r=this.coeffs[n]}}var o,a,u=r.mod(e),r=r.subtract(u).divide(e);r.equals(0)||(a=(a=this.coeffs[o=n+1]||new $(0)).add(r),this.coeffs[o]=new $(a),this.coeffs[n]=new $(u))}return this},add:function(e){for(var t=Math.max(this.coeffs.length,e.coeffs.length),n=0;n<t;n++){var r=this.coeffs[n]||new $(0),i=e.coeffs[n]||new $(0);this.coeffs[n]=r.add(i)}return this},subtract:function(e){for(var t=Math.max(this.coeffs.length,e.coeffs.length),n=0;n<t;n++){var r=this.coeffs[n]||new $(0),i=e.coeffs[n]||new $(0);this.coeffs[n]=r.subtract(i)}return this},divide:function(e){for(var t=this.variable,n=H.Utils.arrayClone(this.coeffs),r=H.Utils.arrayClone(e.coeffs),i=n.length,s=r.length-1,o=[],a=0;a<i;a++){var u=i-(a+1),l=u-s,c=n[u].divide(r[s]);if(l<0)break;o[l]=c;for(var p=0;p<=s;p++)n[p+l]=n[p+l].subtract(r[p].multiply(c))}e=Y.fromArray(n,t||"x").trim();return[Y.fromArray(o,t||"x"),e]},multiply:function(e){for(var t=this.coeffs.length,n=e.coeffs.length,r=[],i=0;i<t;i++)for(var s=this.coeffs[i],o=0;o<n;o++){var a=i+o,u=e.coeffs[o],l=r[a]||new $(0);r[a]=l.add(s.multiply(u))}return this.coeffs=r,this},isZero:function(){for(var e=this.coeffs.length,t=0;t<e;t++)if(!this.coeffs[t].equals(0))return!1;return!0},sub:function(e){for(var t=new $(0),n=this.coeffs.length,r=0;r<n;r++){var i=this.coeffs[r];i.equals(0)||(t=t.add(i.multiply(new $(Math.pow(e,r)))))}return t},clone:function(){var e=new Y;return e.coeffs=this.coeffs,e.variable=this.variable,e},deg:function(){return this.trim(),this.coeffs.length-1},lc:function(){return this.coeffs[this.deg()].clone()},monic:function(){for(var e=this.lc(),t=this.coeffs.length,n=0;n<t;n++)this.coeffs[n]=this.coeffs[n].divide(e);return this},gcd:function(e){if(this.coeffs.length-1<e.coeffs.length-1)return e.gcd(this);for(var t=this;!e.isZero();){var n=e.clone();e=(t=t.clone()).divide(n)[1],t=n}var r=H.Math2.QGCD.apply(null,t.coeffs);if(!r.equals(1))for(var i=t.coeffs.length,s=0;s<i;s++)t.coeffs[s]=t.coeffs[s].divide(r);return t},diff:function(){for(var e=[],t=this.coeffs.length,n=1;n<t;n++)e.push(this.coeffs[n].multiply(new $(n)));return this.coeffs=e,this},integrate:function(){for(var e=[0],t=this.coeffs.length,n=0;n<t;n++){var r=new $(n+1);e[r]=this.coeffs[n].divide(r)}return this.coeffs=e,this},gcf:function(e){for(var t=[],n=0;n<this.coeffs.length;n++){var r=this.coeffs[n];r.equals(0)||-1!==t.indexOf(r)||t.push(r)}var i=[H.Math2.QGCD.apply(void 0,t),function(e){for(var t=0;t<e.length;t++)if(!e[t].equals(0))return t}(this.coeffs)].toDecimal();return e&&((e=[])[i[1]-1]=i[0],i=Y.fromArray(e,this.variable).fill()),i},quad:function(e){var t=[];if(3<this.coeffs.length)throw new Error("Cannot calculate quadratic order of "+(this.coeffs.length-1));if(0===this.coeffs.length)throw new Error("Polynomial array has no terms");var n=this.coeffs[2]||0,r=this.coeffs[1]||0,i=r*r-4*n*this.coeffs[0];return i<0&&!e||(t[0]=(-r+Math.sqrt(i))/(2*n),t[1]=(-r-Math.sqrt(i))/(2*n)),t},squareFree:function(){for(var e=this.clone(),t=1,n=e.clone().diff(),r=e.clone().gcd(n),i=e.divide(r)[0],s=Y.fromArray([new $(1)],e.variable);!r.equalsNumber(1);){var o=i.gcd(r),a=i.divide(o)[0];if(!a.equalsNumber(1)&&1<t){for(var u=a.clone(),l=1;l<t;l++)u.multiply(a.clone());a=u}s=s.multiply(a),t++,r=r.divide(i=o)[0]}return[s,i,t]},toSymbol:function(){var e=this.coeffs.length,t=this.variable;if(0===e)return new H.Symbol(0);for(var n=e-1,r="",i=0;i<e;i++){var s=i===n?"":"+",o=this.coeffs[i];o.equals(0)||(r+=o+"*"+t+"^"+i+s)}return j.parse(r)},equalsNumber:function(e){return this.trim(),1===this.coeffs.length&&this.coeffs[0].toDecimal()===String(e)},toString:function(){return this.toSymbol().toString()}},Q.prototype.coeffs=function(e,t){t&&!this.isPoly(!0)&&j.error("Polynomial expected when requesting coefficients with order"),e=e||[];var n,r=this.clone().distributeMultiplier();if(r.isComposite())for(var i in r.symbols){i=r.symbols[i];i.isComposite()?i.clone().distributeMultiplier().coeffs(e,t):t?e[i.isConstant()?0:i.power.toDecimal()]=i.multiplier:e.push(i.multiplier)}else t?e[r.isConstant(!0)?0:r.power.toDecimal()]=r.multiplier:r.group===I&&r.isImaginary()?(n=new Q(r.multiplier),r.each(function(e){(e.isConstant(!0)||e.imaginary)&&(n=j.multiply(n,e))}),e.push(n)):e.push(r.multiplier);if(t)for(var s=0;s<e.length;s++)void 0===e[s]&&(e[s]=new Q(0));return e},Q.prototype.tBase=function(e){if(void 0===e)throw new Error("Symbol.tBase requires a map object!");for(var t=[],n=this.collectSymbols(null,null,null,!0),r=n.length,i=0;i<r;i++){var s=n[i],o=s.group,a=new J(s.multiplier,[],e);if(o===I)for(var u in s.symbols){var l=s.symbols[u];a.terms[e[u]]=l.power}else a.terms[e[s.value]]=s.power;t.push(a.fill()),a.updateCount()}return t},Q.prototype.altVar=function(e){var t=this.multiplier.toString(),n=this.power.toString();return("1"===t?"":t+"*")+e+("1"===n?"":"^"+n)},Q.prototype.sameVars=function(e){if(!this.symbols&&this.group!==e.group)return!1;for(var t in this.symbols){var n=this.symbols[t],t=e.symbols[t];if(!t)return!1;if(n.value!==t.value)return!1}return!0},Q.prototype.groupTerms=function(r){r=String(r);var i,s,o,a=[];return this.each(function(e){if(e.group===w){o=e.groupTerms(r);for(var t=0;t<o.length;t++){var n=o[t];n&&(a[t]=n)}}else i=H.Utils.decompose_fn(e,r,!0),s=i.x.value===r?Number(i.x.power):0,a[s]=j.add(a[s]||new Q(0),i.a)}),a},Q.prototype.collectFactors=function(){var t=[];return this.group===I?this.each(function(e){t.push(e.clone())}):t.push(this.clone()),t},R.prototype.getNumberSymbolics=function(){var t=0;return this.each(function(e){e.isConstant(!0)||t++}),t},R.prototype.add=function(e){if(!e.equals(0))if(e.equals(-1)&&0<this.length)n=H.Utils.firstObject(this.factors,null,!0),r=j.symfunction(H.Settings.PARENTHESIS,[n.obj]).negate(),delete this.factors[n.key],this.add(r),this.length--;else if(e.group===I){var t=this;e.multiplier.equals(1)||t.add(new Q(e.multiplier)),e.each(function(e){t.add(e)})}else{this.preAdd&&(e=this.preAdd(e));var n=(e=this.pFactor?j.pow(e,new Q(this.pFactor)):e).isConstant();if(n&&e.equals(1))return this;var r=n?e.value:e.text();r in this.factors?(this.factors[r]=j.multiply(this.factors[r],e),this.factors[r].equals(1)&&(delete this.factors[r],this.length--)):(this.factors[r]=e,this.length++)}return this},R.prototype.toSymbol=function(){for(var e=new Q(1),t=Object.values(this.factors).sort(function(e,t){return e.group>t.group}),n=0,r=t.length;n<r;n++)var i=t[n],i=i.power.equals(1)&&""!==i.fname?j.symfunction(H.PARENTHESIS,[i]):i,e=j.multiply(e,i);return e=""===e.fname?Q.unwrapPARENS(e):e},R.prototype.merge=function(e){for(var t in e)t in this.factors?this.factors[t]=j.multiply(this.factors[t],e[t]):this.factors[t]=e[t];return this},R.prototype.each=function(e){for(var t in this.factors){var n=this.factors[t];n.fname===H.PARENTHESIS&&n.isLinear()&&(n=n.args[0]),e.call(this,n,t)}return this},R.prototype.count=function(){return U(this.factors).length},R.prototype.clean=function(){try{var e=H.Settings.CONST_HASH;this.factors[e].lessThan(0)&&(this.factors[e].equals(-1)?delete this.factors[e]:this.factors[e].negate(),this.each(function(e){e.negate()}))}catch(e){if("timeout"===e.message)throw e}},R.prototype.toString=function(){return this.toSymbol().toString()},J.prototype.updateCount=function(){this.count=this.count||0;for(var e=0;e<this.terms.length;e++)this.terms[e].equals(0)||this.count++;return this},J.prototype.getVars=function(){for(var e=[],t=0;t<this.terms.length;t++){var n=this.terms[t];this.getRevMap();n.equals(0)||e.push(this.rev_map[t])}return e.join(" ")},J.prototype.len=function(){return void 0===this.count&&this.updateCount(),this.count},J.prototype.toSymbol=function(e){e=e||this.getRevMap();for(var t=new Q(this.coeff),n=0;n<this.terms.length;n++){var r=e[n],i=this.terms[n];i.equals(0)||r===W||((r=new Q(r)).power=i,t=j.multiply(t,r))}return t},J.prototype.getRevMap=function(){if(this.rev_map)return this.rev_map;var e,t={};for(e in this.map)t[this.map[e]]=e;return this.rev_map=t},J.prototype.generateImage=function(){return this.image=this.terms.join(" "),this},J.prototype.getImg=function(){return this.image||this.generateImage(),this.image},J.prototype.fill=function(){for(var e=this.map.length,t=0;t<e;t++)void 0===this.terms[t]?this.terms[t]=new H.Frac(0):this.sum=this.sum.add(this.terms[t]);return this},J.prototype.divide=function(e){for(var t=this.coeff.divide(e.coeff),n=this.terms.length,r=new J(t,[],this.map),i=0;i<n;i++)r.terms[i]=this.terms[i].subtract(e.terms[i]),r.sum=r.sum.add(r.terms[i]);return r},J.prototype.multiply=function(e){for(var t=this.coeff.multiply(e.coeff),n=this.terms.length,r=new J(t,[],this.map),i=0;i<n;i++)r.terms[i]=this.terms[i].add(e.terms[i]),r.sum=r.sum.add(r.terms[i]);return r},J.prototype.isZero=function(){return this.coeff.equals(0)},J.prototype.toString=function(){return"{ coeff: "+this.coeff.toString()+", terms: ["+this.terms.join(",")+"]: sum: "+this.sum.toString()+", count: "+this.count+"}"},H.Utils.toMapObj=function(e){for(var t=0,n={},r=0;r<e.length;r++){var i=e[r];void 0===n[i]&&(n[i]=t,t++)}return n.length=t,n},H.Utils.filledArray=function(e,t,n){for(var r=[];t--;)r[t]=n?new n(e):e;return r},H.Utils.arrSum=function(e){for(var t=0,n=e.length,r=0;r<n;r++)t+=e[r];return t},H.Utils.haveIntersection=function(e,t){var n;return t.length>e.length&&(n=t,t=e,e=n),e.some(function(e){return-1<t.indexOf(e)})},H.Utils.subFunctions=function(e,i){i=i||{};var s=[],o=new Set(z(e));return e.each(function(t){if(t.group===C||t.previousGroup===C){var n=H.Utils.text(t,"hash"),e=i[n];if(e)s.push(t.altVar(e));else{let e=0;do{var r=t.fname+U(i).length+(0<e?String(e):"")}while(e++,o.has(r));i[n]=r,s.push(t.altVar(r))}}else t.group===I||t.group===w||t.group===Z?s.push(H.Utils.subFunctions(t,i)):s.push(t.text())}),e.group===Z||e.group===w?e.altVar(H.Utils.inBrackets(s.join("+"))):e.group===I?e.altVar(H.Utils.inBrackets(s.join("*"))):e.text()},H.Utils.getFunctionsSubs=function(e){var t,n={};for(t in e)n[e[t]]=j.parse(t);return n};var T=H.Algebra={version:"1.4.6",proots:function(e,l){l=l||7;function t(e,t,n){for(var r=function(e,t){var n=e.slice(0);if(e.unshift(t),100<t)throw new H.exceptions.ValueLimitExceededError("This utility accepts polynomials of degree up to 100. ");var r=[],e={};for(e.Degree=t,c=0;c<t;c++)r.push(0);var i=r.slice(0);function f0(e,t,n,r,i,s){i[0]=s.b=r[0],i[1]=s.a=-(t*s.b)+r[1];for(var o=2;o<e;o++)i[o]=-(t*s.a+n*s.b)+r[o],s.b=s.a,s.a=i[o]}function h0(e,t,n,r,i,s,o,a,u){var l=new Object,c=3;return l.b=l.a=0,f0(t,o,a,s,u,l),i.c=l.a,i.d=l.b,Math.abs(i.c)<=100*e*Math.abs(s[t-1])&&Math.abs(i.d)<=100*e*Math.abs(s[t-2])||(i.h=a*r,Math.abs(i.d)>=Math.abs(i.c)?(c=2,i.e=n/i.d,i.f=i.c/i.d,i.g=o*r,i.a3=i.e*(i.g+n)+i.h*(r/i.d),i.a1=-n+i.f*r,i.a7=i.h+(i.f+o)*n):(c=1,i.e=n/i.c,i.f=i.d/i.c,i.g=i.e*o,i.a3=i.e*n+(i.g+i.h/i.c)*r,i.a1=-(n*(i.d/i.c))+r,i.a7=i.g*i.d+i.h*i.f+n)),c}function m0(e,t,n,r,i,s,o,a,u){if(3==n){o[1]=o[0]=0;for(var l=2;l<t;l++)o[l]=a[l-2]}else if(n=1==n?i:r,Math.abs(s.a1)>10*e*Math.abs(n)){s.a7/=s.a1,s.a3/=s.a1,o[0]=u[0],o[1]=-(u[0]*s.a7)+u[1];for(l=2;l<t;l++)o[l]=-(u[l-1]*s.a7)+a[l-2]*s.a3+u[l]}else{o[0]=0,o[1]=-(u[0]*s.a7);for(l=2;l<t;l++)o[l]=-(u[l-1]*s.a7)+a[l-2]*s.a3}}function g0(e,t,n,r,i,s,o,a,u,l,c,p,f,h,m,g,d){var v;t.b=t.a=0,3!=e&&(e=2!=e?(v=n+f*o+p*l,a+(f+h*l)*u):(v=(n+c)*l+p,(l+f)*a+h*u),o=-(m[g-1]/d[g]),0!=(a=-(l=h*(n=-(m[g-2]+o*d[g-1])/d[g])*r-((c=o*s)+(p=o*o*i)))+e+o*v))&&(t.a=-(f*(p+c)+h*(o*r+n*s))/a+f,t.b=h*(1+l/a))}function d0(e,t,n,r){var i,s;(r.sr=r.si=r.lr=r.li=0)==e?r.sr=0!=t?-n/t:r.sr:0==n?r.lr=-t/e:(t=t/2,i=Math.abs(t)<Math.abs(n)?(s=-(s=0<=n?e:-e)+t*(t/Math.abs(n)),Math.sqrt(Math.abs(s))*Math.sqrt(Math.abs(n))):(s=-e/t*(n/t)+1,Math.sqrt(Math.abs(s))*Math.abs(t)),0<=s?(r.lr=(-t+(i=0<=t?-i:i))/e,r.sr=0!=r.lr?n/r.lr/e:r.sr):(r.lr=r.sr=-t/e,r.si=Math.abs(i/e),r.li=-r.si))}function V(e,P,k,F,t,n,r,i,D,s,o,a){var u,l,B,V,G,H,j,X,c,p,f,Z,h,z,$,Q,m,W,g,Y,J,K,d,e0,t0,v=new Object,w=new Object,y=new Array(P),n0=new Array(P),r0=1;for(a.NZ=0,V=B=.25,G=F,X=t,v.b=v.a=0,f0(D,o,t,i,s,v),u=v.a,l=v.b,w.h=w.g=w.f=w.e=w.d=w.c=w.a7=w.a3=w.a1=0,d=h0(e,r,u,l,w,n,o,t,y),Y=0;Y<k;Y++){if(W=1,m0(e,r,d,u,l,w,n,y,s),g0(d=h0(e,r,u,l,w,n,o,t,y),v,u,w.a1,w.a3,w.a7,l,w.c,w.d,w.f,w.g,w.h,o,t,n,r,i),$=v.a,m=Q=v.b,p=0!=n[r-1]?-(i[r]/n[r-1]):0,f=h=1,0!=Y&&3!=d&&(e0=(z=(h=0!=m?Math.abs((m-X)/m):h)<j?h*j:1)<V?1:0,(J=(Z=(f=0!=p?Math.abs((p-G)/p):f)<H?f*H:1)<B?1:0)||e0)){for(g=0;g<r;g++)n0[g]=n[g];for(c=p,K=t0=0;;){if(!W||(W=0,!J)||e0&&!(Z<z)){p0=c0=x=s0=E=M=N=S=i0=q=b=O=T=R=_=l0=L=u0=U=a0=o0=I=C=A=void 0;var b,i0,S,M,N,E,q,s0,x,A=e,C=r,I=a,o0=$,a0=Q,U=s,u0=D,L=v,l0=i,_=y,R=w,T=n,O=new Object,c0=0,p0=0;I.NZ=0,M=o0,E=a0;do{if(O.li=O.lr=O.si=O.sr=0,d0(1,M,E,O),I.szr=O.sr,I.szi=O.si,I.lzr=O.lr,I.lzi=O.li,Math.abs(Math.abs(I.szr)-Math.abs(I.lzr))>.01*Math.abs(I.lzr))break;for(f0(u0,M,E,l0,U,L),q=Math.abs(-(I.szr*L.b)+L.a)+Math.abs(I.szi*L.b),s0=Math.sqrt(Math.abs(E)),b=2*Math.abs(U[0]),N=-(I.szr*L.b),x=1;x<C;x++)b=b*s0+Math.abs(U[x]);if(q<=20*(b=(9*(b=b*s0+Math.abs(N+L.a))+2*Math.abs(N)-7*(Math.abs(L.a+N)+s0*Math.abs(L.b)))*A)){I.NZ=2;break}if(20<++c0)break;if(2<=c0&&S<=.01&&i0<=q&&!p0){for(f0(u0,M-=M*(S=S<A?Math.sqrt(A):Math.sqrt(S)),E+=E*S,l0,U,L),x=0;x<5;x++)m0(A,C,h0(A,C,L.a,L.b,R,T,M,E,_),L.a,L.b,R,T,_,U);p0=1,c0=0}}while(i0=q,m0(A,C,h0(A,C,L.a,L.b,R,T,M,E,_),L.a,L.b,R,T,_,U),g0(h0(A,C,L.a,L.b,R,T,M,E,_),L,L.a,R.a1,R.a3,R.a7,L.b,R.c,R.d,R.f,R.g,R.h,M,E,T,C,l0),N=L.a,0!=(q=L.b)&&(S=Math.abs((-E+q)/q),M=N,E=q),0!=q);if(u=v.a,l=v.b,0<a.NZ)return;if(r0=t0=1,V*=.25,K||!J)r0=0;else for(g=0;g<r;g++)n[g]=n0[g]}if(0!=r0){if(v.a=c,r0=function(e,t,n,r,i,s,o,a,u){var l,c,p,f,h,m,g,d,v,w,y,b=r-1;for(t.NZ=y=v=0,g=n.a;;){for(m=i[0],o[0]=m,w=1;w<s;w++)o[w]=m=m*g+i[w];for(p=Math.abs(m),f=Math.abs(g),l=.5*Math.abs(o[0]),w=1;w<s;w++)l=l*f+Math.abs(o[w]);if(p<=20*e*(2*l-p)){t.NZ=1,t.szr=g,t.szi=0;break}if(10<++y)break;if(2<=y&&Math.abs(d)<=.001*Math.abs(-d+g)&&h<p){v=1,t.a=g;break}for(h=p,u[0]=c=a[0],w=1;w<r;w++)u[w]=c=c*g+a[w];if(Math.abs(c)>10*Math.abs(a[b])*e)for(d=-m/c,a[0]=o[0],w=1;w<r;w++)a[w]=d*u[w-1]+o[w];else for(a[0]=0,w=1;w<r;w++)a[w]=u[w-1];for(c=a[0],w=1;w<r;w++)c=c*g+a[w];g+=d=Math.abs(c)>10*Math.abs(a[b])*e?-m/c:0}return v}(e,a,v,r,i,D,s,n,y),c=v.a,0<a.NZ)return;if(K=1,B*=.25,0!=r0){$=-(c+c),Q=c*c;continue}}for(g=0;g<r;g++)n[g]=n0[g];if(!e0||t0)break}f0(D,o,t,i,s,v),d=h0(e,r,u=v.a,l=v.b,w,n,o,t,y)}X=m,G=p,j=h,H=f}}!function(e,t,n,r){for(var i,s,o,a,u,l,c,p,f,h,m,g,d,v,w=e.Degree,y=.017453292519943295,P=Math.LN2,b=e.Degree+1,S=new Array(b),M=new Array(b),N=new Array(b),E=new Array(b),q=new Object,x=new Object,A=1;i=A,1<(l=1+(A/=2)););var k=Number.MIN_VALUE/i,C=Math.cos(94*y),F=Math.sin(94*y),I=Math.sqrt(.5),U=-I;for(x.NZ=f=0,x.szr=x.szi=x.lzr=x.lzi=0;0==t[w];)n[f]=r[f]=0,w--,f++;for(d=w+1;1<=w;){if(w<=2){w<2?(n[e.Degree-1]=-(t[1]/t[0]),r[e.Degree-1]=0):(d0(t[q.li=q.lr=q.si=q.sr=0],t[1],t[2],q),n[e.Degree-2]=q.sr,r[e.Degree-2]=q.si,n[e.Degree-1]=q.lr,r[e.Degree-1]=q.li);break}for(a=0,u=Number.MAX_VALUE,L=0;L<d;L++)a<(_=Math.abs(t[L]))&&(a=_),0!=_&&_<u&&(u=_);if(((m=k/u)<=1&&10<=a||1<m&&Number.MAX_VALUE/m>=a)&&(m=0==m?Number.MIN_VALUE:m,m=Math.floor(Math.log(m)/P+.5),1!=(o=Math.pow(2,m))))for(L=0;L<d;L++)t[L]*=o;for(var L=0;L<d;L++)M[L]=Math.abs(t[L]);M[w]=-M[w],g=w-1,_=Math.exp((Math.log(-M[w])-Math.log(M[0]))/w),R=_=0!=M[g]?(R=-M[w]/M[g])<_?R:_:_;do{for(var _,R=.1*(_=R),T=M[0],L=1;L<d;L++)T=T*R+M[L]}while(0<T);0;do{for(var O=T=M[0],L=1;L<w;L++)O=_*O+(T=_*T+M[L])}while(_-=s=(T=_*T+M[w])/O,.005<Math.abs(s/_));for(var D=_,L=1;L<w;L++)S[L]=(w-L)*t[L]/w;for(S[0]=t[0],A=t[w],l=t[g],v=0==S[g]?1:0,h=0;h<5;h++)if(c=S[g],v){for(L=0;L<g;L++)S[f=g-L]=S[f-1];v=(S[0]=0)==S[g]?1:0}else{for(var B=-A/c,L=0;L<g;L++)S[f=g-L]=B*S[f-1]+t[f];S[0]=t[0],v=Math.abs(S[g])<=Math.abs(l)*i*10?1:0}for(L=0;L<w;L++)E[L]=S[L];for(h=1;h<=20;h++){if(p=-F*U+C*I,U=F*I+C*U,V(i,b,20*h,p=D*(I=p),D,S,w,t,d,N,-2*p,x),0!=x.NZ){n[f=e.Degree-w]=x.szr,r[f]=x.szi;for(w=(d-=x.NZ)-1,L=0;L<d;L++)t[L]=N[L];1!=x.NZ&&(n[f+1]=x.lzr,r[f+1]=x.lzi);break}for(L=0;L<w;L++)S[L]=E[L]}if(20<h){e.Degree-=w;break}}}(e,n,i,r);var s=r.length;for(c=0;c<s;c++){var o=y(r[c],l+8),a=y(i[c],l+8),u=(a=2<l-String(a).length?a:i[c],o<0?"-":""),u=(0===a&&(a=""),0===o&&(o=""),o=1===Math.abs(o)?u+"i":o?o+"*i":"",a&&o?a+"+"+o:a+o);i[c]=u.replace(/\+\-/g,"-")}return i}(e,n).concat(s),i=0;i<0;i++)r.unshift(0);return r}var s=[];if(e instanceof Q&&e.isPoly()){if(e.distributeMultiplier(),e.group===w&&(n=H.Utils.arrayMin(U(e.symbols)),n=e.symbols[n].clone().toUnitMultiplier(),e=j.expand(j.divide(e,n)),s.push(0)),e.group===H.groups.S)return[0];e.group===H.groups.PL&&(o=U(e.symbols),n=H.Utils.arrayMin(o),e=H.PARSER.divide(e,H.PARSER.parse(e.value+"^"+n)));for(var n=U(e.symbols).sort().pop(),r=e.group===H.groups.PL?e.symbols:e.symbols[n],i=r.group,o=i===X?[r.power.toDecimal()]:U(r.symbols),a=[],u=H.Utils.arrayMax(o),c=1;c<=u;c++){var p=0;-1!==o.indexOf(c+"")&&(p=(i===X?r:r.symbols[c]).multiplier),a.unshift(p)}return a.push(e.symbols[W].multiplier),r.group===X&&(a[0]=r.multiplier),t(a,0,u)}if(H.Utils.isArray(e)){for(var f=e,a=[],o=[],h=0,c=0;c<f.length;c++){for(var m=f[c][0],g=f[c][1],d=g-h-1,v=0;v<d;v++)a.unshift(0);a.unshift(m),0!==g&&o.push(g),h=g}return t(a,0,u=Math.max.apply(void 0,o))}throw new H.exceptions.NerdamerTypeError("Cannot calculate roots. Symbol must be a polynomial!")},roots:function(e){return e.isConstant(!0,!0)?H.Utils.nroots(e):(e=T.proots(e).map(function(e){return j.parse(e)}),H.Vector.fromArray(e))},froot:function(e,t,n){for(var r=Number(t),i=n||H.Utils.build(H.Calculus.diff(e.clone())),s=e instanceof Function?e:H.Utils.build(e),o=!1,a=0;!o;){var u=r-s(r)/i(r),l=Math.abs(u)-Math.abs(r);r=u,Math.abs(l)<1e-12?o=!0:1e4<a&&(o=!(r=null)),a++}return r},quad:function(e,t,n){function r(e,t,n,r){return j.parse("-("+t+"+"+r+"*sqrt(("+t+")^2-4*("+e+")*("+n+")))/(2*"+e+")")}return[r(e,t,n,1),r(e,t,n,-1)]},sumProd:function(e,t){return T.quad(-t,e,-1).map(function(e){return e.invert()})},coeffs:function(e,t,n){t=String(t),e=j.expand(e),n=n||[new Q(0)],e.group===p&&e.contains(t,!0)&&j.error("Unable to get coefficients using expression "+e.toString());var r,i=z(e);if(1!==i.length||i[0]!==t||e.isImaginary())t||j.error("Polynomial contains more than one variable. Please specify which variable is to be used!"),-1===i.indexOf(t)?n[0]=j.add(e,n[0]):(n=n||[new Q(0)],e.group===I?((i=e.symbols[t])||j.error("Expression is not a polynomial!"),r=Number(i.power),((l=j.divide(e.clone(),i.clone())).contains(t,!0)||r<0||!_(r))&&j.error("Expression is not a polynomial!"),(u=n[r])&&(l=j.add(u,l)),n[r]=l):e.group===Z&&e.each(function(e){T.coeffs(e.clone(),t,n)},!0));else for(var s=new Y(e).coeffs.map(function(e){return new Q(e)}),o=0,a=s.length;o<a;o++){var u,l=s[o];(u=n[o])&&(l=j.add(u,l)),n[o]=l}for(o=0,a=n.length;o<a;o++)void 0===n[o]&&(n[o]=new Q(0));return n},polyPowers:function(e,t,n){if(n=n||[],(i=e.group)===w&&t===e.value)n=n.concat(U(e.symbols));else if(i===Z)for(var r in e.symbols){var r=e.symbols[r],i=r.group,s=r.value;i===X&&t===s?n.push(r.power):i===w||i===Z?n=T.polyPowers(r,t,n):i===I&&r.contains(t)?(r=r.symbols[t])&&n.push(r.power):i!==h&&t===s||n.push(0)}else i===I&&e.contains(t)&&n.push(H.Utils.decompose_fn(e,t,!0).x.power);return H.Utils.arrayUnique(n).sort()},Factor:{split:function(e){var n=new Q(1),r=new Q(1);return T.Factor.factorInner(e,new R).each(function(e){var t=j.parse(e);e.isConstant(!0)?n=j.multiply(n,t):r=j.multiply(r,t)}),[n,r]},mix:function(e,t){for(var n=U(e),r=n.length,i=[],s=0;s<r;s++){for(var o=n[s],a=e[o],u=i.length,l=0;l<u;l++){var c=i[l]*o;i.push(c),t&&i.push(-c)}for(l=1;l<=a;l++)i.push(Math.pow(o,l))}return i},common:function(e,t){try{if(e.group===Z){for(var n=j.expand(e.clone(),!0).collectSymbols(null,null,function(e,t){return(t.length||1)-(e.length||1)}),r={},i=[],s=0;s<n.length;s++){var o=n[s];i.push(o.multiplier.clone()),o.each(function(e){var t=Number(e.power);if(isNaN(t))throw new Error("exiting");e.value in r?(t<r[e.value][0]&&(r[e.value][0]=t),r[e.value][1].push(e)):r[e.value]=[t,[e]]})}var a,u=new Q(1);for(a in r)r[a][1].length===n.length&&(u=j.multiply(u,j.pow(new Q(a),new Q(r[a][0]))));var l=H.Math2.QGCD.apply(null,i);if(!l.equals(1)){t.add(new Q(l));for(s=0;s<n.length;s++)n[s].multiplier=n[s].multiplier.divide(l)}if(!u.equals(1)){t.add(u),e=new Q(0);for(s=0;s<n.length;s++)e=j.add(e,j.divide(n[s],u.clone()))}}}catch(e){if("timeout"===e.message)throw e}return e},zeroes:function(e,t){try{i=(e=j.expand(e.clone())).toString(),n=z(e),r=new Q(0);for(var n,r,i,s,o,a,u,l=[],c=[],p=0,f=n.length;p<n.length;p++){for(var h={},m=0;m<f;m++)p!==m&&(h[n[m]]=0);var g,d=(g=j.parse(i,h)).power;if(!_(d))throw new H.exceptions.ValueLimitExceededError("Exiting");l.push(g),c.push(g.power)}if(u=H.Utils.allSame(c)?(s=e.length,o=l.length,a=Math.round((Math.sqrt(8*s-1)-3)/2),2===o?new $(c[0]/(s-1)):3===o&&0!==a?new $(c[0]/a):H.Math2.QGCD.apply(null,c)):H.Math2.QGCD.apply(null,c),!_(u))return e;for(p=0;p<l.length;p++){var v=l[p],w=v.power.clone().divide(u);if((v.multiplier.num<0||v.multiplier.den<0)&&w%2==0)return e;v.multiplier=new $(Math.pow(v.multiplier,1/w)),v.power=u.clone(),r=j.add(r,v)}if(r.group!==Z)return e;for(;;){var y=T.div(e.clone(),r.clone());if(!y[1].equals(0))break;if(e=y[0],t.add(r.clone()),e.equals(1))break}}catch(i){if("timeout"===i.message)throw i}return e},factor:function(t,n){H.Utils.checkTimeout();var r=n?[...n]:null;try{let e=T.Factor.factorInner(t,n);return e=e.pushMinus()}catch(e){if("timeout"===e.message)throw e;return n&&n.splice(0,n.length,...r),t}},factorInner:function(e,t){var n,r,i;return H.Utils.checkTimeout(),e.isConstant()&&e.isInteger()?H.Math2.factor(e):(i=j.parse(e)).isConstant()?i.isInteger()?H.Math2.factor(i):e:i.equals(0)||i.equals(1)?i:((i=T.Factor._factor(i,t)).equals(e)||i.equals(0)||i.equals(1)||i.group===I&&(n=new Q(1),t=j.parse(i.power),r=j.parse(i.multiplier),i.toUnitMultiplier(),i.multiplier.lessThan(0)&&(n.negate(),i.negate()),i.each(function(e){e=j.parse(T.Factor._factor(e));if(r=j.multiply(r,Q.create(e.multiplier)),e.toUnitMultiplier(),e.group===I){let t=new Q(1);e.each(function(e){e=j.parse(T.Factor._factor(e));e.group===I&&(r=j.multiply(r,Q.create(e.multiplier)),e.toUnitMultiplier()),t=j.multiply(t,e)}),t=j.pow(t,new Q(e.power)),n=j.multiply(n,t)}else n=j.multiply(n,e)}),e=j.pow(n,t),i=j.multiply(r,e)),i)},quadFactor:function(e,t){if(e.isPoly()&&T.degree(e.equals(2))){var n=H.Utils.variables(e)[0],r=T.coeffs(e,n);if(r.length<3)return e;if((i=T.Factor._factor(r[2].clone())).group===I){var i=i.collectSymbols();if(2<i.length)return e;var s=j.multiply(j.parse(r[0]),j.parse(i[0])),o=j.parse(r[1]).negate(),a=j.parse(i[1]),a=T.quad(a,o,s).filter(function(e){if(H.Utils.isInt(e))return e});1===a.length&&(o=a[0],s=j.divide(r[0],j.parse(o)),H.Utils.isInt(s))&&(t.add(j.parse(u("({0})*({1})+({2})",i[1],n,s))),t.add(j.parse(u("({0})*({1})+({2})",i[0],n,o))),e=new Q(1))}}return e},cubeFactor:function(e,t){var n,r,i,s,o,a;return e.isComposite()&&2===(i=e.collectSymbols()).length&&(n=i[0].sign(),o=i[0].clone().abs(),r=i[1].sign(),i=i[1].clone().abs(),o.isCube())&&i.isCube()&&(n<r&&([n,r]=[r,n],[o,i]=[i,o]),a=j.parse(o.getNth(3)),s=j.parse(i.getNth(3)),o=j.multiply(j.expand(j.pow(o.clone().toUnitMultiplier(),j.parse("1/3"))),a),a=j.multiply(j.expand(j.pow(i.clone().toUnitMultiplier(),j.parse("1/3"))),s),1===n&&-1===r?(t.add(j.parse(u("(({0})-({1}))",o,a))),t.add(j.parse(u("(({0})^2+({0})*({1})+({1})^2)",o,a))),e=Q(1)):1===n&&1===r&&(t.add(j.parse(u("(({0})+({1}))",o,a))),t.add(j.parse(u("(({0})^2-({0})*({1})+({1})^2)",o,a))),e=Q(1))),e},_factor:function(e,t){H.Utils.checkTimeout();var n;e.group;if(e.group===C){var r=e.args[0];if(r.group===X&&r.isSimple())return e}else if(e.group===X&&e.isSimple())return e;e.group===Z&&(e.distributeMultiplier(!0),n=new Q(0),e.each(function(e){(e.group===Z&&e.power.greaterThan(1)||e.group===I)&&(e=j.expand(e)),n=j.add(n,e)}),n.power=e.power,e=n);var i,s,o,a,u,l,c,p,r=(e=e.group===C&&"sqrt"!==e.fname?H.Utils.evaluate(e):e).clone();try{if(e.group===I)return f=j.parse(e.power),i=T.Simplify.strip(e.getDenom()),s=T.Simplify.strip(e.getNum()),o=i.pop(),(a=s.pop()).equals(e)?e:(u=T.Factor.factorInner(a),l=T.Factor.factorInner(o),c=T.Simplify.unstrip(s,u),p=T.Simplify.unstrip(i,l),A=j.divide(c,p));if(e.group===X)return e;if(e.isConstant())return e.equals(1)||e.equals(0)||!e.isInteger()?e.clone():H.Math2.factor(e);var f=e.power.clone();if(!_(f)||f.lessThan(0)&&e.group===C)return e;var h=f.sign(),m=(e.toLinear(),t=t||new R,{}),g=(e=j.parse(H.Utils.subFunctions(e,m)),0<U(m).length&&(t.preAdd=function(e){return j.parse(e,H.Utils.getFunctionsSubs(m))}),e.isLinear()||(t.pFactor=e.power.toString(),e.toLinear()),z(e)),d=(e.isImaginary()&&g.push(H.Settings.IMAGINARY),1<g.length);if(d){var v=!0,w=!0;if(e.each(function(e){e.group!==X&&(v=!1),e.multiplier.equals(1)||(w=!1)}),v&&w)return j.pow(j.parse(e,H.Utils.getFunctionsSubs(m)),j.parse(f))}var y=new R,b=(e=T.Factor.coeffFactor(e,y),y.each(function(e){L(f)&&e.lessThan(0)&&e.negate(),h<0&&e.invert(),t.add(e)}),new R);if(e=T.Factor.powerFactor(e,b),b.each(function(e){h<0&&e.invert(),t.add(e)}),d)e=T.Factor.cubeFactor(e,t),e=T.Factor.mfactor(e,t),t.each(function(e){h<0&&e.power.negate()});else{var S,M=g[0],N=(e=T.Factor.squareFree(e,t,M),new R),E=(e=T.Factor.trialAndError(e,N,M),N.toSymbol());if(E.equals(r))return E;for(S in N.factors){var q=N.factors[S];t.add(j.pow(q,j.parse(f)))}e.equals(r)&&(e=T.Factor.quadFactor(e,t))}e=j.parse(e,H.Utils.getFunctionsSubs(m));var x=1===t.length,A=(t.add(j.pow(e,j.parse(f))),t.toSymbol());return A=x&&e.equals(1)&&A.isLinear()?j.pow(A,j.parse(f)):A}catch(e){if("timeout"===e?.message)throw e;return r}},reduce:function(e,t){if(e.group===Z&&2===e.length){var n=e.collectSymbols().sort(function(e,t){return t.multiplier-e.multiplier});if(n[0].power.equals(n[1].power)){for(var r=j.parse(n[0].power),i=n[0].clone().toLinear(),s=n[1].clone().toLinear(),o=(t.add(j.add(i.clone(),s.clone())),s.negate(),Number(r)),a=new Q(0),u=1;u<=o;u++)var l=j.pow(i.clone(),j.subtract(r.clone(),new Q(u))),c=j.pow(s.clone(),j.subtract(new Q(u),new Q(1))),a=j.add(a,j.multiply(l,c));return a}}return e},squareFree:function(e,t,n){var r,i;return!e.isConstant()&&e.group!==X&&e.isPoly()&&1!==(r=(n=new Y(e,n).squareFree())[2])?((i=n[1].toSymbol()).power=i.power.multiply(new $(r)),t.add(T.Factor.factorInner(i)),T.Factor.squareFree(n[0].toSymbol(),t)):e},powerFactor:function(e,t){var n,r,i;return e.group===w&&e.previousGroup!==p&&(n=U(e.symbols),H.Utils.allNumeric(n))?(n=H.Utils.arrayMin(n),r=new Q(0),i=j.parse(e.value+"^"+n),e.each(function(e){e=j.divide(e,i.clone()),r=j.add(r,e)}),t.add(i),r):e},coeffFactor:function(e,t){var n,r,i,s;return e.isComposite()&&((n=H.Math2.QGCD.apply(null,e.coeffs())).equals(1)?((r=function(e){var t;return e.group===I?(t=0,e.each(function(e){t+=e.power})):t=Number(e.power),t})(s=(i=e.collectSymbols(null,null,null,!0).sort(function(e,t){return e.isConstant(!0)?1:t.power-e.power}))[0])>r(i[1])||i[1].isConstant(!0))&&s.multiplier.lessThan(0)&&(t.add(new Q(-1)),e.each(function(e){e.negate()},!0)):(e.each(function(e){e.isComposite()?e.each(function(e){e.multiplier=e.multiplier.divide(n)}):e.multiplier=e.multiplier.divide(n)}),e.updateHash()),t)&&t.add(new Q(n)),e},trialAndError:function(e,t,n){var r=e.clone();try{var i=[];if(e.isConstant()||e.group===X||!e.isPoly())return e;for(var s=new Y(e,n),o=s.coeffs[0],a=H.Math2.ifactor(o),u=T.proots(e),l=0;l<u.length;l++){var c=u[l],p=1;if(!isNaN(c)){for(var f in a){var h=H.Utils.round(Math.log(f)/Math.log(Math.abs(c)),8);if(_(h)){c=f,p=h;break}}var m=new $(c),g=[new $(m.num).negate()],d=(g[p]=new $(m.den),Y.fromArray(g,s.variable).fill()),v=s.divide(d);v[1].equalsNumber(0)&&(s=v[0],i.push(d.toSymbol()))}}return s.equalsNumber(1)||(s=T.Factor.search(s,t)),i.forEach(function(e){t.add(e)}),s.toSymbol()}catch(e){if("timeout"===e.message)throw e;return r}},search:function(i,s,o){o=o||10;function e(e,t,n,r){if((e=Y.fit(e,t,n,o,r,a))&&1<e.coeffs.length){t=i.divide(e);if(t[1].equalsNumber(0))return s.add(e.toSymbol()),[t[0],e]}return null}var a=i.variable,t=i.coeffs[0],n=H.Math2.ifactor(t),r=i.lc(),u=H.Math2.ifactor(r),l=i.sub(o),c=H.Math2.ifactor(l),p=T.Factor.mix(c,l<0),f=Math.ceil(i.coeffs.length/2),h=r.lessThan(0),m=t.lessThan(0);for(n[u[1]=1]=1;f--;)for(var g in u)for(var d in n)for(var v=0;v<p.length;v++){var w=e(g,d,p[v],f);if(w)return i=w[0],i=H.Utils.isPrime(i.sub(o))?i:T.Factor.search(i,s);h&&m?w=e(-g,-d,p[v],f):h?w=e(-g,d,p[v],f):m&&(w=e(g,-d,p[v],f))}return i},mSqfrFactor:function(e,t){if(e.group!==C)for(var n=z(e).reverse(),r=0;r<n.length;r++){var i=!1;do{if(n[r]===e.value)t.add(e),e=new Q(1);else{var s=H.Calculus.diff(e,n[r]),o=T.Factor.coeffFactor(s);if(o.equals(0))break;if(o.equals(1)||o.equals(-1))break;var a=!0;if(o.isConstant()&&e.isComposite()&&e.each(function(e){e.multiplier%o!=0&&(a=!1)},!0),a){var s=e.clone(),u=T.divWithCheck(e,o.clone()),i=u[1].equals(0);if(e.equals(u[0])&&u[1].equals(0)){e=s;break}if(u[0].isConstant()){t.add(u[0]);break}}else i=!1;i&&(t.add(u[0]),e=o)}}while(i)}return e},sqdiff:function(e,t){if(!e.isConstant("all"))try{var n=function(e){return H.Utils.block("POSITIVE_MULTIPLIERS",function(){return Q.unwrapPARENS(m.sqrt(m.abs(e)))},!0)},r=H.Utils.separate(e.clone());if(!r)return e;var i,s,o,a,u,l=[];for(i in r)"constants"!==i&&l.push(r[i]);if(l.sort(function(e,t){return t.power-e.power}),2===l.length){if(u=l.pop(),s=l.pop(),L(u.power)&&L(s.power)&&u.sign()===s.sign()&&u.group===X&&s.group===X)throw new Error("Unable to factor");u.isComposite()&&s.power.equals(2)&&u.sign()!==s.sign()?(s=n(s),(o=T.Factor.factorInner(j.add(u,r.constants))).power.equals(2)&&(o.toLinear(),t.add(j.subtract(o.clone(),s.clone())),t.add(j.add(o,s)),e=new Q(1))):(u=u.powSimp(),s=s.powSimp(),u.group!==X&&""!==u.fname||!u.power.equals(2)||s.group!==X&&""!==s.fname||!s.power.equals(2)||r.constants||(u.multiplier.lessThan(0)&&(a=s,s=u,u=a),u.multiplier.greaterThan(0)&&(u=n(u),s=n(s)),t.add(j.subtract(u.clone(),s.clone())),t.add(j.add(u,s)),e=new Q(1)))}}catch(e){if("timeout"===e.message)throw e}return e},mfactor:function(t,e){if(t.group===C){var n,r;"sqrt"===t.fname?(n=new R,r=T.Factor.common(t.args[0].clone(),n),r=T.Factor.coeffFactor(r,null),t=j.multiply(j.symfunction("sqrt",[r]),j.parse(t.multiplier)),n.each(function(e){t=j.multiply(t,j.parse(H.Utils.format("sqrt({0})",e)))})):(e.add(t),t=new Q(1))}else{t=T.Factor.mSqfrFactor(t,e);for(var i,s=z(t),o=t.collectSymbols().map(function(e){return Q.unwrapSQRT(e)}),a={},u={},l=s.length,c=o.length,p=0;p<l;p++){var f=s[p];a[f]=new Q(0);for(var h=0;h<c;h++){var m,g=o[h];g.contains(f)&&(m=(g.value===f?g:g.symbols[f]).power.toDecimal(),(!u[f]||m<u[f])&&(u[f]=m),a[f]=j.add(a[f],g.clone()))}}for(i in a){var d=j.parse(i+"^"+u[i]),v=j.divide(a[i],d),v=j.expand(v);if(v.equals(1)||v.equals(-1))break;var w=T.div(t.clone(),v);if(w[0].equals(0))break;if(w[1].equals(0)){var y=!1;if(w[0].each(function(e){_(e.multiplier)||(y=!0)}),y){w[1]=j.expand(j.multiply(w[1],v));break}}v=_(v)&&v.lessThan(0);if(w[1].equals(0)&&!v){v=T.divWithCheck(t.clone(),w[0].clone()),d=v[0];if(!d.equals(0)&&(t=v[1],!d.equals(-1)||t.equals(0))){v=w[0];if(t.equals(v))return w=T.Factor.reduce(v,e),t.equals(w)?w:T.Factor.mfactor(w,e);if(e.add(v),t.equals(0))return d;if(d.isConstant("all"))return e.add(d),d;t=T.Factor.mfactor(d,e)}return t}}}return t=T.Factor.sqdiff(t,e),t=T.Factor.zeroes(t,e)}},allLinear:function(e){for(var t=e.length,n=0;n<t;n++)if(!T.isLinear(e[n]))return!1;return!0},isLinear:function(e){var t=!1,n=e.group;if(n===w||n===Z)for(var r in t=!0,e.symbols){var r=e.symbols[r],i=r.group;if(i!==C&&i!==p||(t=!1),i===I)t=1===z(r).length;else if(i===w||i===Z)t=T.isLinear(r);else if(r.group!==h&&"1"!==r.power.toString()){t=!1;break}}else n===X&&1===e.power&&(t=!0);return t},gcd:function(){var e=1===arguments.length&&arguments[0]instanceof H.Vector?arguments[0].elements:H.Utils.arguments2Array(arguments);if(0===e.length)return new Q(1);if(1===e.length)return e[0];for(var t=[],n=!1,r=0;r<e.length;r++)if(e[r].group===C&&"gcd"===e[r].fname)(e=e.concat(arguments[r].args)).splice(r,1);else{var i=z(e[r]);if(H.Utils.haveIntersection(i,t)){n=!0;break}t=t.concat(i)}if(n||0===t.length){if(e.every(function(e){return e.getDenom().equals(1)})){for(var s=e[0],r=1;r<e.length;r++)s=T.gcd_(e[r],s);return s}return j.divide(T.gcd.apply(null,e.map(function(e){return e.getNum()})),T.lcm.apply(null,e.map(function(e){return e.getDenom()})))}return j.symfunction("gcd",e)},gcd_:function(e,t){if(e.group!==C&&e.group!==c||(e=H.Utils.block("PARSE2NUMBER",function(){return j.parse(e)})),t.group===C&&(t=H.Utils.block("PARSE2NUMBER",function(){return j.parse(t)})),e.isConstant()&&t.isConstant())return new Q(H.Math2.QGCD(new $(+e),new $(+t)));var n,r=j.multiply(e.getDenom()||new Q(1),t.getDenom()||new Q(1)).invert();if(e=j.multiply(e.clone(),r.clone()),t=j.multiply(t.clone(),r.clone()),e=j.expand(e),t=j.expand(t),e.group===I||t.group===I){var i=j.divide(e.clone(),t.clone());if(!(u=j.multiply(t.clone(),i.getDenom().invert())).equals(1))return u}if(e.group===p||t.group===p)return i=new Q(H.Math2.GCD(e.multiplier,t.multiplier)),s=T.gcd_(e.value===W?new Q(1):j.parse(e.value),t.value===W?new Q(1):j.parse(t.value)),n=T.gcd_(j.parse(e.power),j.parse(t.power)),j.multiply(i,j.pow(s,n));e.length<t.length&&(u=e,e=t,t=u);var i=z(e),s=z(t);if(i.length===s.length&&1===i.length&&i[0]===s[0]||1===i.length&&0===s.length||0===i.length&&1===s.length)return e=new Y(e),t=new Y(t),j.divide(e.gcd(t).toSymbol(),r);var o,a=[];for(e.each(function(e){a.push(e.multiplier)}),t.each(function(e){a.push(e.multiplier)});!t.equals(0);){var u=t.clone();if(e=e.clone(),o=T.div(e,u),t=o[1],o[0].equals(0))return j.divide(new Q(H.Math2.QGCD(e.multiplier,t.multiplier)),r);e=u}var l=H.Math2.QGCD.apply(void 0,a);return l.equals(1)||e.each(function(e){e.multiplier=e.multiplier.divide(l)}),!e.equals(1)||e.isConstant()||t.isConstant()?j.divide(e,r):j.divide(j.symfunction("gcd",arguments),r)},lcm:function(){1===arguments.length?arguments[0]instanceof H.Vector?n=arguments[0].elements:j.error("lcm expects either 1 vector or 2 or more arguments"):n=H.Utils.arguments2Array(arguments);var e=n.reduce(function(e,t){return j.multiply(e,t.clone())},new Q(1)),t=function(e,t){t=Number(t);for(var n,r,i=[],s=Math.pow(2,e.length),o=t;o<s;o++){for(n=[],r=e.length-1;0!=(o&1<<r)&&n.push(e[r]),r--;);n.length===t&&i.push(n)}return i}(arguments,arguments.length-1).map(function(e){return e.reduce(function(e,t){return j.multiply(e,t.clone())},new Q(1))}),n=n.every(function(e){return H.Utils.isVariableSymbol(e)})?j.symfunction("gcd",H.Utils.arrayUnique(t)):T.gcd.apply(null,t);return j.divide(e,n)},divide:function(e,t){var n=H.Algebra.Factor.factorInner(e.clone()),r=n.getDenom();return r.isConstant("all")?r=new Q(1):e=j.expand(Q.unwrapPARENS(j.multiply(n,r.clone()))),n=T.div(e,t),e=j.divide(n[1],t),j.divide(j.add(n[0],e),r)},divWithCheck:function(e,t){var n=[new Q(0),e.clone()],r=T.div(e,t),e=e.clone(),t=j.multiply(r[0].clone(),t.clone()),t=j.add(t,r[1].clone()),e=j.subtract(e,t);return(e=j.expand(e)).equals(0)?r:n},div:function(e,t){var n,r,i,P=[new Q(0),e.clone()];try{if(t.isConstant("all"))return e.each(function(e){e.multiplier=e.multiplier.divide(t.multiplier)}),[e,new Q(0)];if(e=j.expand(e),t=j.expand(t),e.group===X&&t.group===Z){var s,k=e.value,o=H.Utils.decompose_fn(t.clone(),k,!0);if(e.isLinear()&&o.x&&o.x.isLinear()&&t.isLinear())return s=Q.create(e.multiplier),[j.divide(s.clone(),o.a.clone()),j.divide(j.multiply(s,o.b),o.a).negate()]}if(e.group===X&&t.group===X)return(n=j.divide(e.clone(),t.clone())).isConstant()?[n,new Q(0)]:[new Q(0),e.clone()];var a,u,F=e.hasFunc(),D=t.hasFunc(),l=!1,c=((F||D)&&(l=!0,a={},e=j.parse(H.Utils.subFunctions(e,a)),t=j.parse(H.Utils.subFunctions(t,a)),u=H.Utils.getFunctionsSubs(a)),H.Utils.arrayUnique(z(e).concat(z(t))));if((e.isImaginary()||t.isImaginary())&&c.push(H.Settings.IMAGINARY),1===c.length)var p=(_=new Y(e).divide(new Y(t)))[0].toSymbol(),f=_[1].toSymbol();else{c.push(W);var h=function(e){for(var t=new Q(0),n=0;n<e.length;n++)var r=e[n].toSymbol(),t=j.add(t,r);return t},b=function(e,t){var n,r=Math.max.apply(null,e.terms),i=0;if(!t)for(var s=0;s<e.terms.length;s++)if(e.terms[s].equals(r)&&(n=s,i++),1<i)return;if(t)for(s=0;s<e.terms.length;s++)if(e.terms[s].equals(r)){n=s;break}return[r,n,e]},S=function(e,t){var n=e[t=t||0],r=e.length;if(n){for(var i,s=b(n),o=t+1;o<r;o++){var a=e[o],u=n.sum.equals(a.sum);if(!u&&s)break;if(u){for(var l,c,p,f,h=n.terms.length,m=0;m<h;m++){var g=n.terms[m],d=a.terms[m];void 0!==l&&!g.greaterThan(l)||(l=g,p=m),void 0!==c&&!d.greaterThan(c)||(c=d,f=m)}var u=l.subtract(a.terms[p]),v=c.subtract(n.terms[f]);if(u<v){s=[c,f,a];break}if(v<u){s=[l,p,n];break}}else if(s=b(a))break;s=b(a)}if(!s)return b(e[0],!0);for(o=0;o<M.length;o++){var w,y=M[o].terms;if((w=s[1])===y.length-1)return;if(!(i=y[w]).equals(0))break}return i.equals(0)?S(e,++t):s}},m=H.Utils.toMapObj(c),g=function(e,t){return t.sum.subtract(e.sum)},d=function(e,t){if(!e||!t)return!1;for(var n=0;n<e.terms.length;n++)if(e.terms[n].lessThan(t.terms[n]))return!1;return!0},v=e.tBase(m).sort(g),M=t.tBase(m).sort(g),B=d(v[0],M[0])&&v[0].count>M[0].count?M:v,w=S(B),y=[];if(w){var N=w[1],E=function(e,t){var n=e.len(),r=t.len(),t=t.terms[N],e=e.terms[N];return n<r&&t.greaterThan(e)?r-n:t.subtract(e)},N=function(e,t){for(var n=[],r=0;r<e.length;r++)for(var i=e[r],s=0;s<i.terms.length;s++){var o=n[s],a=i.terms[s];0===r?n[s]=a:o&&!o.equals(a)&&(n[s]=void 0)}for(r=0;r<n.length;r++)if((i=n[r])&&!i.equals(0))return r;return t}(v,N),q=(v.sort(E),M.sort(E),M[0]),x=v[0],A=new J(new $(1),[],x.map);if(q.sum.greaterThan(x.sum)&&1<x.len())for(var C=0;C<x.terms.length;C++){var I=q.terms[C].subtract(x.terms[C]);if(I.equals(0))A.terms[C]=new $(0);else{var V=I.add(new $(1));A.terms[C]=I;for(var U=0;U<v.length;U++)v[U].terms[C]=v[U].terms[C].add(V)}}for(var L=d(v[0],M[0]),G=0;L&&(i=M,!(r=v)[0].sum.equals(i[0].sum)||r.length>=i.length);){if(200<G++)throw new H.exceptions.InfiniteLoopError("Unable to compute!");var _=v[0].divide(M[0]);y.push(_),v.shift();for(C=1;C<M.length;C++){var R=M[C].multiply(_).generateImage(),T=v.length;0===T&&(R.coeff=R.coeff.neg(),v.push(R),v.sort(E));for(U=0;U<T;U++){var O=v[U];if(O.getImg()===R.getImg()){O.coeff=O.coeff.subtract(R.coeff),O.coeff.equals(0)&&(H.Utils.remove(v,U),U--);break}U===T-1&&(R.coeff=R.coeff.neg(),v.push(R),v.sort(E))}}if(!(L=d(v[0],M[0]))&&v.length>=M.length)for(C=1;C<v.length;C++)if(L=d(v[C],M[0])){v.unshift(H.Utils.remove(v,C));break}}}p=h(y),f=h(v),void 0!==A&&(A=A.toSymbol(),p=j.divide(p,A.clone()),f=j.divide(f,A))}return l&&(p=j.parse(p.text(),u),f=j.parse(f.text(),u)),[p,f]}catch(e){if("timeout"===e.message)throw e;return P}},line:function(e,t,n){H.Utils.isArray(e)&&(e=H.Utils.convertToVector(e)),H.Utils.isArray(t)&&(t=H.Utils.convertToVector(t)),n=j.parse(n||"x"),H.Utils.isVector(e)&&H.Utils.isVector(t)||j.error('Line expects a vector! Received "'+e+'" & "'+t+'"');var r=j.subtract(t.e(1).clone(),e.e(1).clone()),t=j.subtract(t.e(2).clone(),e.e(2).clone()),t=j.divide(t,r),r=j.multiply(n,t.clone()),n=j.multiply(e.e(1).clone(),t);return j.add(j.subtract(r,n),e.e(2).clone())},PartFrac:{createTemplate:function(r,e,t,n){(r=T.Factor.factorInner(r)).each(function(e,t){var n;e.group===C&&""===e.fname&&e.args[0].group===X&&(n=e.args[0],this.symbols?(delete this.symbols[t],this.symbols[n.value]=n):r=e.args[0])});for(var i=e.collectFactors(),s=[],o=[],a=new Q(1),u=0;u<i.length;u++){var l=Q.unwrapPARENS(i[u]);if(l.power.greaterThan(1))for(var c=Number(l.power),p=l.clone().toLinear(),f=Number(T.degree(p,n)),h=0;h<c;h++){var m=j.pow(p.clone(),new Q(h+1)),g=(t.push(m.clone()),j.divide(r.clone(),m.clone()));o.push(f),s.push(g)}else{f=Number(T.degree(l,n)),t.push(l);g=j.divide(r.clone(),l.clone());g=j.expand(Q.unwrapPARENS(g)),o.push(f),s.push(g)}}return[t=t.map(function(e){return j.multiply(e,a.clone())}),s,o]},partfrac:function(t,o,n){var e=z(t);o=o||j.parse(e[0]);try{var a,r,i,u,l,c,s,p,f,h,m,g,d,v,w,y=j.expand(t.getNum()),b=j.expand(t.getDenom().toUnitMultiplier());if(y.multiplier=t.multiplier,i=y.groupTerms(o),Number(T.degree(y,o))>=Number(T.degree(b,o))?(p=(s=T.div(y.clone(),j.expand(b.clone())))[0],i=(y=s[1]).groupTerms(o)):p=new Q(0),1===Number(T.degree(b,o)))return d=j.divide(y,b),n?[p,d]:j.add(p,d);r=T.Factor.factorInner(b),m=T.PartFrac.createTemplate(b.clone(),r,[],o),g=m[0],f=m[1],u=m[2],c=[i.length],l=[],a=[],h=[],f.map(function(e,t){v=g[t],w=u[t];for(var n=0;n<w;n++){a.push(v.clone());var r=Q.create(o,n),i=j.expand(j.multiply(e,r.clone())).groupTerms(o),s=i.length;c.push(s),l.push(i),h.push(r.clone())}});for(var S=H.Utils.arrayMax(c),M=new H.Matrix(H.Utils.fillHoles(i,S)).transpose(),N=new H.Matrix,E=0;E<l.length;E++)N.elements.push(H.Utils.fillHoles(l[E],S));var q=j.multiply(N.transpose().invert(),M),x=n?[p]:p;return q.each(function(e,t){e=j.multiply(h[t],j.divide(e,a[t]));n?x.push(e):x=j.add(x,e)}),x}catch(e){if("timeout"===e.message)throw e;try{if(t.isComposite()){var A,C={},I=(t.each(function(e){var t=e.getDenom(),e=e.getNum(),n=C[t];C[t]=n?j.add(n,e):e}),new Q(0));for(A in C)I=j.add(I,j.divide(C[A],j.parse(A)));t=I}}catch(e){if("timeout"===e.message)throw error}}return t}},degree:function(e,t,n){if(n=n||{nd:[],sd:[],depth:0},!t){var r=z(e);if(1<r.length)throw new Error("You must specify the variable for multivariate polynomials!");if(0===r.length)return new Q(0);t=j.parse(r[0])}r=e.group,e.isComposite()?((e=e.clone()).distributeExponent(),e.each(function(e){n.depth++,T.degree(e,t,n),n.depth--})):e.group===I?e.each(function(e){n.depth++,T.degree(e,t,n),n.depth++}):r===p&&e.value===t.value?n.sd.push(e.power.clone()):r===X&&e.value===t.value?n.nd.push(j.parse(e.power)):n.nd.push(new Q(0)),r=0<n.nd.length?H.Utils.arrayMax(n.nd):void 0;return 0===n.depth&&0<n.sd.length?(void 0!==r&&n.sd.unshift(r),j.symfunction("max",n.sd)):H.Utils.isSymbol(r)?r:j.parse(r)},sqComplete:function(e,t,n){H.Utils.isSymbol(t)||(t=j.parse(t));function r(e){throw new H.exceptions.ValueLimitExceededError(e=e||"Stopping")}var i,s,o,a,u,l;return e.isPoly(!0)||r("Must be a polynomial!"),l=H.Utils.inBrackets,e=e.clone(),(a=H.Algebra.degree(e,t)).equals(2)||r("Cannot complete square for degree "+a),e=(a=H.Algebra.coeffs(e,t))[2],u=a[1].sign(),o=j.divide(a[1],new Q(2)),i=j.pow(o.clone(),new Q(2)),n?[e,o,s]:(n=m.sqrt(e),o=j.divide(m.sqrt(i),n.clone()),s=j.subtract(a[0],j.pow(o.clone(),new Q(2))),{a:e=j.parse(l(n.clone()+"*"+t+(u<0?"-":"+")+o)),c:s,f:j.add(j.pow(e.clone(),new Q(2)),s.clone())})},Simplify:{strip:function(e){var t=j.parse(e.multiplier),n=(e.toUnitMultiplier(),j.parse(e.power));return e.toLinear(),[t,n,e]},unstrip:function(e,t){var n=e[0],e=e[1];return j.multiply(n,j.pow(t,e))},complexSimp:function(e,t){var n=e.realpart(),e=e.imagpart(),r=t.realpart(),t=t.imagpart(),i=j.multiply(n.clone(),r.clone()),s=j.multiply(e.clone(),t.clone()),e=j.multiply(r.clone(),e),n=j.multiply(n,t.clone()),r=j.add(j.pow(r,new Q(2)),j.pow(t,new Q(2)));return j.divide(j.add(j.add(i,s),j.multiply(j.subtract(e,n),Q.imaginary())),r)},trigSimp:function(t){let s=!0,e=0;for(;s&&t.containsFunction(["cos","sin","tan"]);){e++,s=!1,t=t.clone();var n=T.Simplify.strip(t),o=(t=n.pop()).clone();if(t.group===Z){var r=new Q(0);t.each(function(e){e=T.Simplify.trigSimp(e.fnTransform());r=j.add(r,e)},!0),o=j.pow(j.multiply(new Q(t.multiplier),r),new Q(t.power)),s=o.text()!==t.text()}else if(t.group===I){var i,a=t.getNum(),u=t.getDenom();"sin"===a.fname&&"cos"===u.fname&&a.args[0].equals(u.args[0])&&a.power.equals(u.power)?(o=j.parse(H.Utils.format("(({1})/({0}))*tan({2})^({3})",u.multiplier,a.multiplier,a.args[0],a.power)),s=!0):"tan"===a.fname&&"sin"===u.fname&&a.args[0].equals(u.args[0])&&a.power.equals(u.power)?(o=j.parse(H.Utils.format("(({1})/({0}))*cos({2})^(-({3}))",u.multiplier,a.multiplier,a.args[0],a.power)),s=!0):(i=new Q(1),o.each(function(e){var t;"tan"===e.fname?(e=j.parse(H.Utils.format("({0})*sin({1})^({2})/cos({1})^({2})",e.multiplier,T.Simplify._simplify(e.args[0]),e.power)),s=!0):e.containsFunction(["cos","sin","tan"])&&(t=T.Simplify.trigSimp(e),e.equals(t)||(e=t,s=!0)),i=j.multiply(i,e)}),o=i)}else if("cos"!==t.fname&&"sin"!==t.fname||t.args[0].group!=Z){if(("cos"===t.fname||"sin"===t.fname)&&-1==t.args[0].multiplier.sign()){u=t.args[0].clone().negate();let e=H.Utils.format(t.fname+"({0})",u);"sin"===t.fname&&(e="-"+e),o=j.parse(e),s=!0}}else{let n=0,r=new Q(0),i=j.parse("pi/2");if(t.args[0].each(e=>{var t=j.divide(e.clone(),i.clone()),t=T.Simplify._simplify(t);t=H.Utils.evaluate(t),_(t)?n+=t.multiplier.num.value:r=j.add(r,e)}),n){n=(n=(n+("cos"===t.fname?1:0))%4)+(n<0?4:0);a=H.Utils.format(["sin({0})","cos({0})","-sin({0})","-cos({0})"][n],r),o=j.parse(a);s=!0}else if(1<Object.keys(t.args[0].symbols).length){var l=t.args[0].clone(),l=Object.values(l.symbols),c=l[0],l=l.slice(1).map(e=>"("+e.text()+")").join("+");let e;e="sin"===t.fname?H.Utils.format("sin({0})cos({1})+sin({1})cos({0})",c,l):H.Utils.format("cos({0})cos({1})-sin({1})sin({0})",c,l),o=j.parse(e),s=!0}}"sin"===t.fname&&t.args[0].multiplier.equals(2)&&!t.args[0].equals(2)&&(c=t.args[0].clone().toUnitMultiplier(),l=H.Utils.format("2sin({0})cos({0})",c),o=j.parse(l),s=!0),t=o=T.Simplify.unstrip(n,o).distributeMultiplier(),e}return t},logArgSimp:function(n,e){if("1"===e.value||1===e.value)return new Q(0);let r=new Q(0);var t=e.multiplier.clone();return e.toUnitMultiplier(),t.equals(1)||(t=H.Utils.format("({0}({1}))",n,t),r=j.add(r,j.parse(t))),e.group===I?e.each(function(e){var t=(e=e.clone()).power.clone(),t=(T.Simplify.strip(e),H.Utils.format("(({1})*{0}({2}))",n,t,e));r=j.add(r,j.parse(t))}):(e=(t=e.clone()).power.clone(),T.Simplify.strip(t),e=H.Utils.format("(({1})*{0}({2}))",n,e,t),r=j.add(r,j.parse(e))),r},logSimp:function(t){if(t.group!==C||"log"!==t.fname&&"log10"!==t.fname){if(t.containsFunction(["log","log10"]))for(var e in t.symbols){var n=t.symbols[e];t.symbols[e]=T.Simplify.logSimp(n)}}else{t.clone();var r=T.Simplify.strip(t),i=(t=r.pop()).args[0].clone(),s=i.getNum().clone(),i=i.getDenom().clone(),o=t.fname;let e=T.Simplify.logArgSimp(o,s);i.equals(1)||(s=T.Simplify.logArgSimp(o,i),e=j.subtract(e,s)),t=e=T.Simplify.unstrip(r,e).distributeMultiplier()}return t},_sqrtCompression:function(e,t,n){var r=T.Simplify.strip(e);const u=e=>e.args[0],l=e=>"abs"===e.fname?u(e):null,c=e=>e.type===X&&e.value.startsWith("baseunit_");let p,f=!1;var i=(n,r)=>{for(let e=0;e<n.length;e++){let t=n[e];if(t.isSQRT()){for(let e=0;e<r.length;e++){var i=r[e];if([i,t]=(s=i,o=t,a=void 0,(a=u(o)).equals(l(s))||a.equals(s)&&c(s)?[o,null]:[null,o]),null!==i){r[e]=i,p=!0,f=!0;break}}n[e]=t,n=n.filter(e=>e),r=r.filter(e=>e)}}var s,o,a;return[n,r]};let s=t.collectFactors(),o=n.collectFactors();for(;p=!1,[s,o]=i(s,o),[o,s]=i(o,s),p;);return f&&(e=s.reduce((e,t)=>j.multiply(e,t),new Q(1)),e=o.reduce((e,t)=>j.divide(e,t),e)),e=T.Simplify.unstrip(r,e)},fracSimp:function(e){var t=e.getDenom();if((e=(u=e.getNum()).isImaginary()&&t.isImaginary()?T.Simplify.complexSimp(u,t):e).isComposite()){for(var n,r,i,s,o,a,u,l=(e=1<e.power?j.expand(e):e).collectSymbols(),c=l.pop();l.length;)i=l.pop(),r=j.parse(c.getDenom()),o=j.parse(i.getDenom()),s=c.getNum(),i=i.getNum(),a=j.multiply(r.clone(),o.clone()),s=j.multiply(s,o),o=j.multiply(i,r),i=j.add(s,o),c=j.divide(i,a);return t=j.expand(c.getDenom()),(n=(u=j.expand(c.getNum())).isImaginary()&&t.isImaginary()?T.Simplify.complexSimp(u,t):j.divide(u,t)).equals(e)?e:T.Simplify._simplify(n)}return e=T.Simplify._sqrtCompression(e,u,t),e=T.Simplify.simpleFracSimp(e)},simpleFracSimp:function(e){var t=e.getDenom(),n=e.getNum();let r;return t=j.expand(t),n=j.expand(n),(r=n.isImaginary()&&t.isImaginary()?T.Simplify.complexSimp(n,t):j.divide(n,t)).equals(e)?e:r},ratSimp:function(e){var t,n;return e.group===I&&(t=e.getDenom(),n=e.getNum().distributeMultiplier(),t=T.Simplify.fracSimp(t),n=T.Simplify.fracSimp(n),e=j.divide(n,t)),e},sqrtSimp:function(t,e){let n,r=!1;var i=t.clone();try{if(t.isSQRT()){var s,o,a=t.multiplier.clone(),u=t.args[0].clone(),l=T.Factor.factorInner(u),c=j.parse(l.multiplier),p=c.sign();n=new Q(1);let e;l.group===I?(s=new Q(1),l.each(function(e){var t;(e=j.parse(e)).group===h&&(t=j.sqrt(e.clone()),_(t))?n=j.multiply(n,t):s=j.multiply(s,e)}),o=j.multiply(s,j.parse(p)),(e=j.sqrt(o.clone())).isImaginary()&&(e=j.sqrt(j.expand(o.clone())))):(e=l.clone().toUnitMultiplier(),e=j.multiply(e,new Q(p)),e=j.sqrt(e)),n=j.multiply(n,e),n=j.pow(n,j.parse(t.power)),n=j.multiply(n,j.sqrt(c.abs())),n=j.multiply(n,j.parse(a)),r=!0}else t.isComposite()&&t.isLinear()?(n=new Q(0),t.each(function(e){n=j.add(n,T.Simplify.sqrtSimp(e))},!0),n=j.pow(n,j.parse(t.power)),n=j.multiply(n,j.parse(t.multiplier)),r=!0):t.group===I&&(n=new Q(1),t.each(function(e){e=T.Simplify.sqrtSimp(e);n=j.multiply(n,e)}),n=j.pow(n,j.parse(t.power)),n=j.multiply(n,j.parse(t.multiplier)),r=!0);return r||n&&!_(n)&&(n=null),n=n||j.parse(t)}catch(e){if("timeout"===e.message)throw e;return u="crash in sqrtsimp, symbol: "+(t=i).text()+" "+e.msg,o=" ".substring(0,f),console.log(o+u),t}},patternSub:function(n){function r(e){e.each(function(e){var t;!e.symbols&&e.group!==C||(s(e)?r(e):i[e.value]||(t=H.Utils.getU(n),i[e.value]=t,n=n.sub(e.value,t)))},!0)}var i={},s=function(e){var t=!1;return e.each(function(e){e.group===Z?t=!0:e.symbols&&(t=s(e))}),t};return r(n),[n,i]},simplify:function(e){if(e.simplify)return e.simplify();let t=T.Simplify._simplify(e);return t=t.pushMinus(),t=j.parse(t)},_simplify:function(e){var t,n,r=T.Simplify.strip(e.clone());return e=r.pop(),(e=T.Simplify.fracSimp(e)).isConstant()||e.group===H.groups.S?r.push(e):(e=e.clone(),e=T.Simplify.sqrtSimp(e,r),e=T.Simplify.trigSimp(e),e=T.Simplify.logSimp(e),e=T.Simplify.ratSimp(e),(e=T.Factor.factorInner(e)).group===H.groups.CP&&e.isLinear()&&(t=e.multiplier.clone(),e.toUnitMultiplier(),n=new Q(0),e.each(function(e){e=T.Simplify._simplify(e);n=j.add(n,e)}),e=n,(e=j.multiply(e,new Q(t))).multiplier.equals(-1))&&e.distributeMultiplier()),T.Simplify.unstrip(r,e)}},Classes:{Polynomial:Y,Factors:R,MVTerm:J}};H.Expression.prototype.simplify=function(){H.Utils.armTimeout();try{let e;var t;return e=void 0!==this.symbol.LHS?((t=this.symbol.clone()).LHS=T.Simplify.simplify(t.LHS),t.RHS=T.Simplify.simplify(t.RHS),t):new H.Expression(T.Simplify.simplify(this.symbol))}catch(e){if("timeout"===e.message)throw e;return this}finally{H.Utils.disarmTimeout()}},H.Collection.prototype.simplify=function(){return this.elements=this.elements.map(e=>T.Simplify.simplify(e)),this},H.Matrix.prototype.simplify=function(){return this.elements=this.elements.map(e=>e.map(e=>T.Simplify.simplify(e))),this},nerdamer.useAlgebraDiv=function(){var n=T.divideFn=j.divide,r=0;j.divide=function(e,t){e=1===++r?H.Algebra.divide(e,t):n(e,t);return r=0,e}},nerdamer.useParserDiv=function(){T.divideFn&&(j.divide=T.divideFn),delete T.divideFn},nerdamer.register([{name:"factor",visible:!0,numargs:1,build:function(){return T.Factor.factor}},{name:"simplify",visible:!0,numargs:1,build:function(){return T.Simplify.simplify}},{name:"gcd",visible:!0,numargs:[1],build:function(){return T.gcd}},{name:"lcm",visible:!0,numargs:[1],build:function(){return T.lcm}},{name:"roots",visible:!0,numargs:-1,build:function(){return T.roots}},{name:"divide",visible:!0,numargs:2,build:function(){return T.divide}},{name:"div",visible:!0,numargs:2,build:function(){return T.div}},{name:"partfrac",visible:!0,numargs:[1,2],build:function(){return T.PartFrac.partfrac}},{name:"deg",visible:!0,numargs:[1,2],build:function(){return T.degree}},{name:"coeffs",visible:!0,numargs:[1,2],build:function(){return function(){var e=T.coeffs.apply(T,arguments);return new H.Vector(e)}}},{name:"line",visible:!0,numargs:[2,3],build:function(){return T.line}},{name:"sqcomp",visible:!0,numargs:[1,2],build:function(){return function(t,e){try{return e=e||z(t)[0],T.sqComplete(t.clone(),e).f}catch(e){if("timeout"===e.message)throw e;return t}}}}]),nerdamer.updateAPI()}(),"undefined"!=typeof module&&void 0===nerdamer&&(nerdamer=require("./nerdamer.core.js"),require("./Algebra.js")),function(){"use strict";var c1=nerdamer.getCore(),p1=c1.PARSER,f1=c1.Frac,h1=c1.Settings,m1=c1.Utils.isSymbol,g1=(c1.groups.FN,c1.Symbol),m=c1.Utils.text,d1=c1.Utils.inBrackets,v1=c1.Utils.isInt,w1=c1.Utils.format,y1=c1.Utils.even,k=c1.Utils.evaluate,g=c1.groups.N,b1=c1.groups.S,S1=c1.groups.FN,M1=c1.groups.PL,N1=c1.groups.CP,E1=c1.groups.CB,q1=c1.groups.EX,d=c1.groups.P,x1=h1.LOG,A1="sqrt",C1="sin",I1="cos",U1="tan",L1="sec",_1="csc",R1="cot",T1="asin",O1="atan",P1="sinh",k1="cosh",F1="tanh";function D1(e){this.message=e||""}D1.prototype=new Error,g1.prototype.hasIntegral=function(){return this.containsFunction("integrate")},g1.prototype.fnTransform=function(){if(this.group!==S1)return this;var e,t,n,r=this.args[0],i=new g1(this.multiplier),s=this.clone().toUnitMultiplier();if(this.isLinear())switch(this.fname){case P1:n=p1.parse(w1("(e^({0})-e^(-({0})))/2",r));break;case k1:n=p1.parse(w1("(e^({0})+e^(-({0})))/2",r));break;case F1:n=p1.parse(w1("(e^({0})-e^(-({0})))/(e^({0})+e^(-({0})))",r));break;case U1:n=p1.parse(w1("sin({0})/cos({0})",r));break;case _1:n=p1.parse(w1("1/sin({0})",r));break;case L1:n=p1.parse(w1("1/cos({0})",r));break;default:n=s}else if(this.power.equals(2))switch(this.fname){case C1:n=p1.parse(w1("1/2-cos(2*({0}))/2",r));break;case I1:n=p1.parse(w1("1/2+cos(2*({0}))/2",r));break;case U1:n=p1.parse(w1("sin({0})^2/cos({0})^2",r));break;case k1:n=p1.parse(w1("1/2+cosh(2*({0}))/2",r));break;case P1:n=p1.parse(w1("-1/2+cosh(2*({0}))/2",r));break;case F1:n=p1.parse(w1("(1+cosh(2*({0})))/(-1+cosh(2*({0})))",r));break;case L1:n=p1.parse(w1("(1-cos(2*({0})))/(1+cos(2*({0})))+1",r));break;default:n=s}else this.fname===L1?n=p1.parse(w1("1/cos({0})^({1})",this.args[0],this.power)):this.fname===_1?n=p1.parse(w1("1/sin({0})^({1})",this.args[0],this.power)):this.fname===U1?n=this.power.lessThan(0)?p1.parse(w1("cos({0})^(-({1}))/sin({0})^({1})",this.args[0],this.power.negate())):p1.parse(w1("sin({0})^({1})/cos({0})^({1})",this.args[0],this.power)):this.fname===C1&&this.power.lessThan(0)?n=p1.parse(w1("csc({0})^(-({1}))",this.args[0],this.power.negate())):this.fname===I1&&this.power.lessThan(0)?n=p1.parse(w1("sec({0})^(-({1}))",this.args[0],this.power.negate())):this.fname===C1&&this.power.equals(3)?n=p1.parse(w1("(3*sin({0})-sin(3*({0})))/4",this.args[0])):this.fname===I1&&this.power.equals(3)?n=p1.parse(w1("(cos(3*({0}))+3*cos({0}))/4",this.args[0])):this.fname!==I1&&this.fname!==C1||!y1(this.power)?n=s:(e=this.power/2,t=p1.pow(this.clone().toLinear(),p1.parse(2)).fnTransform(),t=p1.expand(p1.pow(t,p1.parse(e))),n=new g1(0),t.each(function(e){e=e.fnTransform();n=p1.add(n,e)},!0));return p1.multiply(n,i)},g1.prototype.hasTrig=function(){if(!this.isConstant(!0)&&this.group!==b1){if(this.fname&&(c1.Utils.in_trig(this.fname)||c1.Utils.in_inverse_trig(this.fname)))return!0;if(this.symbols)for(var e in this.symbols)if(this.symbols[e].hasTrig())return!0}return!1},c1.Expression.prototype.hasIntegral=function(){return this.symbol.hasIntegral()},c1.Utils.toCommonDenominator=function(e){var t,n,r;return e.isComposite()&&e.isLinear()?(t=new g1(e.multiplier),n=new g1(1),r=new g1(0),e.each(function(e){n=p1.multiply(n,e.getDenom())},!0),e.each(function(e){var t=e.getNum(),e=e.getDenom(),t=p1.multiply(t,p1.divide(n.clone(),e));r=p1.add(r,t)}),p1.multiply(t,c1.Algebra.divide(p1.expand(r),p1.expand(n)))):e},c1.Utils.in_inverse_trig=function(e){return-1!==[T1,"acos",O1,"acsc","asec","acot"].indexOf(e)},c1.Utils.in_trig=function(e){return-1!==[I1,C1,U1,L1,_1,R1].indexOf(e)},c1.Utils.in_htrig=function(e){return-1!==[P1,k1,F1,"acsch","asech","acoth"].indexOf(e)},c1.Matrix.jacobian=function(e,t){var i=new c1.Matrix;return(t=t||c1.Utils.arrayGetVariables(e)).forEach(function(n,r){e.forEach(function(e,t){e=c1.Calculus.diff(e.clone(),n);i.set(t,r,e)})}),i},c1.Matrix.prototype.max=function(){var t=new g1(0);return this.each(function(e){e=e.abs();e.gt(t)&&(t=e)}),t},c1.Matrix.cMatrix=function(n,e){var r=new c1.Matrix;return e.forEach(function(e,t){r.set(t,0,p1.parse(n))}),r};var G1=c1.Utils.all_functions=function(e){for(var t=0,n=e.length;t<n;t++)if(e[t].group!==S1)return!1;return!0},l=c1.Utils.cosAsinBtranform=function(e,t){e=e.args[0],t=t.args[0];return p1.parse(w1("(sin(({0})+({1}))-sin(({0})-({1})))/2",e,t))},c=c1.Utils.cosAsinAtranform=function(e,t){return 1!==Number(t.power)?p1.multiply(e,t):(t=e.args[0],p1.parse(w1("(sin(2*({0})))/2",t)))},p=c1.Utils.cosAsinBtranform=function(e,t){e=e.args[0],t=t.args[0];return p1.parse(w1("(cos(({0})+({1}))-cos(({0})-({1})))/2",e,t))},B1=c1.Utils.trigTransform=function(e){for(var t,n,r,i,s={},o=new g1(1),a=0,u=e.length;a<u;a++)(r=e[a]).group===S1?(n=r.fname)===I1&&s.sin?(t=(s.sin.args[0].toString()!==r.args[0].toString()?l:c)(r,s.sin),delete s.sin,o=p1.multiply(o,t)):n===C1&&s.cos?(t=(s.cos.args[0].toString()!==r.args[0].toString()?l:c)(r,s.cos),delete s.cos,o=p1.multiply(o,t)):n===C1&&s.sin?(t=s.sin.args[0].toString()!==r.args[0].toString()?p(r,s.sin):p1.multiply(r,s.sin),delete s.sin,o=t):s[n]=r:o=p1.multiply(o,r);for(i in s)o=p1.multiply(o,s[i]);return o},V1=(c1.Settings.integration_depth=10,c1.Settings.max_lim_depth=10,c1.Calculus={version:"1.4.6",sum:function(s,o,a,u){if(o.group!==c1.groups.S)throw new c1.exceptions.NerdamerTypeError("Index must be symbol. "+m(o)+" provided");var e;return o=o.value,c1.Utils.isNumericSymbol(a)&&c1.Utils.isNumericSymbol(u)?(e=u-a<200?"":"PARSE2NUMBER",a=Number(a),u=Number(u),c1.Utils.block(e,function(){for(var e=s.text(),t={"~":!0},n=new c1.Symbol(0),r=a;r<=u;r++){t[o]=new g1(r);var i=p1.parse(e,t),n=p1.add(n,i)}return n})):p1.symfunction("sum",arguments)},product:function(i,s,o,a){if(s.group!==c1.groups.S)throw new c1.exceptions.NerdamerTypeError("Index must be symbol. "+m(s)+" provided");var e;return s=s.value,c1.Utils.isNumericSymbol(o)&&c1.Utils.isNumericSymbol(a)?(e=a-o<200?"":"PARSE2NUMBER",c1.Utils.block(e,function(){o=Number(o),a=Number(a.multiplier);for(var e=i.text(),t={},n=new c1.Symbol(1),r=o;r<=a;r++)t[s]=new g1(r),n=p1.multiply(n,p1.parse(e,t));return n})):p1.symfunction("product",arguments)},diff:function(e,l,r){var t,i,c,n,s;return c1.Utils.isVector(e)?(t=new c1.Vector([]),e.each(function(e){t.elements.push(V1.diff(e,l,r))}),t):c1.Utils.isMatrix(e)?(i=new c1.Matrix,e.each(function(e,t,n){i.set(t,n,V1.diff(e,l,r))}),i):e.LHS&&e.RHS?new c1.Equation(V1.diff(e.LHS.clone(),l,r),V1.diff(e.RHS.clone(),l,r)):(c=m1(l)?l.text():l,r=m1(r)?r.multiplier:r||1,void 0===c&&(c=c1.Utils.variables(e)[0]),e.group===S1&&e.fname===A1&&(s=e.args[0],n=e.power.clone(),s.group===g&&s.group===d||(s.power=m1(s.power)?p1.multiply(s.power,p1.multiply(new g1(.5)),n):s.power.multiply(new f1(.5)).multiply(n),s.multiplier=s.multiplier.multiply(e.multiplier)),e=s),e=e.group!==S1||m1(e.power)?f(e):(n=f(p1.parse(e)),s=V1.diff(e.args[0].clone(),c),p1.multiply(n,s)),1<r&&(r--,e=V1.diff(e,l,r)),e);function p(e){return e=(e.value===c||e.contains(c,!0))&&(e.multiplier=e.multiplier.multiply(e.power),e.power=e.power.subtract(new f1(1)),e.power.equals(0))?g1(e.multiplier):e}function f(e){var t=e.group;if(t===g||t===b1&&e.value!==c||t===d)e=g1(0);else if(t===b1)e=p(e);else{if(t===E1)return n=e.multiplier.clone(),e.toUnitMultiplier(),(s=p1.multiply(function(e){for(var t=e.collectSymbols(),n=new g1(0),r=t.length,i=0;i<r;i++){for(var s=V1.diff(t[i].clone(),c),o=0;o<r;o++)i!==o&&(s=p1.multiply(s,t[o].clone()));n=p1.add(n,s)}return n}(e),p(e))).multiplier=s.multiplier.multiply(n),s;if(t===S1&&e.power.equals(1)){var n=e.multiplier.clone();switch(e.toUnitMultiplier(),e.fname){case x1:i=e.clone(),(e=e.args[0].clone()).power=e.power.negate(),e.multiplier=i.multiplier.divide(e.multiplier);break;case I1:e.fname=C1,e.multiplier.negate();break;case C1:e.fname=I1;break;case U1:e.fname=L1,e.power=new f1(2);break;case L1:e=h(e,U1);break;case _1:e=h(e,"-cot");break;case R1:e.fname=_1,e.multiplier.negate(),e.power=new f1(2);break;case T1:e=p1.parse("(sqrt(1-("+m(e.args[0])+")^2))^(-1)");break;case"acos":e=p1.parse("-(sqrt(1-("+m(e.args[0])+")^2))^(-1)");break;case O1:e=p1.parse("(1+("+m(e.args[0])+")^2)^(-1)");break;case"abs":(o=e.args[0].clone()).toUnitMultiplier(),e=p1.parse(d1(m(e.args[0]))+"/abs"+d1(m(o)));break;case"parens":e=g1(1);break;case"cosh":e.fname="sinh";break;case"sinh":e.fname="cosh";break;case F1:e.fname="sech",e.power=new f1(2);break;case"sech":e=h(e,"-tanh");break;case"csch":var r=String(e.args[0]);e=p1.parse("-coth("+r+")*csch("+r+")");break;case"coth":r=String(e.args[0]);e=p1.parse("-csch("+r+")^2");break;case"asinh":e=p1.parse("(sqrt(1+("+m(e.args[0])+")^2))^(-1)");break;case"acosh":e=p1.parse("(sqrt(-1+("+m(e.args[0])+")^2))^(-1)");break;case"atanh":e=p1.parse("(1-("+m(e.args[0])+")^2)^(-1)");break;case"asech":r=String(e.args[0]);e=p1.parse("-1/(sqrt(1/("+r+")^2-1)*("+r+")^2)");break;case"acoth":e=p1.parse("-1/(("+e.args[0]+")^2-1)");break;case"acsch":r=String(e.args[0]);e=p1.parse("-1/(sqrt(1/("+r+")^2+1)*("+r+")^2)");break;case"asec":r=String(e.args[0]);e=p1.parse("1/(sqrt(1-1/("+r+")^2)*("+r+")^2)");break;case"acsc":r=String(e.args[0]);e=p1.parse("-1/(sqrt(1-1/("+r+")^2)*("+r+")^2)");break;case"acot":e=p1.parse("-1/(("+e.args[0]+")^2+1)");break;case"S":r=String(e.args[0]);e=p1.parse("sin((pi*("+r+")^2)/2)");break;case"C":r=String(e.args[0]);e=p1.parse("cos((pi*("+r+")^2)/2)");break;case"Si":r=e.args[0];e=p1.parse("sin("+r+")/("+r+")");break;case"Shi":r=e.args[0];e=p1.parse("sinh("+r+")/("+r+")");break;case"Ci":r=e.args[0];e=p1.parse("cos("+r+")/("+r+")");break;case"Chi":r=e.args[0];e=p1.parse("cosh("+r+")/("+r+")");break;case"Ei":r=e.args[0];e=p1.parse("e^("+r+")/("+r+")");break;case"Li":r=e.args[0];e=p1.parse("1/"+h1.LOG+"("+r+")");break;case"erf":e=p1.parse("(2*e^(-("+e.args[0]+")^2))/sqrt(pi)");break;case"atan2":var i=String(e.args[0]),r=String(e.args[1]);e=p1.parse("("+r+")/(("+r+")^2+("+i+")^2)");break;case"sign":e=new g1(0);break;case"sinc":e=p1.parse(w1("(({0})*cos({0})-sin({0}))*({0})^(-2)",e.args[0]));break;case h1.LOG10:e=p1.parse("1/(("+e.args[0]+")*"+h1.LOG+"(10))");break;default:e=p1.symfunction("diff",[e,l])}e.multiplier=e.multiplier.multiply(n)}else if(t===q1||t===S1&&m1(e.power)){var s=t===q1?e.value:t===S1&&e.contains(c)?e.fname+d1(m(e.args[0])):e.value+d1(m(e.args[0])),o=(p1.multiply(p1.parse(x1+d1(s)),e.power.clone()),V1.diff(p1.multiply(p1.parse(x1+d1(s)),e.power.clone()),c));e=p1.multiply(e,o)}else if(t!==S1||e.power.equals(1)){if(t===N1||t===M1){var a,n=e.clone(),u=new g1(0);for(a in e.symbols)u=p1.add(u,V1.diff(e.symbols[a].clone(),c));e=p1.multiply(p(n),u)}}else(o=e.clone()).toLinear(),o.toUnitMultiplier(),e=p1.multiply(p(e.clone()),f(o))}return e.updateHash(),e}function h(e,t,n){return p1.multiply(e,p1.parse(t+d1(n||m(e.args[0]))))}},integration:{u_substitution:function(e,i){function t(e,t,n){var r=V1.diff(t,i),n=n?n(e,t):p1.divide(e.clone(),r);return n.contains(i,!0)?null:n}function n(e,t){e=V1.integrate(p1.symfunction(e,[new g1(l)]),l,0);return(e=e.sub(new g1(l),t)).updateHash(),e}var r,s,o=e[0].clone(),e=e[1].clone(),a=o.group,u=e.group,l="__u__";if(a===S1&&u!==S1)return(r=t(e,(c=o.args[0]).clone()))?p1.multiply(r,n(o.fname,c)):(r=t(e,o))?V1.integration.poly_integrate(o):void 0;if(u===S1&&a!==S1)return(r=t(o,(c=e.args[0]).clone()))?p1.multiply(r,n(e.fname,c)):void 0;if(a===S1&&u===S1)return(r=(r=t(o.clone(),e.clone()))||t(e.clone(),o.clone()))?p1.multiply(V1.integration.poly_integrate(e),r):void 0;if(a!==q1||u===q1)return u===q1&&a!==q1?(r=t(o,(s=e.power).clone()),p=V1.integrate(e.sub(s,new g1(l)),l,0),p1.multiply(p.sub(new g1(l),s),r)):o.isComposite()||e.isComposite()?(c=function(e,t){t=V1.diff(t,i),e=c1.Algebra.Factor.factorInner(e),t=c1.Algebra.Factor.factorInner(t);return p1.divide(e,t)},u=o.isComposite()?o.clone().toLinear():o.clone(),a=e.isComposite()?e.clone().toLinear():e.clone(),(r=t(u.clone(),a.clone(),c))?p1.multiply(V1.integration.poly_integrate(e),r):(r=t(a.clone(),u.clone(),c))?p1.multiply(V1.integration.poly_integrate(o),r):void 0):void 0;if(!(r=t(e,(s=o.power).clone()))){var a=V1.integration.decompose_arg(s.clone(),i),u=V1.diff(a[2].clone(),i),c=V1.integration.decompose_arg(u.clone(),i);if(p1.multiply(a[1],c[1]).power.equals(e.power))return u=p1.divide(a[0].clone(),c[0].clone()),e=p1.multiply(u.clone(),p1.pow(new g1(o.value),p1.multiply(a[0],new g1(l)))),e=p1.multiply(e,new g1(l)),V1.integration.by_parts(e,l,0,{}).sub(l,a[1].clone())}var p=V1.integrate(o.sub(s.clone(),new g1(l)),l,0);return p1.multiply(p.sub(new g1(l),s),r)},poly_integrate:function(e){var t=e.power.toString(),n=e.multiplier.toDecimal(),e=e.toUnitMultiplier().toLinear();return-1===Number(t)?p1.multiply(new g1(n),p1.symfunction(x1,[e])):p1.parse(w1("({0})*({1})^(({2})+1)/(({2})+1)",n,e,t))},stop:function(e){throw c1.Utils.warn(e=e||"Unable to compute integral!"),new D1(e)},partial_fraction:function(e,t,n,r){var i;return m1(t)||(t=p1.parse(t)),i=new g1(0),(e=c1.Algebra.PartFrac.partfrac(e,t)).group===E1&&e.isLinear()?(e.each(function(e){e.isLinear()||V1.integration.stop()}),e.each(function(e){i=p1.add(i,V1.integrate(e,t,n,r))})):i=p1.add(i,V1.integrate(e,t,n,r)),i},get_udv:function(e){function t(e){var t,n=e.group;n===S1?(t=e.fname,c1.Utils.in_trig(t)||c1.Utils.in_htrig(t)?r[3].push(e):c1.Utils.in_inverse_trig(t)?r[1].push(e):t===x1?r[0].push(e):V1.integration.stop()):n===b1||e.isComposite()&&e.isLinear()||n===E1&&e.isLinear()?r[2].push(e):n===q1||e.isComposite()&&!e.isLinear()?r[4].push(e):V1.integration.stop()}var r=[[],[],[],[],[]];e.group===E1?e.each(function(e){t(g1.unwrapSQRT(e,!0))}):t(e);for(var n,i=new g1(1),s=0;s<5;s++){var o=r[s],a=o.length;if(0<a){if(1<a)for(var u=new g1(1),l=0;l<a;l++)u=p1.multiply(u,o[l].clone());else u=o[0].clone();n?i=p1.multiply(i,u):(n=u).multiplier=n.multiplier.multiply(e.multiplier)}}return[n,i]},trig_sub:function(e,t,n,r,i,s){(i=i||V1.integration.decompose_arg(e.clone().toLinear(),t))[3],i[2];var o,a,t=i[0],i=i[1];if(i.power.equals(2)&&t.greaterThan(0))return t=c1.Utils.getU(e),o=p1.parse(U1+d1(t)),a=p1.parse(L1+d1(t)+"^2"),e=p1.multiply(e.sub(i,o),a),a=V1.integrate(e,t,n,r).sub(o,i),c1.Utils.clearU(o),a},by_parts:function(e,t,n,r){var i,s,o,a,u,l;return r.previous=r.previous||[],s=(e=V1.integration.get_udv(e))[0],e=e[1],o=(i=g1.unwrapSQRT(p1.expand(V1.diff(s.clone(),t)),!0)).clone().stripVar(t),i=p1.divide(i,o.clone()),u=V1.integrate(e.clone(),t,n||0),a=(i=p1.multiply(u.clone(),i)).toString(),-1!==r.previous.indexOf(a)&&c1.Utils.in_trig(s.fname)&&e.isE()?(r.is_cyclic=!0,new g1(1)):(r.previous.push(a),e=p1.multiply(s,u),a=i.multiplier.clone(),i.toUnitMultiplier(),(s=p1.multiply(V1.integrate(i.clone(),t,n,r),o)).multiplier=s.multiplier.multiply(a),u=p1.subtract(e,s),r.is_cyclic&&(r.previous.pop(),0===r.previous.length)&&(u=p1.expand(u),l=new g1(0),u.each(function(e){e.contains(t)||(l=p1.add(l,e.clone()))}),u=p1.divide(p1.subtract(u,l.clone()),p1.subtract(new g1(1),l))),u)},decompose_arg:c1.Utils.decompose_fn},integrate:function(o1,a1,u1,l1){var e,t;return a1||(e=c1.Utils.variables(o1),a1=(a1=1===e.length?e[0]:a1)||"x"),c1.Utils.isVector(o1)?(t=new c1.Vector([]),o1.each(function(e){t.elements.push(V1.integrate(e,a1))}),t):(isNaN(a1)||p1.error("variable expected but received "+a1),o1.isConstant(!0)?p1.multiply(o1.clone(),p1.parse(a1)):(l1=l1||{},c1.Utils.block("PARSE2NUMBER",function(){u1=u1||0;var t,n=m1(a1)?a1.toString():a1,e=(w=g1.unwrapSQRT(o1.clone(),!0)).group;try{if(++u1>c1.Settings.integration_depth&&V1.integration.stop("Maximum depth reached. Exiting!"),w.contains(n,!0)){if(e===b1)t=V1.integration.poly_integrate(w,n,u1);else if(e===q1)if(w.previousGroup===S1&&"sqrt"!==w.fname&&w.fname!==h1.PARENTHESIS&&V1.integration.stop(),w.contains(n)&&w.previousGroup!==S1)w.power.contains(n)?V1.integration.stop():((T=V1.diff(w.clone().toLinear(),n)).contains(n)&&V1.integration.stop(),t=V1.integration.poly_integrate(w,n,u1));else{if((s=V1.diff(w.power.clone(),n)).contains(n)){var P=s.stripVar(n);if((o=p1.divide(s.clone(),P.clone())).group===b1&&o.isLinear())return P.multiplier=P.multiplier.divide(new f1(2)),p1.parse(w1("({2})*(sqrt(pi)*erf(sqrt(-{0})*{1}))/(2*sqrt(-{0}))",P,n,w.multiplier));V1.integration.stop()}w.isE()?s.isLinear()?t=w:s.isE()&&s.power.group===b1&&s.power.power.equals(1)?t=p1.multiply(p1.symfunction("Ei",[w.power.clone()]),w.power):V1.integration.stop():(a=p1.symfunction(x1,[p1.parse(w.value)]),t=p1.divide(w,a)),t=p1.divide(t,s)}else if(w.isComposite()&&w.isLinear()){var k=p1.parse(w.multiplier);w.toUnitMultiplier(),t=new g1(0),w.each(function(e){t=p1.add(t,V1.integrate(e,n,u1))}),t=p1.multiply(k,t)}else if(e===N1)if((w=w.power.greaterThan(1)?p1.expand(w):w).power.equals(1))t=new g1(0),w.each(function(e){t=p1.add(t,V1.integrate(e,n,u1))},!0);else{var F,D,B,V,G,H,j,X,Z,r=Number(w.power),k=w.multiplier.clone(),z=(w.toUnitMultiplier(),w.clone().toLinear()),i=(U=V1.integration.decompose_arg(z,n))[3],$=U[2],s=U[0],o=U[1];if(-1===r&&o.group!==M1&&o.power.equals(2)){var Q,a,u,l,W,Y,J,K,e0,t0,c,n0=!v1(i)||0<i;t=o.group===b1&&o.power.equals(2)&&n0?(Q=function(e){var t=new g1(1);return e.each(function(e){t=p1.multiply(t,"abs"===e.fname?e.args[0]:e)}),t},u=s.clone(),l=i.clone(),u=p1.pow(u,new g1(.5)),l=p1.pow(l,new g1(.5)),a=p1.multiply(Q(l),Q(u)),p=p1.symfunction(O1,[p1.divide(p1.multiply(s,o.toLinear()),a.clone())]),p1.divide(p,a)):o.group===b1&&o.isLinear()?p1.divide(V1.integration.poly_integrate(w),s):o.power.equals(4)?(c=d1,u=p1.parse(A1+c(s)+"*"+n+"^2"),l=p1.parse(A1+c(2)+"*"+c(s)+"^"+c("1/4")+"*"+c(i)+"^"+c("1/4")+"*"+n),W=p1.parse(A1+c(i)),i0=p1.add(p1.add(u.clone(),l.clone()),W.clone()),f0=p1.add(p1.subtract(u,l),W),Y=p1.parse(A1+c(2)+"*"+c(i)+"^"+c("3/4")),J=p1.parse(A1+c(i)+"*"+c(i)+"^"+c("1/4")+"*"+n),K=p1.parse("2*"+c(i)+"*"+A1+c(2)+"*"+c(i)+"^"+c("1/4")),e0=p1.divide(p1.subtract(Y.clone(),J.clone()),p1.multiply(K.clone(),f0)),t0=p1.divide(p1.add(Y,J),p1.multiply(K,i0.clone())),p1.add(V1.integrate(e0,n,u1,l1),V1.integrate(t0,n,u1,l1))):V1.integration.partial_fraction(w,n,u1)}else if(-.5===r)o.group===b1&&o.power.equals(2)&&$.multiplier.lessThan(0)&&!i.multiplier.lessThan(0)?(s.negate(),t=i.isConstant()&&s.isConstant()?(a=p1.symfunction(A1,[s.clone()]),F=p1.symfunction(A1,[p1.multiply(s.clone(),i)]),p1.divide(p1.symfunction(T1,[p1.divide($.toLinear(),F)]),a)):(D=p1.symfunction(A1,[s]),B=p1.multiply(D.clone(),o.clone().toLinear()),p1.divide(p1.symfunction(O1,[p1.divide(B,p1.symfunction(A1,[z.clone()]))]),D))):V1.integration.stop();else if(.5===r&&o.power.equals(2)&&s.greaterThan(0))V1.integration.stop();else if(o.isLinear()&&o.group!==M1)t=p1.divide(V1.integration.poly_integrate(w),s);else{if(o.power.equals(2)&&s.greaterThan(0))return V=p1.parse(A1+d1(s)),G=p1.parse(A1+d1(i)),H=p1.multiply(V.clone(),G.clone()).invert(),j=p1.pow(i,new g1(w.power)),X=c1.Utils.getU(w),_=p1.multiply(H,o.clone().toLinear()),Z=p1.parse(O1+d1(_)),L=2*(Math.abs(w.power)-1),b=V1.integrate(p1.parse(I1+d1(X)+"^"+L)),c1.Utils.clearU(X),p1.multiply(b.sub(X,Z),j);if(w.group===E1||w.power.lessThan(0)){var p=w.clone().toLinear(),r0=c1.Algebra.Factor.factorInner(p).toString()!==p.toString();if(c1.Algebra.degree(p,p1.parse(n)).equals(2)&&!r0)try{var i0,s0,o0=c1.Algebra.sqComplete(p,n);_=c1.Utils.getU(p),i0=o0.f.sub(o0.a,_),s0=p1.pow(i0,p1.parse(w.power)),t=V1.integrate(s0,_).sub(_,o0.a)}catch(e){if("timeout"===e.message)throw e;V1.integration.stop()}else t=V1.integration.partial_fraction(w,n,u1,l1)}else t=V1.integration.by_parts(w,n,u1,l1)}t.multiplier=t.multiplier.multiply(k)}else if(e===S1){var f=w.args[0],k=w.multiplier.clone();w.toUnitMultiplier();var a0,u0,l0,c0,p0,f0,h0,m0,g0,s=(U=V1.integration.decompose_arg(f,n))[0],o=U[1],h=w.fname;if(h===x1||h===T1||"acos"===h||h===O1&&o.isLinear()){var d0,r=w.power.toString();v1(r)&&(u1-=r),t=f.isComposite()?(_=c1.Utils.getU(w),p=p1.pow(p1.parse(x1+d1(_)),new g1(r)),M=V1.diff(f,n),d0=p1.multiply(p,M),b=V1.integrate(d0,_,u1,l1),p1.multiply(p1.parse(k),b.sub(_,f))):p1.multiply(p1.parse(k),V1.integration.by_parts(w,n,u1,l1))}else{if(h===U1&&w.power.lessThan(0))return(t1=w.clone()).power.negate(),t1.fname=R1,p1.multiply(p1.parse(k),V1.integrate(t1,n,u1));if(!s.contains(n,!0)&&w.isLinear())if("abs"===h)(o=p1.divide(f.clone(),s.clone())).group!==b1||o.power.lessThan(0)?V1.integration.stop():t=c1.Utils.even(o.power)?V1.integrate(f,n,u1):((g0=V1.integrate(o,n,u1)).power=g0.power.subtract(new f1(1)),p1.multiply(p1.multiply(p1.symfunction("abs",[o.toLinear()]),g0),s));else{var v0=w.args[0].group,w0=V1.integration.decompose_arg(f,n);switch((v0!==N1&&v0!==b1&&v0!==E1||!w0[1].power.equals(1)||f.hasFunc())&&V1.integration.stop(),h){case I1:t=p1.symfunction(C1,[f]);break;case C1:(t=p1.symfunction(I1,[f])).negate();break;case U1:t=p1.parse(w1(h1.LOG+"(sec({0}))",f));break;case L1:t=p1.parse(w1(h1.LOG+"(tan({0})+sec({0}))",f));break;case _1:t=p1.parse(w1("-"+h1.LOG+"(csc({0})+cot({0}))",f));break;case R1:t=p1.parse(w1(h1.LOG+"(sin({0}))",f));break;case P1:t=p1.symfunction(k1,[f]);break;case k1:t=p1.symfunction(P1,[f]);break;case F1:t=p1.parse(w1(h1.LOG+"(cosh({0}))",f));break;case"asec":case"acsc":case"acot":case"asech":case"acsch":case"acoth":t=V1.integration.by_parts(w,n,u1,l1);break;case"sech":t=p1.parse(w1("atan(sinh({0}))",f));break;case"csch":t=p1.parse(w1(h1.LOG+"(tanh(({0})/2))",f));break;case"coth":t=p1.parse(w1(h1.LOG+"(sinh({0}))",f));break;case"exp":t=V1.integrate(p1.parse(w1("e^({0})",f)),n,u1);break;case"S":var f=w.args[0].clone(),y0=(y=V1.integration.decompose_arg(f,n))[1],m=y[0],b0=y[3];t=p1.parse(w1("(cos((1/2)*pi*(({1})+({0})*({2}))^2)+pi*(({1})+({0})*({2}))*S(({1})+({0})*({2})))/(({0})*pi)",m,b0,o));break;case"C":f=w.args[0].clone(),y0=(y=V1.integration.decompose_arg(f,n))[1],m=y[0],b0=y[3];t=p1.parse(w1("(pi*(({1})+({0})*({2}))*C(({1})+({0})*({2}))-sin((1/2)*pi*(({1})+({0})*({2}))^2))/(({0})*pi)",m,b0,y0));break;case"erf":f=w.args[0].clone(),y0=(y=V1.integration.decompose_arg(f,n))[1],m=y[0];t=p1.parse(w1("e^(-(({2}))^2)/(({0})*sqrt(pi))+(1/({0})+({1}))*erf(({2}))",m,y0,f));break;case"sign":t=p1.multiply(w.clone(),f.clone());break;default:V1.integration.stop()}t=p1.divide(t,s)}else o.isLinear()?h===I1||h===C1?(r=Number(w.power),t=r<0?(w.fname=h===C1?_1:L1,w.invert().updateHash(),V1.integrate(w,n,u1)):(f=w.args[0],a0=w.clone(),u0=w.clone(),G0=new g1((r-1)/r),l0=p1.multiply(s.clone(),new g1(r)).invert(),a0.power=a0.power.subtract(new f1(1)),u0.power=u0.power.subtract(new f1(2)),T=p1.symfunction(h===I1?C1:I1,[f.clone()]),h===C1&&T.negate(),p1.add(p1.multiply(p1.multiply(l0,a0),T),p1.multiply(G0,V1.integrate(p1.parse(u0),n,u1))))):h===U1||h===R1?w.args[0].isLinear(n)&&(L=w.power.subtract(new f1(1)).toString(),R=w.clone().toUnitMultiplier(),m0=p1.parse(w1((h===R1?"-":"")+"1/({2}*{0})*{3}({1})^({0})",L,f,s,h)),R.power=R.power.subtract(new f1(2)),R.power.equals(0)&&(R=p1.parse(R)),t=p1.subtract(m0,V1.integrate(R,n,u1))):h===L1||h===_1?(c0=w.power.subtract(new f1(1)).toString(),p0=w.power.subtract(new f1(2)).toString(),f0=h===L1?U1:R1,R=w.clone().toUnitMultiplier(),h0=w1((h===_1?"-":"")+"1/({0}*{1})*{4}({3})^({2})*{5}({3})",s,c0,p0,f,h,f0),m0=p1.parse(h0),R.power=R.power.subtract(new f1(2)),R.power.equals(0)&&(R=p1.parse(R)),t=p1.add(m0,p1.multiply(new g1(p0/c0),V1.integrate(R,n,u1)))):h!==k1&&h!==P1||!w.power.equals(2)?V1.integration.stop():t=V1.integrate(w.fnTransform(),n,u1):V1.integration.stop();t.multiplier=t.multiplier.multiply(k)}}else if(e===M1)t=V1.integration.partial_fraction(w,n,u1);else if(e===E1){var g=(w=w.getDenom().group===b1?p1.expand(w):w).stripVar(n),d=p1.divide(w.clone(),g.clone());if(g.contains(n)&&(d=p1.multiply(d,g),g=new g1(1)),d.group!==E1){if(d.equals(1))return V1.integrate(p1.expand(w),n,u1);d.clone().toLinear().isPoly(!0)&&1<c1.Utils.variables(d).length&&(d=c1.Algebra.Factor.factorInner(d)),t=V1.integrate(d,n,u1)}else{var v=d.collectSymbols().sort(function(e,t){return e.group===t.group?Number(e.power)===Number(t.power)?e<t?1:-1:t.power-e.power:t.group-e.group}).map(function(e){e=g1.unwrapSQRT(e,!0);return"exp"===e.fname?p1.parse(w1("({1})*e^({0})",e.args[0],e.multiplier)):e}),S0=v.length;if(w.power<0){if(2===S0)return V1.integrate(p1.expand(w),n,u1,l1)}else if(2===S0){try{t=V1.integration.u_substitution(v,n)}catch(e){if("timeout"===e.message)throw e}if(!t){var M0,N0,E0,q0,w,x0,A0,C0,I0,U0,L0,_0,R0,T0,O0,y,P0,k0,F0,D0,b,B0,S,M,V0,G0,H0,j0,X0,Z0,z0,N=v[0].group,E=v[1].group,q=v[0],x=v[1],A=q.fname,C=x.fname;if(w=p1.multiply(q.clone(),x.clone()),N===S1&&E===S1)if(A===x1||C===x1)t=V1.integration.by_parts(w.clone(),n,u1,l1);else{v.sort(function(e,t){return t.fname>e.fname});var I=q.args[0];I.isLinear()&&(I.group===N1||I.group===E1||I.group===b1)||V1.integration.stop();o=(U=V1.integration.decompose_arg(I,n))[1],s=U[0],o.isLinear()||V1.integration.stop();var U,$0,Q0=x.args[0];if(I.equals(Q0))if(A===C1&&C===I1||A===I1&&C===C1)if(q.power.lessThan(0)&&V1.integration.stop(),A===C1&&q.power.add(x.power).equals(0))q.fname=U1,q.updateHash(),t=V1.integrate(q,n,u1);else if(y1(q.power)&&C===I1&&x.power.lessThan(0)){var L=Number(q.power)/2,W0=p1.parse(w1("(1-cos({0})^2)^({1})",q.args[0],L));t=V1.integrate(p1.expand(p1.multiply(W0,x.clone())),n,u1,l1)}else if(y1(q.power)&&C===C1&&x.power.lessThan(0)){L=Number(q.power)/2,W0=p1.parse(w1("(1-sin({0})^2)^({1})",q.args[0],L));t=V1.integrate(p1.expand(p1.multiply(W0,x.clone())),n,u1,l1)}else{var Y0,_,J0,K0,e1,t1,n1=c1.Utils.even(q.power),r1=c1.Utils.even(x.power);if(t=new g1(0),n1&&r1)return s=(Y0=function(e){var t=e.power/2,e=e.fname===I1?"((1/2)+(cos(2*("+e.args[0]+"))/2))^"+t:"((1/2)-(cos(2*("+e.args[0]+"))/2))^"+t;return p1.parse(e)})(q),i=Y0(x),T=p1.multiply(s,i),(t1=p1.expand(T)).each(function(e){t=p1.add(t,V1.integrate(e,n,u1))}),p1.multiply(t,g);R=n1?(_=q,x):(_=x,q),J0=_.fname===I1?-1:1,K0=((L=R.power)-1)/2,e1=p1.parse("(1-"+_.fname+c1.Utils.inBrackets(I)+"^2)^"+K0),(t1=p1.expand(p1.multiply(new g1(J0),p1.multiply(_.clone(),e1)))).each(function(e){t=p1.add(t,V1.integration.poly_integrate(e.clone()))})}else A===L1&&C===U1&&o.isLinear()&&x.isLinear()?t=p1.parse(w1("sec({0})^({1})/({1})",q.args[0],q.power)):A===U1&&C===L1&&o.isLinear()?q.isLinear()&&x.isLinear()?t=p1.divide(p1.symfunction(L1,[I.clone()]),s):y1(q.power)?(r=Number(q.power)/2,T=p1.parse(w1("(sec({0})^2-1)^({1})",q.args[0],r)),t=V1.integrate(p1.expand(p1.multiply(T,x)),n,u1)):V1.integration.stop():t=A===L1&&C===I1?(q.fname=I1,q.invert().updateHash(),V1.integrate(p1.multiply(q,x),n,u1)):A===C1&&C===_1?(x.fname=C1,x.invert().updateHash(),V1.integrate(p1.multiply(q,x),n,u1)):(T=A!==U1||C!==I1&&C!==C1||!x.power.lessThan(0)?p1.multiply(q.fnTransform(),x.fnTransform()):p1.multiply(q.fnTransform(),x),V1.integrate(p1.expand(T),n,u1));else A!==C1&&A!==I1||C!==C1&&C!==I1?V1.integration.stop():q.isLinear()&&x.isLinear()?t=q.args[0].isLinear()&&x.args[0].isLinear()?(C===C1?($=q.args[0],$0=x.args[0]):($0=q.args[0],$=x.args[0]),p=p1.parse(w1("(sin(({1})+({0}))+sin(({1})-({0})))/2",$.toString(),$0.toString())),V1.integrate(p,n,u1)):(O=B1(v),V1.integrate(p1.expand(O),n,u1)):(O=new g1(1),v.map(function(e){e=e.fnTransform();O=p1.multiply(O,e)}),T=p1.expand(O),(t=V1.integrate(T,n,u1)).hasIntegral()&&(t=V1.integrate(B1(O.collectSymbols()),n,u1)))}else N===S1&&E===b1?(M0=q.isLinear(),q.fname===I1&&M0&&x.power.equals(-1)?t=p1.symfunction("Ci",[q.args[0]]):q.fname===I1&&x.power.equals(-1)?t=V1.integrate(p1.multiply(q.fnTransform(),x.clone()),n,u1):q.fname===k1&&M0&&x.power.equals(-1)?t=p1.symfunction("Chi",[q.args[0]]):q.fname===k1&&x.power.equals(-1)?t=V1.integrate(p1.multiply(q.fnTransform(),x.clone()),n,u1):q.fname===C1&&M0&&x.power.equals(-1)?t=p1.symfunction("Si",[q.args[0]]):q.fname===C1&&x.power.equals(-1)?t=V1.integrate(p1.multiply(q.fnTransform(),x.clone()),n,u1):q.fname===P1&&M0&&x.power.equals(-1)?t=p1.symfunction("Shi",[q.args[0]]):q.fname===P1&&x.power.equals(-1)?t=V1.integrate(p1.multiply(q.fnTransform(),x.clone()),n,u1):q.fname===x1&&x.power.equals(-1)?t=V1.integration.poly_integrate(q,n,u1):"erf"===q.fname?x.power.equals(1)&&(m=(y=V1.integration.decompose_arg(q.args[0],n))[0],y0=y[1],f=q.args[0].toString(),t=p1.parse(w1("(e^(-(({2}))^2)*(sqrt(pi)*e^((({2}))^2)*(2*({0})^2*({1})^2-3)*erf(({2}))+2*({0})*({1})-2))/(4*sqrt(pi)*({0})^2)",m,y0,f))):t=V1.integration.by_parts(w,n,u1,l1)):N===q1&&E===b1?(o=A===x1?V1.integration.decompose_arg(q.args[0],n)[1]:null,t=q.isE()&&(q.power.group===b1||q.power.group===E1)&&x.power.equals(-1)?p1.symfunction("Ei",[q.power.clone()]):A===x1&&o.value===x.value?V1.integration.poly_integrate(q,n,u1):V1.integration.by_parts(w,n,u1,l1)):N===M1&&E===b1?(w=x.value===q.value&&q.power.equals(-1)?(N0=Math.min.apply(null,c1.Utils.keys(q.symbols)),E0=Math.min(N0,x.power),(q0=x.clone()).power=new f1(E0),x=p1.divide(x,q0.clone()),T=new g1(0),q.each(function(e){T=p1.add(T,p1.divide(e.clone(),q0.clone()))}),T.multiplier=q.multiplier,p1.divide(x,T)):p1.expand(w),t=V1.integration.partial_fraction(w,n,u1)):N===N1&&E===b1?(p=q.clone().toLinear(),x0=c1.Algebra.degree(p,p1.parse(n)).equals(1),q.power.equals(-.5)?(s=(U=V1.integration.decompose_arg(q.clone().toLinear(),n))[0].negate(),o=U[1],i=U[3],B0=Number(q.power),S=Number(x.power),v1(S)&&c1.Utils.even(S)&&o.power.equals(2)?(P0=p1.divide(p1.multiply(p1.pow(i.clone(),new g1(2)),p1.symfunction(A1,[p1.divide(i.clone(),s.clone())])),p1.pow(s.clone(),new g1(2))),P0=p1.multiply(P0,p1.symfunction(A1,[i]).invert()),(A0=p1.parse("sin(u)")).power=A0.power.multiply(x.power),b=V1.integrate(A0,"u",u1),C0=p1.parse("asin(sqrt("+s+"/"+i+")*"+n+")"),t=p1.multiply(P0,b.sub(new g1("u"),C0))):-.5===B0&&(I0=function(e,t){e=p1.parse(V1.integrate(e,n,u1,l1).sub(n,w1(t,n)));if(!e.hasIntegral())return e},-1===S?t=I0(p1.expand(p1.expand(p1.pow(p1.multiply(q.invert(),x.invert()),new g1(2)))).invert(),"sqrt(1-1/({0})^2)"):-2===S&&(t=I0(p1.sqrt(p1.expand(p1.divide(p1.pow(w,new g1(2)).invert(),p1.pow(new g1(n),new g1(2))).negate())).invert(),"sqrt(1-1/({0})^2)")))):q.power.equals(-1)&&x.isLinear()&&x0?t=V1.integration.partial_fraction(w,n,u1):!q.power.lessThan(0)&&v1(q.power)?(U0=p1.expand(q),t=new g1(0),U0.each(function(e){e.group===M1?e.each(function(e){t=p1.add(t,V1.integrate(p1.multiply(x.clone(),e),n,u1))}):t=p1.add(t,V1.integrate(p1.multiply(x.clone(),e),n,u1))})):q.power.lessThan(-2)?t=V1.integration.by_parts(w,n,u1,l1):q.power.lessThan(0)&&x.power.greaterThan(1)?(s=(U=V1.integration.decompose_arg(q.clone().toLinear(),n))[0].negate(),o=U[1],i=U[3],z=q.clone().toLinear(),t=o.group!==M1&&o.isLinear()?(r=Number(x.power),_=new g1(M="_u_"),L0=p1.expand(p1.divide(p1.pow(p1.subtract(_.clone(),i.clone()),new g1(r)),_.clone())),(_0={})[M]=z,R0=p1.parse(L0,_0),V1.integrate(R0,n,0)):x.power.greaterThan(o.power)||x.power.equals(o.power)?(T0=new c1.Algebra.Classes.Factors,q=c1.Algebra.Factor.coeffFactor(q.invert(),T0),(O0=c1.Algebra.divide(x,q)).group!==E1?(t=new g1(0),O0.each(function(e){t=p1.add(t,V1.integrate(e,n,u1))}),T0.each(function(e){t=p1.divide(t,e)}),p1.expand(t)):V1.integration.by_parts(w,n,u1,l1)):V1.integration.partial_fraction(w,n,u1)):q.power.den.equals(2)?(s=(y=V1.integration.decompose_arg(q.clone().toLinear(),n))[3],o=y[1],i=y[0],$0=y[2],t=o.power.equals(2)&&i.lessThan(0)?(s.equals(1)||(g=p1.multiply(g,p1.pow(s,new g1(2)))),_=n,P0=p1.divide(p1.pow(i.clone().negate(),new g1(.5)),p1.pow(s,new g1(.5))),M=p1.symfunction(I1,[new g1(_)]),k0=p1.pow(p1.symfunction(I1,[new g1(_)]),new g1(q.power.num)),F0=p1.pow(p1.symfunction(C1,[new g1(_)]),new g1(x.power)),D0=p1.multiply(p1.multiply(k0,M),F0),(b=V1.integrate(D0,_,u1)).sub(_,p1.symfunction(T1,[p1.multiply(new g1(n),P0)]))):V1.integration.partial_fraction(w,n,u1,l1)):x0&&(t=V1.integration.partial_fraction(w,n,u1))):q.isComposite()&&x.isComposite()?(t=new g1(0),q.power.greaterThan(0)&&x.power.greaterThan(0)?(t1=p1.expand(w)).each(function(e){t=p1.add(t,V1.integrate(e,n,u1))},!0):(B0=Number(q.power),S=Number(x.power),B0<0&&0<S&&(T=q,q=x,x=T),-1===B0&&-1===S?t=V1.integration.partial_fraction(w,n):q.each(function(e){e=p1.multiply(e,x.clone()),e=V1.integrate(e,n,u1);t=p1.add(t,e)}))):N===N1&&v[0].power.greaterThan(0)?(q=p1.expand(q),t=new g1(0),q.each(function(e){t=p1.add(t,V1.integrate(p1.multiply(e,x.clone()),n,u1))},!0)):N===S1&&E===q1&&c1.Utils.in_htrig(q.fname)?(q=q.fnTransform(),t=V1.integrate(p1.expand(p1.multiply(q,x)),n,u1)):N===S1&&E===N1||E===S1&&N===N1?(E===S1&&N===N1&&(T=q,q=x,x=T),M=g1.unwrapSQRT(V1.diff(q.clone(),n),!0),V0=g1.unwrapSQRT(x,!0),M.power.equals(V0.power)?(r=new g1(x.power),H0=M.clone().toLinear(),j0=x.clone().toLinear(),(G0=c1.Algebra.divide(H0.toLinear(),j0)).isConstant()&&(X0=p1.pow(G0,r.negate()),t=p1.multiply(X0,V1.integration.poly_integrate(q.clone())))):t=V1.integration.by_parts(w,n,u1,l1)):(Z0=q.clone().toLinear(),z0=x.clone().toLinear(),t=N===q1&&E===q1&&q.power.contains(n)&&x.power.contains(n)&&!Z0.contains(n)&&!z0.contains(n)?p1.parse(w1("(({0})^(({2})*({4}))*({1})^(({3})*({4})))/(log(({0})^({2}))+log(({1})^({3})))",Z0.toString(),z0.toString(),q.power.multiplier.toString(),x.power.multiplier.toString(),n)):V1.integration.by_parts(w,n,u1,l1))}}else if(3===S0&&(v[2].group===b1&&v[2].power.lessThan(2)||v[0].group===N1)){var R,i1=v[0];i1.group===N1?(i1.power.greaterThan(1)&&(i1=p1.expand(i1)),R=p1.multiply(v[1],v[2]),t=new g1(0),i1.each(function(e){e=p1.multiply(e,R.clone()),e=V1.integrate(e,n,u1);t=p1.add(t,e)},!0)):t=V1.integration.by_parts(w,n,u1,l1)}else if(G1(v)){for(var T=new g1(1),s1=0,S0=v.length;s1<S0;s1++)T=p1.multiply(T,v[s1].fnTransform());T=p1.expand(T),t=V1.integrate(T,n,u1)}else{var O=B1(v);t=V1.integrate(p1.expand(O),n,u1)}}t=p1.multiply(t,g)}}else t=p1.multiply(w.clone(),p1.parse(n));if(t)return t}catch(e){if("timeout"===e.message)throw e;if(!(e instanceof D1||e instanceof c1.exceptions.DivisionByZero))throw e}return p1.symfunction("integrate",[o1,a1])},!1)))},defint:function(e,t,n,r){r=r||"x";function i(t,e,n){try{return p1.parse(t,e)}catch(e){if("timeout"===e.message)throw e;return V1.Limit.limit(t,r,n)}}var s,o=c1.Utils.variables(e),a=e.hasTrig();return 1===o.length&&(r=r||o[0]),a||(s=V1.integrate(e,r)),a||s.hasIntegral()?1===o.length&&t.isConstant()&&n.isConstant()?(a=c1.Utils.build(e),new g1(c1.Math2.num_integrate(a,Number(t),Number(n)))):p1.symfunction("defint",[e,t,n,r]):(o={},(a={})[r]=n,o[r]=t,e=i(s,a,n),a=i(s,o,t),p1.subtract(e,a))},Limit:{interval:function(e,t){return p1.parse(w1("[{0}, {1}]",e,t))},diverges:function(){return V1.Limit.interval("-Infinity","Infinity")},divide:function(t,n,r,i,s){if(!(s++>h1.max_lim_depth)){t.clone();var o=n.clone();if("abs"===n.fname){var a=t.sign(),u=i.sign();if(i.isInfinity)return p1.multiply(new g1(a),new g1(u));if(i.equals(0))return a=p1.parse(t.multiplier),u=p1.parse(n.multiplier),p1.divide(p1.multiply(a,V1.Limit.interval("-1","1")),u);V1.Limit.diverges()}var l=function(e){if(c1.Utils.isVector(e)){for(var t=0;t<e.elements.length;t++)if(!e.elements[t].isInfinity)return!1;return!0}return e.isInfinity},c=function(e,t){return!c1.Utils.isVector(e)&&e.equals(t)};let e=0;do{var p,f,h=k(V1.Limit.limit(t.clone(),r,i,s)),m=k(V1.Limit.limit(n.clone(),r,i,s)),g=l(h)&&l(m)||c(h,0)&&c(m,0)}while(g&&(f=V1.diff(t.clone(),r),p=V1.diff(n.clone(),r),t=(f=p1.divide(f,p)).getNum(),n=f.getDenom()),g&&++e<h1.max_lim_depth);if(!(e>=h1.max_lim_depth))return a=m.equals(0),u=Number(o.power),i.isConstant(!0)&&a?g1.infinity(c1.Utils.even(u)&&h.lessThan(0)?-1:void 0):a?V1.Limit.diverges():p1.divide(h,m)}},rewriteToLog:function(e){var t=e.power.clone();return e.toLinear(),p1.pow(new g1("e"),p1.multiply(t,p1.symfunction(h1.LOG+"",[e])))},getSubbed:function(t,e,n){var r;t.group===q1&&(t=V1.rewriteToLog(t));try{r=t.sub(e,n)}catch(e){if("timeout"===e.message)throw e;r=t}return r},isInterval:function(e){return c1.Utils.isVector(e)},isConvergent:function(e){return!(V1.Limit.isInterval(e)&&e.elements[0].isInfinity&&e.elements[1].isInfinity||e.containsFunction("limit"))},limit:function(t,n,r,i){var s;if(t.isLinear()&&t.isComposite())return s=new g1(0),t.each(function(e){s=p1.add(s,V1.Limit.limit(e,n,r,i))},!0),s;if(t=c1.Algebra.Simplify.simplify(t),i=i||1,!(i++>h1.max_lim_depth)){var e=p1.parse(t.multiplier);t.toUnitMultiplier();try{if(t.isConstant(!0))g=t;else{var o={};o[n]=r;try{var a=p1.parse(t.sub(n,r),o);(a.isConstant(!0)||a.isInfinity)&&(g=a)}catch(e){if("timeout"===e.message)throw e}if(!g){var u=t.getNum(),l=t.getDenom();if(l.isConstant(!0)){if(t.group===q1){var c,p,f,h,m,g,d=t.clone().toLinear(),v=(t.power.clone(),d.getNum()),w=d.getDenom(),y=c1.Utils.decompose_fn(w,n,!0);g=v.group===b1&&v.multiplier.isOne()&&y.ax.group===b1&&y.b.isConstant(!0)&&y.a.isOne()&&y.b.isConstant(!0)?p1.parse(w1("(1/e^({0}))",y.b)):(p=(c=V1.Limit.rewriteToLog(t.clone())).power.clone(),f=c.clone().toLinear(),h=V1.Limit.limit(f,n,r,i),m=V1.Limit.limit(p,n,r,i),p1.pow(h,m))}else if(t.group===S1&&1===t.args.length){var b,S=V1.Limit.limit(t.args[0],n,r,i);if(c1.Utils.isVector(S))return g=S.map(function(e){return t.clone().args[0]=e,V1.Limit.limit(p1.symfunction(t.fname,[e]),n,r,i)}),p1.multiply(e,g);if(S.isConstant(!0)){var M=p1.symfunction(t.fname,[S]);try{k(M),b=!0}catch(e){if("timeout"===e.message)throw e;b=!1}}if(b)g=M;else if(V1.Limit.isConvergent(S))if(t.fname===x1)switch(S.toString()){case"0":g=g1.infinity().negate();break;case"Infinity":case"-Infinity":g=g1.infinity()}else if(t.fname!==I1&&t.fname!==C1||!r.isInfinity){if(t.fname===U1){var N=t.args[0],E=N.getNum(),q=N.getDenom(),P=E.toUnitMultiplier();(r.isInfinity||P.equals("pi")&&q.equals(2))&&(g=divergent())}else if(t.fname===h1.FACTORIAL&&S.isInfinity)return g1.infinity()}else g=V1.Limit.interval(-1,1)}else if(t.group===b1){if(0<t.power)return p1.parse(t,o);g=c1.Utils.even(t.power)?g1.infinity():V1.Limit.diverges()}else if(t.group===E1){for(var d=(U=t.collectSymbols().sort(function(e,t){return e.group-t.group})).pop(),x=k(V1.Limit.limit(d,n,r,i));U.length;){var A=U.pop(),C=k(V1.Limit.limit(A,n,r,i));x.isInfinity||!V1.Limit.isConvergent(x)&&C.equals(0)||x.equals(0)&&V1.Limit.isConvergent(C)?((A=A.containsFunction(x1)?[d,d=A][0]:A).invert(),x=x.isInfinity&&C.isInfinity?g1.infinity():V1.Limit.divide(d,A,n,r,i)):(x=p1.multiply(x,C),d=p1.multiply(d,A))}g=x}else if(t.isComposite()){t.isLinear()||(t=p1.expand(t)),g=new g1(0);for(var I,U=t.collectSymbols().sort(function(e,t){return t.group-e.group}),L=[],_=new g1(0),R=0,T=U.length;R<T;R++)(O=U[R].clone()).group===S1||O.group===E1&&O.hasFunc()?_=p1.add(_,O):L.push(O);L.unshift(_);for(R=0,T=(U=1!==L.length?L:U).length;R<T;R++){var O=U[R];try{I=V1.Limit.limit(O,n,r,i)}catch(e){if("timeout"===e.message)throw e;I=V1.Limit.diverges()}try{g=p1.add(g,I)}catch(e){if("timeout"===e.message)throw e;if(i++>h1.max_lim_depth)return;g=V1.Limit.limit(V1.diff(t,n),n,r,i)}}}}else g=V1.Limit.divide(u,l,n,r,i)}}g=g||p1.symfunction("limit",[t,n,r])}catch(e){if("timeout"===e.message)throw e;g=p1.symfunction("limit",[t,n,r])}return p1.multiply(e,g)}}},Fresnel:{S:function(e){return e.isConstant(!0)?V1.defint(p1.parse("sin(pi*x^2/2)"),g1(0),e,"x"):p1.symfunction("S",arguments)},C:function(e){return e.isConstant(!0)?V1.defint(p1.parse("cos(pi*x^2/2)"),g1(0),e,"x"):p1.symfunction("C",arguments)}}});nerdamer.register([{name:"diff",visible:!0,numargs:[1,3],build:function(){return V1.diff}},{name:"sum",visible:!0,numargs:4,build:function(){return V1.sum}},{name:"product",visible:!0,numargs:4,build:function(){return V1.product}},{name:"integrate",visible:!0,numargs:[1,2],build:function(){return V1.integrate}},{name:"defint",visible:!0,numargs:[3,4],build:function(){return V1.defint}},{name:"S",visible:!0,numargs:1,build:function(){return V1.Fresnel.S}},{name:"C",visible:!0,numargs:1,build:function(){return V1.Fresnel.C}},{name:"limit",visible:!0,numargs:[3,4],build:function(){return V1.Limit.limit}}]),nerdamer.updateAPI()}(),"undefined"!=typeof module&&(nerdamer=require("./nerdamer.core.js"),require("./Calculus.js"),require("./Algebra.js")),function(){var t,J=nerdamer.getCore(),K=J.PARSER,e0=J.Algebra,t0=J.Calculus,n0=t0.integration.decompose_arg,r0=J.Utils.evaluate,q=J.Utils.remove,c=J.Utils.format,i0=J.Utils.build,f=J.Utils.knownVariable,s0=J.Symbol,o0=J.Utils.isSymbol,u=J.Utils.variables,a0=J.groups.S,u0=J.groups.PL,l0=J.groups.CB,c0=J.groups.CP,p0=J.groups.FN,f0=J.Settings,a=J.Utils.range,h0=J.Utils.isArray;function m0(e,t){if(t.isConstant()&&e.isConstant()&&!e.equals(t)||e.equals(J.Settings.IMAGINARY)&&t.isConstant(!0)||t.equals(J.Settings.IMAGINARY)&&e.isConstant(!0))throw new J.exceptions.NerdamerValueError(e.toString()+" does not equal "+t.toString());this.LHS=e,this.RHS=t}J.Settings.SOLVE_RADIUS=1e3,J.Settings.ROOTS_PER_SIDE=10,J.Settings.make_pi_conversions=!1,J.Settings.STEP_SIZE=.1,J.Settings.EPSILON=2e-13,J.Settings.MAX_NEWTON_ITERATIONS=200,J.Settings.NEWTON_EPSILON=2e-15,J.Settings.MAX_NON_LINEAR_TRIES=12,J.Settings.NON_LINEAR_JUMP_AT=50,J.Settings.NON_LINEAR_JUMP_SIZE=100,J.Settings.NON_LINEAR_START=.01,J.Settings.NEWTON_SLICES=200,J.Settings.SOLUTION_PROXIMITY=1e-14,J.Settings.FILTER_SOLUTIONS=!0,J.Settings.MAX_SOLVE_DEPTH=10,J.Settings.ZERO_EPSILON=1e-9,J.Settings.MAX_BISECTION_ITER=2e3,J.Settings.BI_SECTION_EPSILON=1e-12,J.Symbol.prototype.hasTrig=function(){return this.containsFunction(["cos","sin","tan","cot","csc","sec"])},J.Symbol.prototype.hasNegativeTerms=function(){if(this.isComposite())for(var e in this.symbols){var t=this.symbols[e];if(t.group===u0&&t.hasNegativeTerms()||this.symbols[e].power.lessThan(0))return!0}return!1},m0.prototype={toString:function(){return this.LHS.toString()+"="+this.RHS.toString()},text:function(e){return this.LHS.text(e)+"="+this.RHS.text(e)},toLHS:function(e){e=!!e;var t=(n=this.removeDenom()).LHS,n=n.RHS,t=(t.isConstant(!0)&&!n.isConstant(!0)&&([t,n]=[n,t]),K.subtract(t,n));return new m0(e?K.expand(t):t,new s0(0)).removeDenom().LHS},removeDenom:function(){var e=this.LHS.clone(),t=this.RHS.clone(),n=K.multiply(e.getDenom(),t.getDenom());if(e=K.expand(K.multiply(e,n.clone())),(t=K.expand(K.multiply(t,n))).group===c0&&t.group!==c0&&(r=e,e=t,t=r),e.group===l0){var r=new s0(e.multiplier),i=t.clone();e.each(function(e){e.power.lessThan(0)?i=K.divide(i,e):r=K.multiply(r,e)}),e=r,t=i}else if(e.group===c0)for(var s in e.symbols){var o=e.symbols[s];if(o.group===l0)for(var a in o.symbols){a=o.symbols[a];if(a.power.lessThan(0))return new m0(K.expand(K.multiply(a.clone().toLinear(),e)),K.expand(K.multiply(a.clone().toLinear(),t)))}}return new m0(e,t)},clone:function(){return new m0(this.LHS.clone(),this.RHS.clone())},sub:function(e,t){var n=this.clone();return n.LHS=n.LHS.sub(e.clone(),t.clone()),n.RHS=n.RHS.sub(e.clone(),t.clone()),n},isZero:function(){return J.Utils.evaluate(this.toLHS()).equals(0)},latex:function(e){return[this.LHS.latex(e),this.RHS.latex(e)].join("=")}},K.equals=function(e,t){return new m0(e,t)},t=K.functions.simplify[0],K.functions.simplify[0]=function(e){return e instanceof m0?(e.LHS=t(e.LHS),e.RHS=t(e.RHS),e):t(e)},J.Expression.prototype.equals=function(e){return e instanceof J.Expression&&(e=e.symbol),new m0(this.symbol,e)},J.Expression.prototype.solveFor=function(e){J.Utils.armTimeout();try{var t=this.symbol;if(this.symbol instanceof m0){if(this.symbol.LHS.isConstant()&&this.symbol.RHS.equals(e))return[new J.Expression(this.symbol.LHS)];if(this.symbol.RHS.isConstant()&&this.symbol.LHS.equals(e))return[new J.Expression(this.symbol.RHS)]}return v0(t,e).map(function(e){return e=J.Algebra.Simplify.simplify(K.parse(e)),new J.Expression(e)})}catch(e){if("timeout"===e.message)throw e;console.log(e)}finally{J.Utils.disarmTimeout()}},J.Expression.prototype.expand=function(){var e;return this.symbol instanceof m0?((e=this.symbol.clone()).RHS=K.expand(e.RHS),e.LHS=K.expand(e.LHS),new J.Expression(e)):new J.Expression(K.expand(this.symbol))},J.Expression.prototype.variables=function(){return this.symbol instanceof m0?J.Utils.arrayUnique(u(this.symbol.LHS).concat(u(this.symbol.RHS))):u(this.symbol)};function e(e,t){return K.equals(e,t)}J.Equation=m0;var g0=J.Utils.checkAll=function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return!1;return!0},d0=J.Solve={version:"2.0.3",solutions:[],solve:function(e,t){var n=f0.PARSE2NUMBER,e=(f0.PARSE2NUMBER=!1,v0(e,String(t)));return f0.PARSE2NUMBER=n,new J.Vector(e)},toLHS:function(e,t){var n;return o0(e)?e:(e instanceof m0||((n=e.split("="))[1]=n[1]||"0",e=new m0(K.parse(n[0]),K.parse(n[1]))),e.toLHS(t))},solveCircle:function(e,t){for(var n=t.map(function(e){return K.parse(e)}),r=[],i=[],s=0;s<e.length;s++){for(var o=[],a=0;a<n.length;a++)o.push(Number(J.Algebra.degree(e[s],n[a])));o.push(J.Utils.arraySum(o,!0)),r.push(o)}var u,l,c=e[0],p=e[1];return r[0][2]>r[1][2]&&([p,c]=[c,p],[r[1],r[0]]=[r[0],r[1]]),1===r[0][0]&&2===r[0][2]&&2===r[1][0]&&4===r[1][2]&&(u=t[0],t=t[1],p=v0(K.parse(p,f(u,v0(K.parse(c),u)[0])),t).map(function(e){return e.toString()}),l=[v0(K.parse(c,f(t,p[0])))[0].toString()],p[1]&&l.push(v0(K.parse(c,f(t,p[1])))[0].toString()),f0.SOLUTIONS_AS_OBJECT?((i={})[u]=l,i[t]=p):(p.unshift(t),l.unshift(u),i=[l,p])),i},solveNonLinearSystem:function(e,t,r){if(t<0)return[];r=void 0===r?J.Settings.NON_LINEAR_START:r;var i,s,o,a,u,l=J.Settings.MAX_NON_LINEAR_TRIES,c=Math.floor(l/2),p=(t=void 0===t?l:t,J.Settings.NON_LINEAR_JUMP_AT),f=J.Settings.NON_LINEAR_JUMP_SIZE,l=!0,h=J.Utils.arrayGetVariables(e),m=J.Matrix.jacobian(e,h,function(e){return i0(e,h)},!0),g=J.Settings.MAX_NEWTON_ITERATIONS,d=e.map(function(e){return i0(e,h)}),v=m.map(function(e){return i0(e,h)},!0),w=J.Matrix.cMatrix(0,h),y=J.Matrix.cMatrix(r,h),b=0;do{if(g<b)break;i=function(e,n){return e.map(function(e,t){return Number(n.get(t,0))})}(h,y),a=y.clone(),d.forEach(function(e,t){y.set(t,0,e.apply(null,i))});var S=new J.Matrix;if(v.each(function(e,t,n){e=e.apply(null,i);S.set(t,n,e)}),S=S.invert(),u=(s=K.multiply(S,y).negate()).subtract(w,function(e){return K.parse(Number(e))}),w=a.add(s,function(e){return K.parse(Number(e))}),y=w,p<=b)if(1<o)return t===c&&(r=0),r+=(c<t?1:-1)*(n=t%Math.floor(c)+1)*f,d0.solveNonLinearSystem(e,--t,r)}while((a=o,b++,o=u.max(),Number(o)!==Number(a))&&Number(o)>=Number.EPSILON);return l?d0.systemSolutions(y,h,!0,function(e){return J.Utils.round(Number(e),14)}):[]},systemSolutions:function(e,r,i,s){var o=J.Settings.SOLUTIONS_AS_OBJECT?{}:[];return e.each(function(e,t){var n=(i?K.expand(e):e).valueOf(),e=(s&&(n=s.call(e,n)),r[t]);J.Settings.SOLUTIONS_AS_OBJECT?o[e]=n:o.push([e,n])}),o},solveSystemBySubstitution:function(e){var t=u(e[0]),n=u(e[1]);return 2===e.length&&2===t.length&&J.Utils.arrayEqual(t,n)?d0.solveCircle(e,t):[]},solveSystem:function(e,t){for(var n=0;n<e.length;n++)e[n]=d0.toLHS(e[n]);var r,i=e.length,s=new J.Matrix,o=new J.Matrix,a=!1;if(void 0===t){if(!e0.allLinear(e))try{return d0.solveNonLinearSystem(e)}catch(c){if("timeout"===c.message)throw c;if(c instanceof J.exceptions.DivisionByZero)return d0.solveSystemBySubstitution(e)}if(1===(r=J.Utils.arrayGetVariables(e)).length){var u,l=0;do{var c=e[l].clone()}while(0<l&&(c=c.sub(r[0],u[0])),u=v0(c,r[0]),++l<e.length);return f0.SOLUTIONS_AS_OBJECT?(h={})[r[0]]=u:h=0===u.length?u:[r[0],u],h}if(r.length<e.length){for(var p=[],l=e.length,n=0;n<l-1;n++)p.push(K.parse(e[n]));for(var f={},h=d0.solveSystem(p,r),m=(Array.isArray(h)?h.forEach(function(e){f[e[0]]=e[1]}):f=h,!0),n=l-1;n<l;n++)K.parse(e[n],f).equals(0)||(m=!1);if(m)return h}for(n=0;n<r.length;n++)nerdamer.setVar(r[n],"delete");for(n=0;n<i;n++){for(var c=e[n],g=0;g<r.length;g++){var d=r[g],v=[],w=(c.each(function(e){e.contains(d)&&(v=v.concat(e.coeffs()))}),J.Utils.arraySum(v));s.set(n,g,w)}var y=c.clone();r.map(function(e){y=y.stripVar(e,!0)}),o.set(n,0,y.negate())}}else for(r=t,a=!0,n=0;n<i;n++){o.set(n,0,new s0(0));for(c=K.expand(e[n]).collectSummandSymbols(),g=0;g<t.length;g++){s.set(n,g,new s0(0));for(var d=t[g],b=0;b<c.length;b++){for(var S,M=c[b],N=!1,E=0;E<t.length;E++)M.contains(t[E])&&(N&&J.err("Multiple variables found for term "+M),N=!0);M.contains(d)&&(S=n0(q(c,b),d),b--,s.set(n,g,K.add(s.get(n,g),S[0])))}}for(b=0;b<c.length;b++)o.set(n,0,K.add(o.get(n,0),c[b]))}if(r.length!==e.length||s.determinant().equals(0))throw new J.exceptions.SolveError("System does not have a distinct solution");h=(s=s.invert()).multiply(o);return J.Utils.isArray(t)&&h.each(function(e){return e.negate()}),d0.systemSolutions(h,r,a)},quad:function(e,t,n){e=K.subtract(K.pow(t.clone(),s0(2)),K.multiply(K.multiply(n.clone(),e.clone()),s0(4))),e=K.expand(e),e=K.pow(e,s0(.5)),n=K.parse(K.multiply(new s0(2),n.clone()));return[K.parse(c("(-({0})+({1}))/({2})",t,e,n)),K.parse(c("(-({0})-({1}))/({2})",t,e,n))]},cubic:function(e,t,n,r){r=r.text(),n=n.text(),t=t.text(),e=`(-(${n})^3/(27*(${r})^3)+(${n})*(${t})/(6*(${r})^2)-(${e.text()})/(2*(${r})))`,t=`((${t})/(3*(${r}))-(${n})^2/(9*(${r})^2))`,e=`((${e})+sqrt((${e})^2+(${t})^3))^(1/3)+((${e})-sqrt((${e})^2+(${t})^3))^(1/3)-(${`(${n})/(3*(${r}))`})`,t="1/2+sqrt(3)/2*i";return[K.parse(e),K.parse(`(${e})(${t})`),K.parse(`(${e})(${t})^2`)]},quartic:function(e,t,n,r,i){var s,o,a;return J.Utils.arrayUnique(u(i).concat(u(r)).concat(u(n)).concat(u(t)).concat(u(e))).map(function(e){e,0}),i=i.toString(),r=r.toString(),n=n.toString(),t=t.toString(),e=e.toString(),s=K.parse(c("(8*({0})*({2})-3*({1})^2)/(8*({0})^2)",i,r,n)).toString(),o=K.parse(c("(({1})^3-4*({0})*({1})*({2})+8*({0})^2*({3}))/(8*({0})^3)",i,r,n,t)).toString(),a=K.parse(c("12*({0})*({4})-3*({1})*({3})+({2})^2",i,r,n,t,e)).toString(),n=K.parse(c("2*({2})^3-9*({1})*({2})*({3})+27*({1})^2*({4})+27*({0})*({3})^2-72*({0})*({2})*({4})",i,r,n,t,e)).toString(),t=K.parse(c("((({1})+(({1})^2-4*({0})^3)^(1/2))/2)^(1/3)",a,n)).toString(),a0=K.parse(c("(1/2)*(-(2/3)*({1})+(1/(3*({0}))*(({2})+(({3})/({2})))))^(1/2)",i,s,t,a)).toString(),[K.parse(c("-(({1})/(4*({0})))-({4})+(1/2)*sqrt(-4*({4})^2-2*({2})+(({3})/({4})))",i,r,s,o,a0)),K.parse(c("-(({1})/(4*({0})))-({4})-(1/2)*sqrt(-4*({4})^2-2*({2})+(({3})/({4})))",i,r,s,o,a0)),K.parse(c("-(({1})/(4*({0})))+({4})+(1/2)*sqrt(-4*({4})^2-2*({2})-(({3})/({4})))",i,r,s,o,a0)),K.parse(c("-(({1})/(4*({0})))+({4})-(1/2)*sqrt(-4*({4})^2-2*({2})-(({3})/({4})))",i,r,s,o,a0))]},divideAndConquer:function(e,t){var n=[],e=J.Algebra.Factor.factorInner(e);return e.group===l0&&e.each(function(e){e=s0.unwrapPARENS(e),n=n.concat(v0(e,t))}),n},csolve:function(u,l){return J.Utils.block("IGNORE_E",function(){var e=[],t=J.Utils.decompose_fn(u,l,!0);if(t.x.group===a0)for(var n,r=K.parse(t.x.power),i=Number(r),t=K.pow(K.divide(t.b.negate(),t.a),r.invert()),s=(t=s0.toPolarFormArray(t))[0],o=(t[1],s.toString()),a=(r.toString(),0);a<i;a++)n=c("({0})*e^(2*{1}*pi*{2}*{3})",o,a,r,J.Settings.IMAGINARY),n=K.parse(n),e.push(n);return e},!0)},getPoints:function(e,t,n){t=t||.01;let l=[];function r(e,t){var n,r,i=[],s=e[0];let o=Math.sign(c(s));for(var a=0,u=e.length;a<u&&i.length<t;a++)n=e[a],r=c(n),r=Math.sign(r),isNaN(r)||(r!==o&&(i.push(n),i.push(e[a-1])),o=r);l=l.concat(i)}var c=i0(e),i=Math.round(0),s=(c(i),J.Settings.ROOTS_PER_SIDE),o=s,e=(l.push(Math.floor(i/2)),l.push(Math.abs(i)),l.push(i),e.each(function(e){e.containsFunction(J.Settings.LOG)&&l.push(.1)}),a(-J.Settings.SOLVE_RADIUS,i,t)),i=a(i,J.Settings.SOLVE_RADIUS,t);return r(e,o),r(i,s),n&&(r([t=J.Settings.SOLVE_RADIUS,t*t],1),r([-t*t,-t],1)),l},bisection:function(e,t){var n=e-1,r=e+1;if(Math.sign(t(n))!==Math.sign(t(r))){var i,s,o=0;do{if(i=Math.abs(r-n),o++>J.Settings.MAX_BISECTION_ITER||isNaN(i))return}while(s=(n+r)/2,0<t(n)*t(s)?n=s:r=s,i>=f0.EPSILON);var e=(n+r)/2,a=t(e);if(!isNaN(a)&&Math.abs(a)<=J.Settings.BI_SECTION_EPSILON)return J.Utils.round(e,13)}},bSearch:function(t,n,r){let i=r(t),s=r(n);if(Math.sign(i)!==Math.sign(s)&&!isNaN(i)&&!isNaN(s)){let e=0;do{var o=(t+n)/2;if(Math.sign(i)===Math.sign(r(o))){if(o===t)break;t=o,i=r(t)}else{if(o===n)break;n=o,s=r(n)}}while(e++,t!==n&&e<80);if(isFinite(r(t))&&isFinite(r(n)))return t}},Newton:function(e,t,n,r){var i,s,o=J.Settings.MAX_NEWTON_ITERATIONS,a=0,u=e;do{var l=t(u);if(0===u&&0===l){i=0;break}if(o<++a)return;var c=n(u);if(isNaN(c)||isNaN(l))return;if(0===c)i+=s;else{if(!isFinite(l)||!isFinite(c)||1e25<Math.abs(l))return d0.bSearch(r,u,t);i=u-l/c}if(0===(s=i-u)&&!isFinite(c))return}while(u=i,Math.abs(s)>f0.NEWTON_EPSILON);return i},rewrite:function(e,t,n){t=t||new s0(0),e.isComposite()&&e.isLinear()?(r=[],i=[],e.each(function(e){("sqrt"===(e=e.clone()).fname&&e.contains(n)?r:i).push(e)},!0),1===r.length&&(t=K.expand(K.pow(K.subtract(t,J.Utils.arraySum(i)),new s0(2))),e=K.expand(K.pow(s0.unwrapSQRT(r[0]),new s0(2))))):e=s0.unwrapSQRT(K.expand(e));var r,i,s,o=0,a=e.length;return e.group===c0&&e.contains(n)&&e.isLinear()?(e.distributeMultiplier(),s=new s0(0),e.each(function(e){e.contains(n)?(o++,s=K.add(s,e.clone())):t=K.subtract(t,e.clone())}),e=s,o!==a?d0.rewrite(e,t,n):[e,t]):e.group===l0&&e.contains(n)&&e.isLinear()?(e.multiplier.lessThan(0)&&(e.multiplier=e.multiplier.multiply(new J.Frac(-1)),t.multiplier=t.multiplier.multiply(new J.Frac(-1))),t.equals(0)?new s0(0):(s=new s0(1),e.each(function(e){e.contains(n)?s=K.multiply(s,e.clone()):t=K.divide(t,e.clone())}),e=s,d0.rewrite(e,t,n))):!e.isLinear()&&e.contains(n)?(a=K.parse(e.power.clone().invert()),e=K.pow(e,a.clone()),t=K.pow(K.expand(t),a.clone()),d0.rewrite(e,t,n)):(e.group!==p0&&e.group!==a0&&e.group,[e,t])},sqrtSolve:function(n,r){var e,t=new s0(0),i=new s0(0);if(n.isComposite()&&(n.each(function(e){"sqrt"===e.fname&&e.contains(r)?t=K.add(t,e.clone()):i=K.add(i,e.clone())}),!t.equals(0)))return e=K.expand(K.multiply(K.parse(n.multiplier),K.subtract(K.pow(i,new s0(2)),K.pow(t,new s0(2))))),v0(e,r).filter(function(e){var t;return e.isImaginary()||((t={})[r]=e,r0(n,t).equals(0))?e:void 0})}},v0=function(n,p,i,t,e){if(t=t||0,!(t++>f0.MAX_SOLVE_DEPTH)){i=i||[];function s(e,t){var n,r=o0(e);void 0===e||"number"==typeof e&&isNaN(e)||(h0(e)?e.forEach(function(e){s(e)}):"null"!==e.valueOf()&&("function"==typeof J.Settings.PRE_ADD_SOLUTION&&(e=J.Settings.PRE_ADD_SOLUTION(e)),r||(e=K.parse(e)),n=(e=J.Settings.make_pi_conversions&&t&&(t=(r=K.divide(e.clone(),new s0(Math.PI))).multiplier,n=Math.abs(t.num),t=Math.abs(t.den),n<10)&&t<10?K.multiply(r,new s0("pi")):e).toString(),a[n]||i.push(e),a[n]=!0))}var r,o,a={},u={};u[p]=0;if(n instanceof m0){h=p,m=i,S=t,q=(r=n).toString();var l=!(l=q.match(/(?<![a-z])abs/g))||2<l.length||r.LHS.group!==p0&&r.RHS.group!==p0?null:(l=r.constructor(q.replace(/(?<![a-z])abs/,"")),r=r.constructor(q.replace(/(?<![a-z])abs/,"(-1)")),q=v0(l,h,null,m,S),[v0(r,h,null,m,S),q]);if(l)return s(l),i;if(n.isZero())return[new s0(0)];if(n.LHS.equals(p)&&!n.RHS.contains(p,!0))return[n.RHS];if(n.RHS.equals(p)&&!n.LHS.contains(p,!0))return[n.LHS]}if(n instanceof J.Vector&&(n=n.elements),p=p||"x",h0(n))return d0.solveSystem.apply(void 0,arguments);if(!o0(n)||!0!==r0(n.getDenom(),u).equals(0))if(n.group===a0&&n.contains(p))try{var c={};c[p]=0,r0(e,c,"numer"),s(new s0(0))}catch(e){if("timeout"===e.message)throw e}else{if(n.group===l0)return(r=n.getNum()).group===l0?(o=String(p),r.each(function(e){e.contains(o)&&v0(e,p,i,t,n)}),i):v0(r,p,i,t,e);n.group===p0&&"sqrt"===n.fname&&(n=K.pow(s0.unwrapSQRT(n),new s0(2)));var f=(J.Utils.isSymbol(n)?n:d0.toLHS(n,!1)).getNum(),h=J.Utils.variables(f),m=h.length;if(((f=J.Utils.isInt(f.power)&&1<f.power?K.parse(f).toLinear():f).group===a0||f.group===l0)&&f.contains(p))return[new s0(0)];function g(n){var e=(n=K.expand(n,{expand_denominator:!0,expand_functions:!0})).clone();if(n.symbols)for(var t in n.symbols){var r,t=n.symbols[t],i=t.getDenom();if(!i.isConstant(!0)&&n.isComposite())return r=new s0(0),n.each(function(e){r=K.add(r,K.multiply(e,i.clone()))}),g(K.multiply(K.parse(n.multiplier),r));var s=n0(t,p),o=s[1].fname===J.Settings.SQRT,a=s0.unwrapSQRT(s[1]),u=a.power.clone();if(!o0(u)&&!u.equals(.5))if(u.den.gt(1)){if(o)return n=K.subtract(n,t.clone()),n=K.add(n,K.multiply(s[0].clone(),a)),g(n);o=w[u.den];w[u.den]=o?+o:1}else{if(-1===u.sign())return l=K.parse(p+"^"+Math.abs(u)),n.each(function(e,t){e.contains(p)&&(n.symbols[t]=K.multiply(e,l.clone()))}),w={},g(K.parse(n));if(t.group===u0){var l,c,s=J.Utils.arrayMin(J.Utils.keys(t.symbols));if(s<0)return l=K.parse(p+"^"+Math.abs(s)),c=new s0(0),e.each(function(e){c=K.add(c,K.multiply(e.clone(),l.clone()))},!0),c}}}return n}function d(e){var t=new s0(0),n=new s0(0);return e.each(function(e){e.contains(p,!0)?t=K.add(t,e.clone()):n=K.subtract(n,e.clone())}),[t,n]}var v,w={};if(d0.inverseFunctionSolve=function(e,t,n){var r=n0(t.args[0],p);if(r[1].group===a0)return K.divide(K.symfunction(e,[K.divide(n,K.parse(t.multiplier))]),r[0])},(f=g(f)).equals(0))return[f];var y,b,S=J.Utils.keys(w);if(1===S.length&&(v=S[0],f.each(function(e,t){var n,r;e.contains(p)&&(r=(n=(e=n0(e,p))[1]).power).den.gt(1)&&(n.power=r.multiply(new J.Frac(v)),f.symbols[t]=K.multiply(n,e[0]))}),f=K.parse(f)),s(d0.sqrtSolve(f,p)),1===m)if(f.isPoly(!0)){var M=new J.Algebra.Classes.Factors;if(J.Algebra.Factor.factorInner(f,M),1<M.getNumberSymbolics())for(var N in M.factors)s(v0(M.factors[N],p));else{var E=(U=J.Utils.getCoeffs(f,p)).length-1,q=!1;h[0]===p&&(g0(U,function(e){return e.group!==J.groups.N})&&(l=J.Algebra.proots(f),g0(l,function(e){return!J.Utils.isInt(e)}))&&(q=!0,l.map(function(e){s(new s0(e))})),q||((n=K.parse(n))instanceof J.Equation&&(n=n.toLHS()),1===E?s(K.divide(U[0],U[1].negate())):2===E?s(K.expand(d0.quad.apply(void 0,U))):3===E?(i=[],L=J.Algebra.Factor.factorInner(n),0<(i=[]).length?s(i):s(d0.cubic.apply(void 0,U))):e0.proots(f).map(s)))}}else try{for(var x,A,P=f.hasTrig(),k=d0.getPoints(f,.1),F=d0.getPoints(f,.05),D=d0.getPoints(f,.01,!0),C=J.Utils.arrayUnique(k.concat(F).concat(D)).sort(function(e,t){return e-t}),B=i0(f.clone()),V=[],I=0;I<C.length;I++)x=C[I],void 0===(A=d0.bisection(x,B))?V.push(x):s(A,P);var C=V,G=t0.diff(f.clone()),H=i0(G);let e=C[0];for(I=0;I<C.length;I++)x=C[I],s(d0.Newton(x,B,H,e),P),e=x;i.sort((e,t)=>{var e=e.text("decimals"),t=t.text("decimals"),n=Number(e),r=Number(t);return isNaN(n)&&isNaN(r)?e.localeCompare(t):isNaN(n)&&!isNaN(r)?-1:!isNaN(n)&&isNaN(r)?1:n-r}),i=(i=i.map(e=>e.isConstant()?new s0(Number(Number(e).toPrecision(15))):e)).filter((e,t,n)=>{e=Number(Number(e).toPrecision(15));n=Number(n[t-1]);return!(0!==t&&!isNaN(e)&&!isNaN(n))||Math.abs(e-n)>=f0.EPSILON})}catch(e){if("timeout"===e.message)throw e;console.log(e)}else if(!f.hasFunc(p)&&f.isComposite())try{var U,L=J.Algebra.Factor.factorInner(f.clone()),j=K.expand(K.parse(L)),X=K.expand(f.clone()),Z=K.subtract(j,X);let e=!0;if((e=Z.equals(0)?e:!1)&&L.group===l0)L.each(function(e){s(v0(e,p))});else{switch(E=(U=J.Utils.getCoeffs(f,p)).length-1){case 0:var _,z,$,Q,R=(_=d(f))[0],T=_[1];R.group===J.groups.EX&&($=`${z=J.Settings.LOG}((${T})/(${R.multiplier}))/(${z}(${R.value})*${R.power.multiplier})`,Q=K.parse($),s(Q));break;case 1:s(K.divide(U[0],U[1].negate()));break;case 2:s(d0.quad.apply(void 0,U));break;case 3:s(d0.cubic.apply(void 0,U));break;case 4:s(d0.quartic.apply(void 0,U));break;default:s(d0.csolve(f,p)),0===i.length&&s(d0.divideAndConquer(f,p))}0===i.length&&s(v0(L,p,i,t))}}catch(e){if("timeout"===e.message)throw e}else try{var O,W=d0.rewrite(f,null,p),R=W[0],T=W[1];if(R.group===p0)"abs"===R.fname?R.args[0].toString()===p&&s([T.clone(),T.negate()]):"sin"===R.fname?s(d0.inverseFunctionSolve("asin",R,T)):"cos"===R.fname?s(d0.inverseFunctionSolve("acos",R,T)):"tan"===R.fname?s(d0.inverseFunctionSolve("atan",R,T)):R.fname===J.Settings.LOG?(N=(O=n0(R.args[0],p))[1]).group===a0&&(f=new m0(N,T=K.divide(K.subtract(K.pow(1<R.args.length?R.args[1]:new s0("e"),K.divide(T,K.parse(R.multiplier))),O[3]),O[0])).toLHS(),s(v0(f,p))):s(K.subtract(R,T));else{var Y=new m0(R,T).toLHS();if(Y.equals(f))throw new Error("Stopping. No stop condition exists");s(v0(Y,p))}}catch(e){if("timeout"===e.message)throw e;try{f.group===l0?s(0):f.group===c0&&(R=(_=d(f))[0],T=_[1],R.group===J.groups.EX)&&R.value===p&&(y=R.power.clone().invert(),s(K.pow(T,y)))}catch(e){if("timeout"===e.message)throw e;console.log("error "+e)}}v&&(i=i.map(function(e){return K.pow(e,new s0(v))})),o0(n)&&(b={},i=i.filter(function(e){try{b[p]=e;var t=Number(r0(n,b));return isNaN(t),!0}catch(e){if("timeout"===e.message)throw e;return!1}}))}}return i};nerdamer.register([{name:"solveEquations",parent:"nerdamer",numargs:-1,visible:!0,build:function(){return v0}},{name:"solve",parent:"Solve",numargs:2,visible:!0,build:function(){return J.Solve.solve}},{name:"setEquation",parent:"Solve",visible:!0,build:function(){return e}}]),nerdamer.updateAPI()}(),"undefined"!=typeof module&&(nerdamer=require("./nerdamer.core.js"),require("./Calculus"),require("./Algebra")),function(){"use strict";var q=nerdamer.getCore(),x=q.PARSER,A=q.Symbol,C=q.Utils.format,a=q.Utils.isVector,u=q.Utils.isArray,I=(q.Vector,q.groups.S),U=(q.groups.EX,q.groups.CP),L=q.groups.PL,_=q.groups.CB,l=q.groups.FN,R=(q.Settings.Laplace_integration_depth=40,A.prototype.findFunction=function(e){if(this.group===l&&this.fname===e)return this.clone();var t;if(this.symbols)for(var n in this.symbols)if(t=this.symbols[n].findFunction(e))break;return t},q.Extra={version:"1.4.2",LaPlace:{transform:function(n,r,i){n=n.clone(),r=r.toString();var e=(n=A.unwrapSQRT(n,!0)).stripVar(r),t=n.group;if((n=x.divide(n,e.clone())).isConstant()||!n.contains(r,!0))s=x.parse(C("({0})/({1})",n,i));else if(t===I&&q.Utils.isInt(n.power))var t=String(n.power),s=x.parse(C("factorial({0})/({1})^({0}+1)",t,i));else if(n.group===I&&n.power.equals(.5))s=x.parse(C("sqrt(pi)/(2*({0})^(3/2))",i));else if(n.isComposite())s=new A(0),n.each(function(e){s=x.add(s,R.LaPlace.transform(e,r,i))},!0);else if(!n.isE()||n.power.group!==I&&n.power.group!==_)if(n.group!==l||-1===["sin","cos","sinh","cosh"].indexOf(n.fname)||n.args[0].group!==I&&n.args[0].group!==_){var o,t=q.Settings.integration_depth<q.Settings.Laplace_integration_depth;t&&(o=q.Settings.integration_depth,q.Settings.integration_depth=q.Settings.Laplace_integration_depth),q.Utils.block("PARSE2NUMBER",function(){var e=r,t=n.sub(r,e),t=x.parse("e^(-"+i+"*"+e+")*"+t);if((s=q.Calculus.integrate(t,e)).hasIntegral())return x.symfunction("laplace",arguments);s=s.sub(r,0),s=(s=x.expand(x.multiply(s,new A(-1)))).sub(e,r)},!1),s=q.Utils.block("PARSE2NUMBER",function(){return x.parse(s)},!0),t&&(q.Settings.integration_depth=o)}else{a=n.args[0].stripVar(r);switch(n.fname){case"sin":s=x.parse(C("({0})/(({1})^2+({0})^2)",a,i));break;case"cos":s=x.parse(C("({1})/(({1})^2+({0})^2)",a,i));break;case"sinh":s=x.parse(C("({0})/(({1})^2-({0})^2)",a,i));break;case"cosh":s=x.parse(C("({1})/(({1})^2-({0})^2)",a,i))}}else{var a=n.power.stripVar(r);s=x.parse(C("1/(({1})-({0}))",a,i))}return x.multiply(s,e)},inverse:function(S,M,N){var E=S.clone();return q.Utils.block("POSITIVE_MULTIPLIERS",function(){if((S=S.group===_?q.Algebra.PartFrac.partfrac(x.expand(S),M):S).group===I||S.group===_||S.isComposite()){var e,n,t,r,i,s,o,a,u,l,c,p,f,h,m=function(){(i=x.multiply(i,e)).multiplier=i.multiplier.multiply(S.multiplier),i=x.divide(i,t.a)},g=S.multiplier.clone();if(S.toUnitMultiplier(),e=S.getNum(),(a=S.getDenom().toUnitMultiplier()).group===U||a.group===L?(r=a.power.clone(),a.toLinear()):r=new q.Frac(1),n=M.toString(),t=q.Utils.decompose_fn(a,n,!0),q.Utils.decompose_fn(x.expand(e.clone()),n,!0),e.multiplier=e.multiplier.multiply(g),(a.group===I||a.group===_)&&t.x.value===n&&t.b.equals(0)&&q.Utils.isInt(t.x.power))l=t.x.power-1,c=q.Math2.factorial(l),i=x.divide(x.pow(N,new A(l)),new A(c)),m();else if(a.group===U&&r.equals(1))t.x.group===q.groups.PL&&q.Algebra.degree(a).equals(2)?(u=q.Algebra.sqComplete(a,n),a=q.Utils.getU(a),f=q.Utils.decompose_fn(u.a,n,!0).b,u=R.LaPlace.inverse(x.parse(`1/((${a})^2+(${u.c}))`),a,N),i=x.multiply(u,x.parse(`(${g})*e^(-(${f})*(${N}))`))):t.x.isLinear()&&!e.contains(n)?(N=x.divide(N,t.a.clone()),c=0===(l=r-1)||1===l?"1":`(${r}-1)!`,i=x.parse(C("(({0})^({3}-1)*e^(-(({2})*({0}))/({1})))/(({4})*({1})^({3}))",N,t.a,t.b,r,c)),m()):t.x.group===I&&t.x.power.equals(2)&&(e.contains(n)?(f=new A(1),e.group===_&&(s=new A(1),e.each(function(e){e.contains(n)?s=x.multiply(s,e):f=x.multiply(f,e)}),e=s),a=(o=q.Utils.decompose_fn(e,n,!0)).a,u=o.b,l=a.containsFunction("sin"),c=a.containsFunction("cos"),m=u.containsFunction("cos"),p=u.containsFunction("sin"),o.x.value===n&&o.x.isLinear()&&!(l&&m||c||p)?i=x.parse(C("(({1})*cos((sqrt(({2})*({3}))*({0}))/({2})))/({2})",N,o.a,t.a,t.b)):l&&m&&(c=a.findFunction("sin"),p=u.findFunction("cos"),c.args[0].equals(p.args[0]))&&!c.args[0].contains(n)&&(d=x.divide(u,p.toUnitMultiplier()).toString(),l=c.args[0].toString(),h=t.b,m=x.divide(a,c.toUnitMultiplier()),i=x.parse(C("(({1})*({2})*cos({3})*sin(sqrt({4})*({0})))/sqrt({4})+({1})*sin({3})*({5})*cos(sqrt({4})*({0}))",N,f,d,l,h,m)))):i=x.parse(C("(({1})*sin((sqrt(({2})*({3}))*({0}))/({2})))/sqrt(({2})*({3}))",N,e,t.a,t.b)));else if(t.x.power.num&&t.x.power.num.equals(3)&&t.x.power.den.equals(2)&&e.contains("sqrt(pi)")&&!e.contains(n)&&e.isLinear()){var d=x.divide(e.clone(),x.parse("sqrt(pi)"));i=x.parse(C("(2*({2})*sqrt({0}))/({1})",N,t.a,d,e))}else if(r.equals(2)&&t.x.power.equals(2))if(e.contains(n))if((o=q.Utils.decompose_fn(x.expand(e.clone()),n,!0)).x.isComposite()){var v=[],w=e.collectSymbols(function(e){e=A.unwrapPARENS(e);var t=q.Utils.decompose_fn(e,n,!0);return t.symbol=e,t}).sort(function(e,t){e=e.x.value!==n?0:e.x.power;return(t.x.value!==n?0:t.x.power)-e});f=new A(-1);for(var y=0;y<w.length;y++){var b=w[y];b.x.value===n?v.push(b):f=x.multiply(f,b.symbol)}v[0].x.power.equals(2)&&v[1].x.power.equals(1)&&v[1].b.equals(0)&&!v[0].b.equals(0)&&(d=v[0].a.negate(),i=x.parse(C("-(({1})*({2})*({5})*({0})*sin((sqrt(({4})*({5}))*({0}))/({4})))/(2*({4})^2*sqrt(({4})*({5})))-(({1})*({3})*({0})*sin((sqrt(({4})*({5}))*({0}))/({4})))/(2*({4})*sqrt(({4})*({5})))+(({1})*({2})*cos((sqrt(({4})*({5}))*({0}))/({4})))/({4})^2",N,f,d,v[0].b,t.a,t.b)))}else o.x.isLinear()?(f=x.divide(o.a,new A(2)),i=x.parse(C("(({1})*({0})*sin((sqrt(({2})*({3}))*({0}))/({2})))/(({2})*sqrt(({2})*({3})))",N,f,t.a,t.b))):o.x.power.equals(2)&&(i=o.b.equals(0)?(f=x.divide(o.a,new A(2)),x.parse(C("(({1})*sin((sqrt(({2})*({3}))*({0}))/({2})))/(({2})*sqrt(({2})*({3})))+(({1})*({0})*cos((sqrt(({2})*({3}))*({0}))/({2})))/({2})^2",N,f,t.a,t.b))):(f=x.divide(o.a,new A(2)),h=o.b.negate(),x.parse(C("-((({2})*({4})-2*({1})*({3}))*sin((sqrt(({2})*({3}))*({0}))/({2})))/(2*({2})*({3})*sqrt(({2})*({3})))+(({4})*({0})*cos((sqrt(({2})*({3}))*({0}))/({2})))/(2*({2})*({3}))+(({1})*({0})*cos((sqrt(({2})*({3}))*({0}))/({2})))/({2})^2",N,f,t.a,t.b,h))));else f=x.divide(e,new A(2)),i=x.parse(C("(({1})*sin((sqrt(({2})*({3}))*({0}))/({2})))/(({3})*sqrt(({2})*({3})))-(({1})*({0})*cos((sqrt(({2})*({3}))*({0}))/({2})))/(({2})*({3}))",N,f,t.a,t.b));else S.isComposite()&&(r.equals(2)&&t.x.group===I?i=x.parse(`(${g})*(${N})*e^(-(${t.b})*(${N}))`):(i=new A(0),(S=q.Algebra.PartFrac.partfrac(x.expand(S),M)).each(function(e){i=x.add(i,R.LaPlace.inverse(e,M,N))},!0)))}return i=i||x.symfunction("ilt",[E,M,N])},!0)}},Statistics:{frequencyMap:function(e){for(var t={},n=0,r=e.length;n<r;n++){var i=e[n].toString();t[i]||(t[i]=0),t[i]++}return t},sort:function(e){return e.sort(function(e,t){return e.isConstant()&&t.isConstant()||x.error("Unable to sort! All values must be numeric"),e.multiplier.subtract(t.multiplier)})},count:function(e){return new A(e.length)},sum:function(e,t){for(var n=new A(0),r=0,i=e.length;r<i;r++)var s=e[r].clone(),n=t?x.add(x.pow(x.subtract(s,t.clone()),new A(2)),n):x.add(s,n);return n},mean:function(){var e=[].slice.call(arguments);return a(e[0])?R.Statistics.mean.apply(this,e[0].elements):x.divide(R.Statistics.sum(e),R.Statistics.count(e))},median:function(){var t=[].slice.call(arguments);if(a(t[0]))return R.Statistics.median.apply(this,t[0].elements);try{var e,n,r=R.Statistics.sort(t),i=t.length;n=q.Utils.even(i)?(e=i/2,R.Statistics.mean(r[e-1],r[e])):r[Math.floor(i/2)]}catch(e){if("timeout"===e.message)throw e;n=x.symfunction("median",t)}return n},mode:function(){var e=[].slice.call(arguments);if(a(e[0]))return R.Statistics.mode.apply(this,e[0].elements);var t=R.Statistics.frequencyMap(e);if(1===q.Utils.keys(t).length)o=e[0];else{var n,r={};for(n in t){var i,s=t[n];s in r?u(i=r[s])?i.push(n):r[s]=[n,r[s]]:r[s]=n}var e=r[Math.max.apply(null,q.Utils.keys(r))],o=u(e)?x.symfunction("mode",e.sort()):x.parse(e)}return o},gVariance:function(e,t){var n=R.Statistics.mean.apply(R.Statistics,t),t=R.Statistics.sum(t,n);return x.multiply(e,t)},variance:function(){var e,t=[].slice.call(arguments);return a(t[0])?R.Statistics.variance.apply(this,t[0].elements):(e=x.divide(new A(1),R.Statistics.count(t)),R.Statistics.gVariance(e,t))},sampleVariance:function(){var e,t=[].slice.call(arguments);return a(t[0])?R.Statistics.sampleVariance.apply(this,t[0].elements):(e=x.divide(new A(1),x.subtract(R.Statistics.count(t),new A(1))),R.Statistics.gVariance(e,t))},standardDeviation:function(){var e=[].slice.call(arguments);return a(e[0])?R.Statistics.standardDeviation.apply(this,e[0].elements):x.pow(R.Statistics.variance.apply(R.Statistics,e),new A(.5))},sampleStandardDeviation:function(){var e=[].slice.call(arguments);return a(e[0])?R.Statistics.sampleStandardDeviation.apply(this,e[0].elements):x.pow(R.Statistics.sampleVariance.apply(R.Statistics,e),new A(.5))},zScore:function(e,t,n){return x.divide(x.subtract(e,t),n)}},Units:{table:{foot:"12 inch",meter:"100 cm",decimeter:"10 cm"}}});nerdamer.register([{name:"laplace",visible:!0,numargs:3,build:function(){return R.LaPlace.transform}},{name:"ilt",visible:!0,numargs:3,build:function(){return R.LaPlace.inverse}},{name:"mean",visible:!0,numargs:-1,build:function(){return R.Statistics.mean}},{name:"median",visible:!0,numargs:-1,build:function(){return R.Statistics.median}},{name:"mode",visible:!0,numargs:-1,build:function(){return R.Statistics.mode}},{name:"smpvar",visible:!0,numargs:-1,build:function(){return R.Statistics.sampleVariance}},{name:"variance",visible:!0,numargs:-1,build:function(){return R.Statistics.variance}},{name:"smpstdev",visible:!0,numargs:-1,build:function(){return R.Statistics.sampleStandardDeviation}},{name:"stdev",visible:!0,numargs:-1,build:function(){return R.Statistics.standardDeviation}},{name:"zscore",visible:!0,numargs:3,build:function(){return R.Statistics.zScore}}]),nerdamer.updateAPI()}(),"undefined"!=typeof module&&(module.exports=nerdamer);