(window.expressions_bundle_jsonpfunction=window.expressions_bundle_jsonpfunction||[]).push([[1],Array(43).concat([function(r,t){r.exports={pow:function(r,t){if(null==t)throw new Error("Missing exponent");return Array.isArray(r)?r.map((r=>Math.pow(r,t))):Math.pow(r,t)}}},function(r,t){r.exports={eq:function(r,t){if(null==t)throw new Error("Missing b value");if(Array.isArray(r)){if(!Array.isArray(t))return r.every((r=>r===t));if(r.length!==t.length)throw new Error("Array length mismatch");return r.every(((r,n)=>r===t[n]))}return r===t}}},function(r,t){r.exports={add:function(...r){return 1===r.length?Array.isArray(r[0])?r[0].reduce(((r,t)=>r+t)):r[0]:r.reduce(((r,t)=>{if(Array.isArray(r)&&Array.isArray(t)){if(t.length!==r.length)throw new Error("Array length mismatch");return r.map(((r,n)=>r+t[n]))}return Array.isArray(r)?r.map((r=>r+t)):Array.isArray(t)?t.map((t=>t+r)):r+t}))}}},function(r,t){function n(r){if(Array.isArray(r))return r.length;throw new Error("Must pass an array")}n.skipNumberValidation=!0,r.exports={size:n}},function(r,t){const n=(r,t)=>Math.log(r)/Math.log(t);r.exports={log:function(r,t=Math.E){if(t<=0)throw new Error("Base out of range");if(Array.isArray(r))return r.map((r=>{if(r<0)throw new Error("Must be greater than 0");return n(r,t)}));if(r<0)throw new Error("Must be greater than 0");return n(r,t)}}},function(r,t){r.exports={max:function(...r){return 1===r.length?Array.isArray(r[0])?r[0].reduce(((r,t)=>Math.max(r,t))):r[0]:r.reduce(((r,t)=>{if(Array.isArray(r)&&Array.isArray(t)){if(t.length!==r.length)throw new Error("Array length mismatch");return r.map(((r,n)=>Math.max(r,t[n])))}return Array.isArray(r)?r.map((r=>Math.max(r,t))):Array.isArray(t)?t.map((t=>Math.max(t,r))):Math.max(r,t)}))}}},function(r,t){r.exports={transpose:function(r,t){const n=r[t].length;return r[t].map(((t,e)=>r.map((r=>{if(Array.isArray(r)){if(r.length!==n)throw new Error("Array length mismatch");return r[e]}return r}))))}}},function(r,t){r.exports={min:function(...r){return 1===r.length?Array.isArray(r[0])?r[0].reduce(((r,t)=>Math.min(r,t))):r[0]:r.reduce(((r,t)=>{if(Array.isArray(r)&&Array.isArray(t)){if(t.length!==r.length)throw new Error("Array length mismatch");return r.map(((r,n)=>Math.min(r,t[n])))}return Array.isArray(r)?r.map((r=>Math.min(r,t))):Array.isArray(t)?t.map((t=>Math.min(t,r))):Math.min(r,t)}))}}},function(r,t){r.exports={subtract:function(r,t){if(Array.isArray(r)&&Array.isArray(t)){if(r.length!==t.length)throw new Error("Array length mismatch");return r.map(((r,n)=>r-t[n]))}return Array.isArray(r)?r.map((r=>r-t)):Array.isArray(t)?t.map((t=>r-t)):r-t}}},function(r,t){r.exports={lt:function(r,t){if(null==t)throw new Error("Missing b value");if(Array.isArray(r)){if(!Array.isArray(t))return r.every((r=>rrr>t));if(r.length!==t.length)throw new Error("Array length mismatch");return r.every(((r,n)=>r>t[n]))}return r>t}}},function(r,t,n){const{get:e}=n(3),a=n(55),{functions:o}=n(56),{parse:i}=n(93),u=a((function(r,t){if(null==r)throw new Error("Missing expression");if("string"!=typeof r)throw new Error("Expression must be a string");try{return i(r,t)}catch(r){throw new Error(`Failed to parse expression. ${r.message}`)}}));function s(r,t,n){const a=Object.assign({},o,n);return function r(n){if("number"==typeof n)return n;if("function"===n.type)return function(t){const{name:n,args:e}=t,o=a[n];if(!o)throw new Error(`No such function: ${n}`);const i=e.map(r);return o.skipNumberValidation||c(i)?o(...i):NaN}(n);if("variable"===n.type){const r=function(r,t){const n=e(r,t);return void 0!==n?n:r[t]}(t,n.value);if(void 0===r)throw new Error(`Unknown variable: ${n.value}`);return r}if("namedArgument"===n.type)throw new Error(`Named arguments are not supported in tinymath itself, at ${n.name}`)}(r)}function c(r){return r.every((r=>Array.isArray(r)?c(r):"number"==typeof r&&!isNaN(r)))}r.exports={parse:u,evaluate:function(r,t={},n={}){return t=t||{},s(u(r),t,n)},interpret:s}},function(r,t,n){"use strict";var e=Number.isNaN||function(r){return"number"==typeof r&&r!=r};function a(r,t){if(r.length!==t.length)return!1;for(var n=0;nMath.abs(r))):Math.abs(r)}}},function(r,t){r.exports={cbrt:function(r){return Array.isArray(r)?r.map((r=>Math.cbrt(r))):Math.cbrt(r)}}},function(r,t){r.exports={ceil:function(r){return Array.isArray(r)?r.map((r=>Math.ceil(r))):Math.ceil(r)}}},function(r,t){const n=(r,t,n)=>{if(t>n)throw new Error("Min must be less than max");return Math.min(Math.max(r,t),n)};r.exports={clamp:function(r,t,e){if(null===e)throw new Error("Missing maximum value. You may want to use the 'min' function instead");if(null===t)throw new Error("Missing minimum value. You may want to use the 'max' function instead");if(Array.isArray(e)){if(Array.isArray(r)&&Array.isArray(t)){if(r.length!==e.length||r.length!==t.length)throw new Error("Array length mismatch");return e.map(((e,a)=>n(r[a],t[a],e)))}if(Array.isArray(r)){if(r.length!==e.length)throw new Error("Array length mismatch");return e.map(((e,a)=>n(r[a],t,e)))}if(Array.isArray(t)){if(t.length!==e.length)throw new Error("Array length mismatch");return e.map(((e,a)=>n(r,t[a],e)))}return e.map((e=>n(r,t,e)))}if(Array.isArray(r)&&Array.isArray(t)){if(r.length!==t.length)throw new Error("Array length mismatch");return r.map(((r,e)=>n(r,t[e])))}return Array.isArray(r)?r.map((r=>n(r,t,e))):Array.isArray(t)?t.map((t=>n(r,t,e))):n(r,t,e)}}},function(r,t){r.exports={cos:function(r){return Array.isArray(r)?r.map((r=>Math.cos(r))):Math.cos(r)}}},function(r,t,n){const{size:e}=n(46);function a(r){return e(r)}a.skipNumberValidation=!0,r.exports={count:a}},function(r,t,n){const{pow:e}=n(43);r.exports={cube:function(r){return e(r,3)}}},function(r,t){function n(r,t){return Array.isArray(r)?r.map((r=>null==r?t:r)):null==r?t:r}r.exports={defaults:n},n.skipNumberValidation=!0},function(r,t){r.exports={degtorad:function(r){return Array.isArray(r)?r.map((r=>r*Math.PI/180)):r*Math.PI/180}}},function(r,t){r.exports={divide:function(r,t){if(Array.isArray(r)&&Array.isArray(t)){if(r.length!==t.length)throw new Error("Array length mismatch");return r.map(((r,n)=>{if(0===t[n])throw new Error("Cannot divide by 0");return r/t[n]}))}if(Array.isArray(t))return t.map((t=>{if(0===t)throw new Error("Cannot divide by 0");return r/t}));if(0===t)throw new Error("Cannot divide by 0");return Array.isArray(r)?r.map((r=>r/t)):r/t}}},function(r,t){r.exports={exp:function(r){return Array.isArray(r)?r.map((r=>Math.exp(r))):Math.exp(r)}}},function(r,t){function n(r){return Array.isArray(r)?r[0]:r}n.skipNumberValidation=!0,r.exports={first:n}},function(r,t){const n=r=>r>0?Math.floor(r):Math.ceil(r);r.exports={fix:function(r){return Array.isArray(r)?r.map((r=>n(r))):n(r)}}},function(r,t){r.exports={floor:function(r){return Array.isArray(r)?r.map((r=>Math.floor(r))):Math.floor(r)}}},function(r,t){function n(r){return Array.isArray(r)?r[r.length-1]:r}n.skipNumberValidation=!0,r.exports={last:n}},function(r,t,n){const{log:e}=n(47);r.exports={log10:function(r){return e(r,10)}}},function(r,t,n){const{add:e}=n(45);r.exports={mean:function(...r){if(1===r.length)return Array.isArray(r[0])?e(r[0])/r[0].length:r[0];const t=e(...r);return Array.isArray(t)?t.map((t=>t/r.length)):t/r.length}}},function(r,t,n){const{transpose:e}=n(49),a=r=>{const t=r.length,n=Math.floor(t/2);return r.sort(((r,t)=>t-r)),t%2==0?(r[n]+r[n-1])/2:r[n]};r.exports={median:function(...r){if(1===r.length)return Array.isArray(r[0])?a(r[0]):r[0];const t=r.findIndex((r=>Array.isArray(r)));return-1!==t?e(r,t).map((r=>a(r))):a(r)}}},function(r,t){r.exports={mod:function(r,t){if(Array.isArray(r)&&Array.isArray(t)){if(r.length!==t.length)throw new Error("Array length mismatch");return r.map(((r,n)=>{if(0===t[n])throw new Error("Cannot divide by 0");return r%t[n]}))}if(Array.isArray(t))return t.map((t=>r%t));if(0===t)throw new Error("Cannot divide by 0");return Array.isArray(r)?r.map((r=>r%t)):r%t}}},function(r,t,n){const{transpose:e}=n(49),a=r=>{let t=0;const n={};return r.map((r=>{void 0===n[r]&&(n[r]=0),n[r]+=1,n[r]>t&&(t=n[r])})),Object.keys(n).filter((r=>n[r]===t)).map((r=>parseFloat(r))).sort(((r,t)=>r-t))};r.exports={mode:function(...r){if(1===r.length)return Array.isArray(r[0])?a(r[0]):r[0];const t=r.findIndex((r=>Array.isArray(r)));return-1!==t?e(r,t).map((r=>a(r))):a(r)}}},function(r,t){r.exports={multiply:function(...r){return r.reduce(((r,t)=>{if(Array.isArray(r)&&Array.isArray(t)){if(t.length!==r.length)throw new Error("Array length mismatch");return r.map(((r,n)=>r*t[n]))}return Array.isArray(r)?r.map((r=>r*t)):Array.isArray(t)?t.map((t=>t*r)):r*t}))}}},function(r,t){r.exports={pi:function(){return Math.PI}}},function(r,t){r.exports={radtodeg:function(r){return Array.isArray(r)?r.map((r=>180*r/Math.PI)):180*r/Math.PI}}},function(r,t){r.exports={random:function(r,t){if(null==r)return Math.random();if(null==t){if(r<0)throw new Error("Min is greater than max");return Math.random()*r}if(r>t)throw new Error("Min is greater than max");return Math.random()*(t-r)+r}}},function(r,t,n){const{max:e}=n(48),{min:a}=n(50),{subtract:o}=n(51);r.exports={range:function(...r){return o(e(...r),a(...r))}}},function(r,t){const n=(r,t=0)=>Math.round(r*Math.pow(10,t))/Math.pow(10,t);r.exports={round:function(r,t){return Array.isArray(r)?r.map((r=>n(r,t))):n(r,t)}}},function(r,t){r.exports={sin:function(r){return Array.isArray(r)?r.map((r=>Math.sin(r))):Math.sin(r)}}},function(r,t){r.exports={sqrt:function(r){if(Array.isArray(r))return r.map((r=>{if(r<0)throw new Error("Unable find the square root of a negative number");return Math.sqrt(r)}));if(r<0)throw new Error("Unable find the square root of a negative number");return Math.sqrt(r)}}},function(r,t,n){const{pow:e}=n(43);r.exports={square:function(r){return e(r,2)}}},function(r,t){const n=(r,t)=>r+t;r.exports={sum:function(...r){return r.reduce(((r,t)=>Array.isArray(t)?r+t.reduce(n,0):r+t),0)}}},function(r,t){r.exports={tan:function(r){return Array.isArray(r)?r.map((r=>Math.tan(r))):Math.tan(r)}}},function(r,t){function n(r){return Array.isArray(r)?r.filter(((t,n)=>r.indexOf(t)===n)).length:1}n.skipNumberValidation=!0,r.exports={unique:n}},function(r,t,n){const{eq:e}=n(44),{lt:a}=n(52),{gt:o}=n(53),{lte:i}=n(90),{gte:u}=n(91),{ifelse:s}=n(92);r.exports={eq:e,lt:a,gt:o,lte:i,gte:u,ifelse:s}},function(r,t,n){const{eq:e}=n(44),{lt:a}=n(52);r.exports={lte:function(r,t){return e(r,t)||a(r,t)}}},function(r,t,n){const{eq:e}=n(44),{gt:a}=n(53);r.exports={gte:function(r,t){return e(r,t)||a(r,t)}}},function(r,t){function n(r,t,n){if("boolean"!=typeof r)throw Error("Condition clause is of the wrong type");if(null==t)throw new Error("Missing a value");if(null==n)throw new Error("Missing b value");return r?t:n}n.skipNumberValidation=!0,r.exports={ifelse:n}},function(r,t,n){"use strict";function e(r,t,n,a){var o=Error.call(this,r);return Object.setPrototypeOf&&Object.setPrototypeOf(o,e.prototype),o.expected=t,o.found=n,o.location=a,o.name="SyntaxError",o}function a(r,t,n){return n=n||" ",r.length>t?r:(t-=r.length,r+(n+=n.repeat(t)).slice(0,t))}function o(r,t){var n,a={},o=(t=void 0!==t?t:{}).grammarSource,i={start:Ur},u=Ur,s='"',c='\\"',f="'",l="\\'",h=">",p="<",A="=",y="+",m="-",g="*",d="/",x="(",w=")",b=",",v=".",M="0",E=/^[ \t\n\r]/,C=/^[0-9A-Za-z._@[\]\-]/,j=/^[^"]/,q=/^[^']/,N=/^[a-zA-Z_]/,F=/^[a-zA-Z_\-]/,O=/^[eE]/,k=/^[1-9]/,z=/^[0-9]/,_=Ir("whitespace"),R=Vr([" ","\t","\n","\r"],!1,!1),V=(Vr([" "],!1,!1),Vr(['"',"'"],!1,!1),Vr([["A","Z"],["a","z"],"_","@",".","[","]","-"],!1,!1),Vr([["0","9"],["A","Z"],["a","z"],".","_","@","[","]","-"],!1,!1)),I=Ir("literal"),P=Rr('"',!1),Z=Rr('\\"',!1),S=Vr(['"'],!0,!1),U=Rr("'",!1),$=Rr("\\'",!1),D=Vr(["'"],!0,!1),T=Rr(">",!1),Y=Rr("<",!1),B=Rr("=",!1),G=Rr("+",!1),H=Rr("-",!1),J=Rr("*",!1),K=Rr("/",!1),L=Rr("(",!1),Q=Rr(")",!1),W=Ir("arguments"),X=Rr(",",!1),rr=Vr([["a","z"],["A","Z"],"_"],!1,!1),tr=Ir("function"),nr=Vr([["a","z"],["A","Z"],"_","-"],!1,!1),er=Ir("number"),ar=Vr(["e","E"],!1,!1),or=Ir("exponent"),ir=Rr(".",!1),ur=Rr("0",!1),sr=Vr([["1","9"]],!1,!1),cr=Vr([["0","9"]],!1,!1),fr=function(r){return r},lr=function(){return'"'},hr=function(r){return{type:"variable",value:r.join(""),location:Lr(_r()),text:zr()}},pr=function(){return"'"},Ar=function(r){return{type:"variable",value:r.join(""),location:Lr(_r()),text:zr()}},yr=function(r){return{type:"variable",value:r.join(""),location:Lr(_r()),text:zr()}},mr=function(r,t,n){return{type:"function",name:Xr(t),args:[r,n],location:Lr(_r()),text:zr()}},gr=function(r,t){return Wr(r,t)},dr=function(r,t){return Wr(r,t)},xr=function(r){return r},wr=function(r,t){return t},br=function(r,t){return[r].concat(t)},vr=function(r){return r.join("")},Mr=function(r,t){return{type:"namedArgument",name:r.join(""),value:t,location:Lr(_r()),text:zr()}},Er=function(r,t){return{type:"function",name:r.join(""),args:t||[],location:Lr(_r()),text:zr()}},Cr=function(){return parseFloat(zr())},jr=0,qr=0,Nr=[{line:1,column:1}],Fr=0,Or=[],kr=0;if("startRule"in t){if(!(t.startRule in i))throw new Error("Can't start parsing from rule \""+t.startRule+'".');u=i[t.startRule]}function zr(){return r.substring(qr,jr)}function _r(){return Zr(qr,jr)}function Rr(r,t){return{type:"literal",text:r,ignoreCase:t}}function Vr(r,t,n){return{type:"class",parts:r,inverted:t,ignoreCase:n}}function Ir(r){return{type:"other",description:r}}function Pr(t){var n,e=Nr[t];if(e)return e;for(n=t-1;!Nr[n];)n--;for(e={line:(e=Nr[n]).line,column:e.column};nFr&&(Fr=jr,Or=[]),Or.push(r))}function Ur(){return Tr()}function $r(){var t,n;for(kr++,t=[],E.test(r.charAt(jr))?(n=r.charAt(jr),jr++):(n=a,0===kr&&Sr(R));n!==a;)t.push(n),E.test(r.charAt(jr))?(n=r.charAt(jr),jr++):(n=a,0===kr&&Sr(R));return kr--,n=a,0===kr&&Sr(_),t}function Dr(){var t;return C.test(r.charAt(jr))?(t=r.charAt(jr),jr++):(t=a,0===kr&&Sr(V)),t}function Tr(){var t;return(t=function(){var t,n,e,o,i;return t=jr,$r(),(n=Yr())!==a?(e=jr,62===r.charCodeAt(jr)?(o=h,jr++):(o=a,0===kr&&Sr(T)),o===a&&(60===r.charCodeAt(jr)?(o=p,jr++):(o=a,0===kr&&Sr(Y))),o!==a?(61===r.charCodeAt(jr)?(i=A,jr++):(i=a,0===kr&&Sr(B)),i===a&&(i=null),e=o=[o,i]):(jr=e,e=a),e===a&&(e=jr,61===r.charCodeAt(jr)?(o=A,jr++):(o=a,0===kr&&Sr(B)),o!==a?(61===r.charCodeAt(jr)?(i=A,jr++):(i=a,0===kr&&Sr(B)),i!==a?e=o=[o,i]:(jr=e,e=a)):(jr=e,e=a)),e!==a&&(o=Yr())!==a?(i=$r(),qr=t,t=mr(n,e,o)):(jr=t,t=a)):(jr=t,t=a),t}())===a&&(t=Yr())===a&&(t=function(){var t,n,e,o;return t=jr,$r(),40===r.charCodeAt(jr)?(n=x,jr++):(n=a,0===kr&&Sr(L)),n!==a?($r(),(e=Tr())!==a?($r(),41===r.charCodeAt(jr)?(o=w,jr++):(o=a,0===kr&&Sr(Q)),o!==a?($r(),qr=t,t=xr(e)):(jr=t,t=a)):(jr=t,t=a)):(jr=t,t=a),t}()),t}function Yr(){var t;return(t=function(){var t,n,e,o,i,u;if(t=jr,$r(),(n=Br())!==a){if(e=[],o=jr,43===r.charCodeAt(jr)?(i=y,jr++):(i=a,0===kr&&Sr(G)),i===a&&(45===r.charCodeAt(jr)?(i=m,jr++):(i=a,0===kr&&Sr(H))),i!==a&&(u=Br())!==a?o=i=[i,u]:(jr=o,o=a),o!==a)for(;o!==a;)e.push(o),o=jr,43===r.charCodeAt(jr)?(i=y,jr++):(i=a,0===kr&&Sr(G)),i===a&&(45===r.charCodeAt(jr)?(i=m,jr++):(i=a,0===kr&&Sr(H))),i!==a&&(u=Br())!==a?o=i=[i,u]:(jr=o,o=a);else e=a;e!==a?(o=$r(),qr=t,t=gr(n,e)):(jr=t,t=a)}else jr=t,t=a;return t}())===a&&(t=Br())===a&&(t=Gr()),t}function Br(){var t,n,e,o,i,u;if(t=jr,$r(),(n=Gr())!==a){for(e=[],o=jr,42===r.charCodeAt(jr)?(i=g,jr++):(i=a,0===kr&&Sr(J)),i===a&&(47===r.charCodeAt(jr)?(i=d,jr++):(i=a,0===kr&&Sr(K))),i!==a&&(u=Gr())!==a?o=i=[i,u]:(jr=o,o=a);o!==a;)e.push(o),o=jr,42===r.charCodeAt(jr)?(i=g,jr++):(i=a,0===kr&&Sr(J)),i===a&&(47===r.charCodeAt(jr)?(i=d,jr++):(i=a,0===kr&&Sr(K))),i!==a&&(u=Gr())!==a?o=i=[i,u]:(jr=o,o=a);o=$r(),qr=t,t=dr(n,e)}else jr=t,t=a;return t}function Gr(){var t;return(t=function(){var t,n,e,o;return t=jr,$r(),40===r.charCodeAt(jr)?(n=x,jr++):(n=a,0===kr&&Sr(L)),n!==a?($r(),(e=Yr())!==a?($r(),41===r.charCodeAt(jr)?(o=w,jr++):(o=a,0===kr&&Sr(Q)),o!==a?($r(),qr=t,t=xr(e)):(jr=t,t=a)):(jr=t,t=a)):(jr=t,t=a),t}())===a&&(t=function(){var t,n,e,o,i;if(kr++,t=jr,$r(),n=[],F.test(r.charAt(jr))?(e=r.charAt(jr),jr++):(e=a,0===kr&&Sr(nr)),e!==a)for(;e!==a;)n.push(e),F.test(r.charAt(jr))?(e=r.charAt(jr),jr++):(e=a,0===kr&&Sr(nr));else n=a;return n!==a?(40===r.charCodeAt(jr)?(e=x,jr++):(e=a,0===kr&&Sr(L)),e!==a?($r(),o=function(){var t,n,e,o,i,u,s;if(kr++,t=jr,(n=Hr())!==a){for(e=[],o=jr,i=$r(),44===r.charCodeAt(jr)?(u=b,jr++):(u=a,0===kr&&Sr(X)),u!==a?($r(),(s=Hr())!==a?(qr=o,o=wr(n,s)):(jr=o,o=a)):(jr=o,o=a);o!==a;)e.push(o),o=jr,i=$r(),44===r.charCodeAt(jr)?(u=b,jr++):(u=a,0===kr&&Sr(X)),u!==a?($r(),(s=Hr())!==a?(qr=o,o=wr(n,s)):(jr=o,o=a)):(jr=o,o=a);o=$r(),44===r.charCodeAt(jr)?(i=b,jr++):(i=a,0===kr&&Sr(X)),i===a&&(i=null),qr=t,t=br(n,e)}else jr=t,t=a;return kr--,t===a&&(n=a,0===kr&&Sr(W)),t}(),o===a&&(o=null),$r(),41===r.charCodeAt(jr)?(i=w,jr++):(i=a,0===kr&&Sr(Q)),i!==a?($r(),qr=t,t=Er(n,o)):(jr=t,t=a)):(jr=t,t=a)):(jr=t,t=a),kr--,t===a&&0===kr&&Sr(tr),t}())===a&&(t=function(){var t,n;return kr++,t=jr,$r(),(n=Jr())===a&&(n=function(){var t,n,e,o,i;if(t=jr,$r(),34===r.charCodeAt(jr)?(n=s,jr++):(n=a,0===kr&&Sr(P)),n!==a){for(e=[],o=jr,r.substr(jr,2)===c?(i=c,jr+=2):(i=a,0===kr&&Sr(Z)),i!==a&&(qr=o,i=lr()),(o=i)===a&&(j.test(r.charAt(jr))?(o=r.charAt(jr),jr++):(o=a,0===kr&&Sr(S)));o!==a;)e.push(o),o=jr,r.substr(jr,2)===c?(i=c,jr+=2):(i=a,0===kr&&Sr(Z)),i!==a&&(qr=o,i=lr()),(o=i)===a&&(j.test(r.charAt(jr))?(o=r.charAt(jr),jr++):(o=a,0===kr&&Sr(S)));34===r.charCodeAt(jr)?(o=s,jr++):(o=a,0===kr&&Sr(P)),o!==a?(i=$r(),qr=t,t=hr(e)):(jr=t,t=a)}else jr=t,t=a;if(t===a){if(t=jr,$r(),39===r.charCodeAt(jr)?(n=f,jr++):(n=a,0===kr&&Sr(U)),n!==a){for(e=[],o=jr,r.substr(jr,2)===l?(i=l,jr+=2):(i=a,0===kr&&Sr($)),i!==a&&(qr=o,i=pr()),(o=i)===a&&(q.test(r.charAt(jr))?(o=r.charAt(jr),jr++):(o=a,0===kr&&Sr(D)));o!==a;)e.push(o),o=jr,r.substr(jr,2)===l?(i=l,jr+=2):(i=a,0===kr&&Sr($)),i!==a&&(qr=o,i=pr()),(o=i)===a&&(q.test(r.charAt(jr))?(o=r.charAt(jr),jr++):(o=a,0===kr&&Sr(D)));39===r.charCodeAt(jr)?(o=f,jr++):(o=a,0===kr&&Sr(U)),o!==a?(i=$r(),qr=t,t=Ar(e)):(jr=t,t=a)}else jr=t,t=a;if(t===a){if(t=jr,$r(),n=[],(e=Dr())!==a)for(;e!==a;)n.push(e),e=Dr();else n=a;n!==a?(e=$r(),qr=t,t=yr(n)):(jr=t,t=a)}}return t}()),n!==a?($r(),qr=t,t=fr(n)):(jr=t,t=a),kr--,t===a&&0===kr&&Sr(I),t}()),t}function Hr(){var t,n,e,o,i;if(t=jr,n=[],N.test(r.charAt(jr))?(e=r.charAt(jr),jr++):(e=a,0===kr&&Sr(rr)),e!==a)for(;e!==a;)n.push(e),N.test(r.charAt(jr))?(e=r.charAt(jr),jr++):(e=a,0===kr&&Sr(rr));else n=a;return n!==a?(e=$r(),61===r.charCodeAt(jr)?(o=A,jr++):(o=a,0===kr&&Sr(B)),o!==a?($r(),(i=Jr())===a&&(i=function(){var t,n,e,o,i;if(t=jr,34===r.charCodeAt(jr)?(n=s,jr++):(n=a,0===kr&&Sr(P)),n!==a){for(e=[],o=jr,r.substr(jr,2)===c?(i=c,jr+=2):(i=a,0===kr&&Sr(Z)),i!==a&&(qr=o,i=lr()),(o=i)===a&&(j.test(r.charAt(jr))?(o=r.charAt(jr),jr++):(o=a,0===kr&&Sr(S)));o!==a;)e.push(o),o=jr,r.substr(jr,2)===c?(i=c,jr+=2):(i=a,0===kr&&Sr(Z)),i!==a&&(qr=o,i=lr()),(o=i)===a&&(j.test(r.charAt(jr))?(o=r.charAt(jr),jr++):(o=a,0===kr&&Sr(S)));34===r.charCodeAt(jr)?(o=s,jr++):(o=a,0===kr&&Sr(P)),o!==a?(qr=t,t=vr(e)):(jr=t,t=a)}else jr=t,t=a;if(t===a){if(t=jr,39===r.charCodeAt(jr)?(n=f,jr++):(n=a,0===kr&&Sr(U)),n!==a){for(e=[],o=jr,r.substr(jr,2)===l?(i=l,jr+=2):(i=a,0===kr&&Sr($)),i!==a&&(qr=o,i=pr()),(o=i)===a&&(q.test(r.charAt(jr))?(o=r.charAt(jr),jr++):(o=a,0===kr&&Sr(D)));o!==a;)e.push(o),o=jr,r.substr(jr,2)===l?(i=l,jr+=2):(i=a,0===kr&&Sr($)),i!==a&&(qr=o,i=pr()),(o=i)===a&&(q.test(r.charAt(jr))?(o=r.charAt(jr),jr++):(o=a,0===kr&&Sr(D)));39===r.charCodeAt(jr)?(o=f,jr++):(o=a,0===kr&&Sr(U)),o!==a?(qr=t,t=vr(e)):(jr=t,t=a)}else jr=t,t=a;if(t===a){if(t=jr,n=[],(e=Dr())!==a)for(;e!==a;)n.push(e),e=Dr();else n=a;n!==a&&(qr=t,n=vr(n)),t=n}}return t}()),i!==a?($r(),qr=t,t=Mr(n,i)):(jr=t,t=a)):(jr=t,t=a)):(jr=t,t=a),t===a&&(t=Tr()),t}function Jr(){var t,n,e,o,i;return kr++,t=jr,45===r.charCodeAt(jr)?(n=m,jr++):(n=a,0===kr&&Sr(H)),n===a&&(n=null),e=function(){var t,n,e,o;if(48===r.charCodeAt(jr)?(t=M,jr++):(t=a,0===kr&&Sr(ur)),t===a)if(t=jr,k.test(r.charAt(jr))?(n=r.charAt(jr),jr++):(n=a,0===kr&&Sr(sr)),n!==a){for(e=[],o=Kr();o!==a;)e.push(o),o=Kr();t=n=[n,e]}else jr=t,t=a;return t}(),e!==a?(o=function(){var t,n,e,o;if(t=jr,46===r.charCodeAt(jr)?(n=v,jr++):(n=a,0===kr&&Sr(ir)),n!==a){if(e=[],(o=Kr())!==a)for(;o!==a;)e.push(o),o=Kr();else e=a;e!==a?t=n=[n,e]:(jr=t,t=a)}else jr=t,t=a;return t}(),o===a&&(o=null),i=function(){var t,n,e,o,i;if(kr++,t=jr,n=function(){var t;return O.test(r.charAt(jr))?(t=r.charAt(jr),jr++):(t=a,0===kr&&Sr(ar)),t}(),n!==a){if(45===r.charCodeAt(jr)?(e=m,jr++):(e=a,0===kr&&Sr(H)),e===a&&(e=null),o=[],(i=Kr())!==a)for(;i!==a;)o.push(i),i=Kr();else o=a;o!==a?t=n=[n,e,o]:(jr=t,t=a)}else jr=t,t=a;return kr--,t===a&&(n=a,0===kr&&Sr(or)),t}(),i===a&&(i=null),qr=t,t=Cr()):(jr=t,t=a),kr--,t===a&&(n=a,0===kr&&Sr(er)),t}function Kr(){var t;return z.test(r.charAt(jr))?(t=r.charAt(jr),jr++):(t=a,0===kr&&Sr(cr)),t}function Lr(r){return{min:r.start.offset,max:r.end.offset}}const Qr={"+":"add","-":"subtract","*":"multiply","/":"divide","<":"lt",">":"gt","==":"eq","<=":"lte",">=":"gte"};function Wr(r,t){const n=t.reduce(((r,[t,n])=>({type:"function",name:Qr[t],args:[r,n]})),r);return"object"==typeof n&&(n.location=Lr(_r()),n.text=zr()),n}function Xr([r,t]){return Qr[r+(t||"")]}if((n=u())!==a&&jr===r.length)return n;throw n!==a&&jr0){for(t=1,n=1;tnew Error(a.i18n.translate("expressions.functions.math.emptyExpressionErrorMessage",{defaultMessage:"Empty expression"})),tooManyResults:()=>new Error(a.i18n.translate("expressions.functions.math.tooManyResultsErrorMessage",{defaultMessage:"Expressions must return a single number. Try wrapping your expression in {mean} or {sum}",values:{mean:"mean()",sum:"sum()"}})),executionFailed:()=>new Error(a.i18n.translate("expressions.functions.math.executionFailedErrorMessage",{defaultMessage:"Failed to execute math expression. Check your column names"})),emptyDatatable:()=>new Error(a.i18n.translate("expressions.functions.math.emptyDatatableErrorMessage",{defaultMessage:"Empty datatable"}))},s={null:null,zero:0,false:!1},c=(r,t)=>{const{expression:n,onError:a}=t,c=null!=a?a:"throw";if(!n||""===n.trim())throw u.emptyExpression();const f=Object(i.i)(r)?function(r,t){const n=t||Object.keys(r[0]);if(!n.every(e.isString))throw new Error("Columns should be an array of strings");const a=Object(e.map)(n,(t=>Object(e.map)(r,t)));return Object(e.zipObject)(n,a)}(r.rows,r.columns.map((r=>r.id))):{value:r};try{const r=Object(o.evaluate)(n,f);if(Array.isArray(r)){if(1===r.length)return r[0];throw u.tooManyResults()}if(isNaN(r)){if("throw"!==c&&c in s)return s[c];throw u.executionFailed()}return r}catch(t){if("throw"!==c&&c in s)return s[c];throw Object(i.i)(r)&&0===r.rows.length?u.emptyDatatable():t}}}])]);