@cortex-js/compute-engine 0.58.0 → 0.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/compile.esm.js +1721 -483
- package/dist/compile.min.esm.js +122 -74
- package/dist/compile.min.umd.cjs +122 -74
- package/dist/compile.umd.cjs +1721 -483
- package/dist/compute-engine.esm.js +25209 -22883
- package/dist/compute-engine.min.esm.js +135 -87
- package/dist/compute-engine.min.umd.cjs +135 -87
- package/dist/compute-engine.umd.cjs +24952 -22626
- package/dist/core.esm.js +25208 -22882
- package/dist/core.min.esm.js +134 -86
- package/dist/core.min.umd.cjs +134 -86
- package/dist/core.umd.cjs +24951 -22625
- package/dist/identities.esm.js +1921 -0
- package/dist/identities.min.esm.js +2 -0
- package/dist/identities.min.umd.cjs +4 -0
- package/dist/identities.umd.cjs +1946 -0
- package/dist/interval.esm.js +653 -330
- package/dist/interval.min.esm.js +8 -8
- package/dist/interval.min.umd.cjs +8 -8
- package/dist/interval.umd.cjs +653 -330
- package/dist/latex-syntax.esm.js +758 -512
- package/dist/latex-syntax.min.esm.js +7 -7
- package/dist/latex-syntax.min.umd.cjs +7 -7
- package/dist/latex-syntax.umd.cjs +758 -512
- package/dist/math-json.esm.js +8 -12
- package/dist/math-json.min.esm.js +2 -2
- package/dist/math-json.min.umd.cjs +2 -2
- package/dist/math-json.umd.cjs +8 -12
- package/dist/numerics.esm.js +1349 -228
- package/dist/numerics.min.esm.js +16 -5
- package/dist/numerics.min.umd.cjs +16 -5
- package/dist/numerics.umd.cjs +1349 -228
- package/dist/types/big-decimal/big-decimal.d.ts +1 -1
- package/dist/types/big-decimal/index.d.ts +1 -1
- package/dist/types/big-decimal/transcendentals.d.ts +1 -1
- package/dist/types/big-decimal/utils.d.ts +1 -1
- package/dist/types/common/ansi-codes.d.ts +1 -1
- package/dist/types/common/configuration-change.d.ts +1 -1
- package/dist/types/common/fuzzy-string-match.d.ts +1 -1
- package/dist/types/common/grapheme-splitter.d.ts +1 -1
- package/dist/types/common/interruptible.d.ts +1 -1
- package/dist/types/common/one-of.d.ts +1 -1
- package/dist/types/common/signals.d.ts +1 -1
- package/dist/types/common/type/ast-nodes.d.ts +1 -1
- package/dist/types/common/type/boxed-type.d.ts +1 -1
- package/dist/types/common/type/lexer.d.ts +1 -1
- package/dist/types/common/type/parse.d.ts +1 -208
- package/dist/types/common/type/parser.d.ts +124 -2
- package/dist/types/common/type/primitive.d.ts +5 -1
- package/dist/types/common/type/reduce.d.ts +1 -1
- package/dist/types/common/type/serialize.d.ts +1 -1
- package/dist/types/common/type/subtype.d.ts +18 -1
- package/dist/types/common/type/type-builder.d.ts +1 -1
- package/dist/types/common/type/types.d.ts +1 -1
- package/dist/types/common/type/utils.d.ts +1 -1
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compile.d.ts +1 -1
- package/dist/types/compute-engine/assume.d.ts +13 -6
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +3 -3
- package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constraint-subject.d.ts +140 -0
- package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +14 -4
- package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rule-index.d.ts +112 -0
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +2 -1
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
- package/dist/types/compute-engine/collection-utils.d.ts +1 -1
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +1 -1
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
- package/dist/types/compute-engine/compilation/constant-folding.d.ts +16 -1
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +15 -5
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +4 -4
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/types.d.ts +1 -1
- package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
- package/dist/types/compute-engine/cost-function.d.ts +1 -1
- package/dist/types/compute-engine/engine-assumptions.d.ts +1 -1
- package/dist/types/compute-engine/engine-cache.d.ts +1 -1
- package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
- package/dist/types/compute-engine/engine-compilation-targets.d.ts +1 -1
- package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
- package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
- package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
- package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
- package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
- package/dist/types/compute-engine/engine-runtime-state.d.ts +1 -1
- package/dist/types/compute-engine/engine-scope.d.ts +1 -1
- package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
- package/dist/types/compute-engine/engine-simplification-rules.d.ts +10 -2
- package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
- package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
- package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/free-functions.d.ts +1 -1
- package/dist/types/compute-engine/function-utils.d.ts +1 -1
- package/dist/types/compute-engine/fungrim/loader.d.ts +13 -0
- package/dist/types/compute-engine/fungrim/types.d.ts +160 -0
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +48 -2
- package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
- package/dist/types/compute-engine/interval/elementary.d.ts +10 -2
- package/dist/types/compute-engine/interval/index.d.ts +2 -2
- package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
- package/dist/types/compute-engine/interval/types.d.ts +1 -1
- package/dist/types/compute-engine/interval/util.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-colors.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +4 -1
- package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +3 -2
- package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -11
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
- package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/calculus.d.ts +1 -1
- package/dist/types/compute-engine/library/collections.d.ts +1 -1
- package/dist/types/compute-engine/library/colors.d.ts +1 -1
- package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
- package/dist/types/compute-engine/library/complex.d.ts +13 -1
- package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
- package/dist/types/compute-engine/library/core.d.ts +1 -1
- package/dist/types/compute-engine/library/fractals.d.ts +1 -1
- package/dist/types/compute-engine/library/library.d.ts +1 -1
- package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
- package/dist/types/compute-engine/library/logic.d.ts +1 -1
- package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
- package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
- package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
- package/dist/types/compute-engine/library/sets.d.ts +27 -1
- package/dist/types/compute-engine/library/statistics.d.ts +1 -1
- package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
- package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/library/units.d.ts +1 -1
- package/dist/types/compute-engine/library/utils.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +7 -1
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bernoulli.d.ts +39 -0
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
- package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
- package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-complex.d.ts +12 -1
- package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
- package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
- package/dist/types/compute-engine/numerics/random.d.ts +1 -1
- package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
- package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
- package/dist/types/compute-engine/numerics/special-functions.d.ts +78 -10
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
- package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
- package/dist/types/compute-engine/numerics/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/oeis.d.ts +1 -1
- package/dist/types/compute-engine/sequence.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensors.d.ts +3 -3
- package/dist/types/compute-engine/types-definitions.d.ts +1 -1
- package/dist/types/compute-engine/types-engine.d.ts +19 -3
- package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-expression.d.ts +17 -14
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +32 -1
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +45 -3
- package/dist/types/compute-engine/types-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types.d.ts +1 -1
- package/dist/types/compute-engine.d.ts +1 -1
- package/dist/types/core.d.ts +1 -1
- package/dist/types/identities.d.ts +3 -0
- package/dist/types/interval.d.ts +1 -1
- package/dist/types/latex-syntax.d.ts +2 -2
- package/dist/types/math-json/symbols.d.ts +1 -1
- package/dist/types/math-json/types.d.ts +1 -1
- package/dist/types/math-json/utils.d.ts +1 -1
- package/dist/types/math-json.d.ts +2 -2
- package/dist/types/numerics.d.ts +1 -1
- package/package.json +9 -3
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/** Interval 0.
|
|
1
|
+
/** Interval 0.59.0 */
|
|
2
2
|
(function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Interval = {}));})(this, (function (exports) { 'use strict';
|
|
3
|
-
var Interval=(()=>{var yi=Object.defineProperty;var Fs=Object.getOwnPropertyDescriptor;var Vs=Object.getOwnPropertyNames;var Js=Object.prototype.hasOwnProperty;var Ls=(e,n)=>{for(var t in n)yi(e,t,{get:n[t],enumerable:!0})},$s=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Vs(n))!Js.call(e,r)&&r!==t&&yi(e,r,{get:()=>n[r],enumerable:!(i=Fs(n,r))||i.enumerable});return e};var qs=e=>$s(yi({},"__esModule",{value:!0}),e);var Aa={};Ls(Aa,{IntervalArithmetic:()=>Cs,_mul:()=>xn,abs:()=>qn,acos:()=>Qe,acosh:()=>tn,acot:()=>ft,acoth:()=>yt,acsc:()=>pt,acsch:()=>xt,add:()=>gn,and:()=>wt,asec:()=>mt,asech:()=>bt,asin:()=>Ke,asinh:()=>nn,atan:()=>en,atan2:()=>lt,atanh:()=>rn,binomial:()=>si,ceil:()=>Gn,chop:()=>ui,clamp:()=>_t,containsExtremum:()=>L,containsZero:()=>$,cos:()=>rt,cosh:()=>Re,cot:()=>ot,coth:()=>dt,csc:()=>ut,csch:()=>ht,div:()=>q,equal:()=>sn,erf:()=>li,erfc:()=>ci,exp:()=>Vn,exp2:()=>fi,factorial:()=>nt,factorial2:()=>tt,floor:()=>zn,fract:()=>Zn,fresnelC:()=>Tt,fresnelS:()=>Nt,gamma:()=>Qn,gammaln:()=>et,gcd:()=>oi,getValue:()=>dn,greater:()=>kt,greaterEqual:()=>St,heaviside:()=>Xn,hypot:()=>pi,isNegative:()=>Te,isNonNegative:()=>cn,isNonPositive:()=>fn,isPoint:()=>un,isPositive:()=>ln,lcm:()=>ai,less:()=>vt,lessEqual:()=>It,ln:()=>Jn,log10:()=>Ln,log2:()=>$n,max:()=>Wn,mergeDomainClip:()=>Be,midpoint:()=>mn,min:()=>Un,mod:()=>Hn,mul:()=>Ie,negate:()=>yn,not:()=>At,notEqual:()=>Mt,ok:()=>d,or:()=>Dt,piecewise:()=>Pt,point:()=>an,pow:()=>Ye,powInterval:()=>Fn,remainder:()=>Yn,round:()=>Xe,sec:()=>at,sech:()=>gt,sign:()=>Kn,sin:()=>it,sinc:()=>Et,sinh:()=>_e,sqrt:()=>On,square:()=>Cn,sub:()=>ve,tan:()=>st,tanh:()=>ct,trunc:()=>jn,unionResults:()=>ge,unwrap:()=>hn,unwrapOrPropagate:()=>y,version:()=>Da,width:()=>pn});function d(e){return{kind:"interval",value:e}}function an(e){return{lo:e,hi:e}}function L(e,n,t){let i=Math.ceil((e.lo-n)/t),r=n+i*t,s=1e-15;return r>=e.lo-s&&r<=e.hi+s}function ge(e,n){if(e.kind==="empty")return n;if(n.kind==="empty")return e;if(e.kind==="singular"||n.kind==="singular")return{kind:"singular"};if(e.kind==="entire"||n.kind==="entire")return{kind:"entire"};let t=e.value,i=n.value,r=e.kind==="partial"?e.domainClipped:null,s=n.kind==="partial"?n.domainClipped:null,o={lo:Math.min(t.lo,i.lo),hi:Math.max(t.hi,i.hi)};if(r||s){let a=Be(r,s);return{kind:"partial",value:o,domainClipped:a}}return{kind:"interval",value:o}}function Be(e,n){return e==="both"||n==="both"?"both":e===null?n:n===null||e===n?e:"both"}function un(e){return e.lo===e.hi}function $(e){return e.lo<=0&&e.hi>=0}function ln(e){return e.lo>0}function Te(e){return e.hi<0}function cn(e){return e.lo>=0}function fn(e){return e.hi<=0}function pn(e){return e.hi-e.lo}function mn(e){return(e.lo+e.hi)/2}function dn(e){if(e.kind==="interval"||e.kind==="partial")return e.value}function hn(e){return"kind"in e?e.kind==="interval"||e.kind==="partial"?e.value:void 0:e}function y(...e){let n=[];for(let t of e)if("kind"in t){if(t.kind==="empty")return{kind:"empty"};if(t.kind==="entire")return{kind:"entire"};if(t.kind==="singular")return t;n.push(t.value)}else n.push(t);return n}function gn(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:i.lo+r.lo,hi:i.hi+r.hi})}function ve(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:i.lo-r.hi,hi:i.hi-r.lo})}function yn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:-t.hi,hi:-t.lo})}function xn(e,n){let t=[e.lo*n.lo,e.lo*n.hi,e.hi*n.lo,e.hi*n.hi];return{lo:Math.min(...t),hi:Math.max(...t)}}function Ie(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d(xn(i,r))}function q(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return zs(i,r)}function zs(e,n){return n.lo>0||n.hi<0?d(xn(e,{lo:1/n.hi,hi:1/n.lo})):n.lo<0&&n.hi>0?{kind:"singular"}:n.lo===0&&n.hi>0?e.lo>=0?{kind:"partial",value:{lo:e.lo/n.hi,hi:1/0},domainClipped:"hi"}:e.hi<=0?{kind:"partial",value:{lo:-1/0,hi:e.hi/n.hi},domainClipped:"lo"}:{kind:"entire"}:n.hi===0&&n.lo<0?e.lo>=0?{kind:"partial",value:{lo:-1/0,hi:e.lo/n.lo},domainClipped:"lo"}:e.hi<=0?{kind:"partial",value:{lo:e.hi/n.lo,hi:1/0},domainClipped:"hi"}:{kind:"entire"}:{kind:"empty"}}var er=new Map;function S(e){if(e<=100){let n=er.get(e);return n===void 0&&(n=10n**BigInt(e),er.set(e,n)),n}return 10n**BigInt(e)}function tr(e,n,t){return e*n/t}function ir(e,n,t){return e*t/n}function En(e,n){if(e===0n)return 0n;if(e<0n)throw new RangeError("fpsqrt: negative input");let t,i=Number(e),r=Number(n);if(Number.isFinite(i)&&Number.isFinite(r)&&i>0&&r>0){let f=Math.sqrt(i/r)*r;Number.isFinite(f)&&f>0?(t=BigInt(Math.floor(f)),t===0n&&(t=1n)):t=nr(e,n)}else t=nr(e,n);let s=e*n,o;do o=t,t=(t+s/t)/2n;while(ee(t-o)>1n);let a=(t+s/t)/2n,u=ee(t*t-s);return ee(a*a-s)<u?a:t}function nr(e,n){let i=C(e),r=Math.max(0,i-15),s=Number(r>0?e/S(r):e),o=C(n),a=Math.max(0,o-15),u=Number(a>0?n/S(a):n),c=r+a,f=Math.floor(c/2),h=Math.sqrt(s*u);c%2!==0&&(h*=3.1622776601683795);let E=BigInt(Math.round(h))*S(f);return E>0n?E:1n}function ee(e){return e<0n?-e:e}function C(e){if(e===0n)return 1;if(e<0n&&(e=-e),e<0x20000000000000n)return Math.floor(Math.log10(Number(e)))+1;let n=0,t=e,i=1;for(;t>>BigInt(i)>0n;)i*=2;for(let s=i>>1;s>=1;s>>=1)t>>BigInt(s)>0n&&(n+=s,t>>=BigInt(s));n+=1;let r=Math.ceil(n*.30102999566398);return e<S(r-1)?r-1:e>=S(r)?r+1:r}function Ei(e,n){if(e===0n)return n;let t=0,i=e,r=n/2n;for(;ee(i)>r;)i=i/2n,t++;let s=n,o=i;s+=o;for(let a=2;o=o*i/(BigInt(a)*n),ee(o)!==0n;a++)s+=o;for(let a=0;a<t;a++)s=s*s/n;return s}function rr(e,n){if(e===n)return 0n;let t=Number(e),i=Number(n),r,s=e,o=0;if(Number.isFinite(t)&&Number.isFinite(i)&&t>0&&i>0){let u=t/i;if(Number.isFinite(u)&&u>0){let c=Math.log(u);Number.isFinite(c)?r=BigInt(Math.round(c*i)):r=xi(e,n)}else r=xi(e,n)}else{s=e;let u=2n*n,c=n/2n;for(;s>u||s<c;)s=En(s,n),o++;r=xi(s,n)}let a=0n;for(let u=0;u<100;u++){let c=Ei(r,n);if(c===0n){r=r/2n;continue}let f=r+s*n/c-n,h=ee(f-r);if(h<=1n||h<100000n&&a>0n&&a<100000n&&h*4n>=a)break;a=h,r=f}for(let u=0;u<o;u++)r=2n*r;return r}function xi(e,n){let t=C(e),i=C(n);return BigInt(t-i)*2302585n*n/1000000n}var Bt="314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635",Rt=null;function bi(e){if(Rt!==null&&Rt.scale===e)return Rt.value;let t=C(e)-1+10,i=Bt.slice(0,t+1),r=BigInt(i),s=i.length-1,o=r*e/S(s);return Rt={scale:e,value:o},o}function Ot(e,n){if(e===0n)return[0n,n];let t=bi(n),i=2n*t,r=t/2n,s,o=ee(e);if(o>n*(1n<<30n)){let G=C(o)-C(n)+20,di=n*S(G),hi=e*S(G),Qi=2n*bi(di),gi=hi%Qi;gi<0n&&(gi+=Qi),s=gi/S(G)}else s=e%i;s<0n&&(s+=i);let a=1n,u=1n;s>3n*r?(s=i-s,a=-1n):s>t?(s=s-t,a=-1n,u=-1n):s>r&&(s=t-s,u=-1n);let c=C(n)-1,f=Math.min(18,Math.max(2,Math.ceil(.87*Math.sqrt(c)))),h=0,E=n>>BigInt(f);for(;s>E;)s=s/2n,h++;let v=s,w=n,B=s,ue=n,on=s*s,mi=n*n;for(let G=2;;G+=2){if(ue=ue*on/(BigInt(G)*BigInt(G-1)*mi),ue===0n){B=B*on/(BigInt(G+1)*BigInt(G)*mi),B!==0n&&(G%4===2?(w-=ue,v-=B):(w+=ue,v+=B));break}if(B=B*on/(BigInt(G+1)*BigInt(G)*mi),G%4===2?(w-=ue,v-=B):(w+=ue,v+=B),B===0n)break}for(let G=0;G<h;G++){let di=2n*v*w/n,hi=2n*w*w/n-n;v=di,w=hi}return[a*v,u*w]}function bn(e,n){if(e===0n)return 0n;if(e<0n)return-bn(-e,n);let i=bi(n)/2n;if(e>n){let h=n*n/e;return i-bn(h,n)}let r=4n*n/10n,s=0,o=e;for(;o>r;){let h=o*o,E=(n*n+h)/n,v=En(E,n);o=o*n/(n+v),s++}let a=o,u=o,c=o*o,f=n*n;for(let h=3;u=u*c/f,u!==0n;h+=2)h%4===3?a-=u/BigInt(h):a+=u/BigInt(h);for(let h=0;h<s;h++)a=2n*a;return a}var Ni=NaN,m=class e{static precision=50;static ZERO=Object.freeze(Object.assign(Object.create(e.prototype),{significand:0n,exponent:0}));static ONE=Object.freeze(Object.assign(Object.create(e.prototype),{significand:1n,exponent:0}));static TWO=Object.freeze(Object.assign(Object.create(e.prototype),{significand:2n,exponent:0}));static NEGATIVE_ONE=Object.freeze(Object.assign(Object.create(e.prototype),{significand:-1n,exponent:0}));static HALF=Object.freeze(Object.assign(Object.create(e.prototype),{significand:5n,exponent:-1}));static NAN=Object.freeze(Object.assign(Object.create(e.prototype),{significand:0n,exponent:NaN}));static POSITIVE_INFINITY=Object.freeze(Object.assign(Object.create(e.prototype),{significand:1n,exponent:1/0}));static NEGATIVE_INFINITY=Object.freeze(Object.assign(Object.create(e.prototype),{significand:-1n,exponent:1/0}));static _piFullPrecision=null;static _piCache=null;static _piCachePrecision=0;static get PI(){e._piFullPrecision===null&&(e._piFullPrecision=new e(Bt[0]+"."+Bt.slice(1)));let n=e.precision;return(e._piCache===null||e._piCachePrecision!==n)&&(e._piCache=e._piFullPrecision.toPrecision(n+4),e._piCachePrecision=n),e._piCache}significand;exponent;constructor(n){if(n instanceof e){this.significand=n.significand,this.exponent=n.exponent;return}if(typeof n=="bigint"){[this.significand,this.exponent]=Ct(n,0);return}if(typeof n=="number"){[this.significand,this.exponent]=Gs(n);return}[this.significand,this.exponent]=ar(n)}isNaN(){return Number.isNaN(this.exponent)}isZero(){return this.exponent===0&&this.significand===0n}isFinite(){return Number.isFinite(this.exponent)}isInteger(){return this.isFinite()&&this.exponent>=0}isPositive(){return this.significand>0n}isNegative(){return this.significand<0n}cmp(n){if(typeof n=="number"){if(Number.isNaN(n))return Ni;let v=this.exponent;if(Number.isNaN(v))return Ni;if(n===0)return this.significand===0n?0:this.significand>0n?1:-1;if(!Number.isFinite(v))return n===1/0?this.significand>0n?0:-1:n===-1/0?this.significand<0n?0:1:this.significand>0n?1:-1;if(this.significand===0n)return n>0?-1:1;if(n===1/0)return-1;if(n===-1/0)return 1;if(this.significand>0n!=n>0)return this.significand>0n?1:-1;if(Number.isInteger(n)&&v>=0&&v<=15){let w=this.significand*S(v),B=BigInt(n);return w<B?-1:w>B?1:0}n=new e(n)}let t=this.exponent,i=n.exponent,r=this.significand,s=n.significand;if(t!==t||i!==i)return Ni;if(!Number.isFinite(t)||!Number.isFinite(i))return!Number.isFinite(t)&&!Number.isFinite(i)?r===s?0:r>s?1:-1:Number.isFinite(t)?s>0n?-1:1:r>0n?1:-1;if(r===0n)return s===0n?0:s>0n?-1:1;if(s===0n)return r>0n?1:-1;if(r>0n&&s<0n)return 1;if(r<0n&&s>0n)return-1;if(t===i)return r<s?-1:r>s?1:0;let o=C(r),a=C(s),u=o+t,c=a+i;if(u!==c){let v=r>0n?1:-1;return u>c?v:-v}let f=r,h=s,E=Math.abs(t-i);if(E>1e3){let v=o,w=a,B=Math.max(v,w)+1;v<B&&(f=f*S(B-v)),w<B&&(h=h*S(B-w))}else t<i?h=h*S(E):f=f*S(E);return f<h?-1:f>h?1:0}eq(n){return typeof n=="number"?n===0?this.significand===0n&&this.exponent===0:n===1?this.significand===1n&&this.exponent===0:n===-1?this.significand===-1n&&this.exponent===0:Number.isInteger(n)&&Number.isFinite(this.exponent)&&this.exponent>=0&&this.exponent<=15?this.significand*S(this.exponent)===BigInt(n):this.cmp(n)===0:this.significand===n.significand&&this.exponent===n.exponent}lt(n){return this.cmp(n)===-1}lte(n){let t=this.cmp(n);return t===-1||t===0}gt(n){return this.cmp(n)===1}gte(n){let t=this.cmp(n);return t===1||t===0}add(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i)){if(t===i)return A(this.significand+n.significand,t);let o=t-i;return o>0?A(this.significand*S(o)+n.significand,i):A(this.significand+n.significand*S(-o),t)}if(t!==t||i!==i)return e.NAN;let r=!Number.isFinite(t),s=!Number.isFinite(i);return r&&s?this.significand!==n.significand?e.NAN:this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:r?this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:n.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY}sub(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i)){if(t===i)return A(this.significand-n.significand,t);let o=t-i;return o>0?A(this.significand*S(o)-n.significand,i):A(this.significand-n.significand*S(-o),t)}if(t!==t||i!==i)return e.NAN;let r=!Number.isFinite(t),s=!Number.isFinite(i);return r&&s?this.significand===n.significand?e.NAN:this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:r?this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:n.significand>0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY}mul(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i))return A(this.significand*n.significand,t+i);if(t!==t||i!==i||this.significand===0n||n.significand===0n)return e.NAN;let r=this.significand>0n?1n:-1n,s=n.significand>0n?1n:-1n;return r*s>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY}neg(){let n=this.significand;return n===0n?this:Number.isFinite(this.exponent)?A(-n,this.exponent):n>0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY}abs(){return this.significand>=0n?this:Number.isFinite(this.exponent)?A(-this.significand,this.exponent):e.POSITIVE_INFINITY}floor(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=this.trunc();return this.significand<0n?t.sub(A(1n,0)):t}return this}ceil(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=this.trunc();return this.significand>0n?t.add(A(1n,0)):t}return this}round(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=A(5n,-1);return this.significand>0n?this.add(t).trunc():this.sub(t).trunc()}return this}trunc(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=this.significand/S(-n);return A(t===0n?0n:t,0)}return this}div(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent,r=this.significand,s=n.significand;if(Number.isFinite(t)&&Number.isFinite(i)){if(s===0n)return r===0n?e.NAN:r>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY;if(r===0n)return A(0n,0);let u=e.precision,c=10,f=r<0n?-r:r,h=s<0n?-s:s,E=C(f),v=C(h),w=u+c+Math.max(0,v-E),B=S(w),ue=r*B/s,on=t-i-w;return A(ue,on).toPrecision(u)}if(t!==t||i!==i)return e.NAN;let o=!Number.isFinite(t),a=!Number.isFinite(i);if(o&&a)return e.NAN;if(o){let u=r>0n?1n:-1n,c=s>0n?1n:s<0n?-1n:1n;return u*c>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY}return A(0n,0)}inv(){return A(1n,0).div(this)}mod(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;return Number.isFinite(t)&&Number.isFinite(i)?n.significand===0n?e.NAN:this.significand===0n?A(0n,0):this.sub(this.div(n).trunc().mul(n)).toPrecision(e.precision):t!==t||i!==i||!Number.isFinite(t)?e.NAN:new e(this)}pow(n){if(typeof n=="number"&&(n=new e(n)),this.isNaN()||n.isNaN()||!n.isFinite())return e.NAN;if(n.isInteger()){let t=n.toBigInt();if(t===0n)return A(1n,0);if(!this.isFinite())return t>0n?this.significand<0n&&t%2n!==0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY:A(0n,0);if(this.isZero())return t>0n?A(0n,0):e.POSITIVE_INFINITY;if(t<0n)return this.pow(n.neg()).inv();let i=this.significand<0n?-this.significand:this.significand,r=C(i)+this.exponent,s=Number(t)*r;if(s>9e15)return this.significand<0n&&t%2n!==0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY;if(s<-9e15)return A(0n,0);let o=e.precision,a=A(1n,0),u=this,c=t;for(;c>0n;)c&1n&&(a=a.mul(u).toPrecision(o)),c>>=1n,c>0n&&(u=u.mul(u).toPrecision(o));return a}return this.isFinite()?this.isZero()?n.significand>0n?e.ZERO:e.POSITIVE_INFINITY:this.significand<0n?e.NAN:n.mul(this.ln()).exp():this.significand<0n?e.NAN:n.significand>0n?e.POSITIVE_INFINITY:e.ZERO}toNumber(){return Number.isFinite(this.exponent)?this.significand===0n?0:this.exponent===0?Number(this.significand):Number(this.toString()):this.exponent!==this.exponent?NaN:this.significand>0n?1/0:-1/0}toString(){if(!Number.isFinite(this.exponent))return this.exponent!==this.exponent?"NaN":this.significand>0n?"Infinity":"-Infinity";if(this.significand===0n)return"0";let n=this.significand<0n,t=(n?-this.significand:this.significand).toString(),i=t.length,r=i+this.exponent-1,s=n?"-":"";if(r>20||r<-6){let u=i===1?t:t[0]+"."+t.slice(1),c=r>=0?"+":"";return`${s}${u}e${c}${r}`}if(this.exponent>=0)return s+t+"0".repeat(this.exponent);let o=-this.exponent;if(o<i){let u=t.slice(0,i-o),c=t.slice(i-o);return`${s}${u}.${c}`}let a=o-i;return`${s}0.${"0".repeat(a)}${t}`}toFixed(n){let t=n??0;if(!Number.isFinite(this.exponent))return this.exponent!==this.exponent?"NaN":this.significand>0n?"Infinity":"-Infinity";let i=this.significand<0n,r=i?-this.significand:this.significand,s=this.exponent+t,o;if(s>=0)o=r*S(s);else{let h=S(-s),E=r/h,v=r%h,w=h/2n;v>w?o=E+1n:v<w||h%2n!==0n||E%2n===0n?o=E:o=E+1n}let a=i&&o!==0n?"-":"",u=o.toString();if(t===0)return`${a}${u}`;if(u.length<=t){let h=u.padStart(t,"0");return`${a}0.${h}`}let c=u.slice(0,u.length-t),f=u.slice(u.length-t);return`${a}${c}.${f}`}toPrecision(n){if(this.significand===0n||!Number.isFinite(this.exponent))return this;let t=this.significand<0n?-this.significand:this.significand,i=C(t);if(i<=n)return this;let r=i-n,s=S(r),o=t/s,a=t%s,u=s/2n;(a>u||a===u&&o%2n!==0n)&&(o+=1n);let c=this.significand<0n?-o:o;return A(c,this.exponent+r)}toBigInt(){if(!Number.isFinite(this.exponent))throw this.exponent!==this.exponent?new RangeError("Cannot convert NaN to BigInt"):new RangeError("Cannot convert Infinity to BigInt");if(this.exponent>=0)return this.significand*S(this.exponent);let n=S(-this.exponent);return this.significand/n}};function A(e,n){let[t,i]=Ct(e,n),r=Object.create(m.prototype);return r.significand=t,r.exponent=i,r}var sr=1000000000n,or=1000n;function Ct(e,n){if(e===0n)return[0n,0];for(;e%sr===0n;)e/=sr,n+=9;for(;e%or===0n;)e/=or,n+=3;for(;e%10n===0n;)e/=10n,n+=1;return[e,n]}function Gs(e){return Number.isNaN(e)?[0n,NaN]:e===1/0?[1n,1/0]:e===-1/0?[-1n,1/0]:Number.isInteger(e)?Ct(BigInt(e),0):ar(e.toString())}function ar(e){if(e=e.trim(),e===""||e==="NaN")return[0n,NaN];if(e==="Infinity"||e==="+Infinity")return[1n,1/0];if(e==="-Infinity")return[-1n,1/0];let n,t=0,i=e.search(/[eE]/);if(i!==-1){if(n=e.slice(0,i),t=Number(e.slice(i+1)),!Number.isFinite(t))return[0n,NaN]}else n=e;let r=!1;n.startsWith("-")?(r=!0,n=n.slice(1)):n.startsWith("+")&&(n=n.slice(1));let s=n.indexOf("."),o,a;s===-1?(o=n,a=""):(o=n.slice(0,s),a=n.slice(s+1)),o=o.replace(/^0+/,"")||"0";let u=o+a;if(u.length===0||!/^\d+$/.test(u))return[0n,NaN];let c=BigInt(u);r&&(c=-c);let f=-a.length;return Ct(c,f+t)}function le(e,n){let t=S(n),i=e.exponent+n;return i>=0?[e.significand*S(i),t]:[e.significand/S(-i),t]}function ce(e,n,t){if(e===0n)return m.ZERO;let i=e<0n,r=i?-e:e,s=C(r);if(s>t){let c=s-t,f=S(c),h=f/2n,E=r%f;r=r/f,E>=h&&(r+=1n);let v=C(n)-1,w=c-v,B=i?-r:r;return A(B,w)}let a=-(C(n)-1),u=i?-r:r;return A(u,a)}m.prototype.sqrt=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.NAN;if(this.significand<0n)return m.NAN;let e=m.precision,n=e+10,[t,i]=le(this,n),r=En(t,i);return ce(r,i,e)};m.prototype.cbrt=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.NEGATIVE_INFINITY;if(this.significand<0n)return this.neg().cbrt().neg();let e=m.precision,n=e+10,[t,i]=le(this,n),r=t*i*i,s,o=this.toNumber(),a=Number(i);if(Number.isFinite(o)&&o>0&&Number.isFinite(a)){let c=Math.cbrt(o);Number.isFinite(c)&&c>0?(s=BigInt(Math.floor(c*a)),s===0n&&(s=1n)):s=ur(t,i)}else s=ur(t,i);let u;do{u=s;let c=s*s;if(c===0n){s=1n;break}s=(2n*s+r/c)/3n}while(ee(s-u)>1n);{let c=(2n*s+r/(s*s))/3n,f=ee(s*s*s-r);ee(c*c*c-r)<f&&(s=c)}return ce(s,i,e)};m.sqrt=function(e){return e.sqrt()};m.cbrt=function(e){return e.cbrt()};m.prototype.exp=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.ZERO;if(this.isZero())return m.ONE;let e=m.precision,n=e+15,[t,i]=le(this,n),r=Ei(t,i);return ce(r,i,e)};m.prototype.ln=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.NAN;if(this.isZero())return m.NEGATIVE_INFINITY;if(this.significand<0n)return m.NAN;if(this.eq(1))return m.ZERO;let e=m.precision,n=e+15,[t,i]=le(this,n),r=rr(t,i);return ce(r,i,e)};m.prototype.log=function(e){let n=e instanceof m?e:new m(e);return this.ln().div(n.ln())};m.exp=function(e){return e.exp()};m.ln=function(e){return e.ln()};m.log10=function(e){return e.log(10)};m.prototype.sin=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return m.NAN;if(this.isZero())return m.ZERO;let e=m.precision,n=e+15,[t,i]=le(this,n),[r]=Ot(t,i);return ce(r,i,e)};m.prototype.cos=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return m.NAN;if(this.isZero())return m.ONE;let e=m.precision,n=e+15,[t,i]=le(this,n),[,r]=Ot(t,i);return ce(r,i,e)};m.prototype.tan=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return m.NAN;if(this.isZero())return m.ZERO;let e=m.precision,n=e+15,[t,i]=le(this,n),[r,s]=Ot(t,i);if(s===0n)return r>0n?m.POSITIVE_INFINITY:m.NEGATIVE_INFINITY;let o=r*i/s;return ce(o,i,e)};m.prototype.atan=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite()){let s=m.PI.div(m.TWO);return this.significand>0n?s:s.neg()}let e=m.precision,n=e+15,[t,i]=le(this,n),r=bn(t,i);return ce(r,i,e)};m.prototype.asin=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return m.NAN;if(this.isZero())return m.ZERO;let e=this.abs(),n=m.ONE;if(e.gt(n))return m.NAN;if(e.eq(n)){let h=m.PI.div(m.TWO);return this.significand>0n?h:h.neg()}let t=m.precision,i=t+20,[r,s]=le(this,i),o=tr(r,r,s),a=s-o,u=En(a,s),c=ir(r,u,s),f=bn(c,s);return ce(f,s,t)};m.prototype.acos=function(){return this.isNaN()?m.NAN:this.isFinite()?this.abs().gt(m.ONE)?m.NAN:this.eq(1)?m.ZERO:this.eq(-1)?m.PI:m.PI.div(m.TWO).sub(this.asin()):m.NAN};m.sin=function(e){return e.sin()};m.cos=function(e){return e.cos()};m.tan=function(e){return e.tan()};m.asin=function(e){return e.asin()};m.acos=function(e){return e.acos()};m.atan=function(e){return e.atan()};m.atan2=function(e,n){let t=e instanceof m?e:new m(e);if(t.isNaN()||n.isNaN())return m.NAN;let i=m.PI,r=i.div(m.TWO);if(n.isZero())return t.isZero()?m.ZERO:t.significand>0n?r:r.neg();let s=t.div(n);return n.significand>0n?s.atan():t.significand>=0n?s.atan().add(i):s.atan().sub(i)};m.prototype.sinh=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.NEGATIVE_INFINITY;let e=this.exp(),n=e.inv();return e.sub(n).div(m.TWO)};m.prototype.cosh=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ONE;if(!this.isFinite())return m.POSITIVE_INFINITY;let e=this.exp(),n=e.inv();return e.add(n).div(m.TWO)};m.prototype.tanh=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite())return this.significand>0n?m.ONE:m.NEGATIVE_ONE;let e=this.mul(m.TWO).exp();return e.sub(m.ONE).div(e.add(m.ONE))};m.sinh=function(e){return e.sinh()};m.cosh=function(e){return e.cosh()};m.tanh=function(e){return e.tanh()};function ur(e,n){let i=C(e),r=Math.max(0,i-15),s=Number(r>0?e/S(r):e),o=C(n),a=Math.max(0,o-15),u=Number(a>0?n/S(a):n),c=r+2*a,f=Math.floor(c/3),h=c%3,E=Math.cbrt(s*u*u);h===1&&(E*=2.154434690031882),h===2&&(E*=4.641588833612779);let v=BigInt(Math.round(E))*S(f);return v>0n?v:1n}var lr=7,cr=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23];function Oe(e){if(e<0)return NaN;let n=Math.PI,t=e*e*e;return e*Math.log(e)-e-.5*Math.log(e)+.5*Math.log(2*n)+1/(12*e)-1/(360*t)+1/(1260*t*e*e)}function te(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*te(1-e));if(e>100)return Math.exp(Oe(e));e-=1;let n=cr[0];for(let i=1;i<lr+2;i++)n+=cr[i]/(e+i);let t=e+lr+.5;return Math.sqrt(2*Math.PI)*Math.pow(t,e+.5)*Math.exp(-t)*n}function Ti(e){return 1-Ft(e)}function Ft(e){let n=.254829592,t=-.284496736,i=1.421413741,r=-1.453152027,s=1.061405429,o=.3275911,a=e<0?-1:1;e=Math.abs(e);let u=1/(1+o*e),c=((((s*u+r)*u+i)*u+t)*u+n)*u;return a*(1-c*Math.exp(-e*e))}var Za=[1/6,-1/30,1/42,-1/30,5/66,-691/2730,7/6,-3617/510,43867/798,-174611/330];var Zs=[-2991.8191940101983,708840.0452577386,-6297414862058625e-8,25489088057337637e-7,-4429795180596978e-5,3180162978765678e-4],js=[1,281.3762688899943,45584.78108065326,5173438887700964e-9,4193202458981112e-7,22441179564534092e-6,607366389490085e-3],Us=[-49884311457357354e-24,9504280628298596e-21,-.0006451914356839651,.018884331939670384,-.20552590095501388,1],Ws=[399982968972496e-26,9154392157746574e-25,12500186247959882e-23,12226278902417902e-21,.0008680295429417843,.04121420907221998,1],fr=[.4215435550436775,.1434079197807589,.011522095507358577,.000345017939782574,46361374928786735e-22,3055689837902576e-23,10230451416490724e-26,17201074326816183e-29,13428327623306275e-32,3763297112699879e-35],pr=[1,.7515863983533789,.11688892585919138,.0064405152650885865,.00015593440916415301,18462756734893055e-22,11269922476399903e-24,36014002958937136e-27,5887545336215784e-29,45200143407412973e-33,12544323709001127e-36],mr=[.5044420736433832,.1971028335255234,.018764858409257526,.0006840793809153931,11513882611188428e-21,9828524436884223e-23,44534441586175015e-26,10826804113902088e-28,1375554606332618e-30,8363544356306774e-34,18695871016278324e-38],dr=[1,1.4749575992512833,.33774898912002,.02536037414203388,.0008146791071843061,12754507566772912e-21,10431458965757199e-23,46068072851523205e-26,11027321506624028e-28,13879653125957886e-31,8391588162831187e-34,18695871016278324e-38];function X(e,n){let t=n[0];for(let i=1;i<n.length;i++)t=t*e+n[i];return t}function Nn(e){if(!isFinite(e))return e!==e?NaN:e>0?.5:-.5;let n=e<0?-1:1;if(e=Math.abs(e),e<1.6){let t=e*e,i=t*t;return n*e*t*X(i,Zs)/X(i,js)}if(e<36){let t=e*e,i=Math.PI*t,r=1/(i*i),s=1-r*X(r,fr)/X(r,pr),o=1/i*X(r,mr)/X(r,dr),a=Math.PI/2*t,u=Math.cos(a),c=Math.sin(a);return n*(.5-(s*u+o*c)/(Math.PI*e))}return n*.5}function Tn(e){if(!isFinite(e))return e!==e?NaN:e>0?.5:-.5;let n=e<0?-1:1;if(e=Math.abs(e),e<1.6){let t=e*e,i=t*t;return n*e*X(i,Us)/X(i,Ws)}if(e<36){let t=e*e,i=Math.PI*t,r=1/(i*i),s=1-r*X(r,fr)/X(r,pr),o=1/i*X(r,mr)/X(r,dr),a=Math.PI/2*t,u=Math.cos(a),c=Math.sin(a);return n*(.5+(s*c-o*u)/(Math.PI*e))}return n*.5}var Xa=[BigInt(4),BigInt(2),BigInt(4),BigInt(2),BigInt(4),BigInt(6),BigInt(2),BigInt(6)];var Hs=53,hr=Math.floor(Math.log10(Math.pow(2,Hs))),Ys=1e-10;function ye(e,n){if(e===0)return n;if(n===0||e===n)return e;if(!Number.isInteger(e)||!Number.isInteger(n))return NaN;for(;n!==0;)[e,n]=[n,e%n];return e<0?-e:e}function Ce(e,n){if(e===0||n===0)return 0;let t=BigInt(e)*BigInt(n)/BigInt(ye(e,n));return Number(t)}function vi(e){if(!Number.isInteger(e)||e<0)return NaN;if(e>=170)return 1/0;let n=1;for(let t=2;t<=e;t++)n=n*t;return n}function Ii(e){if(!Number.isInteger(e)||e<0)return NaN;if(e<0)return NaN;if(e<=1)return 1;let n=e;for(;e>2;)e-=2,n*=e;return n}function ki(e,n=Ys){return typeof e=="number"&&Math.abs(e)<=n?0:e}function g(e){let n="",t="";for(let i of e)i!=null&&(typeof i=="string"&&(/[a-zA-Z]/.test(i[0])&&(t+=n),/\\[a-zA-Z]+\*?$/.test(i)?n=" ":n=""),t+=i.toString());return t}function Fe(e,n,t){return n.includes(e)&&(n=`{${n}}`),/^[0-9]$/.test(t)?`${n}${e}${t}`:`${n}${e}{${t}}`}var k=245,In=260,fe=270,F=275,j=390,K=600;var kn=700,Si=810;var Ve=[{latexTrigger:["\\not","<"],kind:"infix",associativity:"any",precedence:246,parse:"NotLess"},{name:"NotLess",latexTrigger:["\\nless"],kind:"infix",associativity:"any",precedence:246},{latexTrigger:["<"],kind:"infix",associativity:"any",precedence:245,parse:"Less"},{name:"Less",latexTrigger:["\\lt"],kind:"infix",associativity:"any",precedence:245},{latexTrigger:["<","="],kind:"infix",associativity:"any",precedence:241,parse:"LessEqual"},{name:"LessEqual",latexTrigger:["\\le"],kind:"infix",associativity:"any",precedence:241},{latexTrigger:["\\leq"],kind:"infix",associativity:"any",precedence:241,parse:"LessEqual"},{latexTrigger:["\\leqslant"],kind:"infix",associativity:"any",precedence:k+5,parse:"LessEqual"},{name:"LessNotEqual",latexTrigger:["\\lneqq"],kind:"infix",associativity:"any",precedence:k},{name:"NotLessNotEqual",latexTrigger:["\\nleqq"],kind:"infix",associativity:"any",precedence:k},{name:"LessOverEqual",latexTrigger:["\\leqq"],kind:"infix",associativity:"any",precedence:k+5},{name:"GreaterOverEqual",latexTrigger:["\\geqq"],kind:"infix",associativity:"any",precedence:k+5,parse:"GreaterEqual"},{name:"Equal",latexTrigger:["="],kind:"infix",associativity:"right",precedence:k},{latexTrigger:["*","="],kind:"infix",associativity:"right",precedence:k,parse:"StarEqual"},{name:"StarEqual",latexTrigger:["\\star","="],kind:"infix",associativity:"right",precedence:k},{name:"PlusEqual",latexTrigger:["+","="],kind:"infix",associativity:"right",precedence:k},{name:"MinusEqual",latexTrigger:["-","="],kind:"infix",associativity:"right",precedence:k},{name:"SlashEqual",latexTrigger:["/","="],kind:"infix",associativity:"right",precedence:k},{name:"EqualEqual",latexTrigger:["=","="],kind:"infix",associativity:"right",precedence:k},{name:"EqualEqualEqual",latexTrigger:["=","=","="],kind:"infix",associativity:"right",precedence:k+5},{name:"TildeFullEqual",latexTrigger:["\\cong"],kind:"infix",associativity:"right",precedence:k},{name:"NotTildeFullEqual",latexTrigger:["\\ncong"],kind:"infix",associativity:"right",precedence:k},{name:"Approx",latexTrigger:["\\approx"],kind:"infix",associativity:"right",precedence:247},{name:"NotApprox",latexTrigger:["\\not","\\approx"],kind:"infix",associativity:"right",precedence:247},{name:"ApproxEqual",latexTrigger:["\\approxeq"],kind:"infix",associativity:"right",precedence:k},{name:"NotApproxEqual",latexTrigger:["\\not","\\approxeq"],kind:"infix",associativity:"right",precedence:250},{name:"NotEqual",latexTrigger:["\\ne"],kind:"infix",associativity:"right",precedence:255},{name:"Unequal",latexTrigger:["!","="],kind:"infix",associativity:"right",precedence:k},{name:"GreaterEqual",latexTrigger:["\\ge"],kind:"infix",associativity:"right",precedence:242},{latexTrigger:["\\geq"],kind:"infix",associativity:"right",precedence:242,parse:"GreaterEqual"},{latexTrigger:[">","="],kind:"infix",associativity:"right",precedence:243,parse:"GreaterEqual"},{latexTrigger:["\\geqslant"],kind:"infix",associativity:"right",precedence:k+5,parse:"GreaterEqual"},{name:"GreaterNotEqual",latexTrigger:["\\gneqq"],kind:"infix",associativity:"right",precedence:k},{name:"NotGreaterNotEqual",latexTrigger:["\\ngeqq"],kind:"infix",associativity:"right",precedence:k},{latexTrigger:[">"],kind:"infix",associativity:"right",precedence:245,parse:"Greater"},{name:"Greater",latexTrigger:["\\gt"],kind:"infix",associativity:"right",precedence:245},{name:"NotGreater",latexTrigger:["\\ngtr"],kind:"infix",associativity:"right",precedence:244},{latexTrigger:["\\not",">"],kind:"infix",associativity:"right",precedence:244,parse:"NotGreater"},{name:"RingEqual",latexTrigger:["\\circeq"],kind:"infix",associativity:"right",precedence:k},{name:"TriangleEqual",latexTrigger:["\\triangleq"],kind:"infix",associativity:"right",precedence:k},{name:"DotEqual",latexTrigger:["\\doteq"],kind:"infix",associativity:"right",precedence:k+5},{name:"DotEqualDot",latexTrigger:["\\doteqdot"],kind:"infix",associativity:"right",precedence:k+5},{name:"FallingDotEqual",latexTrigger:["\\fallingdotseq"],kind:"infix",associativity:"right",precedence:k+5},{name:"RisingDotEqual",latexTrigger:["\\fallingdotseq"],kind:"infix",associativity:"right",precedence:k+5},{name:"QuestionEqual",latexTrigger:["\\questeq"],kind:"infix",associativity:"right",precedence:k},{name:"MuchLess",latexTrigger:["\\ll"],kind:"infix",associativity:"right",precedence:k},{name:"MuchGreater",latexTrigger:["\\gg"],kind:"infix",associativity:"right",precedence:k},{name:"Precedes",latexTrigger:["\\prec"],kind:"infix",associativity:"right",precedence:k},{name:"Succeeds",latexTrigger:["\\succ"],kind:"infix",associativity:"right",precedence:k},{name:"PrecedesEqual",latexTrigger:["\\preccurlyeq"],kind:"infix",associativity:"right",precedence:k},{name:"SucceedsEqual",latexTrigger:["\\curlyeqprec"],kind:"infix",associativity:"right",precedence:k},{name:"NotPrecedes",latexTrigger:["\\nprec"],kind:"infix",associativity:"right",precedence:k},{name:"NotSucceeds",latexTrigger:["\\nsucc"],kind:"infix",associativity:"right",precedence:k},{name:"Between",latexTrigger:["\\between"],kind:"infix",associativity:"right",precedence:k+5}];function Mi(e){return typeof e!="string"?!1:["Less","LessEqual","Greater","GreaterEqual"].includes(e)}function wi(e){return typeof e!="string"?!1:["Equal","NotEqual"].includes(e)}var Z=Math.cosh||function(e){return Math.abs(e)<1e-9?1-e:(Math.exp(e)+Math.exp(-e))*.5},Q=Math.sinh||function(e){return Math.abs(e)<1e-9?e:(Math.exp(e)-Math.exp(-e))*.5},Xs=function(e){var n=Math.PI/4;if(-n>e||e>n)return Math.cos(e)-1;var t=e*e;return t*(t*(t*(t*(t*(t*(t*(t/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},Ks=function(e,n){var t=Math.abs(e),i=Math.abs(n);return t<3e3&&i<3e3?Math.sqrt(t*t+i*i):(t<i?(t=i,i=e/n):i=n/e,t*Math.sqrt(1+i*i))},Je=function(){throw SyntaxError("Invalid Param")};function Di(e,n){var t=Math.abs(e),i=Math.abs(n);return e===0?Math.log(i):n===0?Math.log(t):t<3e3&&i<3e3?Math.log(e*e+n*n)*.5:(e=e/2,n=n/2,.5*Math.log(e*e+n*n)+Math.LN2)}var Qs=function(e,n){var t={re:0,im:0};if(e==null)t.re=t.im=0;else if(n!==void 0)t.re=e,t.im=n;else switch(typeof e){case"object":if("im"in e&&"re"in e)t.re=e.re,t.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return V.INFINITY;t.re=e.abs*Math.cos(e.arg),t.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return V.INFINITY;t.re=e.r*Math.cos(e.phi),t.im=e.r*Math.sin(e.phi)}else e.length===2?(t.re=e[0],t.im=e[1]):Je();break;case"string":t.im=t.re=0;var i=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),r=1,s=0;i===null&&Je();for(var o=0;o<i.length;o++){var a=i[o];a===" "||a===" "||a===`
|
|
4
|
-
`||(a==="+"?r++:a==="-"?s++:a==="i"||a==="I"?(r+s===0&&Je(),i[o+1]!==" "&&!isNaN(Number(i[o+1]))?(t.im+=parseFloat((s%2?"-":"")+i[o+1]),o++):t.im+=parseFloat((s%2?"-":"")+"1"),r=s=0):((r+s===0||isNaN(Number(a)))&&Je(),i[o+1]==="i"||i[o+1]==="I"?(t.im+=parseFloat((s%2?"-":"")+a),o++):t.re+=parseFloat((s%2?"-":"")+a),r=s=0))}r+s>0&&Je();break;case"number":t.im=0,t.re=e;break;default:Je()}return isNaN(t.re)||isNaN(t.im),t},V=class e{constructor(n,t){this.re=0,this.im=0;var i=Qs(n,t);this.re=i.re,this.im=i.im}sign(){var n=this.abs();return new e(this.re/n,this.im/n)}add(n,t){var i=new e(n,t);return this.isInfinite()&&i.isInfinite()?e.NAN:this.isInfinite()||i.isInfinite()?e.INFINITY:new e(this.re+i.re,this.im+i.im)}sub(n,t){var i=new e(n,t);return this.isInfinite()&&i.isInfinite()?e.NAN:this.isInfinite()||i.isInfinite()?e.INFINITY:new e(this.re-i.re,this.im-i.im)}mul(n,t){var i=new e(n,t);return this.isInfinite()&&i.isZero()||this.isZero()&&i.isInfinite()?e.NAN:this.isInfinite()||i.isInfinite()?e.INFINITY:i.im===0&&this.im===0?new e(this.re*i.re,0):new e(this.re*i.re-this.im*i.im,this.re*i.im+this.im*i.re)}div(n,t){var i=new e(n,t);if(this.isZero()&&i.isZero()||this.isInfinite()&&i.isInfinite())return e.NAN;if(this.isInfinite()||i.isZero())return e.INFINITY;if(this.isZero()||i.isInfinite())return e.ZERO;n=this.re,t=this.im;var r=i.re,s=i.im,o,a;return s===0?new e(n/r,t/r):Math.abs(r)<Math.abs(s)?(a=r/s,o=r*a+s,new e((n*a+t)/o,(t*a-n)/o)):(a=s/r,o=s*a+r,new e((n+t*a)/o,(t-n*a)/o))}pow(n,t){var i=new e(n,t);if(n=this.re,t=this.im,i.isZero())return e.ONE;if(i.im===0){if(t===0&&n>0)return new e(Math.pow(n,i.re),0);if(n===0)switch((i.re%4+4)%4){case 0:return new e(Math.pow(t,i.re),0);case 1:return new e(0,Math.pow(t,i.re));case 2:return new e(-Math.pow(t,i.re),0);case 3:return new e(0,-Math.pow(t,i.re))}}if(n===0&&t===0&&i.re>0&&i.im>=0)return e.ZERO;var r=Math.atan2(t,n),s=Di(n,t);return n=Math.exp(i.re*s-i.im*r),t=i.im*s+i.re*r,new e(n*Math.cos(t),n*Math.sin(t))}sqrt(){var n=this.re,t=this.im,i=this.abs(),r,s;if(n>=0){if(t===0)return new e(Math.sqrt(n),0);r=.5*Math.sqrt(2*(i+n))}else r=Math.abs(t)/Math.sqrt(2*(i-n));return n<=0?s=.5*Math.sqrt(2*(i-n)):s=Math.abs(t)/Math.sqrt(2*(i+n)),new e(r,t<0?-s:s)}exp(){var n=Math.exp(this.re);return this.im,new e(n*Math.cos(this.im),n*Math.sin(this.im))}expm1(){var n=this.re,t=this.im;return new e(Math.expm1(n)*Math.cos(t)+Xs(t),Math.exp(n)*Math.sin(t))}log(){var n=this.re,t=this.im;return t===0&&n>0,new e(Di(n,t),Math.atan2(t,n))}abs(){return Ks(this.re,this.im)}arg(){return Math.atan2(this.im,this.re)}sin(){var n=this.re,t=this.im;return new e(Math.sin(n)*Z(t),Math.cos(n)*Q(t))}cos(){var n=this.re,t=this.im;return new e(Math.cos(n)*Z(t),-Math.sin(n)*Q(t))}tan(){var n=2*this.re,t=2*this.im,i=Math.cos(n)+Z(t);return new e(Math.sin(n)/i,Q(t)/i)}cot(){var n=2*this.re,t=2*this.im,i=Math.cos(n)-Z(t);return new e(-Math.sin(n)/i,Q(t)/i)}sec(){var n=this.re,t=this.im,i=.5*Z(2*t)+.5*Math.cos(2*n);return new e(Math.cos(n)*Z(t)/i,Math.sin(n)*Q(t)/i)}csc(){var n=this.re,t=this.im,i=.5*Z(2*t)-.5*Math.cos(2*n);return new e(Math.sin(n)*Z(t)/i,-Math.cos(n)*Q(t)/i)}asin(){var n=this.re,t=this.im,i=new e(t*t-n*n+1,-2*n*t).sqrt(),r=new e(i.re-t,i.im+n).log();return new e(r.im,-r.re)}acos(){var n=this.re,t=this.im,i=new e(t*t-n*n+1,-2*n*t).sqrt(),r=new e(i.re-t,i.im+n).log();return new e(Math.PI/2-r.im,r.re)}atan(){var n=this.re,t=this.im;if(n===0){if(t===1)return new e(0,1/0);if(t===-1)return new e(0,-1/0)}var i=n*n+(1-t)*(1-t),r=new e((1-t*t-n*n)/i,-2*n/i).log();return new e(-.5*r.im,.5*r.re)}acot(){var n=this.re,t=this.im;if(t===0)return new e(Math.atan2(1,n),0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).atan():new e(n!==0?n/0:0,t!==0?-t/0:0).atan()}asec(){var n=this.re,t=this.im;if(n===0&&t===0)return new e(0,1/0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).acos():new e(n!==0?n/0:0,t!==0?-t/0:0).acos()}acsc(){var n=this.re,t=this.im;if(n===0&&t===0)return new e(Math.PI/2,1/0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).asin():new e(n!==0?n/0:0,t!==0?-t/0:0).asin()}sinh(){var n=this.re,t=this.im;return new e(Q(n)*Math.cos(t),Z(n)*Math.sin(t))}cosh(){var n=this.re,t=this.im;return new e(Z(n)*Math.cos(t),Q(n)*Math.sin(t))}tanh(){var n=2*this.re,t=2*this.im,i=Z(n)+Math.cos(t);return new e(Q(n)/i,Math.sin(t)/i)}coth(){var n=2*this.re,t=2*this.im,i=Z(n)-Math.cos(t);return new e(Q(n)/i,-Math.sin(t)/i)}csch(){var n=this.re,t=this.im,i=Math.cos(2*t)-Z(2*n);return new e(-2*Q(n)*Math.cos(t)/i,2*Z(n)*Math.sin(t)/i)}sech(){var n=this.re,t=this.im,i=Math.cos(2*t)+Z(2*n);return new e(2*Z(n)*Math.cos(t)/i,-2*Q(n)*Math.sin(t)/i)}asinh(){var n=this.im;this.im=-this.re,this.re=n;var t=this.asin();return this.re=-this.im,this.im=n,n=t.re,t.re=-t.im,t.im=n,t}acosh(){var n=this.acos();if(n.im<=0){var t=n.re;n.re=-n.im,n.im=t}else{var t=n.im;n.im=-n.re,n.re=t}return n}atanh(){var n=this.re,t=this.im,i=n>1&&t===0,r=1-n,s=1+n,o=r*r+t*t,a=o!==0?new e((s*r-t*t)/o,(t*r+s*t)/o):new e(n!==-1?n/0:0,t!==0?t/0:0),u=a.re;return a.re=Di(a.re,a.im)/2,a.im=Math.atan2(a.im,u)/2,i&&(a.im=-a.im),a}acoth(){var n=this.re,t=this.im;if(n===0&&t===0)return new e(0,Math.PI/2);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).atanh():new e(n!==0?n/0:0,t!==0?-t/0:0).atanh()}acsch(){var n=this.re,t=this.im;if(t===0)return new e(n!==0?Math.log(n+Math.sqrt(n*n+1)):1/0,0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).asinh():new e(n!==0?n/0:0,t!==0?-t/0:0).asinh()}asech(){var n=this.re,t=this.im;if(this.isZero())return e.INFINITY;var i=n*n+t*t;return i!==0?new e(n/i,-t/i).acosh():new e(n!==0?n/0:0,t!==0?-t/0:0).acosh()}inverse(){if(this.isZero())return e.INFINITY;if(this.isInfinite())return e.ZERO;var n=this.re,t=this.im,i=n*n+t*t;return new e(n/i,-t/i)}conjugate(){return new e(this.re,-this.im)}neg(){return new e(-this.re,-this.im)}ceil(n){return n=Math.pow(10,n||0),new e(Math.ceil(this.re*n)/n,Math.ceil(this.im*n)/n)}floor(n){return n=Math.pow(10,n||0),new e(Math.floor(this.re*n)/n,Math.floor(this.im*n)/n)}round(n){return n=Math.pow(10,n||0),new e(Math.round(this.re*n)/n,Math.round(this.im*n)/n)}equals(n,t){var i=new e(n,t);return Math.abs(i.re-this.re)<=e.EPSILON&&Math.abs(i.im-this.im)<=e.EPSILON}clone(){return new e(this.re,this.im)}toString(){var n=this.re,t=this.im,i="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(n)<e.EPSILON&&(n=0),Math.abs(t)<e.EPSILON&&(t=0),t===0?i+n:(n!==0?(i+=n,i+=" ",t<0?(t=-t,i+="-"):i+="+",i+=" "):t<0&&(t=-t,i+="-"),t!==1&&(i+=t),i+"i"))}toVector(){return[this.re,this.im]}valueOf(){return this.im===0?this.re:null}isNaN(){return isNaN(this.re)||isNaN(this.im)}isZero(){return this.im===0&&this.re===0}isFinite(){return isFinite(this.re)&&isFinite(this.im)}isInfinite(){return!(this.isNaN()||this.isFinite())}};V.ZERO=new V(0,0);V.ONE=new V(1,0);V.I=new V(0,1);V.PI=new V(Math.PI,0);V.E=new V(Math.E,0);V.INFINITY=new V(1/0,1/0);V.NAN=new V(NaN,NaN);V.EPSILON=1e-15;var Le=["number","finite_number","complex","finite_complex","imaginary","real","finite_real","rational","finite_rational","integer","finite_integer","non_finite_number"],Ai=["indexed_collection","list","tuple"],Vt=[...Ai,"collection","set","record","dictionary"],Jt=["scalar",...Le,"boolean","string"],Pi=["value","color",...Vt,...Jt],_i=["expression","symbol","function",...Pi],xe=["any","unknown","nothing","never","error",..._i];function Lt(e){return typeof e=="string"?xe.includes(e):typeof e!="object"||!("kind"in e)?!1:e.kind==="signature"||e.kind==="union"||e.kind==="intersection"||e.kind==="negation"||e.kind==="tuple"||e.kind==="list"||e.kind==="record"||e.kind==="dictionary"||e.kind==="set"||e.kind==="function"||e.kind==="collection"||e.kind==="indexed_collection"||e.kind==="reference"}var yr=3,xr=1,br=2,eo=4,no=5,to=6,io=7,ro=8,so=9,oo=10,ao=11;function O(e,n=0){if(typeof e=="string")return e;let t="";switch(e.kind){case"value":typeof e.value=="string"?t=`"${e.value}"`:typeof e.value=="boolean"?t=e.value?"true":"false":t=e.value.toString();break;case"reference":t=e.name;break;case"negation":t=`!${O(e.type,yr)}`;break;case"union":t=e.types.map(u=>O(u,xr)).join(" | ");break;case"intersection":t=e.types.map(u=>O(u,br)).join(" & ");break;case"expression":t=`expression<${gr(e.operator)}>`;break;case"symbol":t=`symbol<${gr(e.name)}>`;break;case"numeric":Number.isFinite(e.lower)&&Number.isFinite(e.upper)?t=`${e.type}<${e.lower}..${e.upper}>`:Number.isFinite(e.lower)?t=`${e.type}<${e.lower}..>`:Number.isFinite(e.upper)?t=`${e.type}<..${e.upper}>`:t=`${e.type}`;break;case"list":if(e.dimensions&&typeof e.elements=="string"&&Le.includes(e.elements)){if(e.dimensions===void 0)e.elements==="number"&&(t="tensor");else if(e.dimensions.length===1)e.elements==="number"?e.dimensions[0]<0?t="vector":t=`vector<${e.dimensions[0]}>`:e.dimensions[0]<0?t=`vector<${O(e.elements)}>`:t=`vector<${O(e.elements)}^${e.dimensions[0]}>`;else if(e.dimensions.length===2){let u=e.dimensions;e.elements==="number"?u[0]<0&&u[1]<0?t="matrix":t=`matrix<${u[0]}x${u[1]}>`:u[0]<0&&u[1]<0?t=`matrix<${O(e.elements)}>`:t=`matrix<${O(e.elements)}^(${u[0]}x${u[1]})>`}}if(!t){let u=e.dimensions?e.dimensions.length===1?`^${e.dimensions[0].toString()}`:`^(${e.dimensions.join("x")})`:"";t=`list<${O(e.elements)}${u}>`}break;case"record":t=`record<${Object.entries(e.elements).map(([u,c])=>`${u}: ${O(c)}`).join(", ")}>`;break;case"dictionary":t=`dictionary<${O(e.values)}>`;break;case"set":t=`set<${O(e.elements)}>`;break;case"collection":t=`collection<${O(e.elements)}>`;break;case"indexed_collection":t=`indexed_collection<${O(e.elements)}>`;break;case"tuple":if(e.elements.length===0)t="tuple";else if(e.elements.length===1){let[u]=e.elements;t=`tuple<${$e(u)}>`}else t="tuple<"+e.elements.map(u=>$e(u)).join(", ")+">";break;case"signature":let r=e.args?e.args.map(u=>$e(u)).join(", "):"",s=e.optArgs?e.optArgs.map(u=>$e(u)+"?").join(", "):"",o=e.variadicArg?e.variadicMin===0?`${$e(e.variadicArg)}*`:`${$e(e.variadicArg)}+`:"";t=`(${[r,s,o].filter(u=>u).join(", ")}) -> ${O(e.result)}`;break;default:t="error"}return n>0&&n>uo(e.kind)?`(${t})`:t}function $e(e){return e.name?`${e.name}: ${O(e.type)}`:O(e.type)}function gr(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)?e:`\`${e}\``}function uo(e){switch(e){case"negation":return yr;case"union":return xr;case"intersection":return br;case"list":return eo;case"record":return no;case"dictionary":return to;case"set":return io;case"collection":case"indexed_collection":return ro;case"tuple":return so;case"signature":return oo;case"value":return ao;default:return 0}}var $t=class{input;pos=0;line=1;column=1;tokens=[];constructor(n){this.input=n}saveState(){return{pos:this.pos,line:this.line,column:this.column,tokens:[...this.tokens]}}restoreState(n){this.pos=n.pos,this.line=n.line,this.column=n.column,this.tokens=n.tokens}error(n){throw new Error(`Lexer error at line ${this.line}, column ${this.column}: ${n}`)}peek(n=0){let t=this.pos+n;return t<this.input.length?this.input[t]:""}advance(){let n=this.input[this.pos++];return n===`
|
|
5
|
-
`?(this.line++,this.column=1):this.column++,n}match(n){if(this.input.slice(this.pos,this.pos+n.length)===n){for(let t=0;t<n.length;t++)this.advance();return!0}return!1}isEOF(){return this.pos>=this.input.length}skipWhitespace(){for(;!this.isEOF()&&/\s/.test(this.peek());)this.advance()}readIdentifier(){let n="";for(;!this.isEOF()&&/[a-zA-Z0-9_]/.test(this.peek());)n+=this.advance();return n}readVerbatimString(){if(!this.match("`"))return"";let n="";for(;!this.isEOF()&&this.peek()!=="`";)this.match("\\`")?n+="`":this.match("\\\\")?n+="\\":n+=this.advance();return this.isEOF()&&this.error("Unterminated verbatim string"),this.advance(),n}readStringLiteral(){let n=this.advance(),t="";for(;!this.isEOF()&&this.peek()!==n;)this.match("\\"+n)?t+=n:this.match("\\\\")?t+="\\":t+=this.advance();return this.isEOF()&&this.error("Unterminated string literal"),this.advance(),t}readNumber(){let n="";if((this.peek()==="-"||this.peek()==="+")&&(n+=this.advance()),this.match("0x")||this.match("0X")){for(n+="x";!this.isEOF()&&/[0-9a-fA-F]/.test(this.peek());)n+=this.advance();return"0"+n}if(this.match("0b")||this.match("0B")){for(n+="b";!this.isEOF()&&/[01]/.test(this.peek());)n+=this.advance();return"0"+n}for(;!this.isEOF()&&/[0-9]/.test(this.peek());)n+=this.advance();if(this.peek()==="."&&/[0-9]/.test(this.peek(1)))for(n+=this.advance();!this.isEOF()&&/[0-9]/.test(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());!this.isEOF()&&/[0-9]/.test(this.peek());)n+=this.advance();return n}createToken(n,t){return{type:n,value:t,position:this.pos-t.length,line:this.line,column:this.column-t.length}}nextToken(){if(this.skipWhitespace(),this.isEOF())return this.createToken("EOF","");let n=this.pos,t=this.peek();if(this.match("->"))return this.createToken("->","->");if(this.match(".."))return this.createToken("..","..");if(this.match("+\u221E")||this.match("+oo"))return this.createToken("PLUS_INFINITY",this.input.slice(n,this.pos));if(this.match("-\u221E")||this.match("-oo"))return this.createToken("MINUS_INFINITY",this.input.slice(n,this.pos));if(this.match("+infinity"))return this.createToken("PLUS_INFINITY","+infinity");if(this.match("-infinity"))return this.createToken("MINUS_INFINITY","-infinity");if(/[a-zA-Z_]/.test(t)){let i=this.readIdentifier();switch(i){case"true":return this.createToken("TRUE",i);case"false":return this.createToken("FALSE",i);case"nan":return this.createToken("NAN",i);case"infinity":return this.createToken("INFINITY",i);case"oo":return this.createToken("INFINITY",i);default:return this.createToken("IDENTIFIER",i)}}switch(t){case"|":return this.advance(),this.createToken("|","|");case"&":return this.advance(),this.createToken("&","&");case"!":return this.advance(),this.createToken("!","!");case"^":return this.advance(),this.createToken("^","^");case"(":return this.advance(),this.createToken("(","(");case")":return this.advance(),this.createToken(")",")");case"<":return this.advance(),this.createToken("<","<");case">":return this.advance(),this.createToken(">",">");case"[":return this.advance(),this.createToken("[","[");case"]":return this.advance(),this.createToken("]","]");case",":return this.advance(),this.createToken(",",",");case":":return this.advance(),this.createToken(":",":");case"?":return this.advance(),this.createToken("?","?");case"*":return this.advance(),this.createToken("*","*");case"+":return/[0-9]/.test(this.peek(1))?this.createToken("NUMBER_LITERAL",this.readNumber()):(this.advance(),this.createToken("+","+"));case"x":return/[0-9]/.test(this.peek(1))?(this.advance(),this.createToken("x","x")):(this.advance(),this.createToken("x","x"))}if(t==='"'||t==="'")return this.createToken("STRING_LITERAL",this.readStringLiteral());if(t==="`")return this.createToken("VERBATIM_STRING",this.readVerbatimString());if(/[0-9]/.test(t)||t==="-"&&/[0-9]/.test(this.peek(1))){let i=this.readNumber();return this.peek()==="x"&&/[0-9]/.test(this.peek(1)),this.createToken("NUMBER_LITERAL",i)}if(t==="\u221E")return this.advance(),this.createToken("INFINITY","\u221E");this.error(`Unexpected character: ${t}`)}tokenize(){let n=[];for(;!this.isEOF();){let t=this.nextToken();if(t&&(n.push(t),t.type==="EOF"))break}return n}peekToken(){if(this.tokens.length===0){let n=this.nextToken();n&&this.tokens.push(n)}return this.tokens[0]||this.createToken("EOF","")}consumeToken(){if(this.tokens.length===0){let n=this.nextToken();if(n)return n}return this.tokens.shift()||this.createToken("EOF","")}matchToken(n){return this.peekToken().type===n?(this.consumeToken(),!0):!1}expectToken(n){let t=this.consumeToken();return t.type!==n&&this.error(`Expected ${n}, got ${t.type}`),t}};var
|
|
6
|
-
`)[n.line-1]||r,a=n.column,u=" ".repeat(Math.max(0,a-1))+"^",
|
|
7
|
-
`))}advance(){let n=this.current;return this.current=this.lexer.consumeToken(),n}match(n){return this.current.type===n?(this.advance(),!0):!1}expect(n){return this.current.type!==n&&this.error(`Expected ${n}, got ${this.current.type}`),this.advance()}createNode(n,t={}){return{kind:n,position:this.current.position,line:this.current.line,column:this.current.column,...t}}parseType(){this.checkForNakedFunctionSignature();let n=this.parseUnionType();if(n||this.error("Expected a type"),this.current.type!=="EOF")if(this.current.type==="->"||this.current.type==="+"||this.current.type==="*"||this.current.type==="?")this.error("Function signatures must be enclosed in parentheses","For example `(x: number) -> number`");else if(this.current.type==="("){let t=this.lexer.input;t.includes("set(")||t.includes("collection(")||t.includes("list(")||t.includes("tuple(")?t.includes("set(")?this.error("Use `set<integer>` instead of `set(integer)`."):t.includes("collection(")?this.error("Use `collection<type>` instead of `collection(type)`.","For example `collection<number>`"):t.includes("list(")?this.error("Use `list<type>` instead of `list(type)`.","For example `list<number>`"):t.includes("tuple(")&&this.error("Use `tuple<type1, type2>` instead of `tuple(type1, type2)`.","For example `tuple<string, number>`"):this.error("Unexpected token after type")}else this.error("Unexpected token after type");return n}checkForNakedFunctionSignature(){if(this.current.type==="IDENTIFIER"){let n=this.lexer.saveState(),t=this.current;try{let i=this.current;if(this.advance(),this.current.type===":"){this.advance();let r=!1,s=0,o=10;for(;this.current.type!=="EOF"&&s<o;){if(this.current.type==="->"){r=!0;break}if(this.current.type==="+"||this.current.type==="*"||this.current.type==="?"){if(this.advance(),this.current.type==="->"){r=!0;break}s++}this.advance(),s++}r&&(this.lexer.restoreState(n),this.current=t,this.errorAtToken(i,"Function signatures must be enclosed in parentheses","For example `(z: string*) -> boolean`"))}this.lexer.restoreState(n),this.current=t}catch(i){if(this.lexer.restoreState(n),this.current=t,i instanceof Error&&i.message.includes("Function signatures must be enclosed"))throw i}}}parseUnionType(){let n=this.parseIntersectionType();if(!n)return;let t=[n];for(;this.match("|");){let i=this.parseIntersectionType();i||this.error("Expected type after |"),t.push(i)}return t.length===1?t[0]:this.createNode("union",{types:t})}parseIntersectionType(){let n=this.parsePrimaryType();if(!n)return;let t=[n];for(;this.match("&");){let i=this.parsePrimaryType();i||this.error("Expected type after &"),t.push(i)}return t.length===1?t[0]:this.createNode("intersection",{types:t})}parsePrimaryType(){if(this.match("!")){let n=this.parsePrimaryType();return n||this.error("Expected type after !"),this.createNode("negation",{type:n})}if(this.current.type==="("){let n=this.parseFunctionSignature();if(n)return n;if(this.match("(")){let t=this.parseUnionType();if(t||this.error("Expected type after ("),this.current.type===","){let i=[this.createNode("named_element",{name:void 0,type:t})];for(;this.match(",");){let r=this.parseUnionType();r||this.error("Expected type after ,"),i.push(this.createNode("named_element",{name:void 0,type:r}))}return this.expect(")"),this.createNode("tuple",{elements:i})}return this.expect(")"),this.createNode("group",{type:t})}}return this.parseListType()||this.parseTupleType()||this.parseRecordType()||this.parseDictionaryType()||this.parseSetType()||this.parseCollectionType()||this.parseExpressionType()||this.parseSymbolType()||this.parseNumericType()||this.parsePrimitiveType()||this.parseValue()||this.parseTypeReference()}isFunctionSignature(){let n=this.lexer.saveState(),t=this.current;this.advance();let i=1;for(;i>0&&this.current.type!=="EOF";)this.current.type==="("?i++:this.current.type===")"&&i--,this.advance();let r=this.current.type==="->";return this.lexer.restoreState(n),this.current=t,r}parseFunctionSignature(){if(this.current.type!=="("||!this.isFunctionSignature())return;let n=[];if(this.advance(),!this.match(")")){do{let o=this.parseArgument();o||this.error("Expected argument"),n.push(o)}while(this.match(","));this.expect(")")}this.expect("->");let t=this.parseUnionType();t||this.error("Expected return type after ->");let i=n.some(o=>o.modifier==="optional"),r=n.some(o=>o.modifier==="variadic_zero"||o.modifier==="variadic_one"),s=n.filter(o=>o.modifier==="variadic_zero"||o.modifier==="variadic_one").length;return i&&r&&this.error("Variadic arguments cannot be used with optional arguments"),s>1&&this.error("There can be only one variadic argument"),this.createNode("function_signature",{arguments:n,returnType:t})}parseArgument(){let n=this.parseNamedElement();if(!n)return;let t;return this.match("?")?t="optional":this.match("*")?t="variadic_zero":this.match("+")&&(t="variadic_one"),this.createNode("argument",{element:n,modifier:t})}parseNamedElement(){let n;if(this.current.type==="IDENTIFIER"||this.current.type==="VERBATIM_STRING"){let i=this.current;if(this.lexer.peekToken().type===":"){n=i.value,this.advance(),this.advance();let s=this.parseUnionType();return s?this.createNode("named_element",{name:n,type:s}):void 0}}let t=this.parseUnionType();if(t)return this.createNode("named_element",{name:void 0,type:t})}parseListType(){if(this.current.type==="IDENTIFIER"){let n=this.current,i=this.lexer.peekToken().type==="<";switch(n.value){case"list":return i?(this.advance(),this.parseListTypeImpl()):void 0;case"vector":return i?(this.advance(),this.parseVectorType()):(this.advance(),this.createNode("list",{elementType:this.createNode("primitive",{name:"number"}),dimensions:void 0}));case"matrix":return i?(this.advance(),this.parseMatrixType()):(this.advance(),this.createNode("matrix",{elementType:this.createNode("primitive",{name:"number"}),dimensions:[this.createNode("dimension",{size:-1}),this.createNode("dimension",{size:-1})]}));case"tensor":return i?(this.advance(),this.parseTensorType()):(this.advance(),this.createNode("list",{elementType:this.createNode("primitive",{name:"number"}),dimensions:void 0}));default:return}}}parseListTypeImpl(){let n=this.createNode("primitive",{name:"any"}),t;if(this.match("<")){if(t=this.parseDimensionWithX(),t||(t=this.parseDimensions()),!t){let i=this.parseUnionType();i&&(n=i,this.match("^")&&(t=this.parseDimensionWithX(),t||(t=this.parseDimensions())))}this.expect(">")}return this.createNode("list",{elementType:n,dimensions:t})}parseVectorType(){let n=this.createNode("primitive",{name:"number"}),t;if(this.match("<")){if(this.current.type==="NUMBER_LITERAL")t=parseInt(this.advance().value);else{let i=this.parseUnionType();i&&(n=i,this.match("^")&&(this.current.type==="NUMBER_LITERAL"?t=parseInt(this.advance().value):this.error("Expected number after ^")))}this.expect(">")}return this.createNode("vector",{elementType:n,size:t})}parseMatrixType(){let n=this.createNode("primitive",{name:"number"}),t;if(this.match("<")){if(t=this.parseDimensionWithX(),t||(t=this.parseDimensions()),!t){let i=this.parseUnionType();i&&(n=i,this.match("^")&&(t=this.parseDimensionWithX(),t||(t=this.parseDimensions())))}this.expect(">")}else t=[this.createNode("dimension",{size:null}),this.createNode("dimension",{size:null})];return this.createNode("matrix",{elementType:n,dimensions:t})}parseTensorType(){let n=this.createNode("primitive",{name:"number"});if(this.match("<")){let t=this.parseUnionType();t&&(n=t),this.expect(">")}return this.createNode("tensor",{elementType:n})}parseDimensions(){let n=[],t=this.parseDimension();if(t){for(n.push(t);this.match("x");){let i=this.parseDimension();i||this.error("Expected dimension after x"),n.push(i)}return n}}parseDimension(){if(this.match("?"))return this.createNode("dimension",{size:null});if(this.current.type==="NUMBER_LITERAL"){let n=parseInt(this.advance().value);return this.createNode("dimension",{size:n})}}parseDimensionWithX(){if(this.current.type==="NUMBER_LITERAL"){let n=[],t=parseInt(this.advance().value);if(n.push(this.createNode("dimension",{size:t})),this.current.type==="IDENTIFIER"&&this.current.value.startsWith("x")){let i=this.current.value,r=i.match(/x(\d+)/g);if(r&&r.join("")===i){this.advance();for(let s of r){let o=parseInt(s.substring(1));n.push(this.createNode("dimension",{size:o}))}}else(i==="x"||i.startsWith("x"))&&this.error("Expected a positive integer literal or `?` after x. For example: `2x3` or `2x?`")}if(n.length>1)return n}}parseTupleType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="tuple"){if(this.lexer.peekToken().type!=="<")return;this.advance(),this.expect("<");let t=[];if(this.current.type!==">"){let i=this.parseNamedElement();i||this.error("Expected tuple element"),t.push(i);let r=i.name!==void 0;for(;this.match(",");){let s=this.parseNamedElement();s||this.error("Expected tuple element"),r&&!s.name&&this.error("All tuple elements should be named, or none. Previous elements were named, but this one isn't."),!r&&s.name&&this.error("All tuple elements should be named, or none. Previous elements were not named, but this one is."),t.push(s)}}return this.expect(">"),this.createNode("tuple",{elements:t})}}parseRecordType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="record"){this.advance();let n=[];if(this.match("<")){if(this.current.type!==">")do{let t=this.parseRecordEntry();t||this.error("Expected record entry"),n.push(t)}while(this.match(","));this.expect(">")}return this.createNode("record",{entries:n})}}parseRecordEntry(){let n;if(this.current.type==="IDENTIFIER")n=this.advance().value;else if(this.current.type==="VERBATIM_STRING")n=this.advance().value;else return;this.expect(":");let t=this.parseUnionType();return t||this.error("Expected value type"),this.createNode("record_entry",{key:n,valueType:t})}parseDictionaryType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="dictionary"){this.advance();let n=this.createNode("primitive",{name:"any"});if(this.match("<")){let t=this.parseUnionType();t&&(n=t),this.expect(">")}return this.createNode("dictionary",{valueType:n})}}parseSetType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="set"){this.advance();let n=this.createNode("primitive",{name:"any"});if(this.match("<")){let t=this.parseUnionType();t&&(n=t),this.expect(">")}return this.createNode("set",{elementType:n})}}parseCollectionType(){if(this.current.type==="IDENTIFIER"){let n=this.current.value==="indexed_collection",t=this.current.value==="collection";if(n||t){this.advance();let i=this.createNode("primitive",{name:"any"});if(this.match("<")){let r=this.parseUnionType();r&&(i=r),this.expect(">")}return this.createNode("collection",{elementType:i,indexed:n})}}}parseExpressionType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="expression"){if(this.lexer.peekToken().type!=="<")return;this.advance(),this.expect("<");let i=this.expect("IDENTIFIER").value;return this.expect(">"),this.createNode("expression",{operator:i})}}parseSymbolType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="symbol"){if(this.lexer.peekToken().type!=="<")return;this.advance(),this.expect("<");let i=this.expect("IDENTIFIER").value;return this.expect(">"),this.createNode("symbol",{name:i})}}parseNumericType(){if(this.current.type==="IDENTIFIER"&&["real","finite_real","rational","finite_rational","integer","finite_integer"].includes(this.current.value)){let t=this.advance().value;if(this.match("<")){let i=this.parseValue();this.expect("..");let r=this.parseValue();return this.expect(">"),this.createNode("numeric",{baseType:t,lowerBound:i,upperBound:r})}return this.createNode("numeric",{baseType:t})}}parsePrimitiveType(){if(this.current.type==="IDENTIFIER"){let n=this.current.value;if(xe.includes(n))return this.advance(),this.createNode("primitive",{name:n})}}parseValue(){let n,t;switch(this.current.type){case"STRING_LITERAL":n=this.advance().value,t="string";break;case"NUMBER_LITERAL":n=parseFloat(this.advance().value),t="number";break;case"TRUE":this.advance(),n=!0,t="boolean";break;case"FALSE":this.advance(),n=!1,t="boolean";break;case"NAN":this.advance(),n=NaN,t="nan";break;case"INFINITY":case"PLUS_INFINITY":this.advance(),n=1/0,t="infinity";break;case"MINUS_INFINITY":this.advance(),n=-1/0,t="infinity";break;default:return}return this.createNode("value",{value:n,valueType:t})}parseTypeReference(){let n=this.current.type==="IDENTIFIER"&&this.current.value==="type";if(n&&this.advance(),this.current.type==="IDENTIFIER"){let t=this.current,i=this.advance().value;return this.typeResolver.resolve(i)?this.createNode("type_reference",{name:i,isForward:n}):n&&this.typeResolver.forward(i)?this.createNode("type_reference",{name:i,isForward:!0}):(n||this.errorAtToken(t,`Unknown type "${i}"`,"Syntax error. The type was not recognized."),this.createNode("type_reference",{name:i,isForward:n}))}}};function Er(e,n){switch(e.kind){case"function_signature":return n.visitFunctionSignature(e);case"union":return n.visitUnionType(e);case"intersection":return n.visitIntersectionType(e);case"negation":return n.visitNegationType(e);case"group":return n.visitGroupType(e);case"list":return n.visitListType(e);case"vector":return n.visitVectorType(e);case"matrix":return n.visitMatrixType(e);case"tensor":return n.visitTensorType(e);case"tuple":return n.visitTupleType(e);case"record":return n.visitRecordType(e);case"dictionary":return n.visitDictionaryType(e);case"set":return n.visitSetType(e);case"collection":return n.visitCollectionType(e);case"expression":return n.visitExpressionType(e);case"symbol":return n.visitSymbolType(e);case"numeric":return n.visitNumericType(e);case"primitive":return n.visitPrimitiveType(e);case"type_reference":return n.visitTypeReference(e);case"value":return n.visitValue(e);default:throw new Error(`Unknown node kind: ${e.kind}`)}}var Ri=class{typeResolver;constructor(n){this.typeResolver=n??{forward:()=>{},resolve:()=>{},get names(){return[]}}}buildType(n){return Er(n,this)}visitFunctionSignature(n){let t=[],i=[],r,s;for(let u of n.arguments){let c=this.buildNamedElement(u.element);switch(u.modifier){case"optional":i.push(c);break;case"variadic_zero":r=c,s=0;break;case"variadic_one":r=c,s=1;break;default:t.push(c);break}}let o=this.buildType(n.returnType),a={kind:"signature",args:t.length>0?t:void 0,result:o};return i.length>0&&(a.optArgs=i),r&&(a.variadicArg=r,a.variadicMin=s),a}visitUnionType(n){return{kind:"union",types:n.types.map(i=>this.buildType(i))}}visitIntersectionType(n){return{kind:"intersection",types:n.types.map(i=>this.buildType(i))}}visitNegationType(n){return{kind:"negation",type:this.buildType(n.type)}}visitGroupType(n){return this.buildType(n.type)}visitListType(n){let t=this.buildType(n.elementType),i=n.dimensions?.map(r=>this.buildDimension(r));return{kind:"list",elements:t,dimensions:i}}visitVectorType(n){let t=this.buildType(n.elementType);return n.size!==void 0?{kind:"list",elements:t,dimensions:[n.size]}:{kind:"list",elements:t}}visitMatrixType(n){let t=this.buildType(n.elementType);if(n.dimensions){let i=n.dimensions.map(r=>this.buildDimension(r));return{kind:"list",elements:t,dimensions:i}}return{kind:"list",elements:t,dimensions:[-1,-1]}}visitTensorType(n){return{kind:"list",elements:this.buildType(n.elementType)}}visitTupleType(n){return{kind:"tuple",elements:n.elements.map(i=>this.buildNamedElement(i))}}visitRecordType(n){if(n.entries.length===0)return"record";let t={};for(let i of n.entries)t[i.key]=this.buildType(i.valueType);return{kind:"record",elements:t}}visitDictionaryType(n){let t=this.buildType(n.valueType);return this.isAnyType(t)?"dictionary":{kind:"dictionary",values:t}}visitSetType(n){let t=this.buildType(n.elementType);return this.isAnyType(t)?"set":{kind:"set",elements:t}}visitCollectionType(n){let t=this.buildType(n.elementType);return n.indexed?this.isAnyType(t)?"indexed_collection":{kind:"indexed_collection",elements:t}:this.isAnyType(t)?"collection":{kind:"collection",elements:t}}visitExpressionType(n){return{kind:"expression",operator:n.operator}}visitSymbolType(n){return{kind:"symbol",name:n.name}}visitNumericType(n){if(!n.lowerBound&&!n.upperBound)return n.baseType;let t=n.lowerBound?this.buildValue(n.lowerBound):-1/0,i=n.upperBound?this.buildValue(n.upperBound):1/0;return t===-1/0&&i===1/0?n.baseType:{kind:"numeric",type:n.baseType,lower:t,upper:i}}visitPrimitiveType(n){return n.name}visitTypeReference(n){let t=this.typeResolver.resolve(n.name);if(t)return t;if(n.isForward){let i=this.typeResolver.forward(n.name);if(i)return i}return n.name}visitValue(n){return{kind:"value",value:n.value}}buildNamedElement(n){let t=this.buildType(n.type);return n.name?{name:n.name,type:t}:{type:t}}buildDimension(n){return n.size??-1}buildValue(n){return n.value}isAnyType(n){return n==="any"||typeof n=="object"&&"kind"in n&&n.kind==="primitive"&&"name"in n&&n.name==="any"}};function Nr(e,n){return new Ri(n).buildType(e)}function ke(e,n){if(e!==void 0){if(Lt(e))return e;if(typeof e=="string")try{let i=new qt(e,{typeResolver:n}).parseType();return Nr(i,n)}catch(t){throw new Error(`Failed to parse type "${e}": ${t instanceof Error?t.message:String(t)}`)}}}var lo={number:Le,non_finite_number:[],finite_number:["finite_complex","finite_real","finite_integer","finite_rational"],complex:["finite_complex","imaginary","finite_real","finite_rational","finite_integer","non_finite_number"],finite_complex:["imaginary","finite_real","finite_rational","finite_integer"],imaginary:[],real:["rational","integer","finite_real","finite_rational","finite_integer","non_finite_number"],finite_real:["finite_rational","finite_integer"],rational:["finite_rational","finite_integer","integer","non_finite_number"],finite_rational:["finite_integer"],integer:["finite_integer","non_finite_number"],finite_integer:[],any:xe,unknown:[],nothing:[],never:[],error:[],value:Pi,scalar:Jt,collection:Vt,indexed_collection:Ai,list:[],set:[],tuple:[],record:[],dictionary:[],function:[],symbol:[],boolean:[],string:[],color:[],expression:_i};function Sn(e,n){return n==="any"||e==="never"?!0:e==="unknown"||n==="unknown"?!1:e===n?!0:lo[n].includes(e)}function T(e,n){if(typeof e=="string"&&!xe.includes(e)&&(e=ke(e)),typeof n=="string"&&!xe.includes(n)&&(n=ke(n)),n==="any")return!0;if(n==="never")return!1;if(n==="error")return e==="error";if(n==="nothing")return e==="nothing";if(e==="nothing")return!1;if(n==="unknown")return!0;if(e==="unknown")return!1;if(typeof n=="string")return typeof e=="string"?Sn(e,n):e.kind==="value"?typeof e.value=="boolean"?n==="boolean":typeof e.value=="number"?Number.isInteger(e.value)?Sn("integer",n):Sn("number",n):typeof e.value=="boolean"?Sn("boolean",n):typeof e.value=="string"?Sn("string",n):!1:e.kind==="union"?e.types.every(t=>T(t,n)):e.kind==="intersection"?e.types.some(t=>T(t,n)):e.kind==="negation"?!T(e.type,n):e.kind==="numeric"?!!T(e.type,n):n==="number"?Tr(e):n==="symbol"?Bi(e):n==="expression"?co(e):n==="function"?Mr(e):n==="scalar"?vr(e):n==="value"?Sr(e):n==="indexed_collection"?kr(e):n==="collection"?Ir(e):n==="tuple"?e.kind==="tuple":n==="list"?e.kind==="list":n==="set"?e.kind==="set":n==="record"?e.kind==="record":n==="dictionary"?e.kind==="dictionary":!1;if(n.kind==="union")return typeof e!="string"&&e.kind==="union"?e.types.every(t=>n.types.some(i=>T(t,i))):n.types.some(t=>T(e,t));if(n.kind==="expression"){if(e==="symbol")return!0;if(typeof e=="string")return!1;if(e.kind==="expression")return n.operator==="Symbol"?Bi(e):e.operator===n.operator;if(e.kind==="symbol")return!0}if(typeof e=="string")return!1;if(n.kind==="reference"){if(e.kind==="reference")return e.name===n.name;if(n.alias===!0&&n.def)return T(e,n.def)}if(e.kind==="union")return e.types.some(t=>T(t,n));if(e.kind==="intersection"&&n.kind==="intersection")return n.types.every(t=>e.types.some(i=>T(i,t)));if(e.kind==="intersection")return e.types.every(t=>T(t,n));if(n.kind==="intersection")return n.types.every(t=>T(e,t));if(e.kind==="signature"&&n.kind==="signature"){if(!T(e.result,n.result))return!1;if(e.optArgs||e.variadicArg){if(n.args){if(!e.args||e.args.length!==n.args.length)return!1;for(let t=0;t<n.args.length;t++)if(!T(n.args[t].type,e.args[t].type))return!1}else if(e.args)return!1;if(n.optArgs){if(!e.optArgs||e.optArgs.length!==n.optArgs.length)return!1;for(let t=0;t<e.optArgs.length;t++)if(!T(n.optArgs[t].type,e.optArgs[t].type))return!1}else if(e.optArgs)return!1;if(n.variadicArg){if(!e.variadicArg||e.variadicMin!=n.variadicMin||!T(n.variadicArg.type,e.variadicArg.type))return!1}else if(e.variadicArg)return!1}else{if(n.args&&!e.args)return!1;let t=0;if(n.args){if(e.args.length<n.args.length)return!1;for(;t<n.args.length;){if(!T(n.args[t].type,e.args[t].type))return!1;t+=1}}if(n.optArgs){if(t>=e.args.length)return!0;for(let i=0;i<n.optArgs.length;i++){if(!T(n.optArgs[i].type,e.args[t].type))return!1;if(t+=1,t>=e.args.length)return!0}}if(n.variadicArg){if(t>=e.args.length&&n.variadicMin===0)return!0;if(n.variadicMin>0&&t+n.variadicMin>e.args.length)return!1;for(;t<e.args.length;){if(!T(n.variadicArg.type,e.args[t].type))return!1;t+=1}}}return!0}if(e.kind==="record"&&n.kind==="record"){for(let t of Object.keys(n.elements))if(!(t in e.elements)||!T(e.elements[t],n.elements[t]))return!1;return!0}if(e.kind==="dictionary"&&n.kind==="dictionary")return T(e.values,n.values);if(n.kind==="indexed_collection")return e.kind==="indexed_collection"||e.kind==="list"?T(e.elements,n.elements):e.kind==="tuple"?e.elements.every(t=>T(t.type,n.elements)):!1;if(n.kind==="collection"){if(e.kind==="collection"||e.kind==="indexed_collection"||e.kind==="list")return T(e.elements,n.elements);if(e.kind==="tuple")return e.elements.every(t=>T(t.type,n.elements));if(e.kind==="set")return T(e.elements,n.elements);if(e.kind==="dictionary")return T({kind:"tuple",elements:[{type:"string"},{type:e.values}]},n.elements);if(e.kind==="record")return T({kind:"tuple",elements:[{type:"string"},{type:Se(...Object.values(e.elements))}]},n.elements)}if(e.kind==="tuple"&&n.kind==="tuple"){if(e.elements.length!==n.elements.length)return!1;for(let t=0;t<e.elements.length;t++){let i=e.elements[t],r=n.elements[t];if(!T(i.type,r.type)||i.name!==r.name)return!1}return!0}if(n.kind==="list"&&e.kind==="list"){if(!T(e.elements,n.elements))return!1;if(n.dimensions){if(!e.dimensions||e.dimensions.length!==n.dimensions.length)return!1;for(let t=0;t<e.dimensions.length;t++)if(n.dimensions[t]!==-1&&e.dimensions[t]!==n.dimensions[t])return!1}return!0}if(e.kind==="symbol"&&n.kind==="symbol")return e.name===n.name;if(e.kind==="numeric"&&n.kind==="numeric")return!(!T(e.type,n.type)||(e.lower??-1/0)<(n.lower??-1/0)||(e.upper??1/0)>(n.upper??1/0));if(n.kind==="set"&&e.kind==="set")return!!T(e.elements,n.elements);if(e.kind==="negation"&&n.kind==="negation")return T(e.type,n.type);if(n.kind==="negation")return!T(e,n.type);if(n.kind==="value"&&e.kind==="value")return n.value===e.value;if(e.kind==="value"){if(typeof e.value=="boolean")return T("boolean",n);if(typeof e.value=="number")return Number.isInteger(e.value)?T("integer",n):T("real",n);if(typeof e.value=="string")return T("string",n)}return!1}function Tr(e){return typeof e=="string"?Le.includes(e):e.kind==="value"?typeof e.value=="number":e.kind==="numeric"}function vr(e){return Tr(e)?!0:typeof e=="string"?Jt.includes(e):e.kind==="value"?["string","boolean","number"].includes(typeof e.value):!1}function Ir(e){return kr(e)?!0:typeof e=="string"?Vt.includes(e):["collection","set","record","dictionary"].includes(e.kind)}function kr(e){return typeof e=="string"?!1:["indexed_collection","list","tuple"].includes(e.kind)}function Sr(e){return vr(e)||Ir(e)}function Mr(e){return e==="function"||typeof e!="string"&&e.kind==="signature"}function co(e){return typeof e=="string"&&["expression","symbol","function"].includes(e)||Sr(e)||Mr(e)||Bi(e)?!0:typeof e=="string"?!1:e.kind==="expression"}function Bi(e){return e==="symbol"?!0:typeof e=="string"?!1:e.kind==="symbol"?!0:e.kind==="expression"?e.operator==="Symbol":!1}function fo(e,n){return e===n?e:e==="nothing"||n==="nothing"?"nothing":e==="any"?n:n==="any"?e:e==="never"?n:n==="never"?e:e==="unknown"?n:n==="unknown"||T(e,n)?e:T(n,e)?n:wr(e,n)}function po(e,n){if(e===n)return e;if(e==="any"||n==="any")return"any";if(e==="never")return n;if(n==="never")return e;if(e==="unknown")return n;if(n==="unknown")return e;if(e==="nothing")return n;if(n==="nothing")return e;if(T(e,n))return n;if(T(n,e))return e;let t=wr(e,n);return mo.has(t)?ho(e,n):t}var mo=new Set(["scalar","value","function","expression","collection","indexed_collection","list","set","tuple","record","dictionary","map","any"]);function ho(e,n){let t=[],i=r=>{if(typeof r=="object"&&r.kind==="union"){for(let o of r.types)i(o);return}let s=typeof r=="string"?r:JSON.stringify(r);t.some(o=>(typeof o=="string"?o:JSON.stringify(o))===s)||t.push(r)};return i(e),i(n),t.length===1?t[0]:{kind:"union",types:t}}function Oi(...e){return e.length===0?"nothing":e.length===1?e[0]:e.reduce((n,t)=>fo(n,t))}function Se(...e){return e.length===0?"nothing":e.length===1?e[0]:e.reduce((n,t)=>po(n,t))}function wr(e,n){return e===n?e:e==="any"||n==="any"?"any":e==="never"?n:n==="never"?e:e==="unknown"?n:n==="unknown"?e:e==="nothing"?n:n==="nothing"?e:R(e,n,"non_finite_number")?"non_finite_number":R(e,n,"finite_integer")?"finite_integer":R(e,n,"integer")?"integer":R(e,n,"finite_rational")?"finite_rational":R(e,n,"rational")?"rational":R(e,n,"finite_real")?"finite_real":R(e,n,"real")?"real":R(e,n,"imaginary")?"imaginary":R(e,n,"finite_complex")?"finite_complex":R(e,n,"complex")?"complex":R(e,n,"finite_number")?"finite_number":R(e,n,"number")?"number":R(e,n,"list")?"list":R(e,n,"record")?"record":R(e,n,"dictionary")?"dictionary":R(e,n,"set")?"set":R(e,n,"tuple")?"tuple":R(e,n,"indexed_collection")?"indexed_collection":R(e,n,"collection")?"collection":R(e,n,"scalar")?"scalar":R(e,n,"value")?"value":R(e,n,"function")?"function":R(e,n,"expression")?"expression":"any"}function R(e,n,t){return!!(T(e,t)&&T(n,t))}var ne=class e{static unknown=new e("unknown");static number=new e("number");static non_finite_number=new e("non_finite_number");static finite_number=new e("finite_number");static finite_integer=new e("finite_integer");static finite_real=new e("finite_real");static string=new e("string");static dictionary=new e("dictionary");static setNumber=new e("set<number>");static setComplex=new e("set<complex>");static setImaginary=new e("set<imaginary>");static setReal=new e("set<real>");static setRational=new e("set<rational>");static setFiniteInteger=new e("set<finite_integer>");static setInteger=new e("set<integer>");type;static widen(...n){return new e(Se(...n.map(t=>t instanceof e?t.type:t)))}static narrow(...n){return new e(Oi(...n.map(t=>t instanceof e?t.type:t)))}constructor(n,t){typeof n=="string"?this.type=ke(n,t):this.type=n}matches(n){return n instanceof e?T(this.type,n.type):T(this.type,n)}is(n){return T(this.type,n)&&T(n,this.type)}get isUnknown(){return this.type==="unknown"}toString(){return O(this.type)}toJSON(){return O(this.type)}[Symbol.toPrimitive](n){return n==="string"?this.toString():null}valueOf(){return O(this.type)}};var vl=[0,-1,1,Math.PI,Math.E,-Math.PI,-Math.E,.5,-.5];var qe=["Error","'missing'"];function Me(e){return!!(typeof e=="number"||ze(e)||typeof e=="string"&&jt(e))}function ze(e){return e!==null&&typeof e=="object"&&"num"in e}function zt(e){return e!==null&&typeof e=="object"&&"sym"in e}function Ar(e){return e!==null&&typeof e=="object"&&"str"in e}function Pr(e){return e!==null&&typeof e=="object"&&"dict"in e&&typeof e.dict=="object"&&!Array.isArray(e.dict)&&e.dict!==null}function Ge(e){return e!==null&&typeof e=="object"&&"fn"in e&&Array.isArray(e.fn)&&e.fn.length>0&&typeof e.fn[0]=="string"}function M(e){return e==null?null:typeof e=="object"&&"str"in e?e.str:typeof e!="string"?null:e.length>=2&&e.at(0)==="'"&&e.at(-1)==="'"?e.substring(1,e.length-1):jt(e)||Li(e)?null:e}function Vi(e){if(e==null||M(e)!==null)return null;let n=p(e);return n?[n,...x(e).map(t=>Vi(t)).filter(t=>t!==null)]:e}function p(e){return Array.isArray(e)?e[0]:e==null?"":Ge(e)?e.fn[0]:""}function x(e){return Array.isArray(e)?e.slice(1):e!==void 0&&Ge(e)?e.fn.slice(1):[]}function l(e,n){return Array.isArray(e)?e[n]??null:e===null||!Ge(e)?null:e.fn[n]??null}function _(e){return e==null?0:Array.isArray(e)?Math.max(0,e.length-1):Ge(e)?Math.max(0,e.fn.length-1):0}function Ji(e){return e==null?null:p(e)==="Hold"?l(e,1):e}function b(e){return typeof e=="string"&&Li(e)?e.length>=2&&e.at(0)==="`"&&e.at(-1)==="`"?e.slice(1,-1):e:e==null?null:zt(e)?e.sym:null}function Dr(e){let n=p(e);if(n==="KeyValuePair"||n==="Tuple"||n==="Pair"){let[t,i]=x(e),r=M(t);return r?[r,i??"Nothing"]:null}return null}function _r(e){if(e===null)return null;if(Pr(e))return e;let n=Dr(e);if(n)return{[n[0]]:n[1]};if(p(e)==="Dictionary"){let t={},i=x(e);for(let r=1;r<_(e);r++){let s=Dr(i[r]);s&&(t[s[0]]=No(s[1])??"Nothing")}return{dict:t}}return null}function Gt(e){return{dict:Object.fromEntries(Object.entries(e).map(([t,i])=>[t,Fi(i)??"Nothing"]))}}function Eo(e){if(e=e.toLowerCase().replace(/[nd]$/,"").replace(/[\u0009-\u000d\u0020\u00a0]/g,""),e==="nan")return NaN;if(/^(infinity|\+infinity|oo|\+oo)$/i.test(e))return 1/0;if(/^(-infinity|-oo)$/.test(e))return-1/0;if(/\([0-9]+\)/.test(e)){let[n,t,i,r]=e.match(/(.+)\(([0-9]+)\)(.*)$/)??[];e=t+i.repeat(Math.ceil(16/i.length))+(r??"")}return parseFloat(e)}function I(e){return typeof e=="number"?e:typeof e=="string"&&jt(e)?Eo(e):e!==void 0&&ze(e)?I(e.num):null}function Ze(e){if(e==null)return null;if(b(e)==="Half")return[1,2];let n=p(e);if(!n)return null;let t=null,i=null;if(n==="Negate"){let r=Ze(x(e)[0]);if(r)return[-r[0],r[1]]}if(n==="Rational"||n==="Divide"){let[r,s]=x(e);t=I(r)??NaN,i=I(s)??NaN}if(n==="Power"){let[r,s]=x(e),o=I(s);o===1?(t=I(r),i=1):o===-1&&(t=1,i=I(r))}if(n==="Multiply"){let[r,s]=x(e);if(p(s)==="Power"){let[o,a]=x(s);I(a)===-1&&(t=I(r),i=I(o))}}return t===null||i===null?null:Number.isInteger(t)&&Number.isInteger(i)?[t,i]:null}function Zt(e,n){let t=null;if(Array.isArray(e)&&(t=e),Ge(e)&&(t=e.fn),t===null)return[];let i=1,r=[];for(;i<t.length;)r.push(n(t[i])),i+=1;return r}function je(e,n,t){let i=p(n),r=p(t);return i===e&&r===e?[e,...x(n),...x(t)]:i===e?[e,...x(n),t]:r===e?[e,n,...x(t)]:[e,n,t]}function we(e){if(e==null)return null;let n=p(e);if(n==="Delimiter"){if(e=l(e,1),e===null)return[];if(n=p(e),n!=="Sequence")return[e]}return n!=="Sequence"?null:x(e)}function D(e){return e==null||e==="Nothing"?!0:p(e)==="Sequence"&&_(e)===0}function P(e){return D(e)?qe:e}function jt(e){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(e)||/^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(e)}function Li(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)||e.length>=2&&e[0]==="`"&&e[e.length-1]==="`"}function Fi(e){if(typeof e=="string")return{str:e};if(typeof e=="number")return{num:e.toString()};if(typeof e=="boolean")return e?"True":"False";if(Array.isArray(e))return["List",...e.map(n=>Fi(n)??"Nothing")];if(e===null)return null;if(typeof e=="object"){let n={};for(let t in e)n[t]=Fi(e[t])??"Nothing";return{dict:n}}return Ge(e)||zt(e)||ze(e)||Ar(e)||Pr(e)?e:null}function No(e){return e==null?null:Ar(e)?e.str:ze(e)?parseFloat(e.num):zt(e)?e.sym:typeof e=="string"||typeof e=="number"?e:Array.isArray(e)?{fn:e}:e}var Br=[{name:"True",kind:"symbol",latexTrigger:["\\top"]},{kind:"symbol",latexTrigger:"\\mathrm{True}",parse:"True"},{kind:"symbol",latexTrigger:"\\operatorname{True}",parse:"True"},{kind:"symbol",latexTrigger:"\\mathsf{T}",parse:"True"},{name:"False",kind:"symbol",latexTrigger:["\\bot"]},{kind:"symbol",latexTrigger:"\\operatorname{False}",parse:"False"},{kind:"symbol",latexTrigger:"\\mathsf{F}",parse:"False"},{name:"And",kind:"infix",latexTrigger:["\\land"],precedence:235},{kind:"infix",latexTrigger:["\\wedge"],parse:"And",precedence:235},{kind:"infix",latexTrigger:"\\&",parse:"And",precedence:235},{kind:"infix",latexTrigger:"\\operatorname{and}",parse:"And",precedence:235},{name:"Or",kind:"infix",latexTrigger:["\\lor"],precedence:230},{kind:"infix",latexTrigger:["\\vee"],parse:"Or",precedence:230},{kind:"infix",latexTrigger:"\\parallel",parse:"Or",precedence:230},{kind:"infix",latexTrigger:"\\operatorname{or}",parse:"Or",precedence:230},{name:"Xor",kind:"infix",latexTrigger:["\\veebar"],precedence:232},{name:"Not",kind:"prefix",latexTrigger:["\\lnot"],precedence:880},{kind:"prefix",latexTrigger:["\\neg"],parse:"Not",precedence:880},{name:"Nand",kind:"infix",latexTrigger:["\\barwedge"],precedence:232},{name:"Nor",kind:"infix",latexTrigger:["\u22BD"],precedence:232},{kind:"function",symbolTrigger:"and",parse:"And"},{kind:"function",symbolTrigger:"or",parse:"Or"},{kind:"function",symbolTrigger:"not",parse:"Not"},{name:"Implies",kind:"infix",precedence:220,associativity:"right",latexTrigger:["\\implies"],serialize:"\\implies"},{latexTrigger:["\\Rightarrow"],kind:"infix",precedence:220,associativity:"right",parse:"Implies"},{latexTrigger:["\\rightarrow"],kind:"infix",precedence:220,associativity:"right",parse:"Implies"},{latexTrigger:["\\Longrightarrow"],kind:"infix",precedence:220,associativity:"right",parse:"Implies"},{latexTrigger:["\\longrightarrow"],kind:"infix",precedence:220,associativity:"right",parse:"Implies"},{latexTrigger:["=",">"],kind:"infix",precedence:220,associativity:"right",parse:(e,n,t)=>{if(e.options.strict!==!1)return null;let i=e.parseExpression({...t,minPrec:220});return i===null?null:["Implies",n,i]}},{name:"Equivalent",latexTrigger:["\\iff"],kind:"infix",associativity:"right",precedence:219},{latexTrigger:["\\Leftrightarrow"],kind:"infix",associativity:"right",precedence:219,parse:"Equivalent"},{latexTrigger:["\\leftrightarrow"],kind:"infix",associativity:"right",precedence:219,parse:"Equivalent"},{latexTrigger:["\\Longleftrightarrow"],kind:"infix",associativity:"right",precedence:219,parse:"Equivalent"},{latexTrigger:["\\longleftrightarrow"],kind:"infix",associativity:"right",precedence:219,parse:"Equivalent"},{latexTrigger:["<","=",">"],kind:"infix",precedence:219,associativity:"right",parse:(e,n,t)=>{if(e.options.strict!==!1)return null;let i=e.parseExpression({...t,minPrec:219});return i===null?null:["Equivalent",n,i]}},{latexTrigger:["\\equiv"],kind:"infix",associativity:"right",precedence:219,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:219}),r=e.index,s=e.parseExpression({...t,minPrec:219});return s!==null&&p(s)==="Mod"?["Congruent",n,i,P(l(s,1))]:(e.index=r,["Equivalent",n,P(i)])}},{name:"Proves",kind:"infix",latexTrigger:["\\vdash"],precedence:220,associativity:"right",serialize:"\\vdash"},{name:"Entails",kind:"infix",latexTrigger:["\\vDash"],precedence:220,associativity:"right",serialize:"\\vDash"},{name:"Satisfies",kind:"infix",latexTrigger:["\\models"],precedence:220,associativity:"right",serialize:"\\models"},{name:"ForAll",kind:"prefix",latexTrigger:["\\forall"],precedence:200,serialize:Mn("\\forall"),parse:be("ForAll")},{name:"Exists",kind:"prefix",latexTrigger:["\\exists"],precedence:200,serialize:Mn("\\exists"),parse:be("Exists")},{name:"ExistsUnique",kind:"prefix",latexTrigger:["\\exists","!"],precedence:200,serialize:Mn("\\exists!"),parse:be("ExistsUnique")},{name:"NotForAll",kind:"prefix",latexTrigger:["\\lnot","\\forall"],precedence:200,serialize:Mn("\\lnot\\forall"),parse:be("NotForAll")},{name:"NotExists",kind:"prefix",latexTrigger:["\\lnot","\\exists"],precedence:200,serialize:Mn("\\lnot\\exists"),parse:be("NotExists")},{name:"KroneckerDelta",kind:"prefix",latexTrigger:["\\delta","_"],precedence:200,serialize:(e,n)=>{let t=x(n);return t.length===0?"\\delta":t.every(i=>b(i))?`\\delta_{${t.map(i=>e.serialize(i)).join("")}}`:`\\delta_{${t.map(i=>e.serialize(i)).join(", ")}}`},parse:e=>{let n=e.parseGroup();if(n===null){let i=e.parseToken();return i?["KroneckerDelta",i]:null}let t=we(n);return t&&t.length<=2?["KroneckerDelta",...t]:p(n)==="InvisibleOperator"?["KroneckerDelta",...x(n)]:n!==null?["KroneckerDelta",n]:null}},{name:"Boole",kind:"matchfix",openTrigger:"[",closeTrigger:"]",parse:(e,n)=>{let t=p(n);return!t||!Ve.some(i=>i.name===t)?null:["Boole",n]}},{kind:"matchfix",openTrigger:"\\llbracket",closeTrigger:"\\rrbracket",parse:(e,n)=>{let t=p(n);return!t||!Ve.some(i=>i.name===t)?null:["Boole",n]}},{name:"Predicate",serialize:(e,n)=>{let t=x(n);if(t.length===0)return"";let i=t[0],r=typeof i=="string"?i:e.serialize(i);if(t.length===1)return r;let s=t.slice(1).map(o=>e.serialize(o));return`${r}(${s.join(", ")})`}}];function Mn(e){return(n,t)=>{let i=x(t);if(i.length===0)return e;if(i.length===1)return`${e} ${n.serialize(i[0])}`;let r=n.serialize(i[0]),s=n.serialize(i[1]);return`${e} ${r}, ${s}`}}function Rr(e,n){return e.peek==="\\to"||e.peek==="\\rightarrow"||e.peek==="\\implies"||e.peek==="\\Rightarrow"||e.peek==="\\iff"||e.peek==="\\Leftrightarrow"||e.peek==="\\land"||e.peek==="\\wedge"||e.peek==="\\lor"||e.peek==="\\vee"||(n.condition?.(e)??!1)}function be(e){return(n,t)=>{let i=n.index,r=n.options.quantifierScope!=="loose",s=n.parseSymbol(t);if(s){if(n.skipSpace(),n.match(",")||n.match("\\mid")||n.match(".")||n.match(":")||n.match("\\colon")){let c=r?{...t,condition:h=>Rr(h,t)}:t;n.enterQuantifierScope();let f=n.parseExpression(c);return n.exitQuantifierScope(),[e,s,P(f)]}n.enterQuantifierScope();let u=n.parseEnclosure();if(n.exitQuantifierScope(),u)return[e,s,P(u)]}n.index=i;let o={...t,condition:u=>u.peek===":"||u.peek==="\\colon"||(t.condition?.(u)??!1)},a=n.parseExpression(o);if(a===null)return null;if(n.skipSpace(),n.matchAny([",","\\mid",":","\\colon"])){let u=r?{...t,condition:f=>Rr(f,t)}:t;n.enterQuantifierScope();let c=n.parseExpression(u);return n.exitQuantifierScope(),[e,a,P(c)]}if(n.match("(")){n.enterQuantifierScope();let u=n.parseExpression(t);return n.exitQuantifierScope(),n.match(")")?[e,a,P(u)]:null}return null}}var To={x:"First",y:"Second",z:"Third",real:"Real",re:"Real",imag:"Imaginary",im:"Imaginary",count:"Length",total:"Sum",max:"Max",min:"Min"};function $i(e){return To[e]??null}function vo(e,n){if(e.skipVisualSpace(),e.match("\\operatorname")){let i=e.parseStringGroup();if(i===null)return null;let r=$i(i.trim());return r===null?null:[r,n]}let t=e.peek;if(typeof t=="string"&&t.startsWith("\\")){let i=t.slice(1),r=$i(i);return r!==null?(e.nextToken(),[r,n]):null}if(typeof t=="string"&&/^[a-zA-Z]$/.test(t)){let i=$i(t);return i===null?null:(e.nextToken(),[i,n])}return null}function Or(e,n,t){e.addBoundary(t),e.skipVisualSpace();let i=e.parseExpression({minPrec:0});return i===null||(e.skipVisualSpace(),!e.matchBoundary())?(e.removeBoundary(),null):["When",n,i]}function qi(e,n,t,i,r){if(n&&n.minPrec>=i)return null;let s=t?[t]:["Nothing"],o=!1;for(;!o;){for(o=!0,e.skipSpace();e.match(r);)s.push("Nothing"),e.skipSpace();if(e.skipVisualSpace(),e.atTerminator(n))s.push("Nothing");else{let a=e.parseExpression({...n,minPrec:i});s.push(a??"Nothing"),o=a===null}o||(e.skipSpace(),o=!e.match(r),o||e.skipVisualSpace())}return s}function re(e=""){return(n,t)=>{if(!t)return"";let i=x(t);if(i.length===0)return"";if(i.length===1)return n.serialize(i[0]);e={"&":"\\&",":":"\\colon","|":"\\mvert","-":"-","\xB7":"\\cdot","\u2012":"-","\u2013":"--","\u2014":"---","\u2015":"-","\u2022":"\\bullet","\u2026":"\\ldots"}[e]??e;let r=i.reduce((s,o)=>(s.push(n.serialize(o),e),s),[]);return r.pop(),g(r)}}var $r=[{latexTrigger:["\\placeholder"],kind:"symbol",parse:e=>{for(;e.match("<space>"););if(e.match("["))for(;!e.match("]")&&!e.atBoundary;)e.nextToken();for(;e.match("<space>"););if(e.match("<{>"))for(;!e.match("<}>")&&!e.atBoundary;)e.nextToken();return"Nothing"}},{name:"ContinuationPlaceholder",latexTrigger:["\\dots"]},{latexTrigger:["\\ldots"],parse:"ContinuationPlaceholder"},{latexTrigger:[".",".","."],parse:"ContinuationPlaceholder"},{name:"Function",latexTrigger:["\\mapsto"],kind:"infix",precedence:fe,parse:(e,n,t)=>{let i=[];if(p(n)==="Delimiter"&&(n=l(n,1)??"Nothing"),p(n)==="Sequence")for(let s of x(n)){if(!b(s))return null;i.push(b(s))}else{if(!b(n))return null;i=[b(n)]}let r=e.parseExpression({minPrec:fe})??"Nothing";return p(r)==="Delimiter"&&(r=l(r,1)??"Nothing"),p(r)==="Sequence"&&(r=["Block",...x(r)]),["Function",r,...i]},serialize:(e,n)=>{let t=x(n);return t.length<1?"()\\mapsto()":t.length===1?g(["()","\\mapsto",e.serialize(l(n,1))]):t.length===2?g([e.serialize(l(n,2)),"\\mapsto",e.serialize(l(n,1))]):g([e.wrapString(x(n)?.slice(1).map(i=>e.serialize(i)).join(", "),"normal"),"\\mapsto",e.serialize(l(n,1))])}},{name:"Apply",kind:"function",symbolTrigger:"apply",serialize:(e,n)=>{let t=l(n,1),i=p(t);if(i==="InverseFunction"||i==="Derivative"){let o=e.options.applyFunctionStyle(n,e.level),a=x(n).slice(1);return e.serializeFunction(t,e.dictionary.ids.get(i))+e.wrapString(a.map(u=>e.serialize(u)).join(", "),o)}let r=l(n,2);if(typeof t=="string"||!r){let o=x(n).slice(1);return e.serialize(o)}if(_(n)===2)return g([e.wrap(t,20),"\\lhd",e.wrap(r,20)]);let s=e.options.applyFunctionStyle(n,e.level);return g(["\\operatorname{apply}",e.wrapString(e.serialize(i)+", "+e.serialize(["List",...x(n)]),s)])}},{latexTrigger:"\\lhd",kind:"infix",precedence:20,parse:"Apply"},{latexTrigger:"\\rhd",kind:"infix",precedence:20,parse:(e,n,t)=>["Apply",e.parseExpression({minPrec:21})??"Nothing",n]},{name:"EvaluateAt",openTrigger:".",closeTrigger:"|",kind:"matchfix",serialize:(e,n)=>{let t=l(n,1);if(!t)return"";let i=x(n).slice(1);if(p(t)==="Function"){let r=x(t).slice(1),s=l(t,1);if(p(s)==="Block"&&_(s)===1&&(s=l(s,1)),r.length>0)return`\\left.\\left(${e.serialize(s)}\\right)\\right|_{${r.map((o,a)=>`${e.serialize(o)}=${e.serialize(i[a])}`).join(", ")}}`}return`\\left.\\left(${e.serialize(t)}\\right)\\right|_{${i.map(r=>e.serialize(r)).join(", ")}}`}},{name:"Assign",latexTrigger:"\\coloneq",kind:"infix",associativity:"right",precedence:In,serialize:(e,n)=>{let t=Ji(l(n,1));if(p(l(n,2))==="Function"){let i=l(n,2),r=Ji(l(i,1)),s=x(i).slice(1);return g([e.serialize(t),e.wrapString(s.map(o=>e.serialize(o)).join(", "),e.options.applyFunctionStyle(n,e.level)),"\\coloneq",e.serialize(r)])}return g([e.serialize(t),"\\coloneq",e.serialize(l(n,2))])},parse:Wt},{latexTrigger:"\\coloneqq",kind:"infix",associativity:"right",precedence:In,parse:Wt},{latexTrigger:"\\colonequals",kind:"infix",associativity:"right",precedence:In,parse:Wt},{latexTrigger:[":","="],kind:"infix",associativity:"right",precedence:In,parse:Wt},{name:"Colon",latexTrigger:":",kind:"infix",associativity:"right",precedence:240,serialize:(e,n)=>g([e.serialize(l(n,1)),"\\colon",e.serialize(l(n,2))])},{latexTrigger:"\\colon",kind:"infix",associativity:"right",precedence:240,parse:"Colon"},{name:"BaseForm",serialize:(e,n)=>{let t=I(l(n,2))??NaN;if(isFinite(t)&&t>=2&&t<=36){let i=I(l(n,1))??NaN;if(isFinite(i)&&Number.isInteger(i)){let r=Number(i).toString(t),s=0;if(t===2||t===10?s=4:t===16?s=2:t>16&&(s=4),s>0){let o=r;r="";for(let a=0;a<o.length;a++)a>0&&a%s===0&&(r="\\, "+r),r=o[o.length-a-1]+r}return`(\\text{${r}}_{${t}}`}}return"\\operatorname{BaseForm}("+e.serialize(l(n,1))+", "+e.serialize(l(n,2))+")"}},{name:"Sequence",serialize:re(" ")},{name:"InvisibleOperator",serialize:re("")},{name:"Delimiter",serialize:(e,n)=>{let t=e.options.groupStyle(n,e.level+1),i=l(n,1),r={Set:"{,}",List:"[,]",Tuple:"(,)",Single:"(,)",Pair:"(,)",Triple:"(,)",Sequence:"(,)",String:'""'}[p(i)],s=r?i:["Sequence",i];if(r??="(,)",_(n)>1){let f=M(l(n,2));typeof f=="string"&&f.length<=3&&(r=f)}let[o,a,u]=["","",""];r.length===3?[o,a,u]=r:r.length===2?[o,u]=r:r.length===1&&(a=r);let c=i?s?re(a)(e,s):e.serialize(i):"";return e.wrapString(c,t,o+u)}},{name:"Tuple",serialize:(e,n)=>g(["(",re(",")(e,n),")"])},{name:"Pair",serialize:(e,n)=>g(["(",re(",")(e,n),")"])},{name:"Triple",serialize:(e,n)=>g(["(",re(",")(e,n),")"])},{name:"Single",serialize:(e,n)=>g(["(",re(",")(e,n),")"])},{name:"Domain",serialize:(e,n)=>p(n)==="Error"?e.serialize(n):`\\mathbf{${e.serialize(l(n,1))}}`},{latexTrigger:["\\mathtip"],parse:e=>{let n=e.parseGroup();return e.parseGroup(),n}},{latexTrigger:["\\texttip"],parse:e=>{let n=e.parseGroup();return e.parseGroup(),n}},{latexTrigger:["\\error"],parse:e=>["Error",e.parseGroup()]},{name:"Error",serialize:(e,n)=>{let t=l(n,1);if(M(t)==="missing")return`\\error{${e.options.missingSymbol??"\\placeholder{}"}}`;let i=ko(e,n)||"\\blacksquare",r=p(t)==="ErrorCode"?M(l(t,1)):M(t);return r==="incompatible-type"?b(l(t,3))==="Undefined"?`\\mathtip{\\error{${i}}}{\\notin ${e.serialize(l(t,2))}}`:`\\mathtip{\\error{${i}}}{\\in ${e.serialize(l(t,3))}\\notin ${e.serialize(l(t,2))}}`:typeof r=="string"?`\\error{${i}}`:`\\error{${i}}`}},{name:"ErrorCode",serialize:(e,n)=>{let t=M(l(n,1));return t==="missing"?e.options.missingSymbol??"\\placeholder{}":t==="unexpected-command"||t==="unexpected-operator"||t==="unexpected-token"||t==="invalid-symbol"||t==="unknown-environment"||t==="unexpected-base"||t==="incompatible-type"?"":`\\texttip{\\error{\\blacksquare}}{\\mathtt{${t}}}`}},{name:"FromLatex",serialize:(e,n)=>`\\texttt{${Cr(M(l(n,1)))}}`},{name:"Latex",serialize:(e,n)=>n===null?"":g(Zt(n,t=>M(t)??e.serialize(t)))},{name:"LatexString",serialize:(e,n)=>n===null?"":g(Zt(n,t=>e.serialize(t)))},{name:"LatexTokens",serialize:Io},{kind:"postfix",precedence:850,latexTrigger:["."],parse:vo},{name:"At",kind:"postfix",precedence:810,latexTrigger:["["],parse:Gi("]"),serialize:(e,n)=>g(["\\lbrack",re(", ")(e,n),"\\rbrack"])},{kind:"postfix",precedence:810,latexTrigger:["\\lbrack"],parse:Gi("\\rbrack")},{kind:"postfix",precedence:810,latexTrigger:["\\left","\\lbrack"],parse:Gi("\\right","\\rbrack")},{name:"When",kind:"postfix",precedence:800,latexTrigger:["\\left","\\{"],parse:(e,n)=>Or(e,n,["\\right","\\}"]),serialize:(e,n)=>{let t=l(n,1),i=l(n,2);if(!t||!i)return"";let s=(p(i)==="And"?x(i)??[]:[i]).map(o=>`\\left\\{${e.serialize(o)}\\right\\}`).join("");return`${e.serialize(t)}${s}`}},{kind:"postfix",precedence:800,latexTrigger:["\\{"],parse:(e,n)=>Or(e,n,["\\}"])},{kind:"postfix",latexTrigger:["_"],parse:(e,n,t)=>{let i=e.parseGroup()??e.parseToken();i===null&&e.options.strict===!1&&e.peek==="("&&(i=e.parseEnclosure());let r=b(n);return i!==null&&(r&&e.getSymbolType(r).matches("indexed_collection")||p(n)==="List")?(p(i)==="Delimiter"&&(i=l(i,1)??"Nothing"),p(i)==="Sequence"?["At",n,...x(i)]:["At",n,i]):["Subscript",n,i]}},{name:"List",kind:"matchfix",openTrigger:"[",closeTrigger:"]",parse:qr,serialize:Mo},{kind:"matchfix",openTrigger:"(",closeTrigger:")",parse:So},{latexTrigger:[","],kind:"infix",precedence:20,parse:(e,n,t)=>{let i=qi(e,t,n,20,",");return i===null?null:["Delimiter",["Sequence",...i],{str:","}]}},{latexTrigger:[","],kind:"prefix",precedence:20,parse:(e,n)=>{let t=qi(e,n,null,20,",");return t===null?null:["Delimiter",["Sequence",...t],{str:","}]}},{name:"Range",latexTrigger:[".","."],kind:"infix",precedence:800,parse:Ut,serialize:(e,n)=>{let t=x(n);if(t.length===0)return"";if(t.length===1)return"1.."+e.serialize(l(n,1));if(t.length===2)return e.wrap(l(n,1),10)+".."+e.wrap(l(n,2),10);if(t.length===3){let i=I(l(n,3)),r=I(l(n,1));return i!==null&&r!==null?e.wrap(l(n,1),10)+".."+e.wrap(r+i,10)+".."+e.wrap(l(n,2),10):e.wrap(l(n,1),10)+"..("+(e.wrap(l(n,1),F)+"+"+e.wrap(l(n,3),F))+").."+e.wrap(l(n,2),10)}return""}},{latexTrigger:[".",".","."],kind:"infix",precedence:800,parse:Ut},{latexTrigger:["\\ldots"],kind:"infix",precedence:800,parse:Ut},{latexTrigger:["\\dots"],kind:"infix",precedence:800,parse:Ut},{latexTrigger:[";"],kind:"infix",precedence:19,parse:(e,n,t)=>{let i=qi(e,t,n,19,";");return i===null?null:i.some(r=>p(r)==="Assign")?wo(i):["Delimiter",["Sequence",...i],"';'"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"none",precedence:21,parse:(e,n,t)=>{let i=e.index;return U(e,"where")?Lr(e,n,t):(e.index=i,null)}},{symbolTrigger:"where",kind:"infix",associativity:"none",precedence:21,parse:(e,n,t)=>Lr(e,n,t)},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:235,parse:(e,n,t)=>{let i=e.index;if(!U(e,"and"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:235});return["And",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:230,parse:(e,n,t)=>{let i=e.index;if(!U(e,"or"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:230});return["Or",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:219,parse:(e,n,t)=>{let i=e.index;if(!U(e,"iff"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:219});return["Equivalent",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:219,parse:(e,n,t)=>{let i=e.index;if(!U(e,"if and only if"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:219});return["Equivalent",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:21,parse:(e,n,t)=>{let i=e.index;if(!U(e,"such that"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:21});return["Colon",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"prefix",precedence:200,parse:(e,n)=>{let t=e.index;return U(e,"for all")?be("ForAll")(e,n):(e.index=t,null)}},{latexTrigger:["\\text"],kind:"prefix",precedence:200,parse:(e,n)=>{let t=e.index;return U(e,"there exists")?be("Exists")(e,n):(e.index=t,null)}},{name:"Block",serialize:(e,n)=>{let t=x(n);return!t||t.length===0?"":t.filter(r=>p(r)!=="Declare").map(r=>e.serialize(r)).join("; ")}},{name:"If",serialize:(e,n)=>{let t=x(n);return!t||t.length<3?"":g(["\\text{if }",e.serialize(t[0]),"\\text{ then }",e.serialize(t[1]),"\\text{ else }",e.serialize(t[2])])}},{name:"Loop",serialize:(e,n)=>{let t=x(n);if(!t||t.length<2)return"";let i=t[0],r=t.slice(1);if(!r.every(a=>p(a)==="Element"))return g(["\\operatorname{Loop}(",e.serialize(i),", ",e.serialize(r[0]),")"]);if(r.length===1){let a=r[0],u=l(a,1),c=l(a,2);if(p(c)==="Range"){let f=l(c,1),h=l(c,2);return g(["\\text{for }",e.serialize(u),"\\text{ from }",e.serialize(f),"\\text{ to }",e.serialize(h),"\\text{ do }",e.serialize(i)])}return g([e.serialize(i)," \\operatorname{for} ",e.serialize(u)," = ",e.serialize(c)])}let o=r.map(a=>{let u=l(a,1),c=l(a,2);return g([e.serialize(u)," = ",e.serialize(c)])}).join(", ");return g([e.serialize(i)," \\operatorname{for} ",o])}},{name:"Break",serialize:()=>"\\text{break}"},{name:"Continue",serialize:()=>"\\text{continue}"},{name:"Return",serialize:(e,n)=>{let t=l(n,1);return!t||b(t)==="Nothing"?"\\text{return}":g(["\\text{return }",e.serialize(t)])}},{symbolTrigger:"if",kind:"prefix",precedence:245,parse:(e,n)=>Vr(e,n)},{symbolTrigger:"for",kind:"prefix",precedence:245,parse:(e,n)=>Jr(e,n)},{symbolTrigger:"for",kind:"infix",associativity:"none",precedence:19,parse:(e,n,t)=>zr(e,n,t)},{symbolTrigger:"break",kind:"prefix",precedence:245,parse:()=>["Break"]},{symbolTrigger:"continue",kind:"prefix",precedence:245,parse:()=>["Continue"]},{symbolTrigger:"return",kind:"prefix",precedence:245,parse:(e,n)=>["Return",e.parseExpression(n)??"Nothing"]},{name:"Text",serialize:(e,n)=>{let t=x(n);if(t.length===0)return"";let i=-1,r=-1;for(let a=0;a<t.length;a++)M(t[a])!==null&&(i<0&&(i=a),r=a);if(i<0)return g(t.map(a=>e.serialize(a)));let s=[];for(let a=0;a<i;a++)s.push(e.serialize(t[a]));let o="";for(let a=i;a<=r;a++){let u=M(t[a]);u!==null?o+=Cr(u):p(t[a])==="Annotated"||p(t[a])==="Text"?o+=e.serialize(t[a]):o+="$"+e.serialize(t[a])+"$"}s.push("\\text{"+o+"}");for(let a=r+1;a<t.length;a++)s.push(e.serialize(t[a]));return g(s)}},{name:"String",latexTrigger:["\\text"],parse:(e,n)=>{let t=e.index;return U(e,"if")?Vr(e,n):(e.index=t,U(e,"for")?Jr(e,n):(e.index=t,U(e,"break")?["Break"]:(e.index=t,U(e,"continue")?["Continue"]:(e.index=t,U(e,"return")?["Return",e.parseExpression(n)??"Nothing"]:(e.index=t,ie(e))))))},serialize:(e,n)=>{let t=x(n);return t.length===0?"\\text{}":g(["\\text{",t.map(i=>e.serialize(i)).join(""),"}"])}},{name:"Subscript",latexTrigger:["_"],kind:"infix",serialize:(e,n)=>_(n)===2?e.serialize(l(n,1))+"_{"+e.serialize(l(n,2))+"}":"_{"+e.serialize(l(n,1))+"}"},{name:"Superplus",latexTrigger:["^","+"],kind:"postfix"},{name:"Subplus",latexTrigger:["_","+"],kind:"postfix"},{name:"Superminus",latexTrigger:["^","-"],kind:"postfix",parse:(e,n)=>e.options.strict===!1&&/^[0-9]$/.test(e.peek)?null:["Superminus",n]},{name:"Subminus",latexTrigger:["_","-"],kind:"postfix"},{latexTrigger:["^","*"],kind:"postfix",parse:(e,n)=>["Superstar",n]},{latexTrigger:["_","*"],kind:"postfix",parse:(e,n)=>["Substar",n]},{name:"Substar",latexTrigger:["_","\\star"],kind:"postfix"},{name:"Superdagger",latexTrigger:["^","\\dagger"],kind:"postfix"},{latexTrigger:["^","\\dag"],kind:"postfix",parse:(e,n)=>["Superdagger",n]},{name:"Prime",latexTrigger:["^","\\prime"],kind:"postfix",parse:(e,n)=>pe(e,n,1),serialize:(e,n)=>{let t=I(l(n,2))??1,i=e.serialize(l(n,1));return t===1?i+"^\\prime":t===2?i+"^\\doubleprime":t===3?i+"^\\tripleprime":i+"^{("+e.serialize(l(n,2))+")}"}},{latexTrigger:"^{\\prime\\prime}",kind:"postfix",parse:(e,n)=>pe(e,n,2)},{latexTrigger:"^{\\prime\\prime\\prime}",kind:"postfix",parse:(e,n)=>pe(e,n,3)},{latexTrigger:["^","\\doubleprime"],kind:"postfix",parse:(e,n)=>pe(e,n,2)},{latexTrigger:["^","\\tripleprime"],kind:"postfix",parse:(e,n)=>pe(e,n,3)},{latexTrigger:"'",kind:"postfix",precedence:810,parse:(e,n)=>pe(e,n,1)},{latexTrigger:"\\prime",kind:"postfix",precedence:810,parse:(e,n)=>pe(e,n,1)},{latexTrigger:"\\doubleprime",kind:"postfix",precedence:810,parse:(e,n)=>pe(e,n,2)},{latexTrigger:"\\tripleprime",kind:"postfix",precedence:810,parse:(e,n)=>pe(e,n,3)},{latexTrigger:["^","<{>","("],kind:"postfix",parse:(e,n,t)=>{let i=b(n);if(!i||!e.getSymbolType(i).matches("function"))return null;e.addBoundary([")"]);let r=e.parseExpression(t);return e.matchBoundary()?e.match("<}>")?["Derivative",n,r]:null:(e.removeBoundary(),null)}},{name:"InverseFunction",latexTrigger:"^{-1",kind:"postfix",parse:(e,n)=>{if(p(n)==="Matrix")return e.match("<}>"),["Inverse",n];let t=b(n);if(!t)return null;let i=e.getSymbolType(t);if(i.matches(new ne("matrix")))return e.match("<}>"),["Inverse",n];if(!i.matches("function"))return null;let r=0;for(;!e.atEnd&&!e.match("<}>");)if(e.match("'"))r++;else if(e.match("\\prime"))r++;else if(e.match("\\doubleprime"))r+=2;else if(e.match("\\tripleprime"))r+=3;else return null;return r===1?["Derivative",["InverseFunction",n]]:r>0?["Derivative",["InverseFunction",n],r]:["InverseFunction",n]},serialize:(e,n)=>e.serialize(l(n,1))+"^{-1}"},{name:"Derivative",serialize:(e,n)=>{let t=I(l(n,2))??1,i=e.serialize(l(n,1));return t===1?i+"^{\\prime}":t===2?i+"^{\\doubleprime}":t===3?i+"^{\\tripleprime}":i+"^{("+e.serialize(l(n,2))+")}"}},{name:"D",serialize:(e,n)=>{if(p(n)!=="D")return"D";let t=l(n,1),i=l(n,2);if(!t||!i)return"D";let r=1,s=t;for(;p(s)==="D";){let c=l(s,2);if(b(c)===b(i))r++,s=l(s,1);else break}let o=s;p(s)==="Function"&&(o=l(s,1)??s);let a=e.serialize(o),u=e.serialize(i);return r===1?`\\frac{\\mathrm{d}}{\\mathrm{d}${u}}${a}`:`\\frac{\\mathrm{d}^{${r}}}{\\mathrm{d}${u}^{${r}}}${a}`}},{name:"NewtonDerivative1",latexTrigger:["\\dot"],kind:"prefix",precedence:740,parse:e=>{let n=e.parseGroup();if(n===null)return null;let t=e.options.timeDerivativeVariable;return["D",n,t]}},{name:"NewtonDerivative2",latexTrigger:["\\ddot"],kind:"prefix",precedence:740,parse:e=>{let n=e.parseGroup();if(n===null)return null;let t=e.options.timeDerivativeVariable;return["D",["D",n,t],t]}},{name:"NewtonDerivative3",latexTrigger:["\\dddot"],kind:"prefix",precedence:740,parse:e=>{let n=e.parseGroup();if(n===null)return null;let t=e.options.timeDerivativeVariable;return["D",["D",["D",n,t],t],t]}},{name:"NewtonDerivative4",latexTrigger:["\\ddddot"],kind:"prefix",precedence:740,parse:e=>{let n=e.parseGroup();if(n===null)return null;let t=e.options.timeDerivativeVariable;return["D",["D",["D",["D",n,t],t],t],t]}},{name:"EulerDerivative",latexTrigger:["D"],kind:"expression",parse:e=>{let n=1,t=null,i=!1;for(;!i;)if(e.match("_")){if(t=e.parseGroup()??e.parseToken(),!t)return null}else if(e.match("^")){let o=e.parseGroup()??e.parseToken();n=I(o)??1}else i=!0;if(!t)return null;e.skipSpace();let r=e.parseExpression({minPrec:740});if(!r)return null;let s=r;for(let o=0;o<n;o++)s=["D",s,t];return s}},{kind:"environment",name:"Which",symbolTrigger:"cases",parse:zi,serialize:(e,n)=>{let t=[],i=x(n);if(i.length>0)for(let r=0;r<=i.length-2;r+=2){let s=[];s.push(e.serialize(i[r+1])),s.push(e.serialize(i[r])),t.push(s.join("&"))}return g(["\\begin{cases}",t.join("\\\\"),"\\end{cases}"])}},{kind:"environment",symbolTrigger:"dcases",parse:zi},{kind:"environment",symbolTrigger:"rcases",parse:zi}];function ie(e,n){if(!e.match("<{>"))return"''";let t=[],i="",r=null,s=()=>{r!==null&&i?t.push(["Annotated",`'${i}'`,Gt(r)]):i&&t.push(`'${i}'`),i="",r=null};for(;!e.atEnd&&!e.match("<}>");)if(e.peek==="<{>")s(),t.push(ie(e));else if(e.match("\\textbf"))s(),t.push(ie(e,{fontWeight:"bold"}));else if(e.match("\\textmd"))s(),t.push(ie(e,{fontStyle:"normal"}));else if(e.match("\\textup"))s(),t.push(ie(e,{fontStyle:"normal"}));else if(e.match("\\textsl"))s(),t.push(ie(e,{fontStyle:"italic"}));else if(e.match("\\textit"))s(),t.push(ie(e,{fontStyle:"italic"}));else if(e.match("\\texttt"))s(),t.push(ie(e,{fontFamily:"monospace"}));else if(e.match("\\textsf"))s(),t.push(ie(e,{fontFamily:"sans-serif"}));else if(e.match("\\textcolor")){let a=e.index,u=e.parseStringGroup();if(u!==null){s();let c=ie(e);t.push(["Annotated",c,Gt({color:u})])}else e.index=a,i+="\\textcolor"}else if(e.match("\\color")){let a=e.parseStringGroup();a!==null&&(s(),r={color:a})}else if(e.match("<space>"))i+=" ";else if(e.match("<$>")){let a=e.index,u=e.parseExpression()??"Nothing";e.skipSpace(),e.match("<$>")?(s(),t.push(u)):(i+="$",e.index=a)}else if(e.match("<$$>")){let a=e.index,u=e.parseExpression()??"Nothing";e.skipSpace(),e.match("<$$>")?(s(),t.push(u)):(i+="$$",e.index=a)}else{let a=e.parseChar()??e.nextToken();i+={"\\enskip":"\u2002","\\enspace":"\u2002","\\quad":"\u2003","\\qquad":"\u2003\u2003","\\space":"\u2003","\\ ":"\u2003","\\;":"\u2004","\\,":"\u2009","\\:":"\u205F","\\!":"","\\{":"{","\\}":"}","\\$":"$","\\&":"&","\\#":"#","\\%":"%","\\_":"_","\\textbackslash":"\\","\\textasciitilde":"~","\\textasciicircum":"^","\\textless":"<","\\textgreater":">","\\textbar":"|","\\textunderscore":"_","\\textbraceleft":"{","\\textbraceright":"}","\\textasciigrave":"`","\\textquotesingle":"'","\\textquotedblleft":"\u201C","\\textquotedblright":"\u201D","\\textquotedbl":'"',"\\textquoteleft":"\u2018","\\textquoteright":"\u2019","\\textbullet":"\u2022","\\textdagger":"\u2020","\\textdaggerdbl":"\u2021","\\textsection":"\xA7","\\textparagraph":"\xB6","\\textperiodcentered":"\xB7","\\textellipsis":"\u2026","\\textemdash":"\u2014","\\textendash":"\u2013","\\textregistered":"\xAE","\\texttrademark":"\u2122","\\textdegree":"\xB0"}[a]??a}s();let o;return t.length===1?o=t[0]:t.every(a=>M(a)!==null)?o="'"+t.map(a=>M(a)).join()+"'":o=["Text",...t],n?["Annotated",o,Gt(n)]:o}function Io(e,n){return n===null?"":g(Zt(n,t=>{let i=M(t);return i===null?e.serialize(t):i==="<{>"?"{":i==="<}>"?"}":i==="<$>"?"$":i==="<$$>"?"$$":i==="<space>"?" ":i}))}function Cr(e){return e===null?"":e.replace(/[{}\[\]\\:\-\$%]/g,n=>({"{":"\\lbrace ","}":"\\rbrace ","[":"\\lbrack ","]":"\\rbrack ",":":"\\colon ","\\":"\\backslash "})[n]??"\\"+n)}function ko(e,n){let t=l(n,2);return t?p(t)==="LatexString"?M(l(t,1))??"":p(t)==="Hold"?e.serialize(l(t,1)):e.serialize(t):""}function pe(e,n,t){for(;!e.atEnd;)if(e.match("'")||e.match("\\prime"))t++;else if(e.match("\\doubleprime"))t+=2;else if(e.match("\\tripleprime"))t+=3;else break;let i=p(n);if(i==="Derivative"||i==="Prime"){let a=I(l(n,2))??1;return[i,P(l(n,1)),a+t]}let r=b(n),s=r&&e.getSymbolType(r).matches("function")||p(n);e.skipSpace();let o=e.parseArguments("enclosure");if(o&&o.length>0){let a=o[0],u=b(a)??"x",f=typeof n=="string"?[n,...o]:["Apply",n,...o];for(let h=0;h<t;h++)f=["D",f,u];return f}return s?t===1?["Derivative",n]:["Derivative",n,t]:t===1?["Prime",P(n)]:["Prime",P(n),t]}function So(e,n){if(D(n))return["Delimiter"];let t=p(n);if(t==="Delimiter"&&l(n,2)!==null){let i=M(l(n,2));if(i?.length===1)return["Delimiter",l(n,1)??"Nothing",{str:`(${i})`}]}return t==="Matrix"&&(M(l(n,2))??"..")===".."?["Matrix",l(n,1)]:["Delimiter",n]}function qr(e,n){if(D(n))return["List"];let t=p(n);if(t==="Range"||t==="Linspace")return n;if(t==="Sequence"){let i=x(n),r=Fr(i,e);return r||["List",...i]}if(t==="Delimiter"){let i=M(l(n,2))??"...";if(i===";"||i===".;.")return["List",...(x(l(n,1))??[]).map(r=>qr(e,r))];if(i===","||i===".,."){if(n=l(n,1),p(n)==="Sequence"){let r=x(n),s=Fr(r,e);return s||["List",...r]}return["List",n??"Nothing"]}}return["List",n]}function Fr(e,n){if(e.length<4)return null;let t=e[e.length-2];if(b(t)!=="ContinuationPlaceholder")return null;let i=e.slice(0,-2),r=e[e.length-1];if(i.length<2)return null;let s=i.map(I);if(s.some(c=>c===null))return null;let o=s,a=o[o.length-1]-o[o.length-2],u=n.options.tolerance;if(Math.abs(a)<u)return n.error("degenerate-range-step",n.index);for(let c=1;c<o.length;c++)if(Math.abs(o[c]-o[c-1]-a)>u)return n.error("inconsistent-range-samples",n.index);return["Range",o[0],r,a]}function Mo(e,n){return _(n)>1&&x(n).every(t=>{let i=p(t);return wi(i)||Mi(i)})?g(["\\begin{cases}",re("\\\\")(e,n),"\\end{cases}"]):g(["\\bigl\\lbrack",re(", ")(e,n),"\\bigr\\rbrack"])}function Ut(e,n){if(n===null)return null;let t=e.parseExpression({minPrec:270});if(t===null)return null;if(p(t)==="Range"){let i=l(t,1),r=l(t,2);return i&&r?["Range",n,r,["Subtract",i,n]]:null}return["Range",n,t]}var Ht={"(":"(",")":")","[":"\\lbrack","]":"\\rbrack","\u27E6":"\\llbrack","\u27E7":"\\rrbrack","{":"\\lbrace","}":"\\rbrace","<":"\\langle",">":"\\rangle","\u2016":"\\Vert","\\":"\\backslash","\u2308":"\\lceil","\u2309":"\\rceil","\u230A":"\\lfloor","\u230B":"\\rfloor","\u231C":"\\ulcorner","\u231D":"\\urcorner","\u231E":"\\llcorner","\u231F":"\\lrcorner","\u23B0":"\\lmoustache","\u23B1":"\\rmoustache"};function Wt(e,n,t){let i=(t?.minPrec??0)>=19,r=b(n);if(r&&r.includes("_")){let a=r.indexOf("_"),u=r.substring(0,a),c=r.substring(a+1),f=parseInt(c,10),h=!isNaN(f)&&String(f)===c?f:c,E=h!==""&&(typeof h=="number"||typeof h=="string"&&h.length===1);(e.getSymbolType(u).matches("indexed_collection")||!i&&E)&&(n=["Subscript",u,h])}if(p(n)==="InvisibleOperator"&&_(n)===2&&p(l(n,2))==="Delimiter"){let a=b(l(n,1));if(!a)return null;let u=e.parseExpression({...t??{},minPrec:20});if(u===null)return null;let c=l(l(n,2),1),f=[];return p(c)==="Sequence"?f=[...x(c)]:c&&(f=[c]),["Assign",a,["Function",u,...f??[]]]}if(p(n)==="Subscript"&&b(l(n,1))){let a=b(l(n,1));if(!e.getSymbolType(a).matches("indexed_collection")){let f=l(n,2),h=(f!==null&&typeof f=="string"?f:void 0)??(f!==null&&typeof f=="number"?String(f):void 0);if(h&&i){let E=e.parseExpression({...t??{},minPrec:20});return E===null?null:["Assign",a+"_"+h,E]}}let u=e.parseExpression({...t??{},minPrec:20});if(u===null)return null;let c=l(n,2);return M(c)!==null?["Assign",n,u]:b(c)?["Assign",n,u]:["Assign",n,u]}let s=p(n);if(s){let a=x(n),u=e.parseExpression({...t??{},minPrec:20});return u===null?null:["Assign",s,["Function",u,...a]]}if(!b(n))return null;let o=e.parseExpression({...t??{},minPrec:20});return o===null?null:["Assign",n,o]}function zi(e){let n=e.parseTabular();if(!n)return["List"];if(n.every(i=>{if(i.length!==1)return!1;let r=p(i[0]);return Mi(r)||wi(r)}))return["List",...n.map(i=>i[0])];let t=[];for(let i of n)if(i.length===1)t.push("True"),t.push(i[0]);else if(i.length===2){let r=M(i[1]);t.push(r?"True":Vi(i[1])??"True"),t.push(i[0])}return["Which",...t]}function U(e,n){let t=e.index;if(!e.match("<{>"))return e.index=t,!1;for(;e.match("<space>"););for(let i=0;i<n.length;i++)if(n[i]===" "){if(!e.match("<space>"))return e.index=t,!1;for(;e.match("<space>"););}else{if(e.peek!==n[i])return e.index=t,!1;e.nextToken()}for(;e.match("<space>"););return e.match("<}>")?!0:(e.index=t,!1)}function De(e,n){let t=e.index;if(e.skipVisualSpace(),e.match("\\text")){if(U(e,n))return!0;e.index=t}let i=e.index,r=e.parseSymbol();return r!==null&&b(r)===n?!0:(e.index=i,!1)}function Ae(e,n){let t=e.index,i=De(e,n);return e.index=t,i}function Vr(e,n){e.skipVisualSpace();let t=e.parseExpression({minPrec:0,condition:s=>Ae(s,"then")});if(t===null||!De(e,"then"))return null;e.skipVisualSpace();let i=e.parseExpression({minPrec:0,condition:s=>Ae(s,"else")});if(i===null||!De(e,"else"))return null;e.skipVisualSpace();let r=e.parseExpression(n)??"Nothing";return["If",t,i,r]}function Jr(e,n){let t=e.parseExpression({minPrec:0,condition:a=>Ae(a,"from")}),i=t?b(t):null;if(!i||!De(e,"from"))return null;let r=e.parseExpression({minPrec:0,condition:a=>Ae(a,"to")});if(r===null||!De(e,"to"))return null;let s=e.parseExpression({minPrec:0,condition:a=>Ae(a,"do")});return s===null||!De(e,"do")?null:["Loop",e.parseExpression(n)??"Nothing",["Element",i,["Range",r,s]]]}function zr(e,n,t){let i={minPrec:21,condition:s=>{if(t?.condition?.(s))return!0;let o=s.index;s.skipVisualSpace();let a=s.peek===",";return s.index=o,!!(a||Ae(s,"where")||Ae(s,"with"))}},r=[];do{e.skipVisualSpace();let s=e.parseExpression(i);if(s===null)break;let o=p(s);if(o!=="Equal"&&o!=="Assign")return null;let a=l(s,1),u=l(s,2);if(!a||!u)return null;r.push(["Element",a,u]),e.skipVisualSpace()}while(e.match(","));return r.length===0?null:["Loop",n,...r]}function Lr(e,n,t){let i={minPrec:21,condition:a=>{if(t?.condition?.(a))return!0;let u=a.index;a.skipVisualSpace();let c=a.peek===",";return a.index=u,c}},r=[];do{e.skipVisualSpace();let a=e.parseExpression(i);if(!a)break;r.push(a),e.skipVisualSpace()}while(e.match(","));if(r.length===0)return null;let s=e.index;if(De(e,"for")){let a=zr(e,n,t);if(a){let u=[];for(let c of r){let f=Zi(c);p(f)==="Assign"&&u.push(["Declare",l(f,1)]),u.push(f)}return u.push(a),["Block",...u]}e.index=s}let o=[];for(let a of r){let u=Zi(a);p(u)==="Assign"&&o.push(["Declare",l(u,1)]),o.push(u)}return o.push(n),["Block",...o]}function wo(e){let n=[];for(let t of e){let i=Zi(t);p(i)==="Assign"&&n.push(["Declare",l(i,1)]),n.push(i)}return["Block",...n]}function Zi(e){if(p(e)!=="Assign")return e;let n=l(e,1);if(p(n)!=="Subscript")return e;let t=b(l(n,1));if(!t)return e;let i=l(n,2),r=(typeof i=="string"?i:void 0)??(typeof i=="number"?String(i):void 0);return r?["Assign",`${t}_${r}`,l(e,2)??"Nothing"]:e}function Gi(...e){return(n,t)=>{if(!b(t)&&p(t)!=="List")return null;let i=null;return e.length===0&&(i=n.parseGroup()),i??=n.parseExpression({minPrec:0}),i===null||e.length>0&&!n.matchAll(e)||M(i)!==null?null:(p(i)==="Delimiter"&&(i=l(i,1)??"Nothing"),p(i)==="Sequence"?["At",t,...x(i)]:["At",t,i])}}var wn=[["alpha","\\alpha",945],["beta","\\beta",946],["gamma","\\gamma",947],["delta","\\delta",948],["epsilon","\\epsilon",949],["epsilonSymbol","\\varepsilon",1013],["zeta","\\zeta",950],["eta","\\eta",951],["theta","\\theta",952],["thetaSymbol","\\vartheta",977],["iota","\\iota",953],["kappa","\\kappa",954],["kappaSymbol","\\varkappa",1008],["lambda","\\lambda",955],["mu","\\mu",956],["nu","\\nu",957],["xi","\\xi",958],["omicron","\\omicron",959],["pi","\\pi",960],["piSymbol","\\varpi",982],["rho","\\rho",961],["rhoSymbol","\\varrho",1009],["sigma","\\sigma",963],["finalSigma","\\varsigma",962],["tau","\\tau",964],["phi","\\phi",981],["phiLetter","\\varphi",966],["upsilon","\\upsilon",965],["chi","\\chi",967],["psi","\\psi",968],["omega","\\omega",969],["Alpha","\\Alpha",913],["Beta","\\Beta",914],["Gamma","\\Gamma",915],["Delta","\\Delta",916],["Epsilon","\\Epsilon",917],["Zeta","\\Zeta",918],["Eta","\\Eta",919],["Theta","\\Theta",920],["Iota","\\Iota",921],["Kappa","\\Kappa",922],["Lambda","\\Lambda",923],["Mu","\\Mu",924],["Nu","\\Nu",925],["Xi","\\Xi",926],["Omicron","\\Omicron",927],["Rho","\\Rho",929],["Sigma","\\Sigma",931],["Tau","\\Tau",932],["Phi","\\Phi",934],["Upsilon","\\Upsilon",933],["Chi","\\Chi",935],["Psi","\\Psi",936],["Omega","\\Omega",937],["digamma","\\digamma",989],["aleph","\\aleph",8501],["bet","\\beth",8502],["gimel","\\gimel",8503],["dalet","\\daleth",8504],["ell","\\ell",8499],["turnedCapitalF","\\Finv",8498],["turnedCapitalG","\\Game",8513],["weierstrass","\\wp",8472],["eth","\\eth",240],["invertedOhm","\\mho",8487],["hBar","\\hbar",295],["hSlash","\\hslash",8463],["blackClubSuit","\\clubsuit",9827],["whiteHeartSuit","\\heartsuit",9825],["blackSpadeSuit","\\spadesuit",9824],["whiteDiamondSuit","\\diamondsuit",9826],["sharp","\\sharp",9839],["flat","\\flat",9837],["natural","\\natural",9838]],Gr=[...wn.map(([e,n,t])=>({kind:"symbol",name:e,latexTrigger:[n],parse:e})),...wn.map(([e,n,t])=>({kind:"symbol",latexTrigger:[String.fromCodePoint(t)],parse:e}))];var Zr=[{name:"To",latexTrigger:["\\to"],kind:"infix",precedence:270},{latexTrigger:["-",">"],kind:"infix",precedence:270,parse:(e,n,t)=>{if(e.options.strict!==!1)return null;let i=e.parseExpression({...t,minPrec:270});return i===null?null:["To",n,i]}}];function se(e,n,t){if(D(e))return null;let i,r=p(e);if(r==="Delimiter"){let c=M(l(e,2));if(c!==","&&c!=="(,)"&&c!=="[,]")return null;let f=l(e,1);p(f)==="Sequence"?i=[...x(f)]:i=f?[f]:[]}else if(r==="Sequence")i=[...x(e)];else return null;if(i.length!==2)return null;let[s,o]=i;return["Interval",n?["Open",s]:s,t?["Open",o]:o]}var jr=new Set(["Less","LessEqual","Greater","GreaterEqual","Equal","NotEqual","And","Or","Not"]),Wr=[{name:"AlgebraicNumbers",latexTrigger:"\\overline\\Q"},{latexTrigger:"\\bar\\Q",parse:"AlgebraicNumbers"},{name:"ComplexNumbers",latexTrigger:["\\C"]},{latexTrigger:"\\mathbb{C}",parse:"ComplexNumbers"},{name:"ImaginaryNumbers",latexTrigger:["\\imaginaryI","\\R"]},{name:"EmptySet",latexTrigger:["\\emptyset"]},{latexTrigger:["\\varnothing"],parse:"EmptySet"},{name:"Integers",latexTrigger:["\\Z"]},{latexTrigger:"\\mathbb{Z}",parse:"Integers"},{name:"RationalNumbers",latexTrigger:["\\Q"]},{latexTrigger:"\\mathbb{Q}",parse:"RationalNumbers"},{name:"RealNumbers",latexTrigger:["\\R"]},{latexTrigger:"\\mathbb{R}",parse:"RealNumbers"},{name:"TranscendentalNumbers",latexTrigger:"\\R-\\bar\\Q"},{latexTrigger:"\\R\\backslash\\bar\\Q",parse:"TranscendentalNumbers"},{name:"NegativeNumbers",latexTrigger:"\\R_{<0}"},{latexTrigger:"\\R^-",parse:"NegativeNumbers"},{latexTrigger:"\\R^{-}",parse:"NegativeNumbers"},{latexTrigger:"\\R^-",parse:"NegativeNumbers"},{latexTrigger:"\\R_-",parse:"NegativeNumbers"},{latexTrigger:"\\R_{-}",parse:"NegativeNumbers"},{latexTrigger:"\\R^{\\lt}",parse:"NegativeNumbers"},{latexTrigger:"\\R^{<}",parse:"NegativeNumbers"},{latexTrigger:"\\R^{\\lt0}",parse:"NegativeNumbers"},{latexTrigger:"\\R^{<0}",parse:"NegativeNumbers"},{name:"NonPositiveNumbers",latexTrigger:"\\R_{\\le0}"},{latexTrigger:"\\R^{\\leq0}",parse:"NonPositiveNumbers"},{latexTrigger:"\\R^{-0}",parse:"NonPositiveNumbers"},{latexTrigger:"\\R^{\\leq}",parse:"NonPositiveNumbers"},{latexTrigger:"\\R^{0-}",parse:"NonPositiveNumbers"},{name:"PositiveNumbers",latexTrigger:"\\R_{>0}"},{latexTrigger:"\\R^+",parse:"PositiveNumbers"},{latexTrigger:"\\R^{+}",parse:"PositiveNumbers"},{latexTrigger:"\\R_+",parse:"PositiveNumbers"},{latexTrigger:"\\R_{+}",parse:"PositiveNumbers"},{latexTrigger:"\\R^{\\gt}",parse:"PositiveNumbers"},{latexTrigger:"\\R^{\\gt 0}",parse:"PositiveNumbers"},{latexTrigger:"\\R^{>}",parse:"PositiveNumbers"},{latexTrigger:"\\R^{>0}",parse:"PositiveNumbers"},{name:"NonNegativeNumbers",latexTrigger:"\\R_{\\geq0}"},{latexTrigger:"\\R^{0+}",parse:"NonNegativeNumbers"},{latexTrigger:"\\R^{\\geq}",parse:"NonNegativeNumbers"},{name:"ExtendedRealNumbers",latexTrigger:"\\overline\\R"},{latexTrigger:"\\bar\\R",parse:"ExtendedRealNumbers"},{name:"NegativeIntegers",latexTrigger:"\\Z_{<0}"},{latexTrigger:"\\Z_{\\lt0}",parse:"NegativeIntegers"},{latexTrigger:"\\Z^-",parse:"NegativeIntegers"},{latexTrigger:"\\Z^{-}",parse:"NegativeIntegers"},{latexTrigger:"\\Z_-",parse:"NegativeIntegers"},{latexTrigger:"\\Z_{-}",parse:"NegativeIntegers"},{latexTrigger:"\\Z^{\\lt}",parse:"NegativeIntegers"},{name:"NonPositiveIntegers",latexTrigger:"\\Z_{\\le0}"},{latexTrigger:"\\Z_{\\leq0}",parse:"NonPositiveIntegers"},{latexTrigger:"\\Z_{<0}",parse:"NonPositiveIntegers"},{name:"PositiveIntegers",latexTrigger:"\\N^*"},{latexTrigger:"\\Z_{>0}",parse:"PositiveIntegers"},{latexTrigger:"\\Z_{\\gt0}",parse:"PositiveIntegers"},{latexTrigger:"\\Z^{+}",parse:"PositiveIntegers"},{latexTrigger:"\\Z_+",parse:"PositiveIntegers"},{latexTrigger:"\\Z_{+}",parse:"PositiveIntegers"},{latexTrigger:"\\Z^{\\gt}",parse:"PositiveIntegers"},{latexTrigger:"\\Z^{\\gt0}",parse:"PositiveIntegers"},{latexTrigger:"\\N^+",parse:"PositiveIntegers"},{latexTrigger:"\\N^{+}",parse:"PositiveIntegers"},{latexTrigger:"\\N^*",parse:"PositiveIntegers"},{latexTrigger:"\\N^{*}",parse:"PositiveIntegers"},{latexTrigger:"\\N^\\star",parse:"PositiveIntegers"},{latexTrigger:"\\N^{\\star}",parse:"PositiveIntegers"},{latexTrigger:"\\N_1",parse:"PositiveIntegers"},{latexTrigger:"\\N_{1}",parse:"PositiveIntegers"},{name:"NonNegativeIntegers",latexTrigger:["\\N"]},{latexTrigger:"\\Z^{+0}",parse:"NonNegativeIntegers"},{latexTrigger:"\\Z^{\\geq}",parse:"NonNegativeIntegers"},{latexTrigger:"\\Z^{\\geq0}",parse:"NonNegativeIntegers"},{latexTrigger:"\\Z^{0+}",parse:"NonNegativeIntegers"},{latexTrigger:"\\mathbb{N}",parse:"NonNegativeIntegers"},{latexTrigger:"\\N_0",parse:"NonNegativeIntegers"},{latexTrigger:"\\N_{0}",parse:"NonNegativeIntegers"},{name:"ExtendedIntegers",latexTrigger:"\\overline\\Z"},{latexTrigger:"\\bar\\Z",parse:"ExtendedIntegers"},{name:"ExtendedRationalNumbers",latexTrigger:"\\overline\\Q"},{latexTrigger:"\\bar\\Q",parse:"ExtendedRationalNumbers"},{name:"ExtendedComplexNumbers",latexTrigger:"\\overline\\C"},{latexTrigger:"\\bar\\C",parse:"ExtendedComplexNumbers"},{latexTrigger:["^","\\complement"],kind:"postfix",parse:(e,n)=>["Complement",n]},{name:"Complement",latexTrigger:["^","<{>","\\complement","<}>"],kind:"postfix",serialize:(e,n)=>g([e.serialize(l(n,1)),"^\\complement"])},{name:"Intersection",latexTrigger:["\\cap"],kind:"infix",precedence:350},{name:"Interval",serialize:Ur},{kind:"matchfix",openTrigger:["["],closeTrigger:[")"],parse:(e,n)=>se(n,!1,!0)},{kind:"matchfix",openTrigger:["\\lbrack"],closeTrigger:["\\rparen"],parse:(e,n)=>se(n,!1,!0)},{kind:"matchfix",openTrigger:["\\lbrack"],closeTrigger:[")"],parse:(e,n)=>se(n,!1,!0)},{kind:"matchfix",openTrigger:["["],closeTrigger:["\\rparen"],parse:(e,n)=>se(n,!1,!0)},{kind:"matchfix",openTrigger:["("],closeTrigger:["]"],parse:(e,n)=>se(n,!0,!1)},{kind:"matchfix",openTrigger:["\\lparen"],closeTrigger:["\\rbrack"],parse:(e,n)=>se(n,!0,!1)},{kind:"matchfix",openTrigger:["\\lparen"],closeTrigger:["]"],parse:(e,n)=>se(n,!0,!1)},{kind:"matchfix",openTrigger:["("],closeTrigger:["\\rbrack"],parse:(e,n)=>se(n,!0,!1)},{kind:"matchfix",openTrigger:["]"],closeTrigger:["["],parse:(e,n)=>se(n,!0,!0)},{kind:"matchfix",openTrigger:["\\rbrack"],closeTrigger:["\\lbrack"],parse:(e,n)=>se(n,!0,!0)},{name:"Multiple",serialize:Ur},{name:"Union",latexTrigger:["\\cup"],kind:"infix",precedence:350},{name:"Divides",latexTrigger:["\\mid"],kind:"infix",precedence:160},{name:"Set",kind:"matchfix",openTrigger:"{",closeTrigger:"}",parse:(e,n)=>{if(D(n))return"EmptySet";p(n)=="Delimiter"&&M(l(n,2))===","&&(n=l(n,1));let t=p(n);if(t==="Divides"){let i=l(n,1),r=l(n,2);if(i!==null&&r!==null)return["Set",i,["Condition",r]]}if(t==="Colon"){let i=l(n,1),r=l(n,2);if(i!==null&&r!==null){let s=p(i);return s!==null&&jr.has(s)?["Which",i,r]:["Set",i,["Condition",r]]}}if(t==="Sequence"){let i=x(n),r=i.filter(o=>p(o)==="Colon");if(r.length>0&&r.every(o=>{let a=l(o,1),u=a!==null?p(a):null;return u!==null&&jr.has(u)})){let o=[];for(let a=0;a<i.length;a++){let u=i[a];if(p(u)==="Colon"){let c=l(u,1),f=l(u,2);if(c===null||f===null)return["Set",...i];o.push(c,f)}else{if(a!==i.length-1)return["Set",...i];o.push("True",u)}}return["Which",...o]}return["Set",...i]}return["Set",n]},serialize:(e,n)=>{if(_(n)===2&&p(l(n,2))==="Condition"){let t=l(n,2);return g(["\\lbrace",e.serialize(l(n,1)),"\\mid",e.serialize(l(t,1)),"\\rbrace"])}return g(["\\lbrace",x(n).map(t=>e.serialize(t)).join(", "),"\\rbrace"])}},{name:"SetMinus",latexTrigger:["\\setminus"],kind:"infix",precedence:650},{name:"SymmetricDifference",latexTrigger:["\\triangle"],kind:"infix",precedence:k},{latexTrigger:["\\ni"],kind:"infix",associativity:"none",precedence:160,parse:(e,n,t)=>{let i=e.parseExpression(t);return i===null?null:["Element",i,n]}},{name:"Element",latexTrigger:["\\in"],kind:"infix",precedence:240},{name:"NotElement",latexTrigger:["\\notin"],kind:"infix",precedence:240},{name:"NotSubset",latexTrigger:["\\nsubset"],kind:"infix",associativity:"none",precedence:240},{name:"NotSuperset",latexTrigger:["\\nsupset"],kind:"infix",associativity:"none",precedence:240},{name:"NotSubsetNotEqual",latexTrigger:["\\nsubseteq"],kind:"infix",associativity:"none",precedence:240},{name:"NotSupersetNotEqual",latexTrigger:["\\nsupseteq"],kind:"infix",associativity:"none",precedence:240},{name:"SquareSubset",latexTrigger:["\\sqsubset"],kind:"infix",associativity:"none",precedence:265},{name:"SquareSubsetEqual",latexTrigger:["\\sqsubseteq"],kind:"infix",associativity:"none",precedence:265},{name:"SquareSuperset",latexTrigger:["\\sqsupset"],kind:"infix",associativity:"none",precedence:265},{name:"SquareSupersetEqual",latexTrigger:["\\sqsupseteq"],kind:"infix",associativity:"none",precedence:265},{name:"Subset",latexTrigger:["\\subset"],kind:"infix",associativity:"none",precedence:240},{latexTrigger:["\\subsetneq"],kind:"infix",associativity:"none",precedence:240,parse:"Subset"},{latexTrigger:["\\varsubsetneqq"],kind:"infix",associativity:"none",precedence:240,parse:"Subset"},{name:"SubsetEqual",latexTrigger:["\\subseteq"],kind:"infix",associativity:"none",precedence:240},{name:"Superset",latexTrigger:["\\supset"],kind:"infix",associativity:"none",precedence:240},{latexTrigger:["\\supsetneq"],kind:"infix",associativity:"none",precedence:240,parse:"Superset"},{latexTrigger:["\\varsupsetneq"],kind:"infix",associativity:"none",precedence:240,parse:"Superset"},{name:"SupersetEqual",latexTrigger:["\\supseteq"],kind:"infix",associativity:"none",precedence:240}];function Ur(e,n){if(n===null)return"";let t=p(n);if(!t)return"";if(t==="Range")return g(["\\mathopen\\lbrack",e.serialize(l(n,1)),", ",e.serialize(l(n,2)),"\\mathclose\\rbrack"]);if(t==="Interval"){let r=l(n,1),s=l(n,2),o=!1,a=!1;return p(r)==="Open"&&(r=l(r,1),o=!0),p(s)==="Open"&&(s=l(s,1),a=!0),g([o?"\\lparen":"\\lbrack",e.serialize(r),", ",e.serialize(s),a?"\\rparen":"\\rbrack"])}let i=e.numericSetStyle(n,e.level);return""}function Ue(e,n,t){e.indexOf("#1")<0&&e.indexOf("#2")<0&&(e=`#1 ${e} #2`);let i=e.split(/(#\d+)/).filter(r=>r.trim()!=="").map(r=>r.trim());return g(i.map(r=>{switch(r){case"#1":return n;case"#2":return t;default:return r}}))}function Yt(e,n){if(n==="none")return e;if(n==="0...360"){let t=e%360;return(t<0?t+360:t)||0}if(n==="-180...180"){let t=e%360;return t>180&&(t-=360),t<-180&&(t+=360),t||0}return e}function Do(e){let n=e<0?-1:1,t=Math.abs(e),i=Math.floor(t),r=(t-i)*60,s=Math.floor(r),o=(r-s)*60,a=Math.round(o*1e3)/1e3,u=s,c=i;return a>=60&&(a=0,u++),u>=60&&(u=0,c++),{deg:n*c||0,min:n*u||0,sec:a===0?0:n*a}}function Xt(e){let{deg:n,min:t,sec:i}=Do(e),r=`${n}\xB0`;if(Math.abs(i)>.001){let s=i%1===0?i.toString():i.toFixed(2);r+=`${Math.abs(t)}'${Math.abs(Number(s))}"`}else Math.abs(t)>0?r+=`${Math.abs(t)}'`:r+=`0'0"`;return r}function Ao(e){if(p(e)!=="Multiply")return[[],[]];let n=[],t=[];for(let i of x(e))if(p(i)==="Power"){let r=l(i,1),s=l(i,2);if(p(s)==="Negate"){let o=l(s,1);r&&o&&t.push(["Power",r,o])}else{let o=I(s)??NaN;o===-1?r&&t.push(r):o<0?r&&t.push(["Power",r,-o]):n.push(i)}}else if(p(i)==="Rational"&&_(i)===2||p(i)==="Divide"){let r=l(i,1),s=l(i,2);I(r)!==1&&n.push(r),I(s)!==1&&t.push(s)}else{let r=Ze(i);r!==null?(r[0]!==1&&n.push(r[0]),t.push(r[1])):n.push(i)}return[n,t]}function Po(e){let n=e.parseOptionalGroup(),t=e.parseGroup()??e.parseToken();return D(t)?n!==null?["Root",qe,P(n)]:["Sqrt",qe]:n!==null?["Root",t,n]:["Sqrt",t]}function _o(e){if(typeof e=="number")return-e;if(typeof e=="string")return e.startsWith("-")?e.slice(1):e.startsWith("+")?"-"+e.slice(1):"-"+e;let n=e.num;return n.startsWith("-")?{num:n.slice(1)}:n.startsWith("+")?{num:"-"+n.slice(1)}:{num:"-"+n}}function An(e,n,t,i){return t==null?"\\sqrt{}":(i=i??2,n==="solidus"?e.wrapShort(t)+"^{1/"+e.serialize(i)+"}":n==="quotient"?e.wrapShort(t)+"^{\\frac{1}{"+e.serialize(i)+"}}":I(i)===2?"\\sqrt{"+e.serialize(t)+"}":"\\sqrt["+e.serialize(i)+"]{"+e.serialize(t)+"}")}function Ro(e,n){e.level-=1;let t=p(n),i="",r=l(n,1);if(t==="Negate")i="-"+e.wrap(r,F+1);else if(t==="Subtract"){i=e.wrap(r,F);let s=l(n,2);if(s!==null){let o=e.wrap(s,F);o[0]==="-"?i+="+"+o.slice(1):o[0]==="+"?i+="-"+o.slice(1):i=i+"-"+o}}else if(t==="Add"){if(e.options.prettify&&_(n)===2&&e.options.invisiblePlus!=="+"){let[a,u]=[l(n,1),l(n,2)],[c,f]=[a,u],h=I(c),E=Ze(f);if((h===null||E===null)&&([c,f]=[u,a],h=I(c),E=Ze(f)),h!==null&&E!==null&&isFinite(h)&&Number.isInteger(h)&&h>=0&&h<=1e3&&isFinite(E[0])&&isFinite(E[1])&&E[0]>0&&E[0]<=100&&E[1]<=100)return i=Ue(e.options.invisiblePlus,e.serialize(c),e.serialize(f)),e.level+=1,i}if(e.options.prettify&&_(n)===2){let[a,u]=Pn(r),[c,f]=Pn(l(n,2));if(u<0&&f>0)return i=e.wrap(c,F)+"-"+e.wrap(a,F),e.level+=1,i}i=e.serialize(r);let s=_(n)+1,o=x(n);for(let a=2;a<s;a++)if(r=o[a-1],e.options.prettify){let[u,c]=Pn(r),f=e.wrap(u,F);c>0?f.startsWith("+")||f.startsWith("-")?i+=f:i+="+"+f:f.startsWith("+")?i+="-"+f.slice(1):f.startsWith("-")?i+="+"+f.slice(1):i+="-"+f}else{let u=e.wrap(r,F);u[0]==="-"||u[0]==="+"?i+=u:i+="+"+u}}return e.level+=1,i}function ns(e,n){if(n===null)return"";e.level-=1;let t="";if(e.options.prettify===!0){let[u,c]=Ao(n);c.length>0&&(c.length===1&&c[0]===1?u.length===0?t="1":u.length===1?t=e.serialize(u[0]):t=ns(e,["Multiply",...u]):t=e.serialize(["Divide",u.length===1?u[0]:["Multiply",...u],c.length===1?c[0]:["Multiply",...c]]))}if(t)return e.level+=1,t;let i=!1,r=null,s=_(n)+1,o=x(n);e.options.prettify===!0&&o.length===2&&Me(o[1])&&!Me(o[0])&&(o=[o[1],o[0]]);let a=!1;for(let u=1;u<s;u++){if(r=o[u-1],r===null)continue;let c;if(Me(r)){c=e.serialize(r),c==="-1"&&!t?(t="",i=!i):(c[0]==="-"&&(c=c.slice(1),i=!i),t?t=Ue(e.options.multiply,t,c):t=c),a=!0;continue}if(p(r)==="Power"){let f=Ze(l(r,2));if(f!=null){let[h,E]=f;if(h===1&&E!==null){t+=An(e,e.rootStyle(r,e.level),l(r,1),E),a=!1;continue}}}if(p(r)==="Power"&&!isNaN(I(l(r,1))??NaN)){c=e.serialize(r),t?t=Ue(e.options.multiply,t,c):t=c,a=!0;continue}if(p(r)==="Negate"&&(r=l(r,1),i=!i),c=e.wrap(r,j),!t)t=c;else{let f=p(r);a&&(f==="Divide"||f==="Rational")?t=Ue(e.options.multiply,t,c):e.options.invisibleMultiply?t=Ue(e.options.invisibleMultiply,t,c):t=g([t,c])}a=!1}return e.level+=1,i?"-"+t:t}function Kt(e){let n=e.parseGroup(),t=null;if(n===null?(n=e.parseToken(),t=e.parseToken()):t=e.parseGroup(),n=P(n),t=P(t),p(n)==="PartialDerivative"&&(p(t)==="PartialDerivative"||p(t)==="Multiply"&&p(l(t,1))==="PartialDerivative")){let s=l(n,3)??null,o=l(n,1);o==null&&(o=P(e.parseExpression()));let a=[];if(p(t)==="Multiply"){for(let u of x(t))if(p(u)==="PartialDerivative"){let c=l(u,2);c&&a.push(c)}}else{let u=l(t,2);u&&a.push(u)}return a.length>1&&(a=["List",...a]),["PartialDerivative",o,...a,s===null?1:s]}let i=b(n);if(i==="d"||i==="d_upright"||i==="differentialD"){let s=[],o=a=>{if(!a)return;let u=b(a);if(u&&u!=="d"&&u!=="d_upright"&&u!=="differentialD"){s.push(a);return}let c=p(a);if(c==="Sequence"||c==="Multiply"||c==="InvisibleOperator")for(let f of x(a))o(f)};if(o(t),s.length===0){let a=b(t);a&&a.length>1&&a[0]==="d"&&s.push(a.slice(1))}if(s.length>0)return["D",P(e.parseExpression()),...s]}return["Divide",n,t]}function Hr(e,n){if(n===null)return"";let t=P(l(n,1)),i=P(l(n,2)),r=e.options.prettify?e.fractionStyle(n,e.level):"quotient";if(r==="inline-solidus"||r==="nice-solidus"){let u=e.wrapShort(t),c=e.wrapShort(i);return r==="inline-solidus"?`${u}/${c}`:`{}^{${u}}\\!\\!/\\!{}_{${c}}`}else{if(r==="reciprocal")return I(t)===1?e.wrap(i)+"^{-1}":e.wrap(t)+e.wrap(i)+"^{-1}";if(r==="factor")return I(i)===1?e.wrap(t):"\\frac{1}{"+e.serialize(i)+"}"+e.wrapString(e.serialize(t),e.groupStyle(n,1))}let s="\\frac";r==="block-quotient"?s="\\dfrac":r==="inline-quotient"&&(s="\\tfrac");let o=e.serialize(t),a=e.serialize(i);return`${s}{${o}}{${a}}`}function ji(e,n){if(!n)return"";let t=p(n),i=P(l(n,1));if(t==="Sqrt")return An(e,e.rootStyle(n,e.level-1),i,2);let r=P(l(n,2));if(t==="Root")return An(e,e.rootStyle(n,e.level-1),i,r);if(e.options.prettify){let o=I(r)??1;if(o===-1)return e.serialize(["Divide","1",i]);if(o<0)return e.serialize(["Divide","1",["Power",i,-o]]);if(p(r)==="Divide"||p(r)==="Rational"){let a=I(l(r,1)),u=I(l(r,2));if(a===1){let c=e.rootStyle(n,e.level);return An(e,c,i,l(r,2))}if(a===-1)return u===2?e.serialize(["Divide","1",["Sqrt",i]]):e.serialize(["Divide","1",["Root",i,l(r,2)??qe]]);if(u===2)return`${e.serialize(["Sqrt",i])}^{${e.serialize(l(r,1))}}`}else if(p(r)==="Power"&&I(l(r,2))===-1){let a=e.rootStyle(n,e.level);return An(e,a,i,l(r,1))}}let s=o=>o.startsWith("-")?e.wrapString(o,"normal"):o;if(p(i)==="Power"){let o=l(i,1),a=l(i,2),u=s(e.wrapShort(o)),c=e.wrapShort(a);return`
|
|
8
|
-
${u}^{${Fe("^",c,e.serialize(r))}}`}return Fe("^",s(e.wrapShort(i)),e.serialize(r))}function Dn(e,n){e.skipSpace();let t=e.index,i=e.parseNumber(),r=null,s=null;if(i!==null&&(e.match("'")||e.match("\\prime"))){r=I(i),e.skipSpace();let u=e.index,c=e.parseNumber();c!==null&&(e.match('"')||e.match("\\doubleprime"))?s=I(c):e.index=u}else return e.index=t,["Degrees",n];let o=I(n);if(o!==null&&r!==null){let u=o+r/60;return s!==null&&(u+=s/3600),["Degrees",u]}let a=[["Quantity",n,"deg"]];return a.push(["Quantity",i,"arcmin"]),s!==null&&a.push(["Quantity",s,"arcsec"]),["Add",...a]}var ts=[{name:"CatalanConstant",symbolTrigger:"G"},{name:"GoldenRatio",latexTrigger:"\\varphi"},{name:"EulerGamma",latexTrigger:"\\gamma"},{name:"Degrees",latexTrigger:["\\degree"],kind:"postfix",precedence:880,parse:(e,n)=>Dn(e,n),serialize:(e,n)=>{let t=e.options,i=l(n,1);if(t.dmsFormat||t.angleNormalization&&t.angleNormalization!=="none"){let r=I(i);if(r!==null){let s=r;return t.angleNormalization&&t.angleNormalization!=="none"&&(s=Yt(s,t.angleNormalization)),t.dmsFormat?Xt(s):`${s}\xB0`}}return g([e.serialize(i),"\\degree"])}},{latexTrigger:["\\degree"],kind:"postfix",precedence:880,parse:(e,n)=>Dn(e,n)},{latexTrigger:["^","<{>","\\circ","<}>"],kind:"postfix",parse:(e,n)=>Dn(e,n)},{latexTrigger:["^","\\circ"],kind:"postfix",parse:(e,n)=>Dn(e,n)},{latexTrigger:["\xB0"],kind:"postfix",precedence:880,parse:(e,n)=>Dn(e,n)},{latexTrigger:["\\ang"],parse:e=>{let n=e.parseGroup();return n===null?["Degrees"]:["Degrees",n]}},{name:"DMS",serialize:(e,n)=>{let t=I(l(n,1)),i=I(l(n,2)),r=I(l(n,3));if(t!==null){let o=i??0,a=r??0,u=`${t}\xB0`;return(o!==0||a!==0)&&(u+=`${o}'`),a!==0&&(u+=`${a}"`),u}let s=[];for(let o of[1,2,3]){let a=l(n,o);a!==null&&s.push(e.serialize(a))}return`\\operatorname{DMS}(${s.join(", ")})`}},{latexTrigger:["\\infty"],parse:"PositiveInfinity"},{latexTrigger:["\\infin"],parse:"PositiveInfinity"},{name:"PositiveInfinity",serialize:e=>e.options.positiveInfinity},{name:"NegativeInfinity",serialize:e=>e.options.negativeInfinity},{name:"ComplexInfinity",latexTrigger:["\\tilde","\\infty"],serialize:"\\tilde\\infty"},{latexTrigger:["\\tilde","<{>","\\infty","<}>"],parse:"ComplexInfinity"},{name:"Pi",kind:"symbol",latexTrigger:["\\pi"]},{latexTrigger:["\u03C0"],parse:"Pi"},{name:"ExponentialE",latexTrigger:["\\exponentialE"],parse:"ExponentialE",serialize:"\\exponentialE"},{latexTrigger:"\\operatorname{e}",parse:"ExponentialE"},{latexTrigger:"\\mathrm{e}",parse:"ExponentialE"},{kind:"function",symbolTrigger:"exp",parse:e=>{let n=e.parseArguments("implicit");return n===null?"Exp":["Exp",...n]}},{latexTrigger:"\\exp",parse:e=>{let n=e.parseArguments("implicit");return n===null?"Exp":["Exp",...n]}},{name:"ImaginaryUnit",latexTrigger:["\\imaginaryI"]},{latexTrigger:"\\operatorname{i}",parse:"ImaginaryUnit"},{latexTrigger:"\\mathrm{i}",parse:"ImaginaryUnit"},{name:"Abs",kind:"matchfix",openTrigger:"|",closeTrigger:"|",parse:(e,n)=>D(n)?null:["Abs",n]},{kind:"matchfix",openTrigger:["\\vert"],closeTrigger:["\\vert"],parse:(e,n)=>D(n)?null:["Abs",n]},{symbolTrigger:"abs",kind:"function",parse:"Abs"},{name:"Add",latexTrigger:["+"],kind:"infix",associativity:"any",precedence:F,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:F});if(i===null)return null;if(p(i)==="Negate"){let r=l(i,1);if(Me(r))return je("Add",n,_o(r))}return je("Add",n,i)},serialize:Ro},{kind:"prefix",latexTrigger:["+"],precedence:F,parse:(e,n)=>e.parseExpression({...n,minPrec:400})},{name:"Ceil",kind:"matchfix",openTrigger:"\\lceil",closeTrigger:"\\rceil",parse:(e,n)=>D(n)?null:["Ceil",n]},{kind:"matchfix",openTrigger:["\u2308"],closeTrigger:["\u2309"],parse:(e,n)=>D(n)?null:["Ceil",n]},{symbolTrigger:"ceil",kind:"function",parse:"Ceil"},{name:"Chop",symbolTrigger:"chop",kind:"function",parse:"Chop"},{name:"Complex",precedence:F-1,serialize:(e,n)=>{let t=e.serialize(l(n,1)),i=I(l(n,2));if(i===0)return t;let r=i===1?"\\imaginaryI":i===-1?"-\\imaginaryI":g([e.serialize(l(n,2)),"\\imaginaryI"]);return I(l(n,1))===0?r:i!==null&&i<0?g([t,r]):g([t,"+",r])}},{name:"Divide",latexTrigger:"\\frac",precedence:K,parse:Kt,serialize:Hr},{latexTrigger:"\\dfrac",precedence:K,parse:Kt},{latexTrigger:"\\tfrac",precedence:K,parse:Kt},{latexTrigger:"\\cfrac",precedence:K,parse:Kt},{kind:"infix",latexTrigger:"\\over",associativity:"none",precedence:K,parse:"Divide"},{latexTrigger:["\\/"],kind:"infix",associativity:"left",precedence:K,parse:"Divide"},{latexTrigger:["/"],kind:"infix",associativity:"left",precedence:K,parse:"Divide"},{latexTrigger:["\\div"],kind:"infix",associativity:"left",precedence:K,parse:"Divide"},{name:"Exp",serialize:(e,n)=>{let t=l(n,1);return b(t)||I(t)!==null?g(["\\exponentialE^{",e.serialize(t),"}"]):g(["\\exp",e.wrap(P(t))])}},{name:"Factorial",latexTrigger:["!"],kind:"postfix",precedence:Si},{name:"Factorial2",latexTrigger:["!","!"],kind:"postfix",precedence:Si},{name:"Floor",kind:"matchfix",openTrigger:"\\lfloor",closeTrigger:"\\rfloor",parse:(e,n)=>D(n)?null:["Floor",n]},{kind:"matchfix",openTrigger:["\u230A"],closeTrigger:["\u230B"],parse:(e,n)=>D(n)?null:["Floor",n]},{symbolTrigger:"floor",kind:"function",parse:"Floor"},{latexTrigger:["\\Gamma"],parse:"Gamma"},{latexTrigger:["\\zeta"],kind:"function",parse:"Zeta"},{latexTrigger:["\\Beta"],kind:"function",parse:"Beta"},{name:"LambertW",latexTrigger:["\\operatorname{W}"],kind:"function",serialize:(e,n)=>"\\operatorname{W}"+e.wrapArguments(n)},{name:"BesselJ",latexTrigger:["\\operatorname{J}"],kind:"function",serialize:(e,n)=>{let t=l(n,1),i=l(n,2);return t!==null&&i!==null?"\\operatorname{J}_{"+e.serialize(t)+"}"+e.wrapArguments(["BesselJ",i]):"\\operatorname{J}"+e.wrapArguments(n)}},{name:"BesselY",latexTrigger:["\\operatorname{Y}"],kind:"function",serialize:(e,n)=>{let t=l(n,1),i=l(n,2);return t!==null&&i!==null?"\\operatorname{Y}_{"+e.serialize(t)+"}"+e.wrapArguments(["BesselY",i]):"\\operatorname{Y}"+e.wrapArguments(n)}},{name:"BesselI",latexTrigger:["\\operatorname{I}"],kind:"function",serialize:(e,n)=>{let t=l(n,1),i=l(n,2);return t!==null&&i!==null?"\\operatorname{I}_{"+e.serialize(t)+"}"+e.wrapArguments(["BesselI",i]):"\\operatorname{I}"+e.wrapArguments(n)}},{name:"BesselK",latexTrigger:["\\operatorname{K}"],kind:"function",serialize:(e,n)=>{let t=l(n,1),i=l(n,2);return t!==null&&i!==null?"\\operatorname{K}_{"+e.serialize(t)+"}"+e.wrapArguments(["BesselK",i]):"\\operatorname{K}"+e.wrapArguments(n)}},{name:"AiryAi",latexTrigger:["\\operatorname{Ai}"],kind:"function",serialize:(e,n)=>"\\operatorname{Ai}"+e.wrapArguments(n)},{name:"AiryBi",latexTrigger:["\\operatorname{Bi}"],kind:"function",serialize:(e,n)=>"\\operatorname{Bi}"+e.wrapArguments(n)},{name:"GCD",latexTrigger:["\\gcd"],kind:"function"},{symbolTrigger:"gcd",kind:"function",parse:"GCD"},{symbolTrigger:"GCD",kind:"function",parse:"GCD"},{name:"Half",serialize:"\\frac12"},{name:"Lg",latexTrigger:["\\lg"],serialize:(e,n)=>"\\log_{10}"+e.wrapArguments(n),parse:e=>{let n=e.parseArguments("implicit");return n===null?"Lg":["Log",...n,10]}},{name:"Lb",latexTrigger:"\\lb",parse:e=>{let n=e.parseArguments("implicit");return n===null?"Log":["Log",n[0],2]}},{name:"Ln",latexTrigger:["\\ln"],parse:e=>es("Ln",e),serialize:(e,n)=>"\\ln"+e.wrapArguments(n)},{name:"Log",latexTrigger:["\\log"],parse:e=>es("Log",e),serialize:(e,n)=>{let[t,i]=x(n);return i?g(["\\log_{",e.serialize(i),"}",e.wrap(t)]):"\\log"+e.wrapArguments(n)}},{name:"LCM",latexTrigger:["\\lcm"],kind:"function"},{symbolTrigger:"lcm",kind:"function",parse:"LCM"},{symbolTrigger:"LCM",kind:"function",parse:"LCM"},{symbolTrigger:"max",kind:"function",parse:"Max",arguments:"implicit"},{symbolTrigger:"min",kind:"function",parse:"Min",arguments:"implicit"},{name:"Max",latexTrigger:"\\max",kind:"function",arguments:"implicit"},{name:"Min",latexTrigger:"\\min",kind:"function",arguments:"implicit"},{name:"Supremum",latexTrigger:"\\sup",kind:"function",arguments:"implicit"},{name:"Infimum",latexTrigger:"\\inf",kind:"function",arguments:"implicit"},{name:"Limit",latexTrigger:"\\lim",kind:"expression",parse:e=>{if(!e.match("_"))return null;let n=e.parseGroup();if(p(n)!=="To")return null;let t=e.parseExpression({minPrec:j});return t?["Limit",["Function",t,l(n,1)],l(n,2)]:null},serialize:(e,n)=>{let t=l(n,1),i=l(t,2),r=l(n,2);return g(["\\lim_{",e.serialize(i),"\\to",e.serialize(r),"}",e.serialize(l(t,1))])}},{name:"MinusPlus",latexTrigger:["\\mp"],kind:"infix",associativity:"any",precedence:fe},{name:"Multiply",latexTrigger:["\\times"],kind:"infix",associativity:"any",precedence:j,serialize:ns},{latexTrigger:["\\cdot"],kind:"infix",associativity:"any",precedence:j,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:j+2});return i===null?null:je("Multiply",n,i)}},{latexTrigger:["*"],kind:"infix",associativity:"any",precedence:j,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:j+2});return i===null?["Multiply",n,qe]:je("Multiply",n,i)}},{name:"Mod",latexTrigger:"\\bmod",kind:"infix",precedence:K,serialize:(e,n)=>{if(_(n)!==2)return"";let t=e.serialize(l(n,1)),i=e.serialize(l(n,2));return g([t,"\\bmod",i])}},{latexTrigger:"\\mod",kind:"infix",precedence:K,parse:"Mod"},{latexTrigger:"\\operatorname{mod}",parse:"Mod"},{latexTrigger:"\\pmod",kind:"prefix",precedence:k,parse:e=>{let n=e.parseGroup()??e.parseToken();return["Mod",P(n)]}},{name:"Congruent",serialize:(e,n)=>{let t=e.serialize(l(n,1)),i=e.serialize(l(n,2));if(l(n,3)===null)return g([t,"\\equiv",i]);let r=e.serialize(l(n,3));return g([t,"\\equiv",i,"\\pmod{",r,"}"])}},{name:"Negate",latexTrigger:["-"],kind:"prefix",precedence:kn+1,parse:(e,n)=>{e.skipSpace();let t=e.parseExpression({...n,minPrec:kn+3});return t===null?null:["Negate",t]}},{kind:"matchfix",openTrigger:"||",closeTrigger:"||",parse:(e,n)=>D(n)?null:["Norm",n]},{name:"Norm",kind:"matchfix",openTrigger:["\\left","\\Vert"],closeTrigger:["\\right","\\Vert"],parse:(e,n)=>D(n)?null:["Norm",n],serialize:(e,n)=>{let t=l(n,1);if(p(t)==="Matrix"){let i=l(t,1),r=l(t,2),s=r?["Matrix",i,{str:"\u2016\u2016"},r]:["Matrix",i,{str:"\u2016\u2016"}];return e.serialize(s)}return`\\left\\Vert ${e.serialize(t)}\\right\\Vert`}},{name:"PlusMinus",latexTrigger:["\\pm"],kind:"infix",associativity:"any",precedence:fe,serialize:(e,n)=>{let t=l(n,1);if(t===null)return"\\pm";if(_(n)===1)return g(["\\pm",e.serialize(t)]);let i=l(n,2);return g([e.serialize(t),"\\pm",e.serialize(i)])}},{latexTrigger:["\\pm"],kind:"prefix",precedence:fe,parse:(e,n)=>{let t=e.parseExpression({...n,minPrec:400});return["PlusMinus",0,P(t)]}},{latexTrigger:["\\plusmn"],kind:"infix",associativity:"any",precedence:fe,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:400});return["PlusMinus",n,P(i)]}},{latexTrigger:["\\plusmn"],kind:"prefix",precedence:fe,parse:(e,n)=>{let t=e.parseExpression({...n,minPrec:400});return["PlusMinus",P(t)]}},{name:"Power",latexTrigger:["^"],kind:"infix",serialize:ji},{latexTrigger:"\\prod",precedence:j,name:"Product",parse:Xr("Product","Multiply",j),serialize:Qr("\\prod")},{latexTrigger:["*","*"],kind:"infix",associativity:"right",precedence:kn,parse:(e,n,t)=>{if(e.options.strict!==!1)return null;let i=e.parseExpression({...t,minPrec:kn});return i===null?null:["Power",n,i]}},{name:"Rational",precedence:K,serialize:(e,n)=>n&&_(n)===1?"\\operatorname{Rational}"+e.wrapArguments(n):Hr(e,n)},{name:"Reduce",serialize:(e,n)=>{let t=l(n,1);if(!t)return"";let i=l(n,2);return b(i)==="Add"?`\\sum ${e.serialize(t)}`:b(i)==="Multiply"?`\\prod ${e.serialize(t)}`:`\\operatorname{Reduce}\\left(${e.serialize(t)}, ${e.serialize(l(n,2))}\\right)`}},{name:"Root",serialize:ji},{name:"Round",symbolTrigger:"round",kind:"function"},{name:"Square",precedence:720,serialize:(e,n)=>{let t=e.wrapShort(l(n,1));return(t.startsWith("-")?e.wrapString(t,"normal"):t)+"^2"}},{latexTrigger:["\\sum"],precedence:F,name:"Sum",parse:Xr("Sum","Add",j),serialize:Qr("\\sum")},{name:"Heaviside",symbolTrigger:"Heaviside",kind:"function"},{name:"Sign",symbolTrigger:"sgn",kind:"function"},{name:"Sqrt",latexTrigger:["\\sqrt"],parse:Po,serialize:ji},{name:"Subtract",latexTrigger:["-"],kind:"infix",associativity:"left",precedence:F+2,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:F+3});return i===null?null:["Subtract",n,i]},serialize:(e,n)=>{let t=e.wrap(l(n,1),F+2),i=e.wrap(l(n,2),F+3);return g([t,"-",i])}},{name:"Distance",latexTrigger:["\\operatorname{distance}"],kind:"function",serialize:(e,n)=>"\\operatorname{distance}"+e.wrapArguments(n)}];function Bo(e,n){if(e!==null){if(b(e))return{index:b(e)??"Nothing",upper:n};if(p(e)==="GreaterEqual"){let t=b(l(e,1))??"Nothing",i=l(e,2)??1;return{index:t,lower:i,upper:n}}if(p(e)==="Equal"){let t=b(l(e,1))??"Nothing",i=l(e,2);if(p(i)==="Range"){let s=l(i,1)??1,o=l(i,2)??void 0;return{index:t,lower:s,upper:o}}return{index:t,lower:i??1,upper:n}}if(p(e)==="Element")return{index:b(l(e,1))??"Nothing",element:e}}}function Oo(e){let n=p(e);return n?new Set(["Less","LessEqual","Greater","GreaterEqual","NotEqual","And","Or","Not"]).has(n):!1}function Yr(e){if(e===null)return[];let n=we(e);if(n)return[...n];if(p(e)==="Tuple"){let t=x(e);return t?[...t]:[e]}return[e]}function Co(e,n){D(e)&&(e=null),D(n)&&(n=null);let t=Yr(e),i=Yr(n),r=[],s=0;for(;s<t.length;){let o=t[s],a=Bo(o,i[s]);if(a){if(a.element&&s+1<t.length){let u=t[s+1];if(Oo(u)&&p(u)!=="Element"&&p(u)!=="Equal"){let c=a.element;if(Array.isArray(c)&&c.length>=3){let f=[c[0],...c.slice(1),u];a.element=f}s++}}r.push(a)}s++}return r}function Xr(e,n,t){return i=>{i.skipSpace(),i.pushSymbolTable();let r=null,s=null;for(;!(s&&r)&&(i.peek==="_"||i.peek==="^");)i.match("_")?s=i.parseGroup()??i.parseToken():i.match("^")&&(r=i.parseGroup()??i.parseToken()),i.skipSpace();if(!r&&!s){let c=i.parseExpression({minPrec:t});return i.popSymbolTable(),c?["Reduce",c,n]:null}let o=Co(s,r),a=i.parseExpression({minPrec:t});if(i.popSymbolTable(),a===null)return[e];let u=[];for(let c of o){if(c.element){u.push(c.element);continue}let f=c.lower,h=c.upper,E=c.index??"Nothing";h!=null?u.push(["Tuple",E,f??1,h]):f!=null?u.push(["Tuple",E,f]):u.push(["Tuple",E])}return[e,a,...u]}}var Fo=new Set(["Tuple","Triple","Pair","Single","Limits","Element"]);function Kr(e){return e==null||b(e)==="Nothing"?null:e}function Vo(e){let n=[],t=x(e);if(t.length<=1)return n;for(let i of t.slice(1)){let r=p(i);if(r&&Fo.has(r)){n.push(i);continue}break}return n}function Jo(e,n){if(p(n)==="Element"){let c=e.serialize(l(n,1)),f=e.serialize(l(n,2));return{sub:`${c}\\in ${f}`}}let t=l(n,1);t!==null&&p(t)==="Hold"&&(t=l(t,1));let i=Kr(l(n,2)),r=Kr(l(n,3)),s={},o=t?b(t):null,a=o!==null&&o!=="Nothing",u=a&&t?e.serialize(t):void 0;return a&&i!==null&&u?s.sub=`${u}=${e.serialize(i)}`:a&&u?s.sub=u:i!==null&&(s.sub=e.serialize(i)),r!==null&&(s.sup=e.serialize(r)),s}function Qr(e){return(n,t)=>{let i=l(t,1);if(!i)return e;let r=Vo(t),s=e;if(r.length>0){let o=[],a=[];for(let u of r){let c=Jo(n,u);c.sub&&o.push(c.sub),c.sup&&a.push(c.sup)}o.length>0&&(s=Fe("_",s,o.join(", "))),a.length>0&&(s=Fe("^",s,a.join(", ")))}return g([s,n.serialize(i)])}}function es(e,n){let t=null;n.match("_")&&(t=n.parseGroup()??n.parseToken());let i=n.parseArguments("implicit");return i===null&&t===null?[e]:i===null?[e,t]:t===null?[e,...i]:t===10?["Log",i[0]]:t===2?["Lb",...i]:["Log",i[0],t]}function Pn(e){let n=1,t=e;do{e=t;let i=p(e);if(i==="Negate")n*=-1,t=l(e,1);else if(i==="Multiply"){let[r,s]=Pn(l(e,1));s<0&&(n*=-1,r===1?t=["Multiply",...x(e).slice(1)]:t=["Multiply",r,...x(e).slice(1)])}else if(i==="Divide"||i==="Rational"){let[r,s]=Pn(l(e,1));s<0&&(n*=-1,t=[i,r,l(e,2)])}else{let r=I(e);r!==null&&r<0&&(n*=-1,t=-r)}}while(t!==e);return[e,n]}var is=[{name:"Real",kind:"function",latexTrigger:["\\Re"],arguments:"implicit"},{name:"Imaginary",kind:"function",latexTrigger:["\\Im"],arguments:"implicit"},{name:"Argument",kind:"function",latexTrigger:["\\arg"],arguments:"implicit"},{name:"Conjugate",latexTrigger:["^","\\star"],kind:"postfix"}];function N(e){return(n,t)=>{let i={"\\arcsin":"Arcsin","\\arccos":"Arccos","\\arctan":"Arctan","\\arctg":"Arctan","\\arcctg":"Arccot","\\arcsec":"Arcsec","\\arccsc":"Arccsc","\\arsinh":"Arsinh","\\arcsinh":"Arsinh","\\arcosh":"Arcosh","\\arccosh":"Arcosh","\\artanh":"Artanh","\\arctanh":"Artanh","\\arsech":"Arsech","\\arcsech":"Arsech","\\arcsch":"Arcsch","\\arccsch":"Arcsch","\\arcoth":"Arcoth","\\arccoth":"Arcoth","\\ch":"Cosh","\\cos":"Cos","\\cosh":"Cosh","\\cosec":"Csc","\\cot":"Cot","\\cotg":"Cot","\\ctg":"Cot","\\csc":"Csc","\\csch":"Csch","\\coth":"Coth","\\cth":"Coth","\\sec":"Sec","\\sech":"Sech","\\sin":"Sin","\\sinh":"Sinh","\\sh":"Sinh","\\tan":"Tan","\\tg":"Tan","\\tanh":"Tanh","\\th":"Tanh"},r=i[e??""]??e??"";if(n.atTerminator(t))return r;let s=r;do{let f=n.parsePostfixOperator(s,t);if(f===null)break;s=f}while(!0);n.skipSpace();let o=null;n.match("^")&&(o=n.parseGroup()??n.parseToken()),n.skipSpace();let a=n.parseArguments("implicit",{minPrec:j,condition:f=>i[f.peek]||(t?.condition?.(f)??!1)}),u=s==="Arctan"&&a?.length===2?"Arctan2":s,c=a===null?s:typeof u=="string"?[u,...a]:["Apply",u,...a];return o===null?c:["Power",c,o]}}var rs=[{name:"Arcsin",latexTrigger:["\\arcsin"],parse:N("Arcsin")},{name:"Arccos",latexTrigger:["\\arccos"],parse:N("Arccos")},{name:"Arctan",latexTrigger:["\\arctan"],parse:N("Arctan")},{latexTrigger:["\\arctg"],parse:N("Arctan")},{symbolTrigger:"arctg",parse:N("Arctan")},{name:"Arccot",symbolTrigger:"arcctg",parse:N("Arccot")},{latexTrigger:["\\arcctg"],parse:N("Arccot")},{name:"Arcoth",symbolTrigger:"arcoth",parse:N("Arcoth")},{symbolTrigger:"arccoth",parse:N("Arcoth")},{latexTrigger:["\\arcoth"],parse:N("Arcoth")},{latexTrigger:["\\arccoth"],parse:N("Arcoth")},{name:"Arcsec",symbolTrigger:"arcsec",parse:N("Arcsec")},{latexTrigger:["\\arcsec"],parse:N("Arcsec")},{name:"Arccsc",symbolTrigger:"arccsc",parse:N("Arccsc")},{latexTrigger:["\\arccsc"],parse:N("Arccsc")},{name:"Arsinh",symbolTrigger:"arsinh",parse:N("Arsinh")},{symbolTrigger:"arcsinh",parse:N("Arsinh")},{latexTrigger:["\\arsinh"],parse:N("Arsinh")},{latexTrigger:["\\arcsinh"],parse:N("Arsinh")},{name:"Arcosh",symbolTrigger:"arcosh",parse:N("Arcosh")},{symbolTrigger:"arccosh",parse:N("Arcosh")},{latexTrigger:"\\arcosh",parse:N("Arcosh")},{latexTrigger:"\\arccosh",parse:N("Arcosh")},{name:"Artanh",symbolTrigger:"artanh",parse:N("Artanh")},{symbolTrigger:"arctanh",parse:N("Artanh")},{latexTrigger:"\\artanh",parse:N("Artanh")},{latexTrigger:["\\arctanh"],parse:N("Artanh")},{name:"Arsech",symbolTrigger:"arsech",parse:N("Arsech")},{symbolTrigger:"arcsech",parse:N("Arsech")},{latexTrigger:["\\arsech"],parse:N("Arsech")},{latexTrigger:["\\arcsech"],parse:N("Arsech")},{name:"Arcsch",symbolTrigger:"arcsch",parse:N("Arcsch")},{symbolTrigger:"arccsch",parse:N("Arcsch")},{latexTrigger:["\\arcsch"],parse:N("Arcsch")},{latexTrigger:["\\arccsch"],parse:N("Arcsch")},{name:"Cosec",symbolTrigger:"cosec",parse:N("Cosec")},{latexTrigger:["\\cosec"],parse:N("Cosec")},{name:"Cosh",latexTrigger:["\\cosh"],parse:N("Cosh")},{latexTrigger:["\\ch"],parse:N("Cosh")},{name:"Cot",latexTrigger:["\\cot"],parse:N("Cot")},{latexTrigger:["\\cotg"],parse:N("Cot")},{latexTrigger:["\\ctg"],parse:N("Cot")},{name:"Csc",latexTrigger:["\\csc"],parse:N("Csc")},{name:"Csch",latexTrigger:["\\csch"],parse:N("Csch")},{name:"Coth",latexTrigger:["\\coth"],parse:N("Coth")},{latexTrigger:["\\cth"],parse:N("Coth")},{symbolTrigger:"cth",parse:N("Coth")},{latexTrigger:["\\coth"],parse:N("Coth")},{name:"Sec",latexTrigger:["\\sec"],parse:N("Sec")},{name:"Sech",symbolTrigger:"sech",parse:N("Sech")},{latexTrigger:["\\sech"],parse:N("Sech")},{name:"Sinh",latexTrigger:["\\sinh"],parse:N("Sinh")},{latexTrigger:["\\sh"],parse:N("Sinh")},{name:"Tan",latexTrigger:["\\tan"],parse:N("Tan")},{latexTrigger:["\\tg"],parse:N("Tan")},{name:"Tanh",latexTrigger:["\\tanh"],parse:N("Tanh")},{latexTrigger:["\\th"],parse:N("Tanh")},{name:"Cos",latexTrigger:["\\cos"],parse:N("Cos")},{name:"Sin",latexTrigger:["\\sin"],parse:N("Sin")},{name:"Sinc",symbolTrigger:"sinc",kind:"function"},{name:"FresnelS",symbolTrigger:"FresnelS",kind:"function"},{name:"FresnelC",symbolTrigger:"FresnelC",kind:"function"}];function We(e){return n=>{let t=!1,i=[],r=[];for(;!t;){n.skipVisualSpace(),n.match("\\limits"),n.skipSpace();let a=null,u=null;for(;!(u!==null&&a!==null)&&(n.peek==="_"||n.peek==="^");)n.match("_")?u=n.parseGroup()??n.parseToken():n.match("^")&&(a=n.parseGroup()??n.parseToken()),n.skipSpace();D(u)&&(u=null),D(a)&&(a=null),i.push(u??"Nothing"),r.push(a??"Nothing"),n.skipVisualSpace(),t=!n.match(e)}let[s,o]=Lo(n);if(s&&o.length===0){if(p(s)==="Add"||p(s)==="Subtract"){let a=[],u=[];for(let c of x(s))if(o)u.push(c);else{let f;[f,o]=me(c),a.push(f??c)}if(o!==null&&u.length>0)return["Add",ss(e,["Add",...a],{indexes:o,subs:i,sups:r})??"Nothing",...u]}else if(p(s)==="Divide"){let a;[a,o]=me(l(s,1)),a!==null&&o!==null&&(s=["Divide",a,l(s,2)])}}return ss(e,s,{indexes:o,subs:i,sups:r})}}function ss(e,n,t){if(!n)return null;if(t.sups.length===0&&t.subs.length===0)return[e,n,...t.indexes];let i=t.indexes.length===0?p(n)==="Function"?x(n).slice(1):[]:t.indexes,r=Math.max(t.sups.length,t.subs.length,i.length);if(i.length===0)for(let o=0;o<r;o++)i.push("Nothing");else if(i.length!==r)for(let o=i.length;o<r;o++)i.push(["Error","'missing'"]);if(t.subs.length!==r)for(let o=t.subs.length;o<r;o++)t.subs.push("Nothing");if(t.sups.length!==r)for(let o=t.sups.length;o<r;o++)t.sups.push("Nothing");let s=i.map((o,a)=>{let u=t.sups[a],c=t.subs[a];return c==="Nothing"&&u==="Nothing"?o:["Tuple",o,c,u]});return[e,n,...s]}function Lo(e){let n=!1,t=e.parseExpression({minPrec:266,condition:()=>{let i=e.index;return n=us(e),e.index=i,n}});return t!==null&&!n?me(t):[t,$o(e)]}function $o(e){let n=[];for(;us(e);){e.skipVisualSpace();let t=b(e.parseSymbol());if(t===null)return n;n.push(t)}return n}function me(e){let n=p(e),t=l(e,1);if(!t)return[e,[]];if(n==="Sequence"&&_(e)===1)return me(t);if(n==="Multiply"||n==="InvisibleOperator"){let i=x(e);if(i){let[r,s]=qo(i);return r.length>0?[[n,...r],s]:[null,s]}}else if(n==="Delimiter"){let[i,r]=me(t);if(r)return i?[["Delimiter",["Sequence",i],...x(e).slice(1)],r]:[null,r]}else if(n==="Add"){let i=x(e);if(i.length>0){let[r,s]=me(i[i.length-1]);if(s.length>0){if(r)return[["Add",...i.slice(0,-1),r],s];if(i.length>2)return[["Add",...i.slice(0,-1)],s];if(i.length>2)return[i[0],s]}}}else if(n==="Negate"){let[i,r]=me(t);if(r.length>0)return[i?["Negate",i]:null,r]}else if(n==="Divide"){let[i,r]=me(t);if(r.length>0)return[["Divide",i??1,l(e,2)],r]}else{let i=x(e);if(i.length===1){let[r,s]=me(i[0]);if(s.length>0)return[[p(e),r],s]}}return[e,[]]}function os(e){return(n,t)=>{if(!l(t,1))return e;let i=l(t,1),r=[];p(i)==="BuiltInFunction"?(r=["x"],i=[l(i,1),"x"]):p(i)==="Function"?(r=x(i).slice(1),i=l(i,1)):b(i)?r=[]:r=[];let s=x(t).slice(1),o=[],a=s.map((c,f)=>{if(b(c)==="Nothing")return o.push(b(r[f])??"Nothing"),"";if(b(c))return o.push(b(c)??"Nothing"),"";let h=p(c);if(h==="Tuple"||h==="Pair"||h==="Limits"||h==="Range"){if(_(c)===3){let E=l(c,1);o.push(b(E)??"Nothing");let v=l(c,2),w=l(c,3);return b(v)==="Nothing"&&(v=null),b(w)==="Nothing"&&(w=null),v!==null&&w!==null?`_{${n.serialize(v)}}^{${n.serialize(w)}}`:v!==null?`_{${n.serialize(v)}}`:w!==null?`^{${n.serialize(w)}}`:""}return`_{${n.serialize(c)}}`}if(_(c)===2){if(b(l(c,1))){o.push(b(l(c,1))??"Nothing");let w=l(c,2);return b(w)==="Nothing"?"":`_{${n.serialize(w)}}`}o.push(b(r[f])??"Nothing");let E=l(c,1),v=l(c,2);if(b(E)==="Nothing"&&(E=null),b(v)==="Nothing"&&(v=null),E!==null&&v!==null)return`_{${n.serialize(E)}}^{${n.serialize(v)}}`;if(E!==null)return`_{${n.serialize(E)}}`;if(v!==null)return`^{${n.serialize(v)}}`}else o.push(b(r[f])??"Nothing")}),u=o.filter(c=>b(c)!=="Nothing").map(c=>`\\mathrm{d}${n.serialize(b(c)??"x")}`);return u.length>0&&(u=["\\,",...u]),a.length===0?`${e}\\,${n.serialize(i)}\\!${u.join(" ")}`:a.reverse().map(c=>`${e}${c}`).join("")+"\\!"+n.serialize(i)+u.join(" ")}}var as=[{kind:"expression",name:"Integrate",latexTrigger:["\\int"],parse:We("Integrate"),serialize:os("\\int")},{kind:"expression",latexTrigger:["\\iint"],parse:We("Integrate")},{kind:"expression",latexTrigger:["\\iiint"],parse:We("Integrate")},{kind:"expression",name:"CircularIntegrate",latexTrigger:["\\oint"],parse:We("CircularIntegrate"),serialize:os("\\oint")},{kind:"expression",latexTrigger:["\\oiint"],parse:We("CircularIntegrate")},{kind:"expression",latexTrigger:["\\oiiint"],parse:We("CircularIntegrate")}];function us(e){let n=e.index;for(;e.match("\\cdot")||e.skipVisualSpace(););return e.matchAll(["\\mathrm","<{>","d","<}>"])||e.matchAll(["\\operatorname","<{>","d","<}>"])||e.match("d")||e.match("\\differentialD")?!0:(e.index=n,!1)}function qo(e){let n=[...e],t=[];for(;n.length>0;){let i;if([n,i]=zo(n),!i)break;t.push(i)}return[n,t]}function zo(e){if(e.length<2)return[e,""];let n=e[e.length-2];if(n==="d"||n==="d_upright"){let t=b(e[e.length-1]);if(t)return[e.slice(0,-2),t]}return[e,""]}var ls=[{name:"Matrix",serialize:(e,n)=>{let t=x(l(n,1));return Ui(e,t,M(l(n,2)),M(l(n,3)))}},{name:"Vector",serialize:(e,n)=>{let t=x(n);return Ui(e,t.map(i=>["List",i]),M(l(n,2)),M(l(n,3)))}},{kind:"environment",symbolTrigger:"pmatrix",parse:e=>{let n=he(e),[t,i]=de(e);return n?[t,i,{str:"()"},{str:n}]:[t,i]}},{kind:"environment",symbolTrigger:"bmatrix",parse:e=>{let n=he(e),[t,i]=de(e);return n?[t,i,{str:"[]"},{str:n}]:[t,i,{str:"[]"}]}},{kind:"environment",symbolTrigger:"Bmatrix",parse:e=>{let n=he(e),[t,i]=de(e);return n?[t,i,{str:"{}"},{str:n}]:[t,i,{str:"{}"}]}},{kind:"environment",symbolTrigger:"vmatrix",parse:e=>{let n=he(e),[t,i]=de(e);return n?["Determinant",[t,i,{str:n}]]:["Determinant",[t,i]]}},{kind:"environment",symbolTrigger:"Vmatrix",parse:e=>{let n=he(e),[t,i]=de(e);return n?["Norm",[t,i,{str:n}]]:["Norm",[t,i]]}},{kind:"environment",symbolTrigger:"smallmatrix",parse:e=>{let n=he(e),[t,i]=de(e);return n?[t,i,{str:"()"},{str:n}]:[t,i]}},{kind:"environment",symbolTrigger:"array",parse:e=>{let n=he(e,!1),[t,i]=de(e);return n?[t,i,{str:".."},{str:n}]:[t,i,{str:".."}]}},{kind:"environment",symbolTrigger:"matrix",parse:e=>{let n=he(e),[t,i]=de(e);return n?[t,i,{str:".."},{str:n}]:[t,i,{str:".."}]}},{kind:"environment",symbolTrigger:"matrix*",parse:e=>{let n=he(e),[t,i]=de(e);return n?[t,i,{str:".."},{str:n}]:[t,i,{str:".."}]}},{name:"ConjugateTranspose",kind:"postfix",latexTrigger:["^","\\star"]},{kind:"postfix",latexTrigger:["^","\\H"],parse:"ConjugateTranspose"},{kind:"postfix",latexTrigger:["^","\\dagger"],parse:(e,n)=>["ConjugateTranspose",n]},{kind:"postfix",latexTrigger:["^","\\ast"],parse:(e,n)=>["ConjugateTranspose",n]},{kind:"postfix",latexTrigger:["^","\\top"],parse:(e,n)=>["Transpose",n]},{kind:"postfix",latexTrigger:["^","\\intercal"],parse:(e,n)=>["Transpose",n]},{name:"Transpose",kind:"postfix",latexTrigger:["^","T"]},{name:"PseudoInverse",kind:"postfix",latexTrigger:["^","+"]},{name:"Inverse",serialize:(e,n)=>e.serialize(l(n,1))+"^{-1}"},{name:"Trace",kind:"function",latexTrigger:"\\tr",arguments:"implicit",serialize:(e,n)=>He(e,n,"\\tr")},{symbolTrigger:"tr",kind:"function",parse:"Trace",arguments:"implicit"},{name:"Kernel",kind:"function",latexTrigger:"\\ker",arguments:"implicit",serialize:(e,n)=>He(e,n,"\\ker")},{symbolTrigger:"ker",kind:"function",parse:"Kernel",arguments:"implicit"},{name:"Dimension",kind:"function",latexTrigger:"\\dim",arguments:"implicit",serialize:(e,n)=>He(e,n,"\\dim")},{symbolTrigger:"dim",kind:"function",parse:"Dimension",arguments:"implicit"},{name:"Degree",kind:"function",latexTrigger:"\\deg",arguments:"implicit",serialize:(e,n)=>He(e,n,"\\deg")},{symbolTrigger:"deg",kind:"function",parse:"Degree",arguments:"implicit"},{name:"Hom",kind:"function",latexTrigger:"\\hom",arguments:"implicit",serialize:(e,n)=>He(e,n,"\\hom")},{symbolTrigger:"hom",kind:"function",parse:"Hom",arguments:"implicit"},{name:"Determinant",kind:"function",latexTrigger:"\\det",arguments:"implicit",serialize:(e,n)=>{let t=l(n,1);if(p(t)==="Matrix"){let i=x(l(t,1));return Ui(e,i,"||",M(l(t,2)))}return He(e,n,"\\det")}},{symbolTrigger:"det",kind:"function",parse:"Determinant",arguments:"implicit"},{name:"MatrixMultiply",serialize:(e,n)=>{let t=e.serialize(l(n,1)),i=e.serialize(l(n,2));return`${t} \\cdot ${i}`}}];function de(e){let n=e.parseTabular();return n?["Matrix",["List",...n.map(t=>["List",...t])]]:["",null]}function he(e,n=!0){let t=e.parseStringGroup(n)?.trim();if(!t)return"";let i="";for(let r of t)r==="c"&&(i+="="),r==="l"&&(i+="<"),r==="r"&&(i+=">"),r==="|"&&(i+="|"),r===":"&&(i+=":");return i}function He(e,n,t){if(x(n).length!==1)return`${t}${e.wrapArguments(n)}`;let r=l(n,1),s=e.serialize(r);return typeof r=="string"||typeof r=="number"?`${t} ${s}`:`${t}\\left(${s}\\right)`}function Ui(e,n,t,i){t??="()";let[r,s]=["",""];typeof t=="string"&&t.length===2&&([r,s]=t);let o="";if(i)for(let f of i)f==="<"?o+="l":f===">"?o+="r":f==="="?o+="c":f==="|"?o+="|":f===":"&&(o+=":");let a=[];for(let f of n??[]){let h=[];for(let E of x(f))h.push(e.serialize(E));a.push(h.join(" & "))}let u=a.join(`\\\\
|
|
9
|
-
`),c=o.length>0?`[${o}]`:"";return r==="("&&s===")"?g(["\\begin{pmatrix}",c,u,"\\end{pmatrix}"]):r==="["&&s==="]"?g(["\\begin{bmatrix}",c,u,"\\end{bmatrix}"]):r==="{"&&s==="}"?g(["\\begin{Bmatrix}",c,u,"\\end{Bmatrix}"]):r==="|"&&s==="|"?g(["\\begin{vmatrix}",c,u,"\\end{vmatrix}"]):r==="\u2016"&&s==="\u2016"?g(["\\begin{Vmatrix}",c,u,"\\end{Vmatrix}"]):r==="{"&&s==="."?g(["\\begin{dcases}",c,u,"\\end{dcases}"]):r==="."&&s==="}"?g(["\\begin{rcases}",c,u,"\\end{rcases}"]):o||r!=="."||s!=="."?g(["\\left",Ht[r]??r,"\\begin{array}",`{${o}}`,u,"\\end{array}","\\right",Ht[s]??s]):g(["\\begin{matrix}",u,"\\end{matrix}"])}var cs=[{name:"Mean",kind:"function",symbolTrigger:"mean"},{name:"Median",kind:"function",symbolTrigger:"median"},{name:"StandarDeviation",kind:"function",symbolTrigger:"stddev"},{latexTrigger:["\\bar"],kind:"expression",parse:(e,n)=>{let t=e.parseGroup()??e.parseToken();return!t||!b(t)?null:["Mean",t]}},{latexTrigger:"\\operatorname{var}",parse:"Variance"}];var Qt={Q:1e30,R:1e27,Y:1e24,Z:1e21,E:1e18,P:1e15,T:1e12,G:1e9,M:1e6,k:1e3,h:100,da:10,d:.1,c:.01,m:.001,\u00B5:1e-6,\u03BC:1e-6,n:1e-9,p:1e-12,f:1e-15,a:1e-18,z:1e-21,y:1e-24,r:1e-27,q:1e-30},fs=new Set(["m","g","s","A","K","mol","cd","Hz","N","Pa","J","W","C","V","F","ohm","S","Wb","T","H","lm","lx","Bq","Gy","Sv","kat","eV","L","bar"]),ei={m:{dimension:[1,0,0,0,0,0,0],scale:1},kg:{dimension:[0,1,0,0,0,0,0],scale:1},g:{dimension:[0,1,0,0,0,0,0],scale:.001},s:{dimension:[0,0,1,0,0,0,0],scale:1},A:{dimension:[0,0,0,1,0,0,0],scale:1},K:{dimension:[0,0,0,0,1,0,0],scale:1},mol:{dimension:[0,0,0,0,0,1,0],scale:1},cd:{dimension:[0,0,0,0,0,0,1],scale:1},Hz:{dimension:[0,0,-1,0,0,0,0],scale:1},N:{dimension:[1,1,-2,0,0,0,0],scale:1},Pa:{dimension:[-1,1,-2,0,0,0,0],scale:1},J:{dimension:[2,1,-2,0,0,0,0],scale:1},W:{dimension:[2,1,-3,0,0,0,0],scale:1},C:{dimension:[0,0,1,1,0,0,0],scale:1},V:{dimension:[2,1,-3,-1,0,0,0],scale:1},F:{dimension:[-2,-1,4,2,0,0,0],scale:1},ohm:{dimension:[2,1,-3,-2,0,0,0],scale:1},S:{dimension:[-2,-1,3,2,0,0,0],scale:1},Wb:{dimension:[2,1,-2,-1,0,0,0],scale:1},T:{dimension:[0,1,-2,-1,0,0,0],scale:1},H:{dimension:[2,1,-2,-2,0,0,0],scale:1},lm:{dimension:[0,0,0,0,0,0,1],scale:1},lx:{dimension:[-2,0,0,0,0,0,1],scale:1},Bq:{dimension:[0,0,-1,0,0,0,0],scale:1},Gy:{dimension:[2,0,-2,0,0,0,0],scale:1},Sv:{dimension:[2,0,-2,0,0,0,0],scale:1},kat:{dimension:[0,0,-1,0,0,1,0],scale:1},degC:{dimension:[0,0,0,0,1,0,0],scale:1,offset:273.15},degF:{dimension:[0,0,0,0,1,0,0],scale:5/9,offset:459.67},min:{dimension:[0,0,1,0,0,0,0],scale:60},h:{dimension:[0,0,1,0,0,0,0],scale:3600},d:{dimension:[0,0,1,0,0,0,0],scale:86400},ha:{dimension:[2,0,0,0,0,0,0],scale:1e4},L:{dimension:[3,0,0,0,0,0,0],scale:.001},t:{dimension:[0,1,0,0,0,0,0],scale:1e3},eV:{dimension:[2,1,-2,0,0,0,0],scale:1602176634e-28},Da:{dimension:[0,1,0,0,0,0,0],scale:16605390666e-37},au:{dimension:[1,0,0,0,0,0,0],scale:149597870700},deg:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/180},rad:{dimension:[0,0,0,0,0,0,0],scale:1},grad:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/200},turn:{dimension:[0,0,0,0,0,0,0],scale:2*Math.PI},arcmin:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/10800},arcsec:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/648e3},percent:{dimension:[0,0,0,0,0,0,0],scale:.01},ppm:{dimension:[0,0,0,0,0,0,0],scale:1e-6},dB:{dimension:[0,0,0,0,0,0,0],scale:1},Np:{dimension:[0,0,0,0,0,0,0],scale:1},in:{dimension:[1,0,0,0,0,0,0],scale:.0254},ft:{dimension:[1,0,0,0,0,0,0],scale:.3048},mi:{dimension:[1,0,0,0,0,0,0],scale:1609.344},lb:{dimension:[0,1,0,0,0,0,0],scale:.45359237},oz:{dimension:[0,1,0,0,0,0,0],scale:.028349523125},gal:{dimension:[3,0,0,0,0,0,0],scale:.003785411784},atm:{dimension:[-1,1,-2,0,0,0,0],scale:101325},bar:{dimension:[-1,1,-2,0,0,0,0],scale:1e5},cal:{dimension:[2,1,-2,0,0,0,0],scale:4.184},kWh:{dimension:[2,1,-2,0,0,0,0],scale:36e5},\u00C5:{dimension:[1,0,0,0,0,0,0],scale:1e-10}};function Go(e){if(e.length>2){let n=e.slice(0,2),t=e.slice(2);if(Qt[n]!==void 0&&fs.has(t)){let i=ei[t];if(i)return{prefixScale:Qt[n],baseEntry:i}}}if(e.length>1){let n=e.slice(0,1),t=e.slice(1);if(Qt[n]!==void 0&&fs.has(t)){let i=ei[t];if(i)return{prefixScale:Qt[n],baseEntry:i}}}return null}function Zo(e){let n=ei[e];if(n)return n;let t=Go(e);return t?{dimension:t.baseEntry.dimension,scale:t.prefixScale*t.baseEntry.scale}:null}function Wi(e){let n=Zo(e);return n?n.dimension:null}var If=new Map(["N","J","W","Pa","Hz","C","V","F","ohm","S","Wb","T","H","lm","lx","Gy","kat"].map(e=>[ei[e].dimension.join(","),e]));function jo(e){let n=e.indexOf("^");if(n===-1)return e;let t=e.slice(0,n),i=e.slice(n+1),r=parseInt(i,10);return isNaN(r)?e:["Power",t,r]}function _n(e){if(e=e.trim(),e.length===0)return null;if(e[0]==="("&&e[e.length-1]===")"){let r=0,s=!0;for(let o=0;o<e.length-1;o++)if(e[o]==="("?r++:e[o]===")"&&r--,r===0&&o<e.length-1){s=!1;break}if(s)return _n(e.slice(1,-1))}let n=-1,t=[],i=0;for(let r=0;r<e.length;r++)e[r]==="("?i++:e[r]===")"?i--:i===0&&(e[r]==="/"&&n===-1?n=r:e[r]==="*"&&t.push(r));if(n!==-1){let r=e.slice(0,n).trim(),s=e.slice(n+1).trim(),o=_n(r),a=_n(s);return!o||!a?null:["Divide",o,a]}if(t.length>0){let r=[],s=0;for(let a of t)r.push(e.slice(s,a).trim()),s=a+1;r.push(e.slice(s).trim());let o=r.filter(a=>a.length>0).map(a=>_n(a));return o.some(a=>a===null)?null:o.length===1?o[0]:["Multiply",...o]}return e[0]==="("?null:jo(e)}function ps(e){return e=e.trim(),e.length===0?null:/[/*^()]/.test(e)?_n(e):e}function gs(e){if(!e.match("<{>"))return null;let n="",t=0;for(;!e.atEnd;){let i=e.peek;if(i==="<}>"&&t===0)return e.nextToken(),n;if(i==="<}>"){t--,e.nextToken();continue}if(i==="<{>"){t++,e.nextToken();continue}if(i==="<space>"){e.nextToken();continue}if(i==="\\cdot"){n+="*",e.nextToken();continue}if(i==="^"){n+="^",e.nextToken();continue}n+=i,e.nextToken()}return null}var Uo=new Set(["d"]);function ys(e){if(!e||e.length===0||Uo.has(e))return null;if(Wi(e)!==null)return e;if(/[/*^]/.test(e))try{let n=ps(e);if(n!==null&&Hi(n))return n}catch{return null}return null}function Hi(e){if(typeof e=="string")return Wi(e)!==null;if(!Array.isArray(e))return!1;let n=e[0];return n==="Multiply"||n==="Divide"?e.slice(1).every(t=>Hi(t)):n==="Power"?Hi(e[1]):!1}var ms=e=>{let n=e.index,t=gs(e);if(t===null)return e.index=n,null;let i=ys(t);return i===null?(e.index=n,null):["__unit__",i]};function Pe(e){let n=b(e);if(n!==null)return n;if(typeof e=="number")return String(e);let t=p(e);if(!t)return"";if(t==="Divide"){let i=l(e,1),r=l(e,2);return`${Pe(i)}/${Pe(r)}`}if(t==="Multiply"){let i=[];if(Array.isArray(e))for(let r=1;r<e.length;r++)i.push(Pe(e[r]));return i.join("\\cdot ")}if(t==="Power"){let i=l(e,1),r=l(e,2),s=typeof r=="number"?String(r):b(r)??String(r);return`${Pe(i)}^{${s}}`}if(t==="Square"){let i=l(e,1);return`${Pe(i)}^{2}`}return""}function ds(e){let n=e.parseGroup();if(n===null)return null;let t=xs(e);return t===null?null:["Quantity",n,t]}function hs(e){return xs(e)}function xs(e){let n=e.index,t=gs(e);if(t===null)return e.index=n,null;let i=ys(t);return i===null?(e.index=n,null):i}var bs=[{latexTrigger:"\\mathrm",kind:"expression",parse:ms},{latexTrigger:"\\text",kind:"expression",parse:ms},{latexTrigger:"\\qty",parse:ds},{latexTrigger:"\\SI",parse:ds},{latexTrigger:"\\unit",parse:hs},{latexTrigger:"\\si",parse:hs},{name:"Quantity",serialize:(e,n)=>{let t=l(n,1),i=l(n,2);if(t===null||i===null)return"";let r=b(i),s=r==="deg"||r==="rad"||r==="arcmin"||r==="arcsec",o=e.options;if(s&&(o.dmsFormat||o.angleNormalization&&o.angleNormalization!=="none")){let c=I(t);if(c===null){let h=e.serialize(t),E=Pe(i);return g([h,"\\,",`\\mathrm{${E}}`])}let f=c;return r==="rad"?f=f*180/Math.PI:r==="arcmin"?f=f/60:r==="arcsec"&&(f=f/3600),o.angleNormalization&&o.angleNormalization!=="none"&&(f=Yt(f,o.angleNormalization)),o.dmsFormat?Xt(f):`${f}\xB0`}let a=e.serialize(t),u=Pe(i);return g([a,"\\,",`\\mathrm{${u}}`])}}];var Wo=["pt","em","mu","ex","mm","cm","in","bp","sp","dd","cc","pc","nc","nd"];function Es(e){for(e.skipSpace(),(e.peek==="-"||e.peek==="+")&&e.nextToken();/^[\d.]$/.test(e.peek);)e.nextToken();for(let n of Wo)if(e.matchAll([...n]))return}function W(e){return n=>{let t=n.parseGroup();return t===null?[e]:[e,t]}}function ni(e){return n=>{let t=n.parseExpression();return t!==null&&!D(t)?["Annotated",t,{dict:{mathStyle:e}}]:"Nothing"}}function oe(e){return n=>{let t=n.parseExpression();return t!==null&&!D(t)?["Annotated",t,{dict:{size:e}}]:"Nothing"}}var Ns=[{name:"Overscript",latexTrigger:["\\overset"],kind:"infix",precedence:700},{name:"Underscript",latexTrigger:["\\underset"],kind:"infix",precedence:700},{name:"Increment",latexTrigger:["+","+"],kind:"postfix",precedence:880,parse:(e,n)=>b(n)===null?null:["Increment",n]},{name:"Decrement",latexTrigger:["-","-"],kind:"postfix",precedence:880,parse:(e,n)=>b(n)===null?null:["Decrement",n]},{name:"PreIncrement",latexTrigger:["+","+"],kind:"prefix",precedence:880,parse:(e,n)=>{let t=e.parseExpression(n);return b(t)===null?null:["PreIncrement",t]}},{name:"PreDecrement",latexTrigger:["-","-"],kind:"prefix",precedence:880,parse:(e,n)=>{let t=e.parseExpression(n);return b(t)===null?null:["PreDecrement",t]}},{name:"Ring",latexTrigger:["\\circ"],kind:"infix",precedence:265},{name:"StringJoin",latexTrigger:["\\lt","\\gt"],kind:"infix",precedence:780},{name:"Starstar",latexTrigger:["\\star","\\star"],kind:"infix",precedence:780},{name:"PartialDerivative",latexTrigger:["\\partial"],kind:"prefix",parse:e=>{let n=!1,t="Nothing",i="Nothing";for(;!n;)e.skipSpace(),e.match("_")?i=e.parseGroup()??e.parseToken():e.match("^")?t=e.parseGroup()??e.parseToken():n=!0;let r=we(i);if(r&&(i=["List",...r]),i===null||t===null)return null;let s=e.parseGroup()??"Nothing";if(!D(s)){let o=e.parseArguments()??["Nothing"];s=[s,...o]}return["PartialDerivative",s,i,t]},serialize:(e,n)=>{let t="\\partial",i=l(n,1),r=l(n,2),s=l(n,3);return r!==null&&r!=="Nothing"&&(p(r)==="List"?t+="_{"+e.serialize(["Sequence",...x(r)])+"}":t+="_{"+e.serialize(r)+"}"),s!==null&&s!=="Nothing"&&(t+="^{"+e.serialize(s)+"}"),i!==null&&i!=="Nothing"&&(t+=e.serialize(i)),t},precedence:740},{name:"OverBar",latexTrigger:["\\overline"],parse:W("OverBar")},{name:"UnderBar",latexTrigger:["\\underline"],parse:W("UnderBar")},{name:"OverVector",latexTrigger:["\\vec"],parse:W("OverVector")},{name:"OverTilde",latexTrigger:["\\tilde"],parse:W("OverTilde")},{name:"OverHat",latexTrigger:["\\hat"],parse:W("OverHat")},{name:"OverRightArrow",latexTrigger:["\\overrightarrow"],parse:W("OverRightArrow")},{name:"OverLeftArrow",latexTrigger:["\\overleftarrow"],parse:W("OverLeftArrow")},{name:"OverRightDoubleArrow",latexTrigger:["\\Overrightarrow"],parse:W("OverRightDoubleArrow")},{name:"OverLeftHarpoon",latexTrigger:["\\overleftharpoon"],parse:W("OverLeftHarpoon")},{name:"OverRightHarpoon",latexTrigger:["\\overrightharpoon"],parse:W("OverRightHarpoon")},{name:"OverLeftRightArrow",latexTrigger:["\\overleftrightarrow"],parse:W("OverLeftRightArrow")},{name:"OverBrace",latexTrigger:["\\overbrace"],parse:W("OverBrace")},{name:"OverLineSegment",latexTrigger:["\\overlinesegment"],parse:W("OverLineSegment")},{name:"OverGroup",latexTrigger:["\\overgroup"],parse:W("OverGroup")},{latexTrigger:["\\textcolor"],parse:e=>{let n=e.index,t=e.parseStringGroup(),i=e.parseGroup();return t!==null?i!==null?["Annotated",i,{dict:{color:t}}]:"Nothing":(e.index=n,"Nothing")}},{latexTrigger:["\\colorbox"],parse:e=>{let n=e.index,t=e.parseStringGroup(),i=e.parseGroup();return t!==null?i!==null?["Annotated",i,{dict:{backgroundColor:t}}]:"Nothing":(e.index=n,"Nothing")}},{latexTrigger:["\\boxed"],parse:e=>{let n=e.parseGroup();return n!==null?["Annotated",n,{dict:{border:!0}}]:"Nothing"}},{latexTrigger:["\\displaystyle"],parse:ni("normal")},{latexTrigger:["\\textstyle"],parse:ni("compact")},{latexTrigger:["\\scriptstyle"],parse:ni("script")},{latexTrigger:["\\scriptscriptstyle"],parse:ni("scriptscript")},{latexTrigger:["\\color"],parse:e=>{let n=e.parseStringGroup();if(n!==null){let t=e.parseExpression();if(t!==null&&!D(t))return["Annotated",t,{dict:{color:n}}]}return"Nothing"}},{latexTrigger:["\\tiny"],parse:oe(1)},{latexTrigger:["\\scriptsize"],parse:oe(2)},{latexTrigger:["\\footnotesize"],parse:oe(3)},{latexTrigger:["\\small"],parse:oe(4)},{latexTrigger:["\\normalsize"],parse:oe(5)},{latexTrigger:["\\large"],parse:oe(6)},{latexTrigger:["\\Large"],parse:oe(7)},{latexTrigger:["\\LARGE"],parse:oe(8)},{latexTrigger:["\\huge"],parse:oe(9)},{latexTrigger:["\\Huge"],parse:oe(10)},{name:"Annotated",serialize:(e,n)=>{let t=e.serialize(l(n,1)),i=_r(l(n,2));if(i==null)return t;i.dict.mathStyle==="normal"?t=g(["{\\displaystyle",t,"}"]):i.dict.mathStyle==="compact"?t=g(["{\\textstyle",t,"}"]):i.dict.mathStyle==="script"?t=g(["{\\scriptstyle",t,"}"]):i.dict.mathStyle==="scriptscript"&&(t=g(["{\\scriptscriptstyle",t,"}"]));let r=i.dict.size;return r!==null&&r>=1&&r<=10&&(t=g(["{",{1:"\\tiny",2:"\\scriptsize",3:"\\footnotesize",4:"\\small",5:"\\normalsize",6:"\\large",7:"\\Large",8:"\\LARGE",9:"\\huge",10:"\\Huge"}[r],t,"}"])),i.dict.fontFamily==="monospace"?t=g(["\\texttt{",t,"}"]):i.dict.fontFamily==="sans-serif"&&(t=g(["\\textsf{",t,"}"])),i.dict.fontWeight==="bold"&&(t=g(["\\textbf{",t,"}"])),i.dict.fontStyle==="italic"?t=g(["\\textit{",t,"}"]):i.dict.fontStyle==="normal"&&(t=g(["\\textup{",t,"}"])),i.dict.color&&(t=g(["\\textcolor{",i.dict.color,"}{",t,"}"])),i.dict.backgroundColor&&(t=g(["\\colorbox{",i.dict.backgroundColor,"}{",t,"}"])),i.dict.border===!0&&(t=g(["\\boxed{",t,"}"])),t}},{latexTrigger:["\\!"],parse:()=>["HorizontalSpacing",-3]},{latexTrigger:["\\ "],parse:()=>["HorizontalSpacing",6]},{latexTrigger:["\\:"],parse:()=>["HorizontalSpacing",4]},{latexTrigger:["\\enskip"],parse:()=>["HorizontalSpacing",9]},{latexTrigger:["\\quad"],parse:()=>["HorizontalSpacing",18]},{latexTrigger:["\\qquad"],parse:()=>["HorizontalSpacing",36]},{latexTrigger:["\\,"],parse:()=>["HorizontalSpacing",3]},{latexTrigger:["\\;"],parse:()=>["HorizontalSpacing",5]},{latexTrigger:["\\enspace"],parse:()=>["HorizontalSpacing",9]},{latexTrigger:["\\hspace"],parse:e=>(e.peek==="*"&&e.nextToken(),e.parseStringGroup(),["HorizontalSpacing",0])},{latexTrigger:["\\hskip"],parse:e=>(Es(e),["HorizontalSpacing",0])},{latexTrigger:["\\kern"],parse:e=>(Es(e),["HorizontalSpacing",0])},{latexTrigger:["\\phantom"],parse:e=>(e.parseGroup(),"Nothing")},{latexTrigger:["\\vphantom"],parse:e=>(e.parseGroup(),"Nothing")},{latexTrigger:["\\hphantom"],parse:e=>(e.parseGroup(),"Nothing")},{latexTrigger:["\\placeholder"],parse:e=>(e.parseOptionalGroup(),e.parseGroup()??"Nothing")},{latexTrigger:["\\smash"],parse:e=>(e.parseGroup(),"Nothing")},{latexTrigger:["\\strut"],parse:e=>"Nothing"},{latexTrigger:["\\mathstrut"],parse:e=>"Nothing"},{name:"HorizontalSpacing",serialize:(e,n)=>{if(l(n,2)!==null){let i=M(l(n,2)),r=e.serialize(l(n,1));return i==="bin"?`\\mathbin{${r}}`:i==="op"?`\\mathop{${r}}`:i==="rel"?`\\mathrel{${r}}`:i==="ord"?`\\mathord{${r}}`:i==="open"?`\\mathopen{${r}}`:i==="close"?`\\mathclose{${r}}`:i==="punct"?`\\mathpunct{${r}}`:i==="inner"?`\\mathinner{${r}}`:r}let t=I(l(n,1));return t===null?"":{"-3":"\\!",6:"\\ ",3:"\\,",4:"\\:",5:"\\;",9:"\\enspace",18:"\\quad",36:"\\qquad"}[t]??""}},{latexTrigger:"\\operatorname{count}",parse:"Length"},{latexTrigger:"\\operatorname{random}",parse:"Random"},{latexTrigger:"\\operatorname{shuffle}",parse:"Shuffle"},{latexTrigger:"\\operatorname{repeat}",parse:"Repeat"},{latexTrigger:"\\operatorname{join}",parse:"Join"},{latexTrigger:"\\operatorname{range}",parse:"Range"},{name:"Triangle",latexTrigger:["\\operatorname{triangle}"],kind:"function",serialize:(e,n)=>"\\operatorname{triangle}"+e.wrapArguments(n)},{name:"GeometricVector",latexTrigger:["\\operatorname{vector}"],kind:"function",serialize:(e,n)=>"\\operatorname{vector}"+e.wrapArguments(n)},{name:"Sphere",latexTrigger:["\\operatorname{sphere}"],kind:"function",serialize:(e,n)=>"\\operatorname{sphere}"+e.wrapArguments(n)},{name:"Segment",latexTrigger:["\\operatorname{segment}"],kind:"function",serialize:(e,n)=>"\\operatorname{segment}"+e.wrapArguments(n)}];var Ts=[{name:"Rgb",latexTrigger:["\\operatorname{rgb}"],kind:"function",serialize:(e,n)=>"\\operatorname{rgb}"+e.wrapArguments(n)},{name:"Hsv",latexTrigger:["\\operatorname{hsv}"],kind:"function",serialize:(e,n)=>"\\operatorname{hsv}"+e.wrapArguments(n)},{name:"Hsl",latexTrigger:["\\operatorname{hsl}"],kind:"function",serialize:(e,n)=>"\\operatorname{hsl}"+e.wrapArguments(n)},{name:"Oklab",latexTrigger:["\\operatorname{oklab}"],kind:"function",serialize:(e,n)=>"\\operatorname{oklab}"+e.wrapArguments(n)},{name:"Oklch",latexTrigger:["\\operatorname{oklch}"],kind:"function",serialize:(e,n)=>"\\operatorname{oklch}"+e.wrapArguments(n)},{name:"AsRgb",latexTrigger:["\\operatorname{asRgb}"],kind:"function",serialize:(e,n)=>"\\operatorname{asRgb}"+e.wrapArguments(n)},{name:"AsHsv",latexTrigger:["\\operatorname{asHsv}"],kind:"function",serialize:(e,n)=>"\\operatorname{asHsv}"+e.wrapArguments(n)},{name:"AsHsl",latexTrigger:["\\operatorname{asHsl}"],kind:"function",serialize:(e,n)=>"\\operatorname{asHsl}"+e.wrapArguments(n)},{name:"AsOklab",latexTrigger:["\\operatorname{asOklab}"],kind:"function",serialize:(e,n)=>"\\operatorname{asOklab}"+e.wrapArguments(n)},{name:"AsOklch",latexTrigger:["\\operatorname{asOklch}"],kind:"function",serialize:(e,n)=>"\\operatorname{asOklch}"+e.wrapArguments(n)},{name:"ColorDelta",latexTrigger:["\\operatorname{colorDelta}"],kind:"function",serialize:(e,n)=>"\\operatorname{colorDelta}"+e.wrapArguments(n)}];var Ho=[{name:"Mu0",kind:"symbol",latexTrigger:"\\mu_0"},{name:"VacuumPermittivity",kind:"symbol",latexTrigger:"\\varepsilon_0"}];var Yo=[...$r,...Gr,...Zr,...Br,...Wr,...Ve,...ts,...is,...rs,...as,...ls,...cs,...bs,...Ns,...Ho,...Ts];var Xo="\\u{FE0F}",Ko="\\u{20E3}",Qo="\\u{200D}",ea="\\p{RI}\\p{RI}",na="(?:[\\u{E0020}-\\u{E007E}]+\\u{E007F})",vs=`(?:\\p{EMod}|${Xo}${Ko}?|${na})`,ta="(?:(?=\\P{XIDC})(?=[^\\x23\\x2a\\x30-\\x39])\\p{Emoji})",Is=`(?:${ta}${vs}*|\\p{Emoji}${vs}+|${ea})`,ks=`(?:${Is})(${Qo}${Is})*`,Xf=new RegExp(`(?:${ks})+`,"u"),Ss=new RegExp(`^(?:${ks})+$`,"u");var Rn=[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1],[1,5,10,10,5,1],[1,6,15,20,15,6,1],[1,7,21,35,35,21,7,1],[1,8,28,56,70,56,28,8,1]];function Bn(e,n){for(;e>=Rn.length;){let t=Rn.length,i=[1],r=Rn[t-1];for(let s=1;s<t;s++)i[s]=r[s-1]+r[s];i[t]=1,Rn.push(i)}return Rn[e][n]}function On(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return Ia(t)}function Ia(e){return e.hi<0?{kind:"empty"}:e.lo>=0?d({lo:Math.sqrt(e.lo),hi:Math.sqrt(e.hi)}):{kind:"partial",value:{lo:0,hi:Math.sqrt(e.hi)},domainClipped:"lo"}}function Cn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>=0?d({lo:t.lo*t.lo,hi:t.hi*t.hi}):t.hi<=0?d({lo:t.hi*t.hi,hi:t.lo*t.lo}):d({lo:0,hi:Math.max(t.lo*t.lo,t.hi*t.hi)})}function Ps(e,n){return n===0?{lo:1,hi:1}:n===1?e:n%2===0?e.lo>=0?{lo:Math.pow(e.lo,n),hi:Math.pow(e.hi,n)}:e.hi<=0?{lo:Math.pow(e.hi,n),hi:Math.pow(e.lo,n)}:{lo:0,hi:Math.max(Math.pow(e.lo,n),Math.pow(e.hi,n))}:{lo:Math.pow(e.lo,n),hi:Math.pow(e.hi,n)}}function Ye(e,n){let t=y(e);if(!Array.isArray(t))return t;let[i]=t;if(Number.isInteger(n)){if(n>=0)return d(Ps(i,n));{if($(i))return{kind:"singular"};let r=Ps(i,-n);return d({lo:1/r.hi,hi:1/r.lo})}}else return Te(i)?{kind:"empty"}:i.lo<0?{kind:"partial",value:n>0?{lo:0,hi:Math.pow(i.hi,n)}:{lo:Math.pow(i.hi,n),hi:1/0},domainClipped:"lo"}:n>0?d({lo:Math.pow(i.lo,n),hi:Math.pow(i.hi,n)}):i.lo===0?{kind:"partial",value:{lo:Math.pow(i.hi,n),hi:1/0},domainClipped:"hi"}:d({lo:Math.pow(i.hi,n),hi:Math.pow(i.lo,n)})}function Fn(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;if(r.lo===r.hi&&Number.isInteger(r.lo))return Ye(i,r.lo);if(i.hi<=0)return i.lo===-1&&i.hi===-1&&Math.floor(r.hi)>Math.floor(r.lo)?d({lo:-1,hi:1}):{kind:"empty"};if(i.lo<=0){let o={lo:Math.max(i.lo,Number.EPSILON),hi:i.hi},a=[Math.pow(o.lo,r.lo),Math.pow(o.lo,r.hi),Math.pow(o.hi,r.lo),Math.pow(o.hi,r.hi)];return{kind:"partial",value:{lo:Math.min(...a),hi:Math.max(...a)},domainClipped:"lo"}}let s=[Math.pow(i.lo,r.lo),Math.pow(i.lo,r.hi),Math.pow(i.hi,r.lo),Math.pow(i.hi,r.hi)];return d({lo:Math.min(...s),hi:Math.max(...s)})}function Vn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.exp(t.lo),hi:Math.exp(t.hi)})}function Jn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.hi<=0?{kind:"empty"}:t.lo>0?d({lo:Math.log(t.lo),hi:Math.log(t.hi)}):{kind:"partial",value:{lo:-1/0,hi:Math.log(t.hi)},domainClipped:"lo"}}function Ln(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.hi<=0?{kind:"empty"}:t.lo>0?d({lo:Math.log10(t.lo),hi:Math.log10(t.hi)}):{kind:"partial",value:{lo:-1/0,hi:Math.log10(t.hi)},domainClipped:"lo"}}function $n(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.hi<=0?{kind:"empty"}:t.lo>0?d({lo:Math.log2(t.lo),hi:Math.log2(t.hi)}):{kind:"partial",value:{lo:-1/0,hi:Math.log2(t.hi)},domainClipped:"lo"}}function qn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>=0?d(t):t.hi<=0?d({lo:-t.hi,hi:-t.lo}):d({lo:0,hi:Math.max(-t.lo,t.hi)})}function zn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.floor(t.lo),r=Math.floor(t.hi);return i===r?d({lo:i,hi:r}):{kind:"singular",at:i+1,continuity:"right"}}function Gn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.ceil(t.lo),r=Math.ceil(t.hi);return i===r?d({lo:i,hi:r}):{kind:"singular",at:i,continuity:"left"}}function Xe(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.round(t.lo),r=Math.round(t.hi);return i===r?d({lo:i,hi:r}):{kind:"singular",at:i+.5,continuity:"right"}}function Zn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.floor(t.lo),r=Math.floor(t.hi);return i===r?d({lo:t.lo-i,hi:t.hi-i}):{kind:"singular",at:i+1,continuity:"right"}}function jn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.trunc(t.lo),r=Math.trunc(t.hi);if(i===r)return d({lo:i,hi:r});if(t.lo>=0)return{kind:"singular",at:i+1,continuity:"right"};let s=Math.ceil(t.lo);return s!==0?{kind:"singular",at:s,continuity:"left"}:{kind:"singular",at:1,continuity:"right"}}function Un(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:Math.min(i.lo,r.lo),hi:Math.min(i.hi,r.hi)})}function Wn(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:Math.max(i.lo,r.lo),hi:Math.max(i.hi,r.hi)})}function Hn(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;if($(r))return{kind:"singular"};let s=Math.abs(r.lo===r.hi?r.lo:Math.max(Math.abs(r.lo),Math.abs(r.hi))),o=Math.floor(i.lo/s),a=Math.floor(i.hi/s);if(o!==a)return{kind:"singular",at:(o+1)*s,continuity:"right"};let u=i.lo-s*o,c=i.hi-s*o;return d({lo:Math.min(u,c),hi:Math.max(u,c)})}function Yn(e,n){return ve(e,Ie(n,Xe(q(e,n))))}function Xn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>0?d({lo:1,hi:1}):t.hi<0?d({lo:0,hi:0}):t.lo===0&&t.hi===0?d({lo:.5,hi:.5}):{kind:"singular",at:0}}function Kn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>0?d({lo:1,hi:1}):t.hi<0?d({lo:-1,hi:-1}):t.lo===0&&t.hi===0?d({lo:0,hi:0}):{kind:"singular",at:0}}var _s=1.4616321449683622,ka=.8856031944108887;function Qn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return Sa(t)}function Sa(e){if(e.hi>=0&&e.lo<=0)return{kind:"singular",at:0};if(e.lo<0){let n=Math.ceil(e.lo),t=Math.floor(e.hi);if(n<=t)return{kind:"singular",at:n};let i=te(e.lo),r=te(e.hi);return d({lo:Math.min(i,r),hi:Math.max(i,r)})}return e.lo>=_s?d({lo:te(e.lo),hi:te(e.hi)}):e.hi<=_s?d({lo:te(e.hi),hi:te(e.lo)}):d({lo:ka,hi:Math.max(te(e.lo),te(e.hi))})}function et(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return Ma(t)}function Ma(e){if(e.hi>=0&&e.lo<=0)return{kind:"singular",at:0};if(e.lo<0){let n=Math.ceil(e.lo),t=Math.floor(e.hi);if(n<=t)return{kind:"singular",at:n};let i=Oe(e.lo),r=Oe(e.hi);return d({lo:Math.min(i,r),hi:Math.max(i,r)})}return d({lo:Oe(e.lo),hi:Oe(e.hi)})}function nt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo<0)return{kind:"empty"};let i=vi(Math.round(t.lo)),r=vi(Math.round(t.hi));return!Number.isFinite(i)||!Number.isFinite(r)?d({lo:Math.min(i,r),hi:Math.max(i,r)}):d({lo:i,hi:r})}function tt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo<0)return{kind:"empty"};let i=Ii(Math.round(t.lo)),r=Ii(Math.round(t.hi));return!Number.isFinite(i)||!Number.isFinite(r)?d({lo:Math.min(i,r),hi:Math.max(i,r)}):d({lo:i,hi:r})}function si(e,n){let t=y(e);if(!Array.isArray(t))return t;let i=y(n);if(!Array.isArray(i))return i;let[r]=t,[s]=i,o=[Bn(Math.round(r.lo),Math.round(s.lo)),Bn(Math.round(r.lo),Math.round(s.hi)),Bn(Math.round(r.hi),Math.round(s.lo)),Bn(Math.round(r.hi),Math.round(s.hi))];return d({lo:Math.min(...o),hi:Math.max(...o)})}function oi(e,n){let t=y(e);if(!Array.isArray(t))return t;let i=y(n);if(!Array.isArray(i))return i;let[r]=t,[s]=i,o=[ye(Math.round(r.lo),Math.round(s.lo)),ye(Math.round(r.lo),Math.round(s.hi)),ye(Math.round(r.hi),Math.round(s.lo)),ye(Math.round(r.hi),Math.round(s.hi))];return d({lo:Math.min(...o),hi:Math.max(...o)})}function ai(e,n){let t=y(e);if(!Array.isArray(t))return t;let i=y(n);if(!Array.isArray(i))return i;let[r]=t,[s]=i,o=[Ce(Math.round(r.lo),Math.round(s.lo)),Ce(Math.round(r.lo),Math.round(s.hi)),Ce(Math.round(r.hi),Math.round(s.lo)),Ce(Math.round(r.hi),Math.round(s.hi))];return d({lo:Math.min(...o),hi:Math.max(...o)})}function ui(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:ki(t.lo),hi:ki(t.hi)})}function li(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Ft(t.lo),hi:Ft(t.hi)})}function ci(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Ti(t.hi),hi:Ti(t.lo)})}function fi(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.pow(2,t.lo),hi:Math.pow(2,t.hi)})}function pi(e,n){let t=y(e);if(!Array.isArray(t))return t;let i=y(n);if(!Array.isArray(i))return i;let[r]=t,[s]=i,o=[Math.hypot(r.lo,s.lo),Math.hypot(r.lo,s.hi),Math.hypot(r.hi,s.lo),Math.hypot(r.hi,s.hi)],a=Math.min(...o);return r.lo<=0&&r.hi>=0&&(a=Math.min(a,Math.abs(s.lo),Math.abs(s.hi))),s.lo<=0&&s.hi>=0&&(a=Math.min(a,Math.abs(r.lo),Math.abs(r.hi))),r.lo<=0&&r.hi>=0&&s.lo<=0&&s.hi>=0&&(a=0),d({lo:a,hi:Math.max(...o)})}var ae=2*Math.PI,J=Math.PI,Ee=Math.PI/2,Rs=3*Math.PI/2;function it(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=ae)return d({lo:-1,hi:1});let i=Math.sin(t.lo),r=Math.sin(t.hi),s=Math.min(i,r),o=Math.max(i,r);return L(t,Ee,ae)&&(o=1),L(t,Rs,ae)&&(s=-1),d({lo:s,hi:o})}function rt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=ae)return d({lo:-1,hi:1});let i=Math.cos(t.lo),r=Math.cos(t.hi),s=Math.min(i,r),o=Math.max(i,r);return L(t,0,ae)&&(o=1),L(t,J,ae)&&(s=-1),d({lo:s,hi:o})}function st(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=J)return{kind:"singular"};if(L(t,Ee,J)){let s=Math.ceil((t.lo-Ee)/J);return{kind:"singular",at:Ee+s*J}}let i=Math.tan(t.lo),r=Math.tan(t.hi);return i>1e10&&r<-1e10||i<-1e10&&r>1e10?{kind:"singular"}:d({lo:i,hi:r})}function ot(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=J)return{kind:"singular"};if(L(t,0,J))return{kind:"singular",at:Math.ceil(t.lo/J)*J};let i=1/Math.tan(t.lo),r=1/Math.tan(t.hi);return d({lo:Math.min(i,r),hi:Math.max(i,r)})}function at(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=J)return{kind:"singular"};if(L(t,Ee,J)){let a=Math.ceil((t.lo-Ee)/J);return{kind:"singular",at:Ee+a*J}}let i=1/Math.cos(t.lo),r=1/Math.cos(t.hi),s=Math.min(i,r),o=Math.max(i,r);return L(t,0,ae)&&(s=Math.min(s,1),o=Math.max(o,1)),L(t,J,ae)&&(s=Math.min(s,-1),o=Math.max(o,-1)),d({lo:s,hi:o})}function ut(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=J)return{kind:"singular"};if(L(t,0,J))return{kind:"singular",at:Math.ceil(t.lo/J)*J};let i=1/Math.sin(t.lo),r=1/Math.sin(t.hi),s=Math.min(i,r),o=Math.max(i,r);return L(t,Ee,ae)&&(s=Math.min(s,1),o=Math.max(o,1)),L(t,Rs,ae)&&(s=Math.min(s,-1),o=Math.max(o,-1)),d({lo:s,hi:o})}function Ke(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo>1||t.hi<-1)return{kind:"empty"};if(t.lo<-1||t.hi>1){let i=Math.max(t.lo,-1),r=Math.min(t.hi,1);return{kind:"partial",value:{lo:Math.asin(i),hi:Math.asin(r)},domainClipped:t.lo<-1&&t.hi>1?"both":t.lo<-1?"lo":"hi"}}return d({lo:Math.asin(t.lo),hi:Math.asin(t.hi)})}function Qe(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo>1||t.hi<-1)return{kind:"empty"};if(t.lo<-1||t.hi>1){let i=Math.max(t.lo,-1),r=Math.min(t.hi,1);return{kind:"partial",value:{lo:Math.acos(r),hi:Math.acos(i)},domainClipped:t.lo<-1&&t.hi>1?"both":t.lo<-1?"lo":"hi"}}return d({lo:Math.acos(t.hi),hi:Math.acos(t.lo)})}function en(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.atan(t.lo),hi:Math.atan(t.hi)})}function lt(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;if(i.lo===i.hi&&r.lo===r.hi){let o=Math.atan2(i.lo,r.lo);return d({lo:o,hi:o})}let s=[];return s.push(Math.atan2(i.lo,r.lo)),s.push(Math.atan2(i.lo,r.hi)),s.push(Math.atan2(i.hi,r.lo)),s.push(Math.atan2(i.hi,r.hi)),r.lo<0&&i.lo<0&&i.hi>0?d({lo:-J,hi:J}):d({lo:Math.min(...s),hi:Math.max(...s)})}function _e(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.sinh(t.lo),hi:Math.sinh(t.hi)})}function Re(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>=0?d({lo:Math.cosh(t.lo),hi:Math.cosh(t.hi)}):t.hi<=0?d({lo:Math.cosh(t.hi),hi:Math.cosh(t.lo)}):d({lo:1,hi:Math.max(Math.cosh(t.lo),Math.cosh(t.hi))})}function ct(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.tanh(t.lo),hi:Math.tanh(t.hi)})}function nn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.asinh(t.lo),hi:Math.asinh(t.hi)})}function tn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.hi<1?{kind:"empty"}:t.lo<1?{kind:"partial",value:{lo:0,hi:Math.acosh(t.hi)},domainClipped:"lo"}:d({lo:Math.acosh(t.lo),hi:Math.acosh(t.hi)})}function rn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo>=1||t.hi<=-1)return{kind:"empty"};if(t.lo<=-1||t.hi>=1){let i=Math.max(t.lo,-1+Number.EPSILON),r=Math.min(t.hi,1-Number.EPSILON);return{kind:"partial",value:{lo:Math.atanh(i),hi:Math.atanh(r)},domainClipped:t.lo<=-1&&t.hi>=1?"both":t.lo<=-1?"lo":"hi"}}return d({lo:Math.atanh(t.lo),hi:Math.atanh(t.hi)})}function ft(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return $(t)?{kind:"singular",at:0}:en(q(d({lo:1,hi:1}),d(t)))}function pt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return $(t)?{kind:"singular",at:0}:Ke(q(d({lo:1,hi:1}),d(t)))}function mt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return $(t)?{kind:"singular",at:0}:Qe(q(d({lo:1,hi:1}),d(t)))}function dt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return $(t)?{kind:"singular",at:0}:q(Re(t),_e(t))}function ht(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return $(t)?{kind:"singular",at:0}:q(d({lo:1,hi:1}),_e(t))}function gt(e){return q(d({lo:1,hi:1}),Re(e))}function yt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return $(t)?{kind:"singular",at:0}:rn(q(d({lo:1,hi:1}),d(t)))}function xt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return $(t)?{kind:"singular",at:0}:nn(q(d({lo:1,hi:1}),d(t)))}function bt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return $(t)?{kind:"singular",at:0}:tn(q(d({lo:1,hi:1}),d(t)))}var Ki=[4.49341,7.72525,10.90412,14.06619,17.22076,20.3713,23.51945,26.66605,29.8116,32.95639],wa=-.21724;function Et(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=u=>u===0?1:Math.sin(u)/u,r=i(t.lo),s=r,o=u=>{u<r&&(r=u),u>s&&(s=u)};o(i(t.hi)),t.lo<=0&&t.hi>=0&&o(1);let a=Ki[Ki.length-1];for(let u of Ki)u>=t.lo&&u<=t.hi&&o(i(u)),-u>=t.lo&&-u<=t.hi&&o(i(-u));return(Math.abs(t.lo)>a||Math.abs(t.hi)>a)&&o(wa),d({lo:r,hi:s})}var Bs=[],Os=[];for(let e=1;e<=20;e++)Bs.push(Math.sqrt(2*e)),Os.push(Math.sqrt(2*e-1));function Nt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Nn(t.lo),r=i,s=o=>{o<i&&(i=o),o>r&&(r=o)};s(Nn(t.hi)),t.lo<=0&&t.hi>=0&&s(0);for(let o of Bs)o>=t.lo&&o<=t.hi&&s(Nn(o)),-o>=t.lo&&-o<=t.hi&&s(Nn(-o));return d({lo:i,hi:r})}function Tt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Tn(t.lo),r=i,s=o=>{o<i&&(i=o),o>r&&(r=o)};s(Tn(t.hi)),t.lo<=0&&t.hi>=0&&s(0);for(let o of Os)o>=t.lo&&o<=t.hi&&s(Tn(o)),-o>=t.lo&&-o<=t.hi&&s(Tn(-o));return d({lo:i,hi:r})}function Ne(e){return"kind"in e?e:{kind:"interval",value:e}}function vt(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.hi<r.lo?"true":i.lo>=r.hi?"false":"maybe"}function It(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.hi<=r.lo?"true":i.lo>r.hi?"false":"maybe"}function kt(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.lo>r.hi?"true":i.hi<=r.lo?"false":"maybe"}function St(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.lo>=r.hi?"true":i.hi<r.lo?"false":"maybe"}function sn(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.lo===i.hi&&r.lo===r.hi&&i.lo===r.lo?"true":i.hi<r.lo||r.hi<i.lo?"false":"maybe"}function Mt(e,n){let t=sn(e,n);return t==="true"?"false":t==="false"?"true":"maybe"}function wt(e,n){return e==="false"||n==="false"?"false":e==="true"&&n==="true"?"true":"maybe"}function Dt(e,n){return e==="true"||n==="true"?"true":e==="false"&&n==="false"?"false":"maybe"}function At(e){return e==="true"?"false":e==="false"?"true":"maybe"}function Pt(e,n,t,i){if(e==="true"||e==="false"||e==="maybe"){let h=e,E=n,v=t;switch(h){case"true":return Ne(E());case"false":return Ne(v());case"maybe":return ge(Ne(E()),Ne(v()))}}let r=e,s=n,o=t,a=i,u=y(r);if(!Array.isArray(u))return u;let[c]=u;switch(s(c)){case"true":return Ne(o(c));case"false":return Ne(a(c));case"maybe":let h=Ne(o(c)),E=Ne(a(c));return ge(h,E)}}function _t(e,n,t){let i=y(e,n,t);if(!Array.isArray(i))return i;let[r,s,o]=i,a=Math.max(r.lo,s.lo),u=Math.min(r.hi,o.hi);return a>u?{kind:"empty"}:{kind:"interval",value:{lo:a,hi:u}}}var Cs={ok:d,point:an,containsExtremum:L,unionResults:ge,mergeDomainClip:Be,isPoint:un,containsZero:$,isPositive:ln,isNegative:Te,isNonNegative:cn,isNonPositive:fn,width:pn,midpoint:mn,getValue:dn,unwrap:hn,unwrapOrPropagate:y,add:gn,sub:ve,mul:Ie,div:q,negate:yn,sqrt:On,square:Cn,pow:Ye,powInterval:Fn,exp:Vn,ln:Jn,log10:Ln,log2:$n,abs:qn,floor:zn,ceil:Gn,round:Xe,fract:Zn,trunc:jn,min:Un,max:Wn,mod:Hn,remainder:Yn,heaviside:Xn,sign:Kn,gamma:Qn,gammaln:et,factorial:nt,factorial2:tt,binomial:si,gcd:oi,lcm:ai,chop:ui,erf:li,erfc:ci,exp2:fi,hypot:pi,sin:it,cos:rt,tan:st,cot:ot,sec:at,csc:ut,asin:Ke,acos:Qe,atan:en,atan2:lt,sinh:_e,cosh:Re,tanh:ct,asinh:nn,acosh:tn,atanh:rn,acot:ft,acsc:pt,asec:mt,coth:dt,csch:ht,sech:gt,acoth:yt,acsch:xt,asech:bt,sinc:Et,fresnelS:Nt,fresnelC:Tt,less:vt,lessEqual:It,greater:kt,greaterEqual:St,equal:sn,notEqual:Mt,and:wt,or:Dt,not:At,piecewise:Pt,clamp:_t};var Da="0.58.0";return qs(Aa);})();
|
|
3
|
+
var Interval=(()=>{var bi=Object.defineProperty;var ro=Object.getOwnPropertyDescriptor;var so=Object.getOwnPropertyNames;var oo=Object.prototype.hasOwnProperty;var ao=(e,n)=>{for(var t in n)bi(e,t,{get:n[t],enumerable:!0})},uo=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of so(n))!oo.call(e,r)&&r!==t&&bi(e,r,{get:()=>n[r],enumerable:!(i=ro(n,r))||i.enumerable});return e};var lo=e=>uo(bi({},"__esModule",{value:!0}),e);var Wa={};ao(Wa,{IntervalArithmetic:()=>io,_mul:()=>bn,abs:()=>$n,acos:()=>nn,acosh:()=>sn,acot:()=>mt,acoth:()=>bt,acsc:()=>dt,acsch:()=>Nt,add:()=>yn,and:()=>Dt,asec:()=>ht,asech:()=>Et,asin:()=>en,asinh:()=>rn,atan:()=>tn,atan2:()=>ft,atanh:()=>on,binomial:()=>tt,ceil:()=>zn,chop:()=>fi,clamp:()=>Bt,containsExtremum:()=>J,containsZero:()=>q,cos:()=>ot,cosh:()=>Ce,cot:()=>ut,coth:()=>gt,csc:()=>ct,csch:()=>yt,div:()=>z,equal:()=>an,erf:()=>pi,erfc:()=>mi,exp:()=>Fn,exp2:()=>di,factorial:()=>et,factorial2:()=>nt,floor:()=>qn,fract:()=>Gn,fresnelC:()=>It,fresnelS:()=>vt,gamma:()=>Kn,gammaln:()=>Qn,gcd:()=>it,getValue:()=>hn,greater:()=>Mt,greaterEqual:()=>wt,heaviside:()=>Wn,hypot:()=>hi,isNegative:()=>ve,isNonNegative:()=>fn,isNonPositive:()=>pn,isPoint:()=>ln,isPositive:()=>cn,lcm:()=>rt,less:()=>kt,lessEqual:()=>St,ln:()=>Vn,log10:()=>Ln,log2:()=>Jn,max:()=>Un,mergeDomainClip:()=>Fe,midpoint:()=>dn,min:()=>jn,mod:()=>Hn,mul:()=>ke,negate:()=>xn,not:()=>_t,notEqual:()=>At,ok:()=>d,or:()=>Pt,piecewise:()=>Rt,point:()=>un,pow:()=>Ke,powInterval:()=>Cn,remainder:()=>Yn,round:()=>Qe,sec:()=>lt,sech:()=>xt,sign:()=>Xn,sin:()=>st,sinc:()=>Tt,sinh:()=>Oe,sqrt:()=>Bn,square:()=>On,sub:()=>Ie,tan:()=>at,tanh:()=>pt,trunc:()=>Zn,unionResults:()=>xe,unwrap:()=>gn,unwrapOrPropagate:()=>y,version:()=>Ya,width:()=>mn});function d(e){return{kind:"interval",value:e}}function un(e){return{lo:e,hi:e}}function J(e,n,t){let i=Math.ceil((e.lo-n)/t),r=n+i*t,s=1e-15;return r>=e.lo-s&&r<=e.hi+s}function xe(e,n){if(e.kind==="empty")return n;if(n.kind==="empty")return e;if(e.kind==="singular"||n.kind==="singular")return{kind:"singular"};if(e.kind==="entire"||n.kind==="entire")return{kind:"entire"};let t=e.value,i=n.value,r=e.kind==="partial"?e.domainClipped:null,s=n.kind==="partial"?n.domainClipped:null,o={lo:Math.min(t.lo,i.lo),hi:Math.max(t.hi,i.hi)};if(r||s){let a=Fe(r,s);return{kind:"partial",value:o,domainClipped:a}}return{kind:"interval",value:o}}function Fe(e,n){return e==="both"||n==="both"?"both":e===null?n:n===null||e===n?e:"both"}function ln(e){return e.lo===e.hi}function q(e){return e.lo<=0&&e.hi>=0}function cn(e){return e.lo>0}function ve(e){return e.hi<0}function fn(e){return e.lo>=0}function pn(e){return e.hi<=0}function mn(e){return e.hi-e.lo}function dn(e){return(e.lo+e.hi)/2}function hn(e){if(e.kind==="interval"||e.kind==="partial")return e.value}function gn(e){return"kind"in e?e.kind==="interval"||e.kind==="partial"?e.value:void 0:e}function y(...e){let n=[];for(let t of e)if("kind"in t){if(t.kind==="empty")return{kind:"empty"};if(t.kind==="entire")return{kind:"entire"};if(t.kind==="singular")return t;n.push(t.value)}else n.push(t);return n}function yn(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:i.lo+r.lo,hi:i.hi+r.hi})}function Ie(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:i.lo-r.hi,hi:i.hi-r.lo})}function xn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:-t.hi,hi:-t.lo})}function bn(e,n){let t=[Ot(e.lo,n.lo),Ot(e.lo,n.hi),Ot(e.hi,n.lo),Ot(e.hi,n.hi)];return{lo:Math.min(...t),hi:Math.max(...t)}}function Ot(e,n){return e===0||n===0?0:e*n}function ke(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d(bn(i,r))}function z(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return co(i,r)}function co(e,n){return n.lo>0||n.hi<0?d(bn(e,{lo:1/n.hi,hi:1/n.lo})):n.lo<0&&n.hi>0?{kind:"singular"}:n.lo===0&&n.hi>0?e.lo>=0?{kind:"partial",value:{lo:e.lo/n.hi,hi:1/0},domainClipped:"hi"}:e.hi<=0?{kind:"partial",value:{lo:-1/0,hi:e.hi/n.hi},domainClipped:"lo"}:{kind:"entire"}:n.hi===0&&n.lo<0?e.lo>=0?{kind:"partial",value:{lo:-1/0,hi:e.lo/n.lo},domainClipped:"lo"}:e.hi<=0?{kind:"partial",value:{lo:e.hi/n.lo,hi:1/0},domainClipped:"hi"}:{kind:"entire"}:{kind:"empty"}}var lr=new Map;function M(e){if(e<=100){let n=lr.get(e);return n===void 0&&(n=10n**BigInt(e),lr.set(e,n)),n}return 10n**BigInt(e)}function fr(e,n,t){return e*n/t}function pr(e,n,t){return e*t/n}function En(e,n){if(e===0n)return 0n;if(e<0n)throw new RangeError("fpsqrt: negative input");let t,i=Number(e),r=Number(n);if(Number.isFinite(i)&&Number.isFinite(r)&&i>0&&r>0){let f=Math.sqrt(i/r)*r;Number.isFinite(f)&&f>0?(t=BigInt(Math.floor(f)),t===0n&&(t=1n)):t=cr(e,n)}else t=cr(e,n);let s=e*n,o;do o=t,t=(t+s/t)/2n;while(ee(t-o)>1n);let a=(t+s/t)/2n,u=ee(t*t-s);return ee(a*a-s)<u?a:t}function cr(e,n){let i=R(e),r=Math.max(0,i-15),s=Number(r>0?e/M(r):e),o=R(n),a=Math.max(0,o-15),u=Number(a>0?n/M(a):n),l=r+a,f=Math.floor(l/2),h=Math.sqrt(s*u);l%2!==0&&(h*=3.1622776601683795);let N=BigInt(Math.round(h))*M(f);return N>0n?N:1n}function ee(e){return e<0n?-e:e}function R(e){if(e===0n)return 1;if(e<0n&&(e=-e),e<0x20000000000000n)return Math.floor(Math.log10(Number(e)))+1;let n=0,t=e,i=1;for(;t>>BigInt(i)>0n;)i*=2;for(let s=i>>1;s>=1;s>>=1)t>>BigInt(s)>0n&&(n+=s,t>>=BigInt(s));n+=1;let r=Math.ceil(n*.30102999566398);return e<M(r-1)?r-1:e>=M(r)?r+1:r}function Ti(e,n){if(e===0n)return n;let t=0,i=e,r=n/2n;for(;ee(i)>r;)i=i/2n,t++;let s=n,o=i;s+=o;for(let a=2;o=o*i/(BigInt(a)*n),ee(o)!==0n;a++)s+=o;for(let a=0;a<t;a++)s=s*s/n;return s}function vi(e,n){if(e<=0n)throw new RangeError("fpln: input must be positive");if(e===n)return 0n;let t=Number(e),i=Number(n),r,s=e,o=0;if(Number.isFinite(t)&&Number.isFinite(i)&&t>0&&i>0){let u=t/i;if(Number.isFinite(u)&&u>0){let l=Math.log(u);Number.isFinite(l)?r=BigInt(Math.round(l*i)):r=Ni(e,n)}else r=Ni(e,n)}else{s=e;let u=2n*n,l=n/2n;for(;s>u||s<l;)s=En(s,n),o++;r=Ni(s,n)}let a=0n;for(let u=0;u<100;u++){let l=Ti(r,n);if(l===0n){r=r/2n;continue}let f=r+s*n/l-n,h=ee(f-r);if(h<=1n||h<100000n&&a>0n&&a<100000n&&h*4n>=a)break;a=h,r=f}for(let u=0;u<o;u++)r=2n*r;return r}function Ni(e,n){let t=R(e),i=R(n);return BigInt(t-i)*2302585n*n/1000000n}var be="314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635",Ct=null;function Ei(e){if(Ct!==null&&Ct.scale===e)return Ct.value;let t=R(e)-1+10,i=be.slice(0,t+1),r=BigInt(i),s=i.length-1,o=r*e/M(s);return Ct={scale:e,value:o},o}function Ft(e,n){if(e===0n)return[0n,n];let t=Ei(n),i=2n*t,r=t/2n,s,o=ee(e);if(o>n*(1n<<30n)){let O=R(o)-R(n)+20,gi=n*M(O),yi=e*M(O),ur=2n*Ei(gi),xi=yi%ur;xi<0n&&(xi+=ur),s=xi/M(O)}else s=e%i;s<0n&&(s+=i);let a=1n,u=1n;s>3n*r?(s=i-s,a=-1n):s>t?(s=s-t,a=-1n,u=-1n):s>r&&(s=t-s,u=-1n);let l=R(n)-1,f=Math.min(18,Math.max(2,Math.ceil(.87*Math.sqrt(l)))),h=0,N=n>>BigInt(f);for(;s>N;)s=s/2n,h++;let E=s,S=n,_=s,W=n,le=s*s,ye=n*n;for(let O=2;;O+=2){if(W=W*le/(BigInt(O)*BigInt(O-1)*ye),W===0n){_=_*le/(BigInt(O+1)*BigInt(O)*ye),_!==0n&&(O%4===2?(S-=W,E-=_):(S+=W,E+=_));break}if(_=_*le/(BigInt(O+1)*BigInt(O)*ye),O%4===2?(S-=W,E-=_):(S+=W,E+=_),_===0n)break}for(let O=0;O<h;O++){let gi=2n*E*S/n,yi=2n*S*S/n-n;E=gi,S=yi}return[a*E,u*S]}function Nn(e,n){if(e===0n)return 0n;if(e<0n)return-Nn(-e,n);let i=Ei(n)/2n;if(e>n){let h=n*n/e;return i-Nn(h,n)}let r=4n*n/10n,s=0,o=e;for(;o>r;){let h=o*o,N=(n*n+h)/n,E=En(N,n);o=o*n/(n+E),s++}let a=o,u=o,l=o*o,f=n*n;for(let h=3;u=u*l/f,u!==0n;h+=2)h%4===3?a-=u/BigInt(h):a+=u/BigInt(h);for(let h=0;h<s;h++)a=2n*a;return a}var Ii=NaN,p=class e{static precision=50;static ZERO=Object.freeze(Object.assign(Object.create(e.prototype),{significand:0n,exponent:0}));static ONE=Object.freeze(Object.assign(Object.create(e.prototype),{significand:1n,exponent:0}));static TWO=Object.freeze(Object.assign(Object.create(e.prototype),{significand:2n,exponent:0}));static NEGATIVE_ONE=Object.freeze(Object.assign(Object.create(e.prototype),{significand:-1n,exponent:0}));static HALF=Object.freeze(Object.assign(Object.create(e.prototype),{significand:5n,exponent:-1}));static NAN=Object.freeze(Object.assign(Object.create(e.prototype),{significand:0n,exponent:NaN}));static POSITIVE_INFINITY=Object.freeze(Object.assign(Object.create(e.prototype),{significand:1n,exponent:1/0}));static NEGATIVE_INFINITY=Object.freeze(Object.assign(Object.create(e.prototype),{significand:-1n,exponent:1/0}));static _piFullPrecision=null;static _piCache=null;static _piCachePrecision=0;static get PI(){e._piFullPrecision===null&&(e._piFullPrecision=new e(be[0]+"."+be.slice(1)));let n=e.precision;return(e._piCache===null||e._piCachePrecision!==n)&&(e._piCache=e._piFullPrecision.toPrecision(n+4),e._piCachePrecision=n),e._piCache}significand;exponent;constructor(n){if(n instanceof e){this.significand=n.significand,this.exponent=n.exponent;return}if(typeof n=="bigint"){[this.significand,this.exponent]=Vt(n,0);return}if(typeof n=="number"){[this.significand,this.exponent]=fo(n);return}[this.significand,this.exponent]=hr(n)}isNaN(){return Number.isNaN(this.exponent)}isZero(){return this.exponent===0&&this.significand===0n}isFinite(){return Number.isFinite(this.exponent)}isInteger(){return this.isFinite()&&this.exponent>=0}isPositive(){return this.significand>0n}isNegative(){return this.significand<0n}cmp(n){if(typeof n=="number"){if(Number.isNaN(n))return Ii;let E=this.exponent;if(Number.isNaN(E))return Ii;if(n===0)return this.significand===0n?0:this.significand>0n?1:-1;if(!Number.isFinite(E))return n===1/0?this.significand>0n?0:-1:n===-1/0?this.significand<0n?0:1:this.significand>0n?1:-1;if(this.significand===0n)return n>0?-1:1;if(n===1/0)return-1;if(n===-1/0)return 1;if(this.significand>0n!=n>0)return this.significand>0n?1:-1;if(Number.isInteger(n)&&E>=0&&E<=15){let S=this.significand*M(E),_=BigInt(n);return S<_?-1:S>_?1:0}n=new e(n)}let t=this.exponent,i=n.exponent,r=this.significand,s=n.significand;if(t!==t||i!==i)return Ii;if(!Number.isFinite(t)||!Number.isFinite(i))return!Number.isFinite(t)&&!Number.isFinite(i)?r===s?0:r>s?1:-1:Number.isFinite(t)?s>0n?-1:1:r>0n?1:-1;if(r===0n)return s===0n?0:s>0n?-1:1;if(s===0n)return r>0n?1:-1;if(r>0n&&s<0n)return 1;if(r<0n&&s>0n)return-1;if(t===i)return r<s?-1:r>s?1:0;let o=R(r),a=R(s),u=o+t,l=a+i;if(u!==l){let E=r>0n?1:-1;return u>l?E:-E}let f=r,h=s,N=Math.abs(t-i);if(N>1e3){let E=o,S=a,_=Math.max(E,S)+1;E<_&&(f=f*M(_-E)),S<_&&(h=h*M(_-S))}else t<i?h=h*M(N):f=f*M(N);return f<h?-1:f>h?1:0}eq(n){return typeof n=="number"?n===0?this.significand===0n&&this.exponent===0:n===1?this.significand===1n&&this.exponent===0:n===-1?this.significand===-1n&&this.exponent===0:Number.isInteger(n)&&Number.isFinite(this.exponent)&&this.exponent>=0&&this.exponent<=15?this.significand*M(this.exponent)===BigInt(n):this.cmp(n)===0:this.significand===n.significand&&this.exponent===n.exponent}lt(n){return this.cmp(n)===-1}lte(n){let t=this.cmp(n);return t===-1||t===0}gt(n){return this.cmp(n)===1}gte(n){let t=this.cmp(n);return t===1||t===0}add(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i)){if(t===i)return w(this.significand+n.significand,t);let o=t-i;return o>0?w(this.significand*M(o)+n.significand,i):w(this.significand+n.significand*M(-o),t)}if(t!==t||i!==i)return e.NAN;let r=!Number.isFinite(t),s=!Number.isFinite(i);return r&&s?this.significand!==n.significand?e.NAN:this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:r?this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:n.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY}sub(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i)){if(t===i)return w(this.significand-n.significand,t);let o=t-i;return o>0?w(this.significand*M(o)-n.significand,i):w(this.significand-n.significand*M(-o),t)}if(t!==t||i!==i)return e.NAN;let r=!Number.isFinite(t),s=!Number.isFinite(i);return r&&s?this.significand===n.significand?e.NAN:this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:r?this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:n.significand>0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY}mul(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i))return w(this.significand*n.significand,t+i);if(t!==t||i!==i||this.significand===0n||n.significand===0n)return e.NAN;let r=this.significand>0n?1n:-1n,s=n.significand>0n?1n:-1n;return r*s>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY}neg(){let n=this.significand;return n===0n?this:Number.isFinite(this.exponent)?w(-n,this.exponent):n>0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY}abs(){return this.significand>=0n?this:Number.isFinite(this.exponent)?w(-this.significand,this.exponent):e.POSITIVE_INFINITY}floor(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=this.trunc();return this.significand<0n?t.sub(w(1n,0)):t}return this}ceil(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=this.trunc();return this.significand>0n?t.add(w(1n,0)):t}return this}round(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=w(5n,-1);return this.significand>0n?this.add(t).trunc():this.sub(t).trunc()}return this}trunc(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=this.significand/M(-n);return w(t===0n?0n:t,0)}return this}div(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent,r=this.significand,s=n.significand;if(Number.isFinite(t)&&Number.isFinite(i)){if(s===0n)return r===0n?e.NAN:r>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY;if(r===0n)return w(0n,0);let u=e.precision,l=10,f=r<0n?-r:r,h=s<0n?-s:s,N=R(f),E=R(h),S=u+l+Math.max(0,E-N),_=M(S),W=r*_/s,le=t-i-S;return w(W,le).toPrecision(u)}if(t!==t||i!==i)return e.NAN;let o=!Number.isFinite(t),a=!Number.isFinite(i);if(o&&a)return e.NAN;if(o){let u=r>0n?1n:-1n,l=s>0n?1n:s<0n?-1n:1n;return u*l>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY}return w(0n,0)}inv(){return w(1n,0).div(this)}mod(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i)){if(n.significand===0n)return e.NAN;if(this.significand===0n)return w(0n,0);let r=t-i,s=r>=0?this.significand*M(r):this.significand,o=r>=0?n.significand:n.significand*M(-r),a=s/o;return this.sub(w(a,0).mul(n))}return t!==t||i!==i||!Number.isFinite(t)?e.NAN:new e(this)}pow(n){if(typeof n=="number"&&(n=new e(n)),this.isNaN()||n.isNaN()||!n.isFinite())return e.NAN;if(n.isInteger()){let l=n.toBigInt();if(l===0n)return w(1n,0);if(!this.isFinite())return l>0n?this.significand<0n&&l%2n!==0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY:w(0n,0);if(this.isZero())return l>0n?w(0n,0):e.POSITIVE_INFINITY;if(l<0n)return this.pow(n.neg()).inv();let f=this.significand<0n?-this.significand:this.significand,h=R(f),N=h>15?h-15:0,E=N>0?Number(f/10n**BigInt(N)):Number(f),S=Math.log10(E)+N+this.exponent,_=Number(l)*S;if(_>9e15)return this.significand<0n&&l%2n!==0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY;if(_<-9e15)return w(0n,0);let W=e.precision,le=w(1n,0),ye=this,O=l;for(;O>0n;)O&1n&&(le=le.mul(ye).toPrecision(W)),O>>=1n,O>0n&&(ye=ye.mul(ye).toPrecision(W));return le}if(!this.isFinite())return this.significand<0n?e.NAN:n.significand>0n?e.POSITIVE_INFINITY:e.ZERO;if(this.isZero())return n.significand>0n?e.ZERO:e.POSITIVE_INFINITY;if(this.significand<0n)return e.NAN;let t=this.significand,i=this.exponent+R(t)-1,r=n.significand<0n?-n.significand:n.significand,o=n.exponent+R(r)-1+Math.log10(Math.abs(i)*2.303+3)+1,a=Math.min(20,Math.max(2,Math.ceil(o)+2)),u=e.precision;e.precision=u+a;try{return n.mul(this.ln()).exp().toPrecision(u)}finally{e.precision=u}}toNumber(){return Number.isFinite(this.exponent)?this.significand===0n?0:this.exponent===0?Number(this.significand):Number(this.toString()):this.exponent!==this.exponent?NaN:this.significand>0n?1/0:-1/0}toString(){if(!Number.isFinite(this.exponent))return this.exponent!==this.exponent?"NaN":this.significand>0n?"Infinity":"-Infinity";if(this.significand===0n)return"0";let n=this.significand<0n,t=(n?-this.significand:this.significand).toString(),i=t.length,r=i+this.exponent-1,s=n?"-":"";if(r>20||r<-6){let u=i===1?t:t[0]+"."+t.slice(1),l=r>=0?"+":"";return`${s}${u}e${l}${r}`}if(this.exponent>=0)return s+t+"0".repeat(this.exponent);let o=-this.exponent;if(o<i){let u=t.slice(0,i-o),l=t.slice(i-o);return`${s}${u}.${l}`}let a=o-i;return`${s}0.${"0".repeat(a)}${t}`}toFixed(n){let t=n??0;if(!Number.isFinite(this.exponent))return this.exponent!==this.exponent?"NaN":this.significand>0n?"Infinity":"-Infinity";let i=this.significand<0n,r=i?-this.significand:this.significand,s=this.exponent+t,o;if(s>=0)o=r*M(s);else{let h=M(-s),N=r/h,E=r%h,S=h/2n;E>S?o=N+1n:E<S||h%2n!==0n||N%2n===0n?o=N:o=N+1n}let a=i&&o!==0n?"-":"",u=o.toString();if(t===0)return`${a}${u}`;if(u.length<=t){let h=u.padStart(t,"0");return`${a}0.${h}`}let l=u.slice(0,u.length-t),f=u.slice(u.length-t);return`${a}${l}.${f}`}toPrecision(n){if(this.significand===0n||!Number.isFinite(this.exponent))return this;let t=this.significand<0n?-this.significand:this.significand,i=R(t);if(i<=n)return this;let r=i-n,s=M(r),o=t/s,a=t%s,u=s/2n;(a>u||a===u&&o%2n!==0n)&&(o+=1n);let l=this.significand<0n?-o:o;return w(l,this.exponent+r)}toBigInt(){if(!Number.isFinite(this.exponent))throw this.exponent!==this.exponent?new RangeError("Cannot convert NaN to BigInt"):new RangeError("Cannot convert Infinity to BigInt");if(this.exponent>=0)return this.significand*M(this.exponent);let n=M(-this.exponent);return this.significand/n}};function w(e,n){let[t,i]=Vt(e,n),r=Object.create(p.prototype);return r.significand=t,r.exponent=i,r}var mr=1000000000n,dr=1000n;function Vt(e,n){if(e===0n)return[0n,0];for(;e%mr===0n;)e/=mr,n+=9;for(;e%dr===0n;)e/=dr,n+=3;for(;e%10n===0n;)e/=10n,n+=1;return[e,n]}function fo(e){return Number.isNaN(e)?[0n,NaN]:e===1/0?[1n,1/0]:e===-1/0?[-1n,1/0]:Number.isInteger(e)?Vt(BigInt(e),0):hr(e.toString())}function hr(e){if(e=e.trim(),e===""||e==="NaN")return[0n,NaN];if(e==="Infinity"||e==="+Infinity")return[1n,1/0];if(e==="-Infinity")return[-1n,1/0];let n,t=0,i=e.search(/[eE]/);if(i!==-1){if(n=e.slice(0,i),t=Number(e.slice(i+1)),!Number.isFinite(t))return[0n,NaN]}else n=e;let r=!1;n.startsWith("-")?(r=!0,n=n.slice(1)):n.startsWith("+")&&(n=n.slice(1));let s=n.indexOf("."),o,a;s===-1?(o=n,a=""):(o=n.slice(0,s),a=n.slice(s+1)),o=o.replace(/^0+/,"")||"0";let u=o+a;if(u.length===0||!/^\d+$/.test(u))return[0n,NaN];let l=BigInt(u);r&&(l=-l);let f=-a.length;return Vt(l,f+t)}function ce(e,n){let t=M(n),i=e.exponent+n;return i>=0?[e.significand*M(i),t]:[e.significand/M(-i),t]}function fe(e,n,t){if(e===0n)return p.ZERO;let i=e<0n,r=i?-e:e,s=R(r);if(s>t){let l=s-t,f=M(l),h=f/2n,N=r%f;r=r/f,N>=h&&(r+=1n);let E=R(n)-1,S=l-E,_=i?-r:r;return w(_,S)}let a=-(R(n)-1),u=i?-r:r;return w(u,a)}function ie(e){let n=e.significand<0n?-e.significand:e.significand;return e.exponent+R(n)-1}var gr=BigInt(Number.MAX_SAFE_INTEGER),yr=null,xr=null;function Nr(e){return xr!==e&&(yr=vi(10n*e,e),xr=e),yr}p.prototype.sqrt=function(){if(this.isNaN())return p.NAN;if(this.isZero())return p.ZERO;if(!this.isFinite())return this.significand>0n?p.POSITIVE_INFINITY:p.NAN;if(this.significand<0n)return p.NAN;let e=p.precision,n=e+10,t=ie(this),i=Math.floor(t/2),r=w(this.significand,this.exponent-2*i),[s,o]=ce(r,n),a=En(s,o),u=fe(a,o,e);return w(u.significand,u.exponent+i)};p.prototype.cbrt=function(){if(this.isNaN())return p.NAN;if(this.isZero())return p.ZERO;if(!this.isFinite())return this.significand>0n?p.POSITIVE_INFINITY:p.NEGATIVE_INFINITY;if(this.significand<0n)return this.neg().cbrt().neg();let e=p.precision,n=e+10,t=ie(this),i=Math.floor(t/3),r=w(this.significand,this.exponent-3*i),[s,o]=ce(r,n),a=s*o*o,u,l=r.toNumber(),f=Number(o);if(Number.isFinite(l)&&l>0&&Number.isFinite(f)){let E=Math.cbrt(l);Number.isFinite(E)&&E>0?(u=BigInt(Math.floor(E*f)),u===0n&&(u=1n)):u=br(s,o)}else u=br(s,o);let h;do{h=u;let E=u*u;if(E===0n){u=1n;break}u=(2n*u+a/E)/3n}while(ee(u-h)>1n);{let E=(2n*u+a/(u*u))/3n,S=ee(u*u*u-a);ee(E*E*E-a)<S&&(u=E)}let N=fe(u,o,e);return w(N.significand,N.exponent+i)};p.sqrt=function(e){return e.sqrt()};p.cbrt=function(e){return e.cbrt()};p.prototype.exp=function(){if(this.isNaN())return p.NAN;if(!this.isFinite())return this.significand>0n?p.POSITIVE_INFINITY:p.ZERO;if(this.isZero())return p.ONE;if(ie(this)>=17)return this.significand>0n?p.POSITIVE_INFINITY:p.ZERO;let e=p.precision,n=this.significand<0n?-this.significand:this.significand,t=Math.max(0,this.exponent+R(n)),i=e+20+t,[r,s]=ce(this,i),o=Nr(s),a=r/o,u=r-a*o;if(u<0n&&(a-=1n,u+=o),a>gr||a<-gr)return a>0n?p.POSITIVE_INFINITY:p.ZERO;let l=fe(Ti(u,s),s,e),f=l.exponent+Number(a);return Number.isSafeInteger(f)?w(l.significand,f):a>0n?p.POSITIVE_INFINITY:p.ZERO};p.prototype.ln=function(){if(this.isNaN())return p.NAN;if(!this.isFinite())return this.significand>0n?p.POSITIVE_INFINITY:p.NAN;if(this.isZero())return p.NEGATIVE_INFINITY;if(this.significand<0n)return p.NAN;if(this.eq(1))return p.ZERO;let e=p.precision,n=this.significand,t=R(n),i=this.exponent+t-1,r=w(n,-(t-1)),s=Math.abs(i).toString().length,o=e+20+s,[a,u]=ce(r,o),l=Nr(u),f=vi(a,u)+BigInt(i)*l;return fe(f,u,e)};p.prototype.log=function(e){let n=e instanceof p?e:new p(e);return this.ln().div(n.ln())};p.exp=function(e){return e.exp()};p.ln=function(e){return e.ln()};p.log10=function(e){return e.log(10)};p.prototype.sin=function(){if(this.isNaN())return p.NAN;if(!this.isFinite())return p.NAN;if(this.isZero())return p.ZERO;let e=p.precision,n=ie(this);if(n<0&&-2*n>=e+4)return this.toPrecision(e);let t=e+15+(n<0?-n:0);if(n>be.length-t-30)return p.NAN;let[i,r]=ce(this,t),[s]=Ft(i,r);return fe(s,r,e)};p.prototype.cos=function(){if(this.isNaN())return p.NAN;if(!this.isFinite())return p.NAN;if(this.isZero())return p.ONE;let e=p.precision,n=e+15;if(ie(this)>be.length-n-30)return p.NAN;let[i,r]=ce(this,n),[,s]=Ft(i,r);return fe(s,r,e)};p.prototype.tan=function(){if(this.isNaN())return p.NAN;if(!this.isFinite())return p.NAN;if(this.isZero())return p.ZERO;let e=p.precision,n=ie(this);if(n<0&&-2*n>=e+4)return this.toPrecision(e);let t=e+15+(n<0?-n:0);if(n>be.length-t-30)return p.NAN;let[i,r]=ce(this,t),[s,o]=Ft(i,r);if(o===0n)return s>0n?p.POSITIVE_INFINITY:p.NEGATIVE_INFINITY;let a=s*r/o;return fe(a,r,e)};p.prototype.atan=function(){if(this.isNaN())return p.NAN;if(this.isZero())return p.ZERO;if(!this.isFinite()){let o=p.PI.div(p.TWO);return this.significand>0n?o:o.neg()}let e=p.precision,n=ie(this);if(n<0&&-2*n>=e+4)return this.toPrecision(e);let t=e+15+(n<0?-n:0),[i,r]=ce(this,t),s=Nn(i,r);return fe(s,r,e)};p.prototype.asin=function(){if(this.isNaN())return p.NAN;if(!this.isFinite())return p.NAN;if(this.isZero())return p.ZERO;let e=this.abs(),n=p.ONE;if(e.gt(n))return p.NAN;if(e.eq(n)){let N=p.PI.div(p.TWO);return this.significand>0n?N:N.neg()}let t=p.precision,i=ie(this);if(i<0&&-2*i>=t+4)return this.toPrecision(t);let r=t+20+(i<0?-i:0),[s,o]=ce(this,r),a=fr(s,s,o),u=o-a,l=En(u,o),f=pr(s,l,o),h=Nn(f,o);return fe(h,o,t)};p.prototype.acos=function(){return this.isNaN()?p.NAN:this.isFinite()?this.abs().gt(p.ONE)?p.NAN:this.eq(1)?p.ZERO:this.eq(-1)?p.PI:p.PI.div(p.TWO).sub(this.asin()):p.NAN};p.sin=function(e){return e.sin()};p.cos=function(e){return e.cos()};p.tan=function(e){return e.tan()};p.asin=function(e){return e.asin()};p.acos=function(e){return e.acos()};p.atan=function(e){return e.atan()};p.atan2=function(e,n){let t=e instanceof p?e:new p(e);if(t.isNaN()||n.isNaN())return p.NAN;let i=p.PI,r=i.div(p.TWO);if(n.isZero())return t.isZero()?p.ZERO:t.significand>0n?r:r.neg();let s=t.div(n);return n.significand>0n?s.atan():t.significand>=0n?s.atan().add(i):s.atan().sub(i)};p.prototype.sinh=function(){if(this.isNaN())return p.NAN;if(this.isZero())return p.ZERO;if(!this.isFinite())return this.significand>0n?p.POSITIVE_INFINITY:p.NEGATIVE_INFINITY;let e=p.precision,n=ie(this);if(n<0){if(-2*n>=e+4)return this.toPrecision(e);let r=p.precision;p.precision=e-n+5;try{let s=this.exp();return s.sub(s.inv()).div(p.TWO).toPrecision(e)}finally{p.precision=r}}if(Math.abs(this.toNumber())>1.16*(e+3)){let r=this.abs().exp().div(p.TWO);return this.significand>0n?r:r.neg()}let t=this.exp(),i=t.inv();return t.sub(i).div(p.TWO)};p.prototype.cosh=function(){if(this.isNaN())return p.NAN;if(this.isZero())return p.ONE;if(!this.isFinite())return p.POSITIVE_INFINITY;let e=p.precision;if(Math.abs(this.toNumber())>1.16*(e+3))return this.abs().exp().div(p.TWO);let n=this.exp(),t=n.inv();return n.add(t).div(p.TWO)};p.prototype.tanh=function(){if(this.isNaN())return p.NAN;if(this.isZero())return p.ZERO;if(!this.isFinite())return this.significand>0n?p.ONE:p.NEGATIVE_ONE;let e=p.precision,n=ie(this);if(n<0){if(-2*n>=e+4)return this.toPrecision(e);let i=p.precision;p.precision=e-n+5;try{let r=this.mul(p.TWO).exp();return r.sub(p.ONE).div(r.add(p.ONE)).toPrecision(e)}finally{p.precision=i}}if(Math.abs(this.toNumber())>1.16*(e+3))return this.significand>0n?p.ONE:p.NEGATIVE_ONE;let t=this.mul(p.TWO).exp();return t.sub(p.ONE).div(t.add(p.ONE))};p.sinh=function(e){return e.sinh()};p.cosh=function(e){return e.cosh()};p.tanh=function(e){return e.tanh()};function br(e,n){let i=R(e),r=Math.max(0,i-15),s=Number(r>0?e/M(r):e),o=R(n),a=Math.max(0,o-15),u=Number(a>0?n/M(a):n),l=r+2*a,f=Math.floor(l/3),h=l%3,N=Math.cbrt(s*u*u);h===1&&(N*=2.154434690031882),h===2&&(N*=4.641588833612779);let E=BigInt(Math.round(N))*M(f);return E>0n?E:1n}var Er=7,Tr=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23];function Se(e){if(e<0)return NaN;let n=0;for(;e<10;)n+=Math.log(e),e+=1;let t=Math.PI,i=e*e*e;return e*Math.log(e)-e-.5*Math.log(e)+.5*Math.log(2*t)+1/(12*e)-1/(360*i)+1/(1260*i*e*e)-n}function ne(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*ne(1-e));if(e>100)return Math.exp(Se(e));e-=1;let n=Tr[0];for(let i=1;i<Er+2;i++)n+=Tr[i]/(e+i);let t=e+Er+.5;return Math.sqrt(2*Math.PI)*Math.pow(t,e+.5)*Math.exp(-t)*n}function Lt(e){if(Number.isNaN(e))return NaN;if(!Number.isFinite(e))return e>0?0:2;if(e<0)return 2-Lt(-e);if(e<2)return 1-Jt(e);let n=1e-300,t=e===0?n:e,i=t,r=0;for(let s=1;s<=500;s++){let o=s/2;r=e+o*r,r===0&&(r=n),r=1/r,i=e+o/i,i===0&&(i=n);let a=i*r;if(t*=a,Math.abs(a-1)<1e-17)break}return Math.exp(-e*e)/(Math.sqrt(Math.PI)*t)}function Jt(e){if(Number.isNaN(e))return NaN;if(e===0)return 0;if(!Number.isFinite(e))return e>0?1:-1;let n=e<0?-1:1,t=Math.abs(e);if(t>=6)return n;let i=t*t,r=t,s=t;for(let o=1;o<200&&(r*=2*i/(2*o+1),s+=r,!(r<s*1e-18));o++);return n*(2/Math.sqrt(Math.PI))*Math.exp(-i)*s}var fu=[1/6,-1/30,1/42,-1/30,5/66,-691/2730,7/6,-3617/510,43867/798,-174611/330];var po=[-2991.8191940101983,708840.0452577386,-6297414862058625e-8,25489088057337637e-7,-4429795180596978e-5,3180162978765678e-4],mo=[1,281.3762688899943,45584.78108065326,5173438887700964e-9,4193202458981112e-7,22441179564534092e-6,607366389490085e-3],ho=[-49884311457357354e-24,9504280628298596e-21,-.0006451914356839651,.018884331939670384,-.20552590095501388,1],go=[399982968972496e-26,9154392157746574e-25,12500186247959882e-23,12226278902417902e-21,.0008680295429417843,.04121420907221998,1],vr=[.4215435550436775,.1434079197807589,.011522095507358577,.000345017939782574,46361374928786735e-22,3055689837902576e-23,10230451416490724e-26,17201074326816183e-29,13428327623306275e-32,3763297112699879e-35],Ir=[1,.7515863983533789,.11688892585919138,.0064405152650885865,.00015593440916415301,18462756734893055e-22,11269922476399903e-24,36014002958937136e-27,5887545336215784e-29,45200143407412973e-33,12544323709001127e-36],kr=[.5044420736433832,.1971028335255234,.018764858409257526,.0006840793809153931,11513882611188428e-21,9828524436884223e-23,44534441586175015e-26,10826804113902088e-28,1375554606332618e-30,8363544356306774e-34,18695871016278324e-38],Sr=[1,1.4749575992512833,.33774898912002,.02536037414203388,.0008146791071843061,12754507566772912e-21,10431458965757199e-23,46068072851523205e-26,11027321506624028e-28,13879653125957886e-31,8391588162831187e-34,18695871016278324e-38];function X(e,n){let t=n[0];for(let i=1;i<n.length;i++)t=t*e+n[i];return t}function Ve(e){if(!isFinite(e))return e!==e?NaN:e>0?.5:-.5;let n=e<0?-1:1;if(e=Math.abs(e),e<1.6){let t=e*e,i=t*t;return n*e*t*X(i,po)/X(i,mo)}if(e<36974){let t=e*e,i=Math.PI*t,r=1/(i*i),s=1-r*X(r,vr)/X(r,Ir),o=1/i*X(r,kr)/X(r,Sr),a=Math.PI/2*t,u=Math.cos(a),l=Math.sin(a);return n*(.5-(s*u+o*l)/(Math.PI*e))}return n*.5}function Le(e){if(!isFinite(e))return e!==e?NaN:e>0?.5:-.5;let n=e<0?-1:1;if(e=Math.abs(e),e<1.6){let t=e*e,i=t*t;return n*e*X(i,ho)/X(i,go)}if(e<36974){let t=e*e,i=Math.PI*t,r=1/(i*i),s=1-r*X(r,vr)/X(r,Ir),o=1/i*X(r,kr)/X(r,Sr),a=Math.PI/2*t,u=Math.cos(a),l=Math.sin(a);return n*(.5+(s*l-o*u)/(Math.PI*e))}return n*.5}var yu=[BigInt(4),BigInt(2),BigInt(4),BigInt(2),BigInt(4),BigInt(6),BigInt(2),BigInt(6)];var yo=53,Mr=Math.floor(Math.log10(Math.pow(2,yo))),xo=1e-10;function vn(e,n){if(e===0)return n;if(n===0||e===n)return e;if(!Number.isInteger(e)||!Number.isInteger(n))return NaN;for(;n!==0;)[e,n]=[n,e%n];return e<0?-e:e}function ki(e,n){if(e===0||n===0)return 0;let t=BigInt(e)*BigInt(n)/BigInt(vn(e,n));return t<0n&&(t=-t),Number(t)}function Si(e){if(!Number.isInteger(e)||e<0)return NaN;if(e>=170)return 1/0;let n=1;for(let t=2;t<=e;t++)n=n*t;return n}function Mi(e){if(!Number.isInteger(e)||e<0)return NaN;if(e<0)return NaN;if(e<=1)return 1;let n=e;for(;e>2;)e-=2,n*=e;return n}function wi(e,n=xo){return typeof e=="number"&&Math.abs(e)<=n?0:e}function g(e){let n="",t="";for(let i of e)i!=null&&(typeof i=="string"&&(/[a-zA-Z]/.test(i[0])&&(t+=n),/\\[a-zA-Z]+\*?$/.test(i)?n=" ":n=""),t+=i.toString());return t}function Je(e,n,t){return n.includes(e)&&(n=`{${n}}`),/^[0-9]$/.test(t)?`${n}${e}${t}`:`${n}${e}{${t}}`}var k=245,In=260,pe=270,C=275,Z=390,K=600;var kn=700,Ai=810;var $e=[{latexTrigger:["\\not","<"],kind:"infix",associativity:"any",precedence:246,parse:"NotLess"},{name:"NotLess",latexTrigger:["\\nless"],kind:"infix",associativity:"any",precedence:246},{latexTrigger:["<"],kind:"infix",associativity:"any",precedence:245,parse:"Less"},{name:"Less",latexTrigger:["\\lt"],kind:"infix",associativity:"any",precedence:245},{latexTrigger:["<","="],kind:"infix",associativity:"any",precedence:241,parse:"LessEqual"},{name:"LessEqual",latexTrigger:["\\le"],kind:"infix",associativity:"any",precedence:241},{latexTrigger:["\\leq"],kind:"infix",associativity:"any",precedence:241,parse:"LessEqual"},{latexTrigger:["\\leqslant"],kind:"infix",associativity:"any",precedence:k+5,parse:"LessEqual"},{name:"LessNotEqual",latexTrigger:["\\lneqq"],kind:"infix",associativity:"any",precedence:k},{name:"NotLessNotEqual",latexTrigger:["\\nleqq"],kind:"infix",associativity:"any",precedence:k},{name:"LessOverEqual",latexTrigger:["\\leqq"],kind:"infix",associativity:"any",precedence:k+5},{name:"GreaterOverEqual",latexTrigger:["\\geqq"],kind:"infix",associativity:"any",precedence:k+5,parse:"GreaterEqual"},{name:"Equal",latexTrigger:["="],kind:"infix",associativity:"right",precedence:k},{latexTrigger:["*","="],kind:"infix",associativity:"right",precedence:k,parse:"StarEqual"},{name:"StarEqual",latexTrigger:["\\star","="],kind:"infix",associativity:"right",precedence:k},{name:"PlusEqual",latexTrigger:["+","="],kind:"infix",associativity:"right",precedence:k},{name:"MinusEqual",latexTrigger:["-","="],kind:"infix",associativity:"right",precedence:k},{name:"SlashEqual",latexTrigger:["/","="],kind:"infix",associativity:"right",precedence:k},{name:"EqualEqual",latexTrigger:["=","="],kind:"infix",associativity:"right",precedence:k},{name:"EqualEqualEqual",latexTrigger:["=","=","="],kind:"infix",associativity:"right",precedence:k+5},{name:"TildeFullEqual",latexTrigger:["\\cong"],kind:"infix",associativity:"right",precedence:k},{name:"NotTildeFullEqual",latexTrigger:["\\ncong"],kind:"infix",associativity:"right",precedence:k},{name:"Approx",latexTrigger:["\\approx"],kind:"infix",associativity:"right",precedence:247},{name:"NotApprox",latexTrigger:["\\not","\\approx"],kind:"infix",associativity:"right",precedence:247},{name:"ApproxEqual",latexTrigger:["\\approxeq"],kind:"infix",associativity:"right",precedence:k},{name:"NotApproxEqual",latexTrigger:["\\not","\\approxeq"],kind:"infix",associativity:"right",precedence:250},{name:"NotEqual",latexTrigger:["\\ne"],kind:"infix",associativity:"right",precedence:255},{name:"Unequal",latexTrigger:["!","="],kind:"infix",associativity:"right",precedence:k},{name:"GreaterEqual",latexTrigger:["\\ge"],kind:"infix",associativity:"right",precedence:242},{latexTrigger:["\\geq"],kind:"infix",associativity:"right",precedence:242,parse:"GreaterEqual"},{latexTrigger:[">","="],kind:"infix",associativity:"right",precedence:243,parse:"GreaterEqual"},{latexTrigger:["\\geqslant"],kind:"infix",associativity:"right",precedence:k+5,parse:"GreaterEqual"},{name:"GreaterNotEqual",latexTrigger:["\\gneqq"],kind:"infix",associativity:"right",precedence:k},{name:"NotGreaterNotEqual",latexTrigger:["\\ngeqq"],kind:"infix",associativity:"right",precedence:k},{latexTrigger:[">"],kind:"infix",associativity:"right",precedence:245,parse:"Greater"},{name:"Greater",latexTrigger:["\\gt"],kind:"infix",associativity:"right",precedence:245},{name:"NotGreater",latexTrigger:["\\ngtr"],kind:"infix",associativity:"right",precedence:244},{latexTrigger:["\\not",">"],kind:"infix",associativity:"right",precedence:244,parse:"NotGreater"},{name:"RingEqual",latexTrigger:["\\circeq"],kind:"infix",associativity:"right",precedence:k},{name:"TriangleEqual",latexTrigger:["\\triangleq"],kind:"infix",associativity:"right",precedence:k},{name:"DotEqual",latexTrigger:["\\doteq"],kind:"infix",associativity:"right",precedence:k+5},{name:"DotEqualDot",latexTrigger:["\\doteqdot"],kind:"infix",associativity:"right",precedence:k+5},{name:"FallingDotEqual",latexTrigger:["\\fallingdotseq"],kind:"infix",associativity:"right",precedence:k+5},{name:"RisingDotEqual",latexTrigger:["\\fallingdotseq"],kind:"infix",associativity:"right",precedence:k+5},{name:"QuestionEqual",latexTrigger:["\\questeq"],kind:"infix",associativity:"right",precedence:k},{name:"MuchLess",latexTrigger:["\\ll"],kind:"infix",associativity:"right",precedence:k},{name:"MuchGreater",latexTrigger:["\\gg"],kind:"infix",associativity:"right",precedence:k},{name:"Precedes",latexTrigger:["\\prec"],kind:"infix",associativity:"right",precedence:k},{name:"Succeeds",latexTrigger:["\\succ"],kind:"infix",associativity:"right",precedence:k},{name:"PrecedesEqual",latexTrigger:["\\preccurlyeq"],kind:"infix",associativity:"right",precedence:k},{name:"SucceedsEqual",latexTrigger:["\\curlyeqprec"],kind:"infix",associativity:"right",precedence:k},{name:"NotPrecedes",latexTrigger:["\\nprec"],kind:"infix",associativity:"right",precedence:k},{name:"NotSucceeds",latexTrigger:["\\nsucc"],kind:"infix",associativity:"right",precedence:k},{name:"Between",latexTrigger:["\\between"],kind:"infix",associativity:"right",precedence:k+5}];function Di(e){return typeof e!="string"?!1:["Less","LessEqual","Greater","GreaterEqual"].includes(e)}function Pi(e){return typeof e!="string"?!1:["Equal","NotEqual"].includes(e)}var G=Math.cosh||function(e){return Math.abs(e)<1e-9?1-e:(Math.exp(e)+Math.exp(-e))*.5},Q=Math.sinh||function(e){return Math.abs(e)<1e-9?e:(Math.exp(e)-Math.exp(-e))*.5},bo=function(e){var n=Math.PI/4;if(-n>e||e>n)return Math.cos(e)-1;var t=e*e;return t*(t*(t*(t*(t*(t*(t*(t/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},No=function(e,n){var t=Math.abs(e),i=Math.abs(n);return t<3e3&&i<3e3?Math.sqrt(t*t+i*i):(t<i?(t=i,i=e/n):i=n/e,t*Math.sqrt(1+i*i))},qe=function(){throw SyntaxError("Invalid Param")};function _i(e,n){var t=Math.abs(e),i=Math.abs(n);return e===0?Math.log(i):n===0?Math.log(t):t<3e3&&i<3e3?Math.log(e*e+n*n)*.5:(e=e/2,n=n/2,.5*Math.log(e*e+n*n)+Math.LN2)}var Eo=function(e,n){var t={re:0,im:0};if(e==null)t.re=t.im=0;else if(n!==void 0)t.re=e,t.im=n;else switch(typeof e){case"object":if("im"in e&&"re"in e)t.re=e.re,t.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return F.INFINITY;t.re=e.abs*Math.cos(e.arg),t.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return F.INFINITY;t.re=e.r*Math.cos(e.phi),t.im=e.r*Math.sin(e.phi)}else e.length===2?(t.re=e[0],t.im=e[1]):qe();break;case"string":t.im=t.re=0;var i=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),r=1,s=0;i===null&&qe();for(var o=0;o<i.length;o++){var a=i[o];a===" "||a===" "||a===`
|
|
4
|
+
`||(a==="+"?r++:a==="-"?s++:a==="i"||a==="I"?(r+s===0&&qe(),i[o+1]!==" "&&!isNaN(Number(i[o+1]))?(t.im+=parseFloat((s%2?"-":"")+i[o+1]),o++):t.im+=parseFloat((s%2?"-":"")+"1"),r=s=0):((r+s===0||isNaN(Number(a)))&&qe(),i[o+1]==="i"||i[o+1]==="I"?(t.im+=parseFloat((s%2?"-":"")+a),o++):t.re+=parseFloat((s%2?"-":"")+a),r=s=0))}r+s>0&&qe();break;case"number":t.im=0,t.re=e;break;default:qe()}return isNaN(t.re)||isNaN(t.im),t},F=class e{constructor(n,t){this.re=0,this.im=0;var i=Eo(n,t);this.re=i.re,this.im=i.im}sign(){var n=this.abs();return new e(this.re/n,this.im/n)}add(n,t){var i=new e(n,t);return this.isInfinite()&&i.isInfinite()?e.NAN:this.isInfinite()||i.isInfinite()?e.INFINITY:new e(this.re+i.re,this.im+i.im)}sub(n,t){var i=new e(n,t);return this.isInfinite()&&i.isInfinite()?e.NAN:this.isInfinite()||i.isInfinite()?e.INFINITY:new e(this.re-i.re,this.im-i.im)}mul(n,t){var i=new e(n,t);return this.isInfinite()&&i.isZero()||this.isZero()&&i.isInfinite()?e.NAN:this.isInfinite()||i.isInfinite()?e.INFINITY:i.im===0&&this.im===0?new e(this.re*i.re,0):new e(this.re*i.re-this.im*i.im,this.re*i.im+this.im*i.re)}div(n,t){var i=new e(n,t);if(this.isZero()&&i.isZero()||this.isInfinite()&&i.isInfinite())return e.NAN;if(this.isInfinite()||i.isZero())return e.INFINITY;if(this.isZero()||i.isInfinite())return e.ZERO;n=this.re,t=this.im;var r=i.re,s=i.im,o,a;return s===0?new e(n/r,t/r):Math.abs(r)<Math.abs(s)?(a=r/s,o=r*a+s,new e((n*a+t)/o,(t*a-n)/o)):(a=s/r,o=s*a+r,new e((n+t*a)/o,(t-n*a)/o))}pow(n,t){var i=new e(n,t);if(n=this.re,t=this.im,i.isZero())return e.ONE;if(i.im===0){if(t===0&&n>0)return new e(Math.pow(n,i.re),0);if(n===0)switch((i.re%4+4)%4){case 0:return new e(Math.pow(t,i.re),0);case 1:return new e(0,Math.pow(t,i.re));case 2:return new e(-Math.pow(t,i.re),0);case 3:return new e(0,-Math.pow(t,i.re))}}if(n===0&&t===0&&i.re>0&&i.im>=0)return e.ZERO;var r=Math.atan2(t,n),s=_i(n,t);return n=Math.exp(i.re*s-i.im*r),t=i.im*s+i.re*r,new e(n*Math.cos(t),n*Math.sin(t))}sqrt(){var n=this.re,t=this.im,i=this.abs(),r,s;if(n>=0){if(t===0)return new e(Math.sqrt(n),0);r=.5*Math.sqrt(2*(i+n))}else r=Math.abs(t)/Math.sqrt(2*(i-n));return n<=0?s=.5*Math.sqrt(2*(i-n)):s=Math.abs(t)/Math.sqrt(2*(i+n)),new e(r,t<0?-s:s)}exp(){var n=Math.exp(this.re);return this.im,new e(n*Math.cos(this.im),n*Math.sin(this.im))}expm1(){var n=this.re,t=this.im;return new e(Math.expm1(n)*Math.cos(t)+bo(t),Math.exp(n)*Math.sin(t))}log(){var n=this.re,t=this.im;return t===0&&n>0,new e(_i(n,t),Math.atan2(t,n))}abs(){return No(this.re,this.im)}arg(){return Math.atan2(this.im,this.re)}sin(){var n=this.re,t=this.im;return new e(Math.sin(n)*G(t),Math.cos(n)*Q(t))}cos(){var n=this.re,t=this.im;return new e(Math.cos(n)*G(t),-Math.sin(n)*Q(t))}tan(){var n=2*this.re,t=2*this.im,i=Math.cos(n)+G(t);return new e(Math.sin(n)/i,Q(t)/i)}cot(){var n=2*this.re,t=2*this.im,i=Math.cos(n)-G(t);return new e(-Math.sin(n)/i,Q(t)/i)}sec(){var n=this.re,t=this.im,i=.5*G(2*t)+.5*Math.cos(2*n);return new e(Math.cos(n)*G(t)/i,Math.sin(n)*Q(t)/i)}csc(){var n=this.re,t=this.im,i=.5*G(2*t)-.5*Math.cos(2*n);return new e(Math.sin(n)*G(t)/i,-Math.cos(n)*Q(t)/i)}asin(){var n=this.re,t=this.im,i=new e(t*t-n*n+1,-2*n*t).sqrt(),r=new e(i.re-t,i.im+n).log();return new e(r.im,-r.re)}acos(){var n=this.re,t=this.im,i=new e(t*t-n*n+1,-2*n*t).sqrt(),r=new e(i.re-t,i.im+n).log();return new e(Math.PI/2-r.im,r.re)}atan(){var n=this.re,t=this.im;if(n===0){if(t===1)return new e(0,1/0);if(t===-1)return new e(0,-1/0)}var i=n*n+(1-t)*(1-t),r=new e((1-t*t-n*n)/i,-2*n/i).log();return new e(-.5*r.im,.5*r.re)}acot(){var n=this.re,t=this.im;if(t===0)return new e(Math.atan2(1,n),0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).atan():new e(n!==0?n/0:0,t!==0?-t/0:0).atan()}asec(){var n=this.re,t=this.im;if(n===0&&t===0)return new e(0,1/0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).acos():new e(n!==0?n/0:0,t!==0?-t/0:0).acos()}acsc(){var n=this.re,t=this.im;if(n===0&&t===0)return new e(Math.PI/2,1/0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).asin():new e(n!==0?n/0:0,t!==0?-t/0:0).asin()}sinh(){var n=this.re,t=this.im;return new e(Q(n)*Math.cos(t),G(n)*Math.sin(t))}cosh(){var n=this.re,t=this.im;return new e(G(n)*Math.cos(t),Q(n)*Math.sin(t))}tanh(){var n=2*this.re,t=2*this.im,i=G(n)+Math.cos(t);return new e(Q(n)/i,Math.sin(t)/i)}coth(){var n=2*this.re,t=2*this.im,i=G(n)-Math.cos(t);return new e(Q(n)/i,-Math.sin(t)/i)}csch(){var n=this.re,t=this.im,i=Math.cos(2*t)-G(2*n);return new e(-2*Q(n)*Math.cos(t)/i,2*G(n)*Math.sin(t)/i)}sech(){var n=this.re,t=this.im,i=Math.cos(2*t)+G(2*n);return new e(2*G(n)*Math.cos(t)/i,-2*Q(n)*Math.sin(t)/i)}asinh(){var n=this.im;this.im=-this.re,this.re=n;var t=this.asin();return this.re=-this.im,this.im=n,n=t.re,t.re=-t.im,t.im=n,t}acosh(){var n=this.acos();if(n.im<=0){var t=n.re;n.re=-n.im,n.im=t}else{var t=n.im;n.im=-n.re,n.re=t}return n}atanh(){var n=this.re,t=this.im,i=n>1&&t===0,r=1-n,s=1+n,o=r*r+t*t,a=o!==0?new e((s*r-t*t)/o,(t*r+s*t)/o):new e(n!==-1?n/0:0,t!==0?t/0:0),u=a.re;return a.re=_i(a.re,a.im)/2,a.im=Math.atan2(a.im,u)/2,i&&(a.im=-a.im),a}acoth(){var n=this.re,t=this.im;if(n===0&&t===0)return new e(0,Math.PI/2);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).atanh():new e(n!==0?n/0:0,t!==0?-t/0:0).atanh()}acsch(){var n=this.re,t=this.im;if(t===0)return new e(n!==0?Math.log(n+Math.sqrt(n*n+1)):1/0,0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).asinh():new e(n!==0?n/0:0,t!==0?-t/0:0).asinh()}asech(){var n=this.re,t=this.im;if(this.isZero())return e.INFINITY;var i=n*n+t*t;return i!==0?new e(n/i,-t/i).acosh():new e(n!==0?n/0:0,t!==0?-t/0:0).acosh()}inverse(){if(this.isZero())return e.INFINITY;if(this.isInfinite())return e.ZERO;var n=this.re,t=this.im,i=n*n+t*t;return new e(n/i,-t/i)}conjugate(){return new e(this.re,-this.im)}neg(){return new e(-this.re,-this.im)}ceil(n){return n=Math.pow(10,n||0),new e(Math.ceil(this.re*n)/n,Math.ceil(this.im*n)/n)}floor(n){return n=Math.pow(10,n||0),new e(Math.floor(this.re*n)/n,Math.floor(this.im*n)/n)}round(n){return n=Math.pow(10,n||0),new e(Math.round(this.re*n)/n,Math.round(this.im*n)/n)}equals(n,t){var i=new e(n,t);return Math.abs(i.re-this.re)<=e.EPSILON&&Math.abs(i.im-this.im)<=e.EPSILON}clone(){return new e(this.re,this.im)}toString(){var n=this.re,t=this.im,i="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(n)<e.EPSILON&&(n=0),Math.abs(t)<e.EPSILON&&(t=0),t===0?i+n:(n!==0?(i+=n,i+=" ",t<0?(t=-t,i+="-"):i+="+",i+=" "):t<0&&(t=-t,i+="-"),t!==1&&(i+=t),i+"i"))}toVector(){return[this.re,this.im]}valueOf(){return this.im===0?this.re:null}isNaN(){return isNaN(this.re)||isNaN(this.im)}isZero(){return this.im===0&&this.re===0}isFinite(){return isFinite(this.re)&&isFinite(this.im)}isInfinite(){return!(this.isNaN()||this.isFinite())}};F.ZERO=new F(0,0);F.ONE=new F(1,0);F.I=new F(0,1);F.PI=new F(Math.PI,0);F.E=new F(Math.E,0);F.INFINITY=new F(1/0,1/0);F.NAN=new F(NaN,NaN);F.EPSILON=1e-15;var $t=["number","finite_number","complex","finite_complex","imaginary","real","finite_real","rational","finite_rational","integer","finite_integer","non_finite_number"],Ri=["indexed_collection","list","tuple"],qt=[...Ri,"collection","set","record","dictionary"],zt=["scalar",...$t,"boolean","string"],Bi=["value","color",...qt,...zt],Oi=["expression","symbol","function",...Bi],Ci=["any","unknown","nothing","never","error",...Oi],Gt=new Set($t),wr=new Set(qt),Ar=new Set(zt),ze=new Set(Ci);function Zt(e){return typeof e=="string"?ze.has(e):typeof e!="object"||!("kind"in e)?!1:e.kind==="signature"||e.kind==="union"||e.kind==="intersection"||e.kind==="negation"||e.kind==="value"||e.kind==="tuple"||e.kind==="list"||e.kind==="record"||e.kind==="dictionary"||e.kind==="set"||e.kind==="symbol"||e.kind==="expression"||e.kind==="numeric"||e.kind==="collection"||e.kind==="indexed_collection"||e.kind==="reference"}var jt=class{input;pos=0;line=1;column=1;tokens=[];constructor(n){this.input=n}saveState(){return{pos:this.pos,line:this.line,column:this.column,tokens:[...this.tokens]}}restoreState(n){this.pos=n.pos,this.line=n.line,this.column=n.column,this.tokens=n.tokens}error(n){throw new Error(`Lexer error at line ${this.line}, column ${this.column}: ${n}`)}peek(n=0){let t=this.pos+n;return t<this.input.length?this.input[t]:""}advance(){let n=this.input[this.pos++];return n===`
|
|
5
|
+
`?(this.line++,this.column=1):this.column++,n}match(n){if(this.input.slice(this.pos,this.pos+n.length)===n){for(let t=0;t<n.length;t++)this.advance();return!0}return!1}isEOF(){return this.pos>=this.input.length}skipWhitespace(){for(;!this.isEOF()&&/\s/.test(this.peek());)this.advance()}readIdentifier(){let n="";for(;!this.isEOF()&&/[a-zA-Z0-9_]/.test(this.peek());)n+=this.advance();return n}readVerbatimString(){if(!this.match("`"))return"";let n="";for(;!this.isEOF()&&this.peek()!=="`";)this.match("\\`")?n+="`":this.match("\\\\")?n+="\\":n+=this.advance();return this.isEOF()&&this.error("Unterminated verbatim string"),this.advance(),n}readStringLiteral(){let n=this.advance(),t="";for(;!this.isEOF()&&this.peek()!==n;)this.match("\\"+n)?t+=n:this.match("\\\\")?t+="\\":t+=this.advance();return this.isEOF()&&this.error("Unterminated string literal"),this.advance(),t}readNumber(){let n="";if((this.peek()==="-"||this.peek()==="+")&&(n+=this.advance()),this.match("0x")||this.match("0X")){for(n+="x";!this.isEOF()&&/[0-9a-fA-F]/.test(this.peek());)n+=this.advance();return"0"+n}if(this.match("0b")||this.match("0B")){for(n+="b";!this.isEOF()&&/[01]/.test(this.peek());)n+=this.advance();return"0"+n}for(;!this.isEOF()&&/[0-9]/.test(this.peek());)n+=this.advance();if(this.peek()==="."&&/[0-9]/.test(this.peek(1)))for(n+=this.advance();!this.isEOF()&&/[0-9]/.test(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());!this.isEOF()&&/[0-9]/.test(this.peek());)n+=this.advance();return n}createToken(n,t){return{type:n,value:t,position:this.pos-t.length,line:this.line,column:this.column-t.length}}nextToken(){if(this.skipWhitespace(),this.isEOF())return this.createToken("EOF","");let n=this.pos,t=this.peek();if(this.match("->"))return this.createToken("->","->");if(this.match(".."))return this.createToken("..","..");if(this.match("+\u221E")||this.match("+oo"))return this.createToken("PLUS_INFINITY",this.input.slice(n,this.pos));if(this.match("-\u221E")||this.match("-oo"))return this.createToken("MINUS_INFINITY",this.input.slice(n,this.pos));if(this.match("+infinity"))return this.createToken("PLUS_INFINITY","+infinity");if(this.match("-infinity"))return this.createToken("MINUS_INFINITY","-infinity");if(/[a-zA-Z_]/.test(t)){let i=this.readIdentifier();switch(i){case"true":return this.createToken("TRUE",i);case"false":return this.createToken("FALSE",i);case"nan":return this.createToken("NAN",i);case"infinity":return this.createToken("INFINITY",i);case"oo":return this.createToken("INFINITY",i);default:return this.createToken("IDENTIFIER",i)}}switch(t){case"|":return this.advance(),this.createToken("|","|");case"&":return this.advance(),this.createToken("&","&");case"!":return this.advance(),this.createToken("!","!");case"^":return this.advance(),this.createToken("^","^");case"(":return this.advance(),this.createToken("(","(");case")":return this.advance(),this.createToken(")",")");case"<":return this.advance(),this.createToken("<","<");case">":return this.advance(),this.createToken(">",">");case"[":return this.advance(),this.createToken("[","[");case"]":return this.advance(),this.createToken("]","]");case",":return this.advance(),this.createToken(",",",");case":":return this.advance(),this.createToken(":",":");case"?":return this.advance(),this.createToken("?","?");case"*":return this.advance(),this.createToken("*","*");case"+":return/[0-9]/.test(this.peek(1))?this.createToken("NUMBER_LITERAL",this.readNumber()):(this.advance(),this.createToken("+","+"));case"x":return/[0-9]/.test(this.peek(1))?(this.advance(),this.createToken("x","x")):(this.advance(),this.createToken("x","x"))}if(t==='"'||t==="'")return this.createToken("STRING_LITERAL",this.readStringLiteral());if(t==="`")return this.createToken("VERBATIM_STRING",this.readVerbatimString());if(/[0-9]/.test(t)||t==="-"&&/[0-9]/.test(this.peek(1))){let i=this.readNumber();return this.peek()==="x"&&/[0-9]/.test(this.peek(1)),this.createToken("NUMBER_LITERAL",i)}if(t==="\u221E")return this.advance(),this.createToken("INFINITY","\u221E");this.error(`Unexpected character: ${t}`)}tokenize(){let n=[];for(;!this.isEOF();){let t=this.nextToken();if(t&&(n.push(t),t.type==="EOF"))break}return n}peekToken(){if(this.tokens.length===0){let n=this.nextToken();n&&this.tokens.push(n)}return this.tokens[0]||this.createToken("EOF","")}consumeToken(){if(this.tokens.length===0){let n=this.nextToken();if(n)return n}return this.tokens.shift()||this.createToken("EOF","")}matchToken(n){return this.peekToken().type===n?(this.consumeToken(),!0):!1}expectToken(n){let t=this.consumeToken();return t.type!==n&&this.error(`Expected ${n}, got ${t.type}`),t}};var Ut=class{lexer;typeResolver;current;constructor(n,t){this.lexer=new jt(n),this.typeResolver=t?.typeResolver??{forward:()=>{},resolve:()=>{},get names(){return[]}},this.current=this.lexer.consumeToken()}error(n,t){this.errorAtToken(this.current,n,t)}errorAtToken(n,t,i){let r=this.lexer.input,o=r.split(`
|
|
6
|
+
`)[n.line-1]||r,a=n.column,u=" ".repeat(Math.max(0,a-1))+"^",l=["","Invalid type",`| ${o}`,`| ${u}`,"|",`| ${t}`];throw i&&l.push(`| ${i}`),l.push(""),new Error(l.join(`
|
|
7
|
+
`))}advance(){let n=this.current;return this.current=this.lexer.consumeToken(),n}match(n){return this.current.type===n?(this.advance(),!0):!1}expect(n){return this.current.type!==n&&this.error(`Expected ${n}, got ${this.current.type}`),this.advance()}createNode(n,t={}){return{kind:n,position:this.current.position,line:this.current.line,column:this.current.column,...t}}parseType(){this.checkForNakedFunctionSignature();let n=this.parseUnionType();if(n||this.error("Expected a type"),this.current.type!=="EOF")if(this.current.type==="->"||this.current.type==="+"||this.current.type==="*"||this.current.type==="?")this.error("Function signatures must be enclosed in parentheses","For example `(x: number) -> number`");else if(this.current.type==="("){let t=this.lexer.input;t.includes("set(")||t.includes("collection(")||t.includes("list(")||t.includes("tuple(")?t.includes("set(")?this.error("Use `set<integer>` instead of `set(integer)`."):t.includes("collection(")?this.error("Use `collection<type>` instead of `collection(type)`.","For example `collection<number>`"):t.includes("list(")?this.error("Use `list<type>` instead of `list(type)`.","For example `list<number>`"):t.includes("tuple(")&&this.error("Use `tuple<type1, type2>` instead of `tuple(type1, type2)`.","For example `tuple<string, number>`"):this.error("Unexpected token after type")}else this.error("Unexpected token after type");return n}checkForNakedFunctionSignature(){if(this.current.type==="IDENTIFIER"){let n=this.lexer.saveState(),t=this.current;try{let i=this.current;if(this.advance(),this.current.type===":"){this.advance();let r=!1,s=0,o=10;for(;this.current.type!=="EOF"&&s<o;){if(this.current.type==="->"){r=!0;break}if(this.current.type==="+"||this.current.type==="*"||this.current.type==="?"){if(this.advance(),this.current.type==="->"){r=!0;break}s++}this.advance(),s++}r&&(this.lexer.restoreState(n),this.current=t,this.errorAtToken(i,"Function signatures must be enclosed in parentheses","For example `(z: string*) -> boolean`"))}this.lexer.restoreState(n),this.current=t}catch(i){if(this.lexer.restoreState(n),this.current=t,i instanceof Error&&i.message.includes("Function signatures must be enclosed"))throw i}}}parseUnionType(){let n=this.parseIntersectionType();if(!n)return;let t=[n];for(;this.match("|");){let i=this.parseIntersectionType();i||this.error("Expected type after |"),t.push(i)}return t.length===1?t[0]:this.createNode("union",{types:t})}parseIntersectionType(){let n=this.parsePrimaryType();if(!n)return;let t=[n];for(;this.match("&");){let i=this.parsePrimaryType();i||this.error("Expected type after &"),t.push(i)}return t.length===1?t[0]:this.createNode("intersection",{types:t})}parsePrimaryType(){if(this.match("!")){let n=this.parsePrimaryType();return n||this.error("Expected type after !"),this.createNode("negation",{type:n})}if(this.current.type==="("){let n=this.parseFunctionSignature();if(n)return n;if(this.match("(")){let t=this.parseUnionType();if(t||this.error("Expected type after ("),this.current.type===","){let i=[this.createNode("named_element",{name:void 0,type:t})];for(;this.match(",");){let r=this.parseUnionType();r||this.error("Expected type after ,"),i.push(this.createNode("named_element",{name:void 0,type:r}))}return this.expect(")"),this.createNode("tuple",{elements:i})}return this.expect(")"),this.createNode("group",{type:t})}}return this.parseListType()||this.parseTupleType()||this.parseRecordType()||this.parseDictionaryType()||this.parseSetType()||this.parseCollectionType()||this.parseExpressionType()||this.parseSymbolType()||this.parseNumericType()||this.parsePrimitiveType()||this.parseValue()||this.parseTypeReference()}isFunctionSignature(){let n=this.lexer.saveState(),t=this.current;this.advance();let i=1;for(;i>0&&this.current.type!=="EOF";)this.current.type==="("?i++:this.current.type===")"&&i--,this.advance();let r=this.current.type==="->";return this.lexer.restoreState(n),this.current=t,r}parseFunctionSignature(){if(this.current.type!=="("||!this.isFunctionSignature())return;let n=[];if(this.advance(),!this.match(")")){do{let o=this.parseArgument();o||this.error("Expected argument"),n.push(o)}while(this.match(","));this.expect(")")}this.expect("->");let t=this.parseUnionType();t||this.error("Expected return type after ->");let i=n.some(o=>o.modifier==="optional"),r=n.some(o=>o.modifier==="variadic_zero"||o.modifier==="variadic_one"),s=n.filter(o=>o.modifier==="variadic_zero"||o.modifier==="variadic_one").length;return i&&r&&this.error("Variadic arguments cannot be used with optional arguments"),s>1&&this.error("There can be only one variadic argument"),this.createNode("function_signature",{arguments:n,returnType:t})}parseArgument(){let n=this.parseNamedElement();if(!n)return;let t;return this.match("?")?t="optional":this.match("*")?t="variadic_zero":this.match("+")&&(t="variadic_one"),this.createNode("argument",{element:n,modifier:t})}parseNamedElement(){let n;if(this.current.type==="IDENTIFIER"||this.current.type==="VERBATIM_STRING"){let i=this.current;if(this.lexer.peekToken().type===":"){n=i.value,this.advance(),this.advance();let s=this.parseUnionType();return s?this.createNode("named_element",{name:n,type:s}):void 0}}let t=this.parseUnionType();if(t)return this.createNode("named_element",{name:void 0,type:t})}parseListType(){if(this.current.type==="IDENTIFIER"){let n=this.current,i=this.lexer.peekToken().type==="<";switch(n.value){case"list":return i?(this.advance(),this.parseListTypeImpl()):void 0;case"vector":return i?(this.advance(),this.parseVectorType()):(this.advance(),this.createNode("list",{elementType:this.createNode("primitive",{name:"number"}),dimensions:void 0}));case"matrix":return i?(this.advance(),this.parseMatrixType()):(this.advance(),this.createNode("matrix",{elementType:this.createNode("primitive",{name:"number"}),dimensions:[this.createNode("dimension",{size:-1}),this.createNode("dimension",{size:-1})]}));case"tensor":return i?(this.advance(),this.parseTensorType()):(this.advance(),this.createNode("list",{elementType:this.createNode("primitive",{name:"number"}),dimensions:void 0}));default:return}}}parseListTypeImpl(){let n=this.createNode("primitive",{name:"any"}),t;if(this.match("<")){if(t=this.parseDimensions(),!t){let i=this.parseUnionType();i&&(n=i,this.match("^")&&(t=this.parseCaretDimensions()))}this.expect(">")}return this.createNode("list",{elementType:n,dimensions:t})}parseVectorType(){let n=this.createNode("primitive",{name:"number"}),t;if(this.match("<")){if(this.current.type==="NUMBER_LITERAL")t=parseInt(this.advance().value);else{let i=this.parseUnionType();i&&(n=i,this.match("^")&&(this.current.type==="NUMBER_LITERAL"?t=parseInt(this.advance().value):this.error("Expected number after ^")))}this.expect(">")}return this.createNode("vector",{elementType:n,size:t})}parseMatrixType(){let n=this.createNode("primitive",{name:"number"}),t;if(this.match("<")){if(t=this.parseDimensions(),!t){let i=this.parseUnionType();i&&(n=i,this.match("^")&&(t=this.parseCaretDimensions()))}this.expect(">")}else t=[this.createNode("dimension",{size:null}),this.createNode("dimension",{size:null})];return this.createNode("matrix",{elementType:n,dimensions:t})}parseTensorType(){let n=this.createNode("primitive",{name:"number"});if(this.match("<")){let t=this.parseUnionType();t&&(n=t),this.expect(">")}return this.createNode("tensor",{elementType:n})}parseDimensions(){let n=this.parseDimension();if(!n)return;let t=[n];for(;;){let i=this.current;if(i.type==="IDENTIFIER"&&/^(x\d+)+$/.test(i.value)){this.advance();for(let r of i.value.match(/x(\d+)/g))t.push(this.createNode("dimension",{size:parseInt(r.slice(1))}))}else if(i.type==="IDENTIFIER"&&i.value==="x"){let r=this.lexer.peekToken();r.type!=="NUMBER_LITERAL"&&r.type!=="?"&&this.error("Expected a positive integer literal or `?` after x. For example: `2x3` or `2x?`"),this.advance(),t.push(this.parseDimension())}else break}return t}parseDimension(){if(this.match("?"))return this.createNode("dimension",{size:null});if(this.current.type==="NUMBER_LITERAL"){let n=parseInt(this.advance().value);return this.createNode("dimension",{size:n})}}parseCaretDimensions(){let n=this.match("("),t=this.parseDimensions();return n&&this.expect(")"),t}parseTupleType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="tuple"){if(this.lexer.peekToken().type!=="<")return;this.advance(),this.expect("<");let t=[];if(this.current.type!==">"){let i=this.parseNamedElement();i||this.error("Expected tuple element"),t.push(i);let r=i.name!==void 0;for(;this.match(",");){let s=this.parseNamedElement();s||this.error("Expected tuple element"),r&&!s.name&&this.error("All tuple elements should be named, or none. Previous elements were named, but this one isn't."),!r&&s.name&&this.error("All tuple elements should be named, or none. Previous elements were not named, but this one is."),t.push(s)}}return this.expect(">"),this.createNode("tuple",{elements:t})}}parseRecordType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="record"){this.advance();let n=[];if(this.match("<")){if(this.current.type!==">")do{let t=this.parseRecordEntry();t||this.error("Expected record entry"),n.push(t)}while(this.match(","));this.expect(">")}return this.createNode("record",{entries:n})}}parseRecordEntry(){let n;if(this.current.type==="IDENTIFIER")n=this.advance().value;else if(this.current.type==="VERBATIM_STRING")n=this.advance().value;else return;this.expect(":");let t=this.parseUnionType();return t||this.error("Expected value type"),this.createNode("record_entry",{key:n,valueType:t})}parseDictionaryType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="dictionary"){this.advance();let n=this.createNode("primitive",{name:"any"});if(this.match("<")){let t=this.parseUnionType();t&&(n=t),this.expect(">")}return this.createNode("dictionary",{valueType:n})}}parseSetType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="set"){this.advance();let n=this.createNode("primitive",{name:"any"});if(this.match("<")){let t=this.parseUnionType();t&&(n=t),this.expect(">")}return this.createNode("set",{elementType:n})}}parseCollectionType(){if(this.current.type==="IDENTIFIER"){let n=this.current.value==="indexed_collection",t=this.current.value==="collection";if(n||t){this.advance();let i=this.createNode("primitive",{name:"any"});if(this.match("<")){let r=this.parseUnionType();r&&(i=r),this.expect(">")}return this.createNode("collection",{elementType:i,indexed:n})}}}parseExpressionType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="expression"){if(this.lexer.peekToken().type!=="<")return;this.advance(),this.expect("<");let i=this.expect("IDENTIFIER").value;return this.expect(">"),this.createNode("expression",{operator:i})}}parseSymbolType(){if(this.current.type==="IDENTIFIER"&&this.current.value==="symbol"){if(this.lexer.peekToken().type!=="<")return;this.advance(),this.expect("<");let i=this.expect("IDENTIFIER").value;return this.expect(">"),this.createNode("symbol",{name:i})}}parseNumericType(){if(this.current.type==="IDENTIFIER"&&["real","finite_real","rational","finite_rational","integer","finite_integer"].includes(this.current.value)){let t=this.advance().value;if(this.match("<")){let i=this.parseValue();this.expect("..");let r=this.parseValue();this.expect(">");let s=i?.value??-1/0,o=r?.value??1/0;return(Number.isNaN(s)||Number.isNaN(o))&&this.error("Invalid numeric type","Lower and upper bounds must be valid numbers"),s>o&&this.error(`Invalid range: ${s}..${o}`,"The lower bound must be less than the upper bound"),this.createNode("numeric",{baseType:t,lowerBound:i,upperBound:r})}return this.createNode("numeric",{baseType:t})}}parsePrimitiveType(){if(this.current.type==="IDENTIFIER"){let n=this.current.value;if(ze.has(n))return this.advance(),this.createNode("primitive",{name:n})}}parseValue(){let n,t;switch(this.current.type){case"STRING_LITERAL":n=this.advance().value,t="string";break;case"NUMBER_LITERAL":n=parseFloat(this.advance().value),t="number";break;case"TRUE":this.advance(),n=!0,t="boolean";break;case"FALSE":this.advance(),n=!1,t="boolean";break;case"NAN":this.advance(),n=NaN,t="nan";break;case"INFINITY":case"PLUS_INFINITY":this.advance(),n=1/0,t="infinity";break;case"MINUS_INFINITY":this.advance(),n=-1/0,t="infinity";break;default:return}return this.createNode("value",{value:n,valueType:t})}parseTypeReference(){let n=this.current.type==="IDENTIFIER"&&this.current.value==="type";if(n&&this.advance(),this.current.type==="IDENTIFIER"){let t=this.current,i=this.advance().value;return this.typeResolver.resolve(i)?this.createNode("type_reference",{name:i,isForward:n}):n&&this.typeResolver.forward(i)?this.createNode("type_reference",{name:i,isForward:!0}):(n||this.errorAtToken(t,`Unknown type "${i}"`,"Syntax error. The type was not recognized."),this.createNode("type_reference",{name:i,isForward:n}))}}};function Dr(e,n){switch(e.kind){case"function_signature":return n.visitFunctionSignature(e);case"union":return n.visitUnionType(e);case"intersection":return n.visitIntersectionType(e);case"negation":return n.visitNegationType(e);case"group":return n.visitGroupType(e);case"list":return n.visitListType(e);case"vector":return n.visitVectorType(e);case"matrix":return n.visitMatrixType(e);case"tensor":return n.visitTensorType(e);case"tuple":return n.visitTupleType(e);case"record":return n.visitRecordType(e);case"dictionary":return n.visitDictionaryType(e);case"set":return n.visitSetType(e);case"collection":return n.visitCollectionType(e);case"expression":return n.visitExpressionType(e);case"symbol":return n.visitSymbolType(e);case"numeric":return n.visitNumericType(e);case"primitive":return n.visitPrimitiveType(e);case"type_reference":return n.visitTypeReference(e);case"value":return n.visitValue(e);default:throw new Error(`Unknown node kind: ${e.kind}`)}}var Fi=class{typeResolver;constructor(n){this.typeResolver=n??{forward:()=>{},resolve:()=>{},get names(){return[]}}}buildType(n){return Dr(n,this)}visitFunctionSignature(n){let t=[],i=[],r,s;for(let u of n.arguments){let l=this.buildNamedElement(u.element);switch(u.modifier){case"optional":i.push(l);break;case"variadic_zero":r=l,s=0;break;case"variadic_one":r=l,s=1;break;default:t.push(l);break}}let o=this.buildType(n.returnType),a={kind:"signature",args:t.length>0?t:void 0,result:o};return i.length>0&&(a.optArgs=i),r&&(a.variadicArg=r,a.variadicMin=s),a}visitUnionType(n){return{kind:"union",types:n.types.map(i=>this.buildType(i))}}visitIntersectionType(n){return{kind:"intersection",types:n.types.map(i=>this.buildType(i))}}visitNegationType(n){return{kind:"negation",type:this.buildType(n.type)}}visitGroupType(n){return this.buildType(n.type)}visitListType(n){let t=this.buildType(n.elementType),i=n.dimensions?.map(r=>this.buildDimension(r));return{kind:"list",elements:t,dimensions:i}}visitVectorType(n){let t=this.buildType(n.elementType);return n.size!==void 0?{kind:"list",elements:t,dimensions:[n.size]}:{kind:"list",elements:t}}visitMatrixType(n){let t=this.buildType(n.elementType);if(n.dimensions){let i=n.dimensions.map(r=>this.buildDimension(r));return{kind:"list",elements:t,dimensions:i}}return{kind:"list",elements:t,dimensions:[-1,-1]}}visitTensorType(n){return{kind:"list",elements:this.buildType(n.elementType)}}visitTupleType(n){return{kind:"tuple",elements:n.elements.map(i=>this.buildNamedElement(i))}}visitRecordType(n){if(n.entries.length===0)return"record";let t={};for(let i of n.entries)t[i.key]=this.buildType(i.valueType);return{kind:"record",elements:t}}visitDictionaryType(n){let t=this.buildType(n.valueType);return this.isAnyType(t)?"dictionary":{kind:"dictionary",values:t}}visitSetType(n){let t=this.buildType(n.elementType);return this.isAnyType(t)?"set":{kind:"set",elements:t}}visitCollectionType(n){let t=this.buildType(n.elementType);return n.indexed?this.isAnyType(t)?"indexed_collection":{kind:"indexed_collection",elements:t}:this.isAnyType(t)?"collection":{kind:"collection",elements:t}}visitExpressionType(n){return{kind:"expression",operator:n.operator}}visitSymbolType(n){return{kind:"symbol",name:n.name}}visitNumericType(n){if(!n.lowerBound&&!n.upperBound)return n.baseType;let t=n.lowerBound?this.buildValue(n.lowerBound):-1/0,i=n.upperBound?this.buildValue(n.upperBound):1/0;return t===-1/0&&i===1/0?n.baseType:{kind:"numeric",type:n.baseType,lower:t,upper:i}}visitPrimitiveType(n){return n.name}visitTypeReference(n){let t=this.typeResolver.resolve(n.name);if(t)return t;if(n.isForward){let i=this.typeResolver.forward(n.name);if(i)return i}return n.name}visitValue(n){return{kind:"value",value:n.value}}buildNamedElement(n){let t=this.buildType(n.type);return n.name?{name:n.name,type:t}:{type:t}}buildDimension(n){return n.size??-1}buildValue(n){return n.value}isAnyType(n){return n==="any"||typeof n=="object"&&"kind"in n&&n.kind==="primitive"&&"name"in n&&n.name==="any"}};function Pr(e,n){return new Fi(n).buildType(e)}var Ht=new Map,To=2048;function _r(e){if(e===null||typeof e!="object"||Object.isFrozen(e))return e;Object.freeze(e);for(let n of Object.values(e))_r(n);return e}function Me(e,n){if(e===void 0)return;if(Zt(e))return e;if(typeof e!="string")return;let t=n===void 0;if(t){let i=Ht.get(e);if(i!==void 0)return i}try{let r=new Ut(e,{typeResolver:n}).parseType(),s=Pr(r,n);return t&&(Ht.size>=To&&Ht.clear(),Ht.set(e,_r(s))),s}catch(i){throw new Error(`Failed to parse type "${e}": ${i instanceof Error?i.message:String(i)}`)}}var Rr={number:$t,non_finite_number:[],finite_number:["finite_complex","finite_real","finite_integer","finite_rational"],complex:["finite_complex","imaginary","finite_real","finite_rational","finite_integer","non_finite_number"],finite_complex:["imaginary","finite_real","finite_rational","finite_integer"],imaginary:[],real:["rational","integer","finite_real","finite_rational","finite_integer","non_finite_number"],finite_real:["finite_rational","finite_integer"],rational:["finite_rational","finite_integer","integer","non_finite_number"],finite_rational:["finite_integer"],integer:["finite_integer","non_finite_number"],finite_integer:[],any:Ci,unknown:[],nothing:[],never:[],error:[],value:Bi,scalar:zt,collection:qt,indexed_collection:Ri,list:[],set:[],tuple:[],record:[],dictionary:[],function:[],symbol:[],boolean:[],string:[],color:[],expression:Oi},Cr=(()=>{let e={},n=t=>{if(e[t])return e[t];let i=new Set([t]);e[t]=i;for(let r of Rr[t])if(r!==t)for(let s of n(r))i.add(s);return i};for(let t of Object.keys(Rr))n(t);return e})();function Sn(e,n){return n==="any"||e==="never"?!0:e==="unknown"||n==="unknown"?!1:e===n?!0:Cr[n].has(e)}function v(e,n){if(typeof e=="string"&&!ze.has(e)&&(e=Me(e)),typeof n=="string"&&!ze.has(n)&&(n=Me(n)),n==="any"||e==="never")return!0;if(n==="never")return!1;if(n==="error")return e==="error";if(n==="nothing")return e==="nothing";if(e==="nothing")return!1;if(n==="unknown")return!0;if(e==="unknown")return!1;if(typeof n=="string")return typeof e=="string"?Sn(e,n):e.kind==="value"?typeof e.value=="boolean"?n==="boolean":typeof e.value=="number"?Number.isInteger(e.value)?Sn("integer",n):Sn("real",n):typeof e.value=="boolean"?Sn("boolean",n):typeof e.value=="string"?Sn("string",n):!1:e.kind==="union"?e.types.every(t=>v(t,n)):e.kind==="intersection"?e.types.some(t=>v(t,n)):e.kind==="negation"?!v(e.type,n):e.kind==="numeric"?!!v(e.type,n):n==="number"?Fr(e):n==="symbol"?Vi(e):n==="expression"?vo(e):n==="function"?qr(e):n==="scalar"?Vr(e):n==="value"?$r(e):n==="indexed_collection"?Jr(e):n==="collection"?Lr(e):n==="tuple"?e.kind==="tuple":n==="list"?e.kind==="list":n==="set"?e.kind==="set":n==="record"?e.kind==="record":n==="dictionary"?e.kind==="dictionary":!1;if(n.kind==="union")return typeof e!="string"&&e.kind==="union"?e.types.every(t=>n.types.some(i=>v(t,i))):n.types.some(t=>v(e,t));if(n.kind==="expression"){if(e==="symbol")return!0;if(typeof e=="string")return!1;if(e.kind==="expression")return n.operator==="Symbol"?Vi(e):e.operator===n.operator;if(e.kind==="symbol")return!0}if(typeof e=="string")return!1;if(n.kind==="reference"){if(e.kind==="reference")return e.name===n.name;if(n.alias===!0&&n.def)return v(e,n.def)}if(e.kind==="union")return e.types.some(t=>v(t,n));if(e.kind==="intersection"&&n.kind==="intersection")return n.types.every(t=>e.types.some(i=>v(i,t)));if(e.kind==="intersection")return e.types.every(t=>v(t,n));if(n.kind==="intersection")return n.types.every(t=>v(e,t));if(e.kind==="signature"&&n.kind==="signature"){if(!v(e.result,n.result))return!1;if(e.optArgs||e.variadicArg){if(n.args){if(!e.args||e.args.length!==n.args.length)return!1;for(let t=0;t<n.args.length;t++)if(!v(n.args[t].type,e.args[t].type))return!1}else if(e.args)return!1;if(n.optArgs){if(!e.optArgs||e.optArgs.length!==n.optArgs.length)return!1;for(let t=0;t<e.optArgs.length;t++)if(!v(n.optArgs[t].type,e.optArgs[t].type))return!1}else if(e.optArgs)return!1;if(n.variadicArg){if(!e.variadicArg||e.variadicMin!=n.variadicMin||!v(n.variadicArg.type,e.variadicArg.type))return!1}else if(e.variadicArg)return!1}else{if(n.args&&!e.args)return!1;let t=0;if(n.args){if(e.args.length<n.args.length)return!1;for(;t<n.args.length;){if(!v(n.args[t].type,e.args[t].type))return!1;t+=1}}if(n.optArgs){if(t>=e.args.length)return!0;for(let i=0;i<n.optArgs.length;i++){if(!v(n.optArgs[i].type,e.args[t].type))return!1;if(t+=1,t>=e.args.length)return!0}}if(n.variadicArg){if(t>=e.args.length&&n.variadicMin===0)return!0;if(n.variadicMin>0&&t+n.variadicMin>e.args.length)return!1;for(;t<e.args.length;){if(!v(n.variadicArg.type,e.args[t].type))return!1;t+=1}}}return!0}if(e.kind==="record"&&n.kind==="record"){for(let t of Object.keys(n.elements))if(!(t in e.elements)||!v(e.elements[t],n.elements[t]))return!1;return!0}if(e.kind==="dictionary"&&n.kind==="dictionary")return v(e.values,n.values);if(n.kind==="indexed_collection")return e.kind==="indexed_collection"||e.kind==="list"?v(e.elements,n.elements):e.kind==="tuple"?e.elements.every(t=>v(t.type,n.elements)):!1;if(n.kind==="collection"){if(e.kind==="collection"||e.kind==="indexed_collection"||e.kind==="list")return v(e.elements,n.elements);if(e.kind==="tuple")return e.elements.every(t=>v(t.type,n.elements));if(e.kind==="set")return v(e.elements,n.elements);if(e.kind==="dictionary")return v({kind:"tuple",elements:[{type:"string"},{type:e.values}]},n.elements);if(e.kind==="record")return v({kind:"tuple",elements:[{type:"string"},{type:we(...Object.values(e.elements))}]},n.elements)}if(e.kind==="tuple"&&n.kind==="tuple"){if(e.elements.length!==n.elements.length)return!1;for(let t=0;t<e.elements.length;t++){let i=e.elements[t],r=n.elements[t];if(!v(i.type,r.type)||i.name!==r.name)return!1}return!0}if(n.kind==="list"&&e.kind==="list"){if(!v(e.elements,n.elements))return!1;if(n.dimensions){if(!e.dimensions||e.dimensions.length!==n.dimensions.length)return!1;for(let t=0;t<e.dimensions.length;t++)if(n.dimensions[t]!==-1&&e.dimensions[t]!==n.dimensions[t])return!1}return!0}if(e.kind==="symbol"&&n.kind==="symbol")return e.name===n.name;if(e.kind==="numeric"&&n.kind==="numeric")return!(!v(e.type,n.type)||(e.lower??-1/0)<(n.lower??-1/0)||(e.upper??1/0)>(n.upper??1/0));if(n.kind==="set"&&e.kind==="set")return!!v(e.elements,n.elements);if(e.kind==="negation"&&n.kind==="negation")return v(e.type,n.type);if(n.kind==="negation")return!v(e,n.type);if(n.kind==="value"&&e.kind==="value")return n.value===e.value;if(e.kind==="value"){if(typeof e.value=="boolean")return v("boolean",n);if(typeof e.value=="number")return Number.isInteger(e.value)?v("integer",n):v("real",n);if(typeof e.value=="string")return v("string",n)}return!1}function Fr(e){return typeof e=="string"?Gt.has(e):e.kind==="value"?typeof e.value=="number":e.kind==="numeric"}function Vr(e){return Fr(e)?!0:typeof e=="string"?Ar.has(e):e.kind==="value"?["string","boolean","number"].includes(typeof e.value):!1}function Lr(e){return Jr(e)?!0:typeof e=="string"?wr.has(e):["collection","set","record","dictionary"].includes(e.kind)}function Jr(e){return typeof e=="string"?!1:["indexed_collection","list","tuple"].includes(e.kind)}function $r(e){return Vr(e)||Lr(e)}function qr(e){return e==="function"||typeof e!="string"&&e.kind==="signature"}function vo(e){return typeof e=="string"&&["expression","symbol","function"].includes(e)||$r(e)||qr(e)||Vi(e)?!0:typeof e=="string"?!1:e.kind==="expression"}function Vi(e){return e==="symbol"?!0:typeof e=="string"?!1:e.kind==="symbol"?!0:e.kind==="expression"?e.operator==="Symbol":!1}function Io(e,n){return e===n?e:e==="nothing"||n==="nothing"?"nothing":e==="any"?n:n==="any"?e:e==="never"?n:n==="never"?e:e==="unknown"?n:n==="unknown"||v(e,n)?e:v(n,e)?n:"never"}function ko(e,n){if(e===n)return e;if(e==="any"||n==="any")return"any";if(e==="never")return n;if(n==="never")return e;if(e==="unknown")return n;if(n==="unknown")return e;if(e==="nothing")return n;if(n==="nothing")return e;if(v(e,n))return n;if(v(n,e))return e;let t=wo(e,n);return So.has(t)?Mo(e,n):t}var So=new Set(["scalar","value","function","expression","collection","indexed_collection","list","set","tuple","record","dictionary","map","any"]);function Mo(e,n){let t=[],i=new Set,r=s=>{if(typeof s=="object"&&s.kind==="union"){for(let a of s.types)r(a);return}let o=typeof s=="string"?s:JSON.stringify(s);i.has(o)||(i.add(o),t.push(s))};return r(e),r(n),t.length===1?t[0]:{kind:"union",types:t}}function Li(...e){return e.length===0?"nothing":e.length===1?e[0]:e.reduce((n,t)=>Io(n,t))}function we(...e){return e.length===0?"nothing":e.length===1?e[0]:e.reduce((n,t)=>ko(n,t))}var Br=["non_finite_number","finite_integer","integer","finite_rational","rational","finite_real","real","imaginary","finite_complex","complex","finite_number","number","list","record","dictionary","set","tuple","indexed_collection","collection","scalar","value","function","expression"],Or=new Map;function wo(e,n){if(e===n)return e;if(e==="any"||n==="any")return"any";if(e==="never")return n;if(n==="never")return e;if(e==="unknown")return n;if(n==="unknown")return e;if(e==="nothing")return n;if(n==="nothing")return e;if(typeof e=="string"&&typeof n=="string"){let t=e<n?`${e}|${n}`:`${n}|${e}`,i=Or.get(t);if(i===void 0){i="any";for(let r of Br){let s=Cr[r];if(s.has(e)&&s.has(n)){i=r;break}}Or.set(t,i)}return i}for(let t of Br)if(v(e,t)&&v(n,t))return t;return"any"}var Gr=3,Zr=1,jr=2,Ao=4,Do=5,Po=6,_o=7,Ro=8,Bo=9,Oo=10,Co=11;function V(e,n=0){if(typeof e=="string")return e;let t="";switch(e.kind){case"value":typeof e.value=="string"?t=`"${e.value}"`:typeof e.value=="boolean"?t=e.value?"true":"false":t=e.value.toString();break;case"reference":t=e.name;break;case"negation":t=`!${V(e.type,Gr)}`;break;case"union":t=e.types.map(u=>V(u,Zr)).join(" | ");break;case"intersection":t=e.types.map(u=>V(u,jr)).join(" & ");break;case"expression":t=`expression<${zr(e.operator)}>`;break;case"symbol":t=`symbol<${zr(e.name)}>`;break;case"numeric":Number.isFinite(e.lower)&&Number.isFinite(e.upper)?t=`${e.type}<${e.lower}..${e.upper}>`:Number.isFinite(e.lower)?t=`${e.type}<${e.lower}..>`:Number.isFinite(e.upper)?t=`${e.type}<..${e.upper}>`:t=`${e.type}`;break;case"list":if(e.dimensions&&typeof e.elements=="string"&&Gt.has(e.elements)){if(e.dimensions===void 0)e.elements==="number"&&(t="tensor");else if(e.dimensions.length===1)e.elements==="number"?e.dimensions[0]<0?t="vector":t=`vector<${e.dimensions[0]}>`:e.dimensions[0]<0?t=`vector<${V(e.elements)}>`:t=`vector<${V(e.elements)}^${e.dimensions[0]}>`;else if(e.dimensions.length===2){let u=e.dimensions;e.elements==="number"?u[0]<0&&u[1]<0?t="matrix":t=`matrix<${u[0]}x${u[1]}>`:u[0]<0&&u[1]<0?t=`matrix<${V(e.elements)}>`:t=`matrix<${V(e.elements)}^(${u[0]}x${u[1]})>`}}if(!t){let u=e.dimensions?e.dimensions.length===1?`^${e.dimensions[0].toString()}`:`^(${e.dimensions.join("x")})`:"";t=`list<${V(e.elements)}${u}>`}break;case"record":t=`record<${Object.entries(e.elements).map(([u,l])=>`${u}: ${V(l)}`).join(", ")}>`;break;case"dictionary":t=`dictionary<${V(e.values)}>`;break;case"set":t=`set<${V(e.elements)}>`;break;case"collection":t=`collection<${V(e.elements)}>`;break;case"indexed_collection":t=`indexed_collection<${V(e.elements)}>`;break;case"tuple":if(e.elements.length===0)t="tuple";else if(e.elements.length===1){let[u]=e.elements;t=`tuple<${Ge(u)}>`}else t="tuple<"+e.elements.map(u=>Ge(u)).join(", ")+">";break;case"signature":let r=e.args?e.args.map(u=>Ge(u)).join(", "):"",s=e.optArgs?e.optArgs.map(u=>Ge(u)+"?").join(", "):"",o=e.variadicArg?e.variadicMin===0?`${Ge(e.variadicArg)}*`:`${Ge(e.variadicArg)}+`:"";t=`(${[r,s,o].filter(u=>u).join(", ")}) -> ${V(e.result)}`;break;default:t="error"}return n>0&&n>Fo(e.kind)?`(${t})`:t}function Ge(e){return e.name?`${e.name}: ${V(e.type)}`:V(e.type)}function zr(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)?e:`\`${e}\``}function Fo(e){switch(e){case"negation":return Gr;case"union":return Zr;case"intersection":return jr;case"list":return Ao;case"record":return Do;case"dictionary":return Po;case"set":return _o;case"collection":case"indexed_collection":return Ro;case"tuple":return Bo;case"signature":return Oo;case"value":return Co;default:return 0}}var te=class e{static unknown=new e("unknown");static number=new e("number");static non_finite_number=new e("non_finite_number");static finite_number=new e("finite_number");static finite_integer=new e("finite_integer");static finite_real=new e("finite_real");static string=new e("string");static dictionary=new e("dictionary");static setNumber=new e("set<number>");static setComplex=new e("set<complex>");static setImaginary=new e("set<imaginary>");static setReal=new e("set<real>");static setRational=new e("set<rational>");static setFiniteInteger=new e("set<finite_integer>");static setInteger=new e("set<integer>");type;static widen(...n){return new e(we(...n.map(t=>t instanceof e?t.type:t)))}static narrow(...n){return new e(Li(...n.map(t=>t instanceof e?t.type:t)))}constructor(n,t){typeof n=="string"?this.type=Me(n,t):this.type=n}matches(n){return n instanceof e?v(this.type,n.type):v(this.type,n)}is(n){return v(this.type,n)&&v(n,this.type)}get isUnknown(){return this.type==="unknown"}toString(){return V(this.type)}toJSON(){return V(this.type)}[Symbol.toPrimitive](n){return n==="string"?this.toString():null}valueOf(){return V(this.type)}};var Vl=Object.freeze({bySubject:new Map,membership:new Map});var jl=[0,-1,1,Math.PI,Math.E,-Math.PI,-Math.E,.5,-.5];var Ze=["Error","'missing'"];function Ae(e){return!!(typeof e=="number"||je(e)||typeof e=="string"&&Kt(e))}function je(e){return e!==null&&typeof e=="object"&&"num"in e}function Yt(e){return e!==null&&typeof e=="object"&&"sym"in e}function Yr(e){return e!==null&&typeof e=="object"&&"str"in e}function Wr(e){return e!==null&&typeof e=="object"&&"dict"in e&&typeof e.dict=="object"&&!Array.isArray(e.dict)&&e.dict!==null}function Ue(e){return e!==null&&typeof e=="object"&&"fn"in e&&Array.isArray(e.fn)&&e.fn.length>0&&typeof e.fn[0]=="string"}function A(e){return e==null?null:typeof e=="object"&&"str"in e?e.str:typeof e!="string"?null:e.length>=2&&e.at(0)==="'"&&e.at(-1)==="'"?e.substring(1,e.length-1):Kt(e)||Gi(e)?null:e}function qi(e){if(e==null||A(e)!==null)return null;let n=m(e);return n?[n,...x(e).map(t=>qi(t)).filter(t=>t!==null)]:e}function m(e){return Array.isArray(e)?e[0]:e==null?"":Ue(e)?e.fn[0]:""}function x(e){return Array.isArray(e)?e.slice(1):e!==void 0&&Ue(e)?e.fn.slice(1):[]}function c(e,n){return Array.isArray(e)?e[n]??null:e===null||!Ue(e)?null:e.fn[n]??null}function B(e){return e==null?0:Array.isArray(e)?Math.max(0,e.length-1):Ue(e)?Math.max(0,e.fn.length-1):0}function zi(e){return e==null?null:m(e)==="Hold"?c(e,1):e}function b(e){return typeof e=="string"&&Gi(e)?e.length>=2&&e.at(0)==="`"&&e.at(-1)==="`"?e.slice(1,-1):e:e==null?null:Yt(e)?e.sym:null}function Ur(e){let n=m(e);if(n==="KeyValuePair"||n==="Tuple"||n==="Pair"){let[t,i]=x(e),r=A(t);return r?[r,i??"Nothing"]:null}return null}function Xr(e){if(e===null)return null;if(Wr(e))return e;let n=Ur(e);if(n)return{dict:{[n[0]]:Hr(n[1])??"Nothing"}};if(m(e)==="Dictionary"){let t={};for(let i of x(e)){let r=Ur(i);r&&(t[r[0]]=Hr(r[1])??"Nothing")}return{dict:t}}return null}function Wt(e){return{dict:Object.fromEntries(Object.entries(e).map(([t,i])=>[t,$i(i)??"Nothing"]))}}function qo(e){if(e=e.toLowerCase().replace(/[nd]$/,"").replace(/[\u0009-\u000d\u0020\u00a0]/g,""),e==="nan")return NaN;if(/^(infinity|\+infinity|oo|\+oo)$/i.test(e))return 1/0;if(/^(-infinity|-oo)$/.test(e))return-1/0;if(/\([0-9]+\)/.test(e)){let[n,t,i,r]=e.match(/(.+)\(([0-9]+)\)(.*)$/)??[];e=t+i.repeat(Math.ceil(16/i.length))+(r??"")}return parseFloat(e)}function I(e){return typeof e=="number"?e:typeof e=="string"&&Kt(e)?qo(e):e!==void 0&&je(e)?I(e.num):null}function He(e){if(e==null)return null;if(b(e)==="Half")return[1,2];let n=m(e);if(!n)return null;let t=null,i=null;if(n==="Negate"){let r=He(x(e)[0]);if(r)return[-r[0],r[1]]}if(n==="Rational"||n==="Divide"){let[r,s]=x(e);t=I(r)??NaN,i=I(s)??NaN}if(n==="Power"){let[r,s]=x(e),o=I(s);o===1?(t=I(r),i=1):o===-1&&(t=1,i=I(r))}if(n==="Multiply"){let[r,s]=x(e);if(m(s)==="Power"){let[o,a]=x(s);I(a)===-1&&(t=I(r),i=I(o))}}return t===null||i===null?null:Number.isInteger(t)&&Number.isInteger(i)?[t,i]:null}function Xt(e,n){let t=null;if(Array.isArray(e)&&(t=e),Ue(e)&&(t=e.fn),t===null)return[];let i=1,r=[];for(;i<t.length;)r.push(n(t[i])),i+=1;return r}function Ye(e,n,t){let i=m(n),r=m(t);return i===e&&r===e?[e,...x(n),...x(t)]:i===e?[e,...x(n),t]:r===e?[e,n,...x(t)]:[e,n,t]}function De(e){if(e==null)return null;let n=m(e);if(n==="Delimiter"){if(e=c(e,1),e===null)return[];if(n=m(e),n!=="Sequence")return[e]}return n!=="Sequence"?null:x(e)}function D(e){return e==null||e==="Nothing"?!0:m(e)==="Sequence"&&B(e)===0}function P(e){return D(e)?Ze:e}function Kt(e){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(e)||/^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(e)}function Gi(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)||e.length>=2&&e[0]==="`"&&e[e.length-1]==="`"}function $i(e){if(typeof e=="string")return{str:e};if(typeof e=="number")return{num:e.toString()};if(typeof e=="boolean")return e?"True":"False";if(Array.isArray(e))return["List",...e.map(n=>$i(n)??"Nothing")];if(e===null)return null;if(typeof e=="object"){let n={};for(let t in e)n[t]=$i(e[t])??"Nothing";return{dict:n}}return Ue(e)||Yt(e)||je(e)||Yr(e)||Wr(e)?e:null}function Hr(e){return e==null?null:Yr(e)?e.str:je(e)?parseFloat(e.num):Yt(e)?e.sym:typeof e=="string"||typeof e=="number"?e:Array.isArray(e)?{fn:e}:e}var Qr=[{name:"True",kind:"symbol",latexTrigger:["\\top"]},{kind:"symbol",latexTrigger:"\\mathrm{True}",parse:"True"},{kind:"symbol",latexTrigger:"\\operatorname{True}",parse:"True"},{kind:"symbol",latexTrigger:"\\mathsf{T}",parse:"True"},{name:"False",kind:"symbol",latexTrigger:["\\bot"]},{kind:"symbol",latexTrigger:"\\operatorname{False}",parse:"False"},{kind:"symbol",latexTrigger:"\\mathsf{F}",parse:"False"},{name:"And",kind:"infix",latexTrigger:["\\land"],precedence:235},{kind:"infix",latexTrigger:["\\wedge"],parse:"And",precedence:235},{kind:"infix",latexTrigger:"\\&",parse:"And",precedence:235},{kind:"infix",latexTrigger:"\\operatorname{and}",parse:"And",precedence:235},{name:"Or",kind:"infix",latexTrigger:["\\lor"],precedence:230},{kind:"infix",latexTrigger:["\\vee"],parse:"Or",precedence:230},{kind:"infix",latexTrigger:"\\parallel",parse:"Or",precedence:230},{kind:"infix",latexTrigger:"\\operatorname{or}",parse:"Or",precedence:230},{name:"Xor",kind:"infix",latexTrigger:["\\veebar"],precedence:232},{name:"Not",kind:"prefix",latexTrigger:["\\lnot"],precedence:880},{kind:"prefix",latexTrigger:["\\neg"],parse:"Not",precedence:880},{name:"Nand",kind:"infix",latexTrigger:["\\barwedge"],precedence:232},{name:"Nor",kind:"infix",latexTrigger:["\u22BD"],precedence:232},{kind:"function",symbolTrigger:"and",parse:"And"},{kind:"function",symbolTrigger:"or",parse:"Or"},{kind:"function",symbolTrigger:"not",parse:"Not"},{name:"Implies",kind:"infix",precedence:220,associativity:"right",latexTrigger:["\\implies"],serialize:"\\implies"},{latexTrigger:["\\Rightarrow"],kind:"infix",precedence:220,associativity:"right",parse:"Implies"},{latexTrigger:["\\rightarrow"],kind:"infix",precedence:220,associativity:"right",parse:"Implies"},{latexTrigger:["\\Longrightarrow"],kind:"infix",precedence:220,associativity:"right",parse:"Implies"},{latexTrigger:["\\longrightarrow"],kind:"infix",precedence:220,associativity:"right",parse:"Implies"},{latexTrigger:["=",">"],kind:"infix",precedence:220,associativity:"right",parse:(e,n,t)=>{if(e.options.strict!==!1)return null;let i=e.parseExpression({...t,minPrec:220});return i===null?null:["Implies",n,i]}},{name:"Equivalent",latexTrigger:["\\iff"],kind:"infix",associativity:"right",precedence:219},{latexTrigger:["\\Leftrightarrow"],kind:"infix",associativity:"right",precedence:219,parse:"Equivalent"},{latexTrigger:["\\leftrightarrow"],kind:"infix",associativity:"right",precedence:219,parse:"Equivalent"},{latexTrigger:["\\Longleftrightarrow"],kind:"infix",associativity:"right",precedence:219,parse:"Equivalent"},{latexTrigger:["\\longleftrightarrow"],kind:"infix",associativity:"right",precedence:219,parse:"Equivalent"},{latexTrigger:["<","=",">"],kind:"infix",precedence:219,associativity:"right",parse:(e,n,t)=>{if(e.options.strict!==!1)return null;let i=e.parseExpression({...t,minPrec:219});return i===null?null:["Equivalent",n,i]}},{latexTrigger:["\\equiv"],kind:"infix",associativity:"right",precedence:219,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:219}),r=e.index,s=e.parseExpression({...t,minPrec:219});return s!==null&&m(s)==="Mod"?["Congruent",n,i,P(c(s,1))]:(e.index=r,["Equivalent",n,P(i)])}},{name:"Proves",kind:"infix",latexTrigger:["\\vdash"],precedence:220,associativity:"right",serialize:"\\vdash"},{name:"Entails",kind:"infix",latexTrigger:["\\vDash"],precedence:220,associativity:"right",serialize:"\\vDash"},{name:"Satisfies",kind:"infix",latexTrigger:["\\models"],precedence:220,associativity:"right",serialize:"\\models"},{name:"ForAll",kind:"prefix",latexTrigger:["\\forall"],precedence:200,serialize:Mn("\\forall"),parse:Ne("ForAll")},{name:"Exists",kind:"prefix",latexTrigger:["\\exists"],precedence:200,serialize:Mn("\\exists"),parse:Ne("Exists")},{name:"ExistsUnique",kind:"prefix",latexTrigger:["\\exists","!"],precedence:200,serialize:Mn("\\exists!"),parse:Ne("ExistsUnique")},{name:"NotForAll",kind:"prefix",latexTrigger:["\\lnot","\\forall"],precedence:200,serialize:Mn("\\lnot\\forall"),parse:Ne("NotForAll")},{name:"NotExists",kind:"prefix",latexTrigger:["\\lnot","\\exists"],precedence:200,serialize:Mn("\\lnot\\exists"),parse:Ne("NotExists")},{name:"KroneckerDelta",kind:"prefix",latexTrigger:["\\delta","_"],precedence:200,serialize:(e,n)=>{let t=x(n);return t.length===0?"\\delta":t.every(i=>b(i))?`\\delta_{${t.map(i=>e.serialize(i)).join("")}}`:`\\delta_{${t.map(i=>e.serialize(i)).join(", ")}}`},parse:e=>{let n=e.parseGroup();if(n===null){let i=e.parseToken();return i?["KroneckerDelta",i]:null}let t=De(n);return t&&t.length<=2?["KroneckerDelta",...t]:m(n)==="InvisibleOperator"?["KroneckerDelta",...x(n)]:n!==null?["KroneckerDelta",n]:null}},{name:"Boole",kind:"matchfix",openTrigger:"[",closeTrigger:"]",parse:(e,n)=>{let t=m(n);return!t||!$e.some(i=>i.name===t)?null:["Boole",n]}},{kind:"matchfix",openTrigger:"\\llbracket",closeTrigger:"\\rrbracket",parse:(e,n)=>{let t=m(n);return!t||!$e.some(i=>i.name===t)?null:["Boole",n]}},{name:"Predicate",serialize:(e,n)=>{let t=x(n);if(t.length===0)return"";let i=t[0],r=typeof i=="string"?i:e.serialize(i);if(t.length===1)return r;let s=t.slice(1).map(o=>e.serialize(o));return`${r}(${s.join(", ")})`}}];function Mn(e){return(n,t)=>{let i=x(t);if(i.length===0)return e;if(i.length===1)return`${e} ${n.serialize(i[0])}`;let r=n.serialize(i[0]),s=n.serialize(i[1]);return`${e} ${r}, ${s}`}}function Kr(e,n){return e.peek==="\\to"||e.peek==="\\rightarrow"||e.peek==="\\implies"||e.peek==="\\Rightarrow"||e.peek==="\\iff"||e.peek==="\\Leftrightarrow"||e.peek==="\\land"||e.peek==="\\wedge"||e.peek==="\\lor"||e.peek==="\\vee"||(n.condition?.(e)??!1)}function Ne(e){return(n,t)=>{let i=n.index,r=n.options.quantifierScope!=="loose",s=n.parseSymbol(t);if(s){if(n.skipSpace(),n.match(",")||n.match("\\mid")||n.match(".")||n.match(":")||n.match("\\colon")){let l=r?{...t,condition:h=>Kr(h,t)}:t;n.enterQuantifierScope();let f=n.parseExpression(l);return n.exitQuantifierScope(),[e,s,P(f)]}n.enterQuantifierScope();let u=n.parseEnclosure();if(n.exitQuantifierScope(),u)return[e,s,P(u)]}n.index=i;let o={...t,condition:u=>u.peek===":"||u.peek==="\\colon"||(t.condition?.(u)??!1)},a=n.parseExpression(o);if(a===null)return null;if(n.skipSpace(),n.matchAny([",","\\mid",":","\\colon"])){let u=r?{...t,condition:f=>Kr(f,t)}:t;n.enterQuantifierScope();let l=n.parseExpression(u);return n.exitQuantifierScope(),[e,a,P(l)]}if(n.match("(")){n.enterQuantifierScope();let u=n.parseExpression(t);return n.exitQuantifierScope(),n.match(")")?[e,a,P(u)]:null}return null}}var zo={x:"First",y:"Second",z:"Third",real:"Real",re:"Real",imag:"Imaginary",im:"Imaginary",count:"Length",total:"Sum",max:"Max",min:"Min"};function Zi(e){return zo[e]??null}function Go(e,n){if(e.skipVisualSpace(),e.match("\\operatorname")){let i=e.parseStringGroup();if(i===null)return null;let r=Zi(i.trim());return r===null?null:[r,n]}let t=e.peek;if(typeof t=="string"&&t.startsWith("\\")){let i=t.slice(1),r=Zi(i);return r!==null?(e.nextToken(),[r,n]):null}if(typeof t=="string"&&/^[a-zA-Z]$/.test(t)){let i=Zi(t);return i===null?null:(e.nextToken(),[i,n])}return null}function es(e,n,t){e.addBoundary(t),e.skipVisualSpace();let i=e.parseExpression({minPrec:0});return i===null||(e.skipVisualSpace(),!e.matchBoundary())?(e.removeBoundary(),null):["When",n,i]}function ji(e,n,t,i,r){if(n&&n.minPrec>=i)return null;let s=t?[t]:["Nothing"],o=!1;for(;!o;){for(o=!0,e.skipSpace();e.match(r);)s.push("Nothing"),e.skipSpace();if(e.skipVisualSpace(),e.atTerminator(n))s.push("Nothing");else{let a=e.parseExpression({...n,minPrec:i});s.push(a??"Nothing"),o=a===null}o||(e.skipSpace(),o=!e.match(r),o||e.skipVisualSpace())}return s}function se(e=""){return(n,t)=>{if(!t)return"";let i=x(t);if(i.length===0)return"";if(i.length===1)return n.serialize(i[0]);e={"&":"\\&",":":"\\colon","|":"\\mvert","-":"-","\xB7":"\\cdot","\u2012":"-","\u2013":"--","\u2014":"---","\u2015":"-","\u2022":"\\bullet","\u2026":"\\ldots"}[e]??e;let r=i.reduce((s,o)=>(s.push(n.serialize(o),e),s),[]);return r.pop(),g(r)}}var os=[{latexTrigger:["\\placeholder"],kind:"symbol",parse:e=>{for(;e.match("<space>"););if(e.match("["))for(;!e.match("]")&&!e.atBoundary;)e.nextToken();for(;e.match("<space>"););if(e.match("<{>"))for(;!e.match("<}>")&&!e.atBoundary;)e.nextToken();return"Nothing"}},{name:"ContinuationPlaceholder",latexTrigger:["\\dots"]},{latexTrigger:["\\ldots"],parse:"ContinuationPlaceholder"},{latexTrigger:[".",".","."],parse:"ContinuationPlaceholder"},{name:"Function",latexTrigger:["\\mapsto"],kind:"infix",precedence:pe,parse:(e,n,t)=>{let i=[];if(m(n)==="Delimiter"&&(n=c(n,1)??"Nothing"),m(n)==="Sequence")for(let s of x(n)){if(!b(s))return null;i.push(b(s))}else{if(!b(n))return null;i=[b(n)]}let r=e.parseExpression({minPrec:pe})??"Nothing";return m(r)==="Delimiter"&&(r=c(r,1)??"Nothing"),m(r)==="Sequence"&&(r=["Block",...x(r)]),["Function",r,...i]},serialize:(e,n)=>{let t=x(n);return t.length<1?"()\\mapsto()":t.length===1?g(["()","\\mapsto",e.serialize(c(n,1))]):t.length===2?g([e.serialize(c(n,2)),"\\mapsto",e.serialize(c(n,1))]):g([e.wrapString(x(n)?.slice(1).map(i=>e.serialize(i)).join(", "),"normal"),"\\mapsto",e.serialize(c(n,1))])}},{name:"Apply",kind:"function",symbolTrigger:"apply",serialize:(e,n)=>{let t=c(n,1),i=m(t);if(i==="InverseFunction"||i==="Derivative"){let o=e.options.applyFunctionStyle(n,e.level),a=x(n).slice(1);return e.serializeFunction(t,e.dictionary.ids.get(i))+e.wrapString(a.map(u=>e.serialize(u)).join(", "),o)}let r=c(n,2);if(typeof t=="string"||!r){let o=x(n).slice(1);return e.serialize(o)}if(B(n)===2)return g([e.wrap(t,20),"\\lhd",e.wrap(r,20)]);let s=e.options.applyFunctionStyle(n,e.level);return g(["\\operatorname{apply}",e.wrapString(e.serialize(i)+", "+e.serialize(["List",...x(n)]),s)])}},{latexTrigger:"\\lhd",kind:"infix",precedence:20,parse:"Apply"},{latexTrigger:"\\rhd",kind:"infix",precedence:20,parse:(e,n,t)=>["Apply",e.parseExpression({minPrec:21})??"Nothing",n]},{name:"EvaluateAt",openTrigger:".",closeTrigger:"|",kind:"matchfix",serialize:(e,n)=>{let t=c(n,1);if(!t)return"";let i=x(n).slice(1);if(m(t)==="Function"){let r=x(t).slice(1),s=c(t,1);if(m(s)==="Block"&&B(s)===1&&(s=c(s,1)),r.length>0)return`\\left.\\left(${e.serialize(s)}\\right)\\right|_{${r.map((o,a)=>`${e.serialize(o)}=${e.serialize(i[a])}`).join(", ")}}`}return`\\left.\\left(${e.serialize(t)}\\right)\\right|_{${i.map(r=>e.serialize(r)).join(", ")}}`}},{name:"Assign",latexTrigger:"\\coloneq",kind:"infix",associativity:"right",precedence:In,serialize:(e,n)=>{let t=zi(c(n,1));if(m(c(n,2))==="Function"){let i=c(n,2),r=zi(c(i,1)),s=x(i).slice(1);return g([e.serialize(t),e.wrapString(s.map(o=>e.serialize(o)).join(", "),e.options.applyFunctionStyle(n,e.level)),"\\coloneq",e.serialize(r)])}return g([e.serialize(t),"\\coloneq",e.serialize(c(n,2))])},parse:ei},{latexTrigger:"\\coloneqq",kind:"infix",associativity:"right",precedence:In,parse:ei},{latexTrigger:"\\colonequals",kind:"infix",associativity:"right",precedence:In,parse:ei},{latexTrigger:[":","="],kind:"infix",associativity:"right",precedence:In,parse:ei},{name:"Colon",latexTrigger:":",kind:"infix",associativity:"right",precedence:240,serialize:(e,n)=>g([e.serialize(c(n,1)),"\\colon",e.serialize(c(n,2))])},{latexTrigger:"\\colon",kind:"infix",associativity:"right",precedence:240,parse:"Colon"},{name:"BaseForm",serialize:(e,n)=>{let t=I(c(n,2))??NaN;if(isFinite(t)&&t>=2&&t<=36){let i=I(c(n,1))??NaN;if(isFinite(i)&&Number.isInteger(i)){let r=Number(i).toString(t),s=0;if(t===2||t===10?s=4:t===16?s=2:t>16&&(s=4),s>0){let o=r;r="";for(let a=0;a<o.length;a++)a>0&&a%s===0&&(r="\\, "+r),r=o[o.length-a-1]+r}return`(\\text{${r}}_{${t}}`}}return"\\operatorname{BaseForm}("+e.serialize(c(n,1))+", "+e.serialize(c(n,2))+")"}},{name:"Sequence",serialize:se(" ")},{name:"InvisibleOperator",serialize:se("")},{name:"Delimiter",serialize:(e,n)=>{let t=e.options.groupStyle(n,e.level+1),i=c(n,1),r={Set:"{,}",List:"[,]",Tuple:"(,)",Single:"(,)",Pair:"(,)",Triple:"(,)",Sequence:"(,)",String:'""'}[m(i)],s=r?i:["Sequence",i];if(r??="(,)",B(n)>1){let f=A(c(n,2));typeof f=="string"&&f.length<=3&&(r=f)}let[o,a,u]=["","",""];r.length===3?[o,a,u]=r:r.length===2?[o,u]=r:r.length===1&&(a=r);let l=i?s?se(a)(e,s):e.serialize(i):"";return e.wrapString(l,t,o+u)}},{name:"Tuple",serialize:(e,n)=>g(["(",se(",")(e,n),")"])},{name:"Pair",serialize:(e,n)=>g(["(",se(",")(e,n),")"])},{name:"Triple",serialize:(e,n)=>g(["(",se(",")(e,n),")"])},{name:"Single",serialize:(e,n)=>g(["(",se(",")(e,n),")"])},{name:"Domain",serialize:(e,n)=>m(n)==="Error"?e.serialize(n):`\\mathbf{${e.serialize(c(n,1))}}`},{latexTrigger:["\\mathtip"],parse:e=>{let n=e.parseGroup();return e.parseGroup(),n}},{latexTrigger:["\\texttip"],parse:e=>{let n=e.parseGroup();return e.parseGroup(),n}},{latexTrigger:["\\error"],parse:e=>["Error",e.parseGroup()]},{name:"Error",serialize:(e,n)=>{let t=c(n,1);if(A(t)==="missing")return`\\error{${e.options.missingSymbol??"\\placeholder{}"}}`;let i=jo(e,n)||"\\blacksquare",r=m(t)==="ErrorCode"?A(c(t,1)):A(t);return r==="incompatible-type"?b(c(t,3))==="Undefined"?`\\mathtip{\\error{${i}}}{\\notin ${e.serialize(c(t,2))}}`:`\\mathtip{\\error{${i}}}{\\in ${e.serialize(c(t,3))}\\notin ${e.serialize(c(t,2))}}`:typeof r=="string"?`\\error{${i}}`:`\\error{${i}}`}},{name:"ErrorCode",serialize:(e,n)=>{let t=A(c(n,1));return t==="missing"?e.options.missingSymbol??"\\placeholder{}":t==="unexpected-command"||t==="unexpected-operator"||t==="unexpected-token"||t==="invalid-symbol"||t==="unknown-environment"||t==="unexpected-base"||t==="incompatible-type"?"":`\\texttip{\\error{\\blacksquare}}{\\mathtt{${t}}}`}},{name:"FromLatex",serialize:(e,n)=>`\\texttt{${ns(A(c(n,1)))}}`},{name:"Latex",serialize:(e,n)=>n===null?"":g(Xt(n,t=>A(t)??e.serialize(t)))},{name:"LatexString",serialize:(e,n)=>n===null?"":g(Xt(n,t=>e.serialize(t)))},{name:"LatexTokens",serialize:Zo},{kind:"postfix",precedence:850,latexTrigger:["."],parse:Go},{name:"At",kind:"postfix",precedence:810,latexTrigger:["["],parse:Hi("]"),serialize:(e,n)=>g(["\\lbrack",se(", ")(e,n),"\\rbrack"])},{kind:"postfix",precedence:810,latexTrigger:["\\lbrack"],parse:Hi("\\rbrack")},{kind:"postfix",precedence:810,latexTrigger:["\\left","\\lbrack"],parse:Hi("\\right","\\rbrack")},{name:"When",kind:"postfix",precedence:800,latexTrigger:["\\left","\\{"],parse:(e,n)=>es(e,n,["\\right","\\}"]),serialize:(e,n)=>{let t=c(n,1),i=c(n,2);if(!t||!i)return"";let s=(m(i)==="And"?x(i)??[]:[i]).map(o=>`\\left\\{${e.serialize(o)}\\right\\}`).join("");return`${e.serialize(t)}${s}`}},{kind:"postfix",precedence:800,latexTrigger:["\\{"],parse:(e,n)=>es(e,n,["\\}"])},{kind:"postfix",latexTrigger:["_"],parse:(e,n,t)=>{let i=e.parseGroup()??e.parseToken();i===null&&e.options.strict===!1&&e.peek==="("&&(i=e.parseEnclosure());let r=b(n);return i!==null&&(r&&e.getSymbolType(r).matches("indexed_collection")||m(n)==="List")?(m(i)==="Delimiter"&&(i=c(i,1)??"Nothing"),m(i)==="Sequence"?["At",n,...x(i)]:["At",n,i]):["Subscript",n,i]}},{name:"List",kind:"matchfix",openTrigger:"[",closeTrigger:"]",parse:as,serialize:Ho},{kind:"matchfix",openTrigger:"(",closeTrigger:")",parse:Uo},{latexTrigger:[","],kind:"infix",precedence:20,parse:(e,n,t)=>{let i=ji(e,t,n,20,",");return i===null?null:["Delimiter",["Sequence",...i],{str:","}]}},{latexTrigger:[","],kind:"prefix",precedence:20,parse:(e,n)=>{let t=ji(e,n,null,20,",");return t===null?null:["Delimiter",["Sequence",...t],{str:","}]}},{name:"Range",latexTrigger:[".","."],kind:"infix",precedence:800,parse:Qt,serialize:(e,n)=>{let t=x(n);if(t.length===0)return"";if(t.length===1)return"1.."+e.serialize(c(n,1));if(t.length===2)return e.wrap(c(n,1),10)+".."+e.wrap(c(n,2),10);if(t.length===3){let i=I(c(n,3)),r=I(c(n,1));return i!==null&&r!==null?e.wrap(c(n,1),10)+".."+e.wrap(r+i,10)+".."+e.wrap(c(n,2),10):e.wrap(c(n,1),10)+"..("+(e.wrap(c(n,1),C)+"+"+e.wrap(c(n,3),C))+").."+e.wrap(c(n,2),10)}return""}},{latexTrigger:[".",".","."],kind:"infix",precedence:800,parse:Qt},{latexTrigger:["\\ldots"],kind:"infix",precedence:800,parse:Qt},{latexTrigger:["\\dots"],kind:"infix",precedence:800,parse:Qt},{latexTrigger:[";"],kind:"infix",precedence:19,parse:(e,n,t)=>{let i=ji(e,t,n,19,";");return i===null?null:i.some(r=>m(r)==="Assign")?Yo(i):["Delimiter",["Sequence",...i],"';'"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"none",precedence:21,parse:(e,n,t)=>{let i=e.index;return U(e,"where")?ss(e,n,t):(e.index=i,null)}},{symbolTrigger:"where",kind:"infix",associativity:"none",precedence:21,parse:(e,n,t)=>ss(e,n,t)},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:235,parse:(e,n,t)=>{let i=e.index;if(!U(e,"and"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:235});return["And",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:230,parse:(e,n,t)=>{let i=e.index;if(!U(e,"or"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:230});return["Or",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:219,parse:(e,n,t)=>{let i=e.index;if(!U(e,"iff"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:219});return["Equivalent",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:219,parse:(e,n,t)=>{let i=e.index;if(!U(e,"if and only if"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:219});return["Equivalent",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"infix",associativity:"right",precedence:21,parse:(e,n,t)=>{let i=e.index;if(!U(e,"such that"))return e.index=i,null;let r=e.parseExpression({...t,minPrec:21});return["Colon",n,r??"Nothing"]}},{latexTrigger:["\\text"],kind:"prefix",precedence:200,parse:(e,n)=>{let t=e.index;return U(e,"for all")?Ne("ForAll")(e,n):(e.index=t,null)}},{latexTrigger:["\\text"],kind:"prefix",precedence:200,parse:(e,n)=>{let t=e.index;return U(e,"there exists")?Ne("Exists")(e,n):(e.index=t,null)}},{name:"Block",serialize:(e,n)=>{let t=x(n);return!t||t.length===0?"":t.filter(r=>m(r)!=="Declare").map(r=>e.serialize(r)).join("; ")}},{name:"If",serialize:(e,n)=>{let t=x(n);return!t||t.length<3?"":g(["\\text{if }",e.serialize(t[0]),"\\text{ then }",e.serialize(t[1]),"\\text{ else }",e.serialize(t[2])])}},{name:"Loop",serialize:(e,n)=>{let t=x(n);if(!t||t.length<2)return"";let i=t[0],r=t.slice(1);if(!r.every(a=>m(a)==="Element"))return g(["\\operatorname{Loop}(",e.serialize(i),", ",e.serialize(r[0]),")"]);if(r.length===1){let a=r[0],u=c(a,1),l=c(a,2);if(m(l)==="Range"){let f=c(l,1),h=c(l,2);return g(["\\text{for }",e.serialize(u),"\\text{ from }",e.serialize(f),"\\text{ to }",e.serialize(h),"\\text{ do }",e.serialize(i)])}return g([e.serialize(i)," \\operatorname{for} ",e.serialize(u)," = ",e.serialize(l)])}let o=r.map(a=>{let u=c(a,1),l=c(a,2);return g([e.serialize(u)," = ",e.serialize(l)])}).join(", ");return g([e.serialize(i)," \\operatorname{for} ",o])}},{name:"Break",serialize:()=>"\\text{break}"},{name:"Continue",serialize:()=>"\\text{continue}"},{name:"Return",serialize:(e,n)=>{let t=c(n,1);return!t||b(t)==="Nothing"?"\\text{return}":g(["\\text{return }",e.serialize(t)])}},{symbolTrigger:"if",kind:"prefix",precedence:245,parse:(e,n)=>is(e,n)},{symbolTrigger:"for",kind:"prefix",precedence:245,parse:(e,n)=>rs(e,n)},{symbolTrigger:"for",kind:"infix",associativity:"none",precedence:19,parse:(e,n,t)=>us(e,n,t)},{symbolTrigger:"break",kind:"prefix",precedence:245,parse:()=>["Break"]},{symbolTrigger:"continue",kind:"prefix",precedence:245,parse:()=>["Continue"]},{symbolTrigger:"return",kind:"prefix",precedence:245,parse:(e,n)=>["Return",e.parseExpression(n)??"Nothing"]},{name:"Text",serialize:(e,n)=>{let t=x(n);if(t.length===0)return"";let i=-1,r=-1;for(let a=0;a<t.length;a++)A(t[a])!==null&&(i<0&&(i=a),r=a);if(i<0)return g(t.map(a=>e.serialize(a)));let s=[];for(let a=0;a<i;a++)s.push(e.serialize(t[a]));let o="";for(let a=i;a<=r;a++){let u=A(t[a]);u!==null?o+=ns(u):m(t[a])==="Annotated"||m(t[a])==="Text"?o+=e.serialize(t[a]):o+="$"+e.serialize(t[a])+"$"}s.push("\\text{"+o+"}");for(let a=r+1;a<t.length;a++)s.push(e.serialize(t[a]));return g(s)}},{name:"String",latexTrigger:["\\text"],parse:(e,n)=>{let t=e.index;return U(e,"if")?is(e,n):(e.index=t,U(e,"for")?rs(e,n):(e.index=t,U(e,"break")?["Break"]:(e.index=t,U(e,"continue")?["Continue"]:(e.index=t,U(e,"return")?["Return",e.parseExpression(n)??"Nothing"]:(e.index=t,re(e))))))},serialize:(e,n)=>{let t=x(n);return t.length===0?"\\text{}":g(["\\text{",t.map(i=>e.serialize(i)).join(""),"}"])}},{name:"Subscript",latexTrigger:["_"],kind:"infix",serialize:(e,n)=>B(n)===2?e.serialize(c(n,1))+"_{"+e.serialize(c(n,2))+"}":"_{"+e.serialize(c(n,1))+"}"},{name:"Superplus",latexTrigger:["^","+"],kind:"postfix"},{name:"Subplus",latexTrigger:["_","+"],kind:"postfix"},{name:"Superminus",latexTrigger:["^","-"],kind:"postfix",parse:(e,n)=>e.options.strict===!1&&/^[0-9]$/.test(e.peek)?null:["Superminus",n]},{name:"Subminus",latexTrigger:["_","-"],kind:"postfix"},{latexTrigger:["^","*"],kind:"postfix",parse:(e,n)=>["Superstar",n]},{latexTrigger:["_","*"],kind:"postfix",parse:(e,n)=>["Substar",n]},{name:"Substar",latexTrigger:["_","\\star"],kind:"postfix"},{name:"Superdagger",latexTrigger:["^","\\dagger"],kind:"postfix"},{latexTrigger:["^","\\dag"],kind:"postfix",parse:(e,n)=>["Superdagger",n]},{name:"Prime",latexTrigger:["^","\\prime"],kind:"postfix",parse:(e,n)=>me(e,n,1),serialize:(e,n)=>{let t=I(c(n,2))??1,i=e.serialize(c(n,1));return t===1?i+"^\\prime":t===2?i+"^\\doubleprime":t===3?i+"^\\tripleprime":i+"^{("+e.serialize(c(n,2))+")}"}},{latexTrigger:"^{\\prime\\prime}",kind:"postfix",parse:(e,n)=>me(e,n,2)},{latexTrigger:"^{\\prime\\prime\\prime}",kind:"postfix",parse:(e,n)=>me(e,n,3)},{latexTrigger:["^","\\doubleprime"],kind:"postfix",parse:(e,n)=>me(e,n,2)},{latexTrigger:["^","\\tripleprime"],kind:"postfix",parse:(e,n)=>me(e,n,3)},{latexTrigger:"'",kind:"postfix",precedence:810,parse:(e,n)=>me(e,n,1)},{latexTrigger:"\\prime",kind:"postfix",precedence:810,parse:(e,n)=>me(e,n,1)},{latexTrigger:"\\doubleprime",kind:"postfix",precedence:810,parse:(e,n)=>me(e,n,2)},{latexTrigger:"\\tripleprime",kind:"postfix",precedence:810,parse:(e,n)=>me(e,n,3)},{latexTrigger:["^","<{>","("],kind:"postfix",parse:(e,n,t)=>{let i=b(n);if(!i||!e.getSymbolType(i).matches("function"))return null;e.addBoundary([")"]);let r=e.parseExpression(t);return e.matchBoundary()?e.match("<}>")?["Derivative",n,r]:null:(e.removeBoundary(),null)}},{name:"InverseFunction",latexTrigger:"^{-1",kind:"postfix",parse:(e,n)=>{if(m(n)==="Matrix")return e.match("<}>"),["Inverse",n];let t=b(n);if(!t)return null;let i=e.getSymbolType(t);if(i.matches(new te("matrix")))return e.match("<}>"),["Inverse",n];if(!i.matches("function"))return null;let r=0;for(;!e.atEnd&&!e.match("<}>");)if(e.match("'"))r++;else if(e.match("\\prime"))r++;else if(e.match("\\doubleprime"))r+=2;else if(e.match("\\tripleprime"))r+=3;else return null;return r===1?["Derivative",["InverseFunction",n]]:r>0?["Derivative",["InverseFunction",n],r]:["InverseFunction",n]},serialize:(e,n)=>e.serialize(c(n,1))+"^{-1}"},{name:"Derivative",serialize:(e,n)=>{let t=I(c(n,2))??1,i=e.serialize(c(n,1));return t===1?i+"^{\\prime}":t===2?i+"^{\\doubleprime}":t===3?i+"^{\\tripleprime}":i+"^{("+e.serialize(c(n,2))+")}"}},{name:"D",serialize:(e,n)=>{if(m(n)!=="D")return"D";let t=c(n,1),i=c(n,2);if(!t||!i)return"D";let r=1,s=t;for(;m(s)==="D";){let l=c(s,2);if(b(l)===b(i))r++,s=c(s,1);else break}let o=s;m(s)==="Function"&&(o=c(s,1)??s);let a=e.serialize(o),u=e.serialize(i);return r===1?`\\frac{\\mathrm{d}}{\\mathrm{d}${u}}${a}`:`\\frac{\\mathrm{d}^{${r}}}{\\mathrm{d}${u}^{${r}}}${a}`}},{name:"NewtonDerivative1",latexTrigger:["\\dot"],kind:"prefix",precedence:740,parse:e=>{let n=e.parseGroup();if(n===null)return null;let t=e.options.timeDerivativeVariable;return["D",n,t]}},{name:"NewtonDerivative2",latexTrigger:["\\ddot"],kind:"prefix",precedence:740,parse:e=>{let n=e.parseGroup();if(n===null)return null;let t=e.options.timeDerivativeVariable;return["D",["D",n,t],t]}},{name:"NewtonDerivative3",latexTrigger:["\\dddot"],kind:"prefix",precedence:740,parse:e=>{let n=e.parseGroup();if(n===null)return null;let t=e.options.timeDerivativeVariable;return["D",["D",["D",n,t],t],t]}},{name:"NewtonDerivative4",latexTrigger:["\\ddddot"],kind:"prefix",precedence:740,parse:e=>{let n=e.parseGroup();if(n===null)return null;let t=e.options.timeDerivativeVariable;return["D",["D",["D",["D",n,t],t],t],t]}},{name:"EulerDerivative",latexTrigger:["D"],kind:"expression",parse:e=>{let n=1,t=null,i=!1;for(;!i;)if(e.match("_")){if(t=e.parseGroup()??e.parseToken(),!t)return null}else if(e.match("^")){let o=e.parseGroup()??e.parseToken();n=I(o)??1}else i=!0;if(!t||b(t)===null)return null;e.skipSpace();let r=e.parseExpression({minPrec:740});if(!r)return null;let s=r;for(let o=0;o<n;o++)s=["D",s,t];return s}},{kind:"environment",name:"Which",symbolTrigger:"cases",parse:Ui,serialize:(e,n)=>{let t=[],i=x(n);if(i.length>0)for(let r=0;r<=i.length-2;r+=2){let s=[];s.push(e.serialize(i[r+1])),s.push(e.serialize(i[r])),t.push(s.join("&"))}return g(["\\begin{cases}",t.join("\\\\"),"\\end{cases}"])}},{kind:"environment",symbolTrigger:"dcases",parse:Ui},{kind:"environment",symbolTrigger:"rcases",parse:Ui}];function re(e,n){if(!e.match("<{>"))return"''";let t=[],i="",r=null,s=()=>{r!==null&&i?t.push(["Annotated",`'${i}'`,Wt(r)]):i&&t.push(`'${i}'`),i="",r=null};for(;!e.atEnd&&!e.match("<}>");)if(e.peek==="<{>")s(),t.push(re(e));else if(e.match("\\textbf"))s(),t.push(re(e,{fontWeight:"bold"}));else if(e.match("\\textmd"))s(),t.push(re(e,{fontStyle:"normal"}));else if(e.match("\\textup"))s(),t.push(re(e,{fontStyle:"normal"}));else if(e.match("\\textsl"))s(),t.push(re(e,{fontStyle:"italic"}));else if(e.match("\\textit"))s(),t.push(re(e,{fontStyle:"italic"}));else if(e.match("\\texttt"))s(),t.push(re(e,{fontFamily:"monospace"}));else if(e.match("\\textsf"))s(),t.push(re(e,{fontFamily:"sans-serif"}));else if(e.match("\\textcolor")){let a=e.index,u=e.parseStringGroup();if(u!==null){s();let l=re(e);t.push(["Annotated",l,Wt({color:u})])}else e.index=a,i+="\\textcolor"}else if(e.match("\\color")){let a=e.parseStringGroup();a!==null&&(s(),r={color:a})}else if(e.match("<space>"))i+=" ";else if(e.match("<$>")){let a=e.index,u=e.parseExpression()??"Nothing";e.skipSpace(),e.match("<$>")?(s(),t.push(u)):(i+="$",e.index=a)}else if(e.match("<$$>")){let a=e.index,u=e.parseExpression()??"Nothing";e.skipSpace(),e.match("<$$>")?(s(),t.push(u)):(i+="$$",e.index=a)}else{let a=e.parseChar()??e.nextToken();i+={"\\enskip":"\u2002","\\enspace":"\u2002","\\quad":"\u2003","\\qquad":"\u2003\u2003","\\space":"\u2003","\\ ":"\u2003","\\;":"\u2004","\\,":"\u2009","\\:":"\u205F","\\!":"","\\{":"{","\\}":"}","\\$":"$","\\&":"&","\\#":"#","\\%":"%","\\_":"_","\\textbackslash":"\\","\\textasciitilde":"~","\\textasciicircum":"^","\\textless":"<","\\textgreater":">","\\textbar":"|","\\textunderscore":"_","\\textbraceleft":"{","\\textbraceright":"}","\\textasciigrave":"`","\\textquotesingle":"'","\\textquotedblleft":"\u201C","\\textquotedblright":"\u201D","\\textquotedbl":'"',"\\textquoteleft":"\u2018","\\textquoteright":"\u2019","\\textbullet":"\u2022","\\textdagger":"\u2020","\\textdaggerdbl":"\u2021","\\textsection":"\xA7","\\textparagraph":"\xB6","\\textperiodcentered":"\xB7","\\textellipsis":"\u2026","\\textemdash":"\u2014","\\textendash":"\u2013","\\textregistered":"\xAE","\\texttrademark":"\u2122","\\textdegree":"\xB0"}[a]??a}s();let o;return t.length===1?o=t[0]:t.every(a=>A(a)!==null)?o="'"+t.map(a=>A(a)).join("")+"'":o=["Text",...t],n?["Annotated",o,Wt(n)]:o}function Zo(e,n){return n===null?"":g(Xt(n,t=>{let i=A(t);return i===null?e.serialize(t):i==="<{>"?"{":i==="<}>"?"}":i==="<$>"?"$":i==="<$$>"?"$$":i==="<space>"?" ":i}))}function ns(e){return e===null?"":e.replace(/[{}\[\]\\:\-\$%]/g,n=>({"{":"\\lbrace ","}":"\\rbrace ","[":"\\lbrack ","]":"\\rbrack ",":":"\\colon ","\\":"\\backslash "})[n]??"\\"+n)}function jo(e,n){let t=c(n,2);return t?m(t)==="LatexString"?A(c(t,1))??"":m(t)==="Hold"?e.serialize(c(t,1)):e.serialize(t):""}function me(e,n,t){for(;!e.atEnd;)if(e.match("'")||e.match("\\prime"))t++;else if(e.match("\\doubleprime"))t+=2;else if(e.match("\\tripleprime"))t+=3;else break;let i=m(n);if(i==="Derivative"||i==="Prime"){let a=I(c(n,2))??1;return[i,P(c(n,1)),a+t]}let r=b(n),s=r&&e.getSymbolType(r).matches("function")||m(n);e.skipSpace();let o=e.parseArguments("enclosure");if(o&&o.length>0){let a=o[0],u=b(a)??"x",f=typeof n=="string"?[n,...o]:["Apply",n,...o];for(let h=0;h<t;h++)f=["D",f,u];return f}return s?t===1?["Derivative",n]:["Derivative",n,t]:t===1?["Prime",P(n)]:["Prime",P(n),t]}function Uo(e,n){if(D(n))return["Delimiter"];let t=m(n);if(t==="Delimiter"&&c(n,2)!==null){let i=A(c(n,2));if(i?.length===1)return["Delimiter",c(n,1)??"Nothing",{str:`(${i})`}]}return t==="Matrix"&&(A(c(n,2))??"..")===".."?["Matrix",c(n,1)]:["Delimiter",n]}function as(e,n){if(D(n))return["List"];let t=m(n);if(t==="Range"||t==="Linspace")return n;if(t==="Sequence"){let i=x(n),r=ts(i,e);return r||["List",...i]}if(t==="Delimiter"){let i=A(c(n,2))??"...";if(i===";"||i===".;.")return["List",...(x(c(n,1))??[]).map(r=>as(e,r))];if(i===","||i===".,."){if(n=c(n,1),m(n)==="Sequence"){let r=x(n),s=ts(r,e);return s||["List",...r]}return["List",n??"Nothing"]}}return["List",n]}function ts(e,n){if(e.length<4)return null;let t=e[e.length-2];if(b(t)!=="ContinuationPlaceholder")return null;let i=e.slice(0,-2),r=e[e.length-1];if(i.length<2)return null;let s=i.map(I);if(s.some(l=>l===null))return null;let o=s,a=o[o.length-1]-o[o.length-2],u=n.options.tolerance;if(Math.abs(a)<u)return n.error("degenerate-range-step",n.index);for(let l=1;l<o.length;l++)if(Math.abs(o[l]-o[l-1]-a)>u)return n.error("inconsistent-range-samples",n.index);return["Range",o[0],r,a]}function Ho(e,n){return B(n)>1&&x(n).every(t=>{let i=m(t);return Pi(i)||Di(i)})?g(["\\begin{cases}",se("\\\\")(e,n),"\\end{cases}"]):g(["\\bigl\\lbrack",se(", ")(e,n),"\\bigr\\rbrack"])}function Qt(e,n){if(n===null)return null;let t=e.parseExpression({minPrec:270});if(t===null)return null;if(m(t)==="Range"){let i=c(t,1),r=c(t,2);return i&&r?["Range",n,r,["Subtract",i,n]]:null}return["Range",n,t]}var ni={"(":"(",")":")","[":"\\lbrack","]":"\\rbrack","\u27E6":"\\llbrack","\u27E7":"\\rrbrack","{":"\\lbrace","}":"\\rbrace","<":"\\langle",">":"\\rangle","\u2016":"\\Vert","\\":"\\backslash","\u2308":"\\lceil","\u2309":"\\rceil","\u230A":"\\lfloor","\u230B":"\\rfloor","\u231C":"\\ulcorner","\u231D":"\\urcorner","\u231E":"\\llcorner","\u231F":"\\lrcorner","\u23B0":"\\lmoustache","\u23B1":"\\rmoustache"};function ei(e,n,t){let i=(t?.minPrec??0)>=19,r=b(n);if(r&&r.includes("_")){let a=r.indexOf("_"),u=r.substring(0,a),l=r.substring(a+1),f=parseInt(l,10),h=!isNaN(f)&&String(f)===l?f:l,N=h!==""&&(typeof h=="number"||typeof h=="string"&&h.length===1);(e.getSymbolType(u).matches("indexed_collection")||!i&&N)&&(n=["Subscript",u,h])}if(m(n)==="InvisibleOperator"&&B(n)===2&&m(c(n,2))==="Delimiter"){let a=b(c(n,1));if(!a)return null;let u=e.parseExpression({...t??{},minPrec:20});if(u===null)return null;let l=c(c(n,2),1),f=[];return m(l)==="Sequence"?f=[...x(l)]:l&&(f=[l]),["Assign",a,["Function",u,...f??[]]]}if(m(n)==="Subscript"&&b(c(n,1))){let a=b(c(n,1));if(!e.getSymbolType(a).matches("indexed_collection")){let f=c(n,2),h=(f!==null&&typeof f=="string"?f:void 0)??(f!==null&&typeof f=="number"?String(f):void 0);if(h&&i){let N=e.parseExpression({...t??{},minPrec:20});return N===null?null:["Assign",a+"_"+h,N]}}let u=e.parseExpression({...t??{},minPrec:20});if(u===null)return null;let l=c(n,2);return A(l)!==null?["Assign",n,u]:b(l)?["Assign",n,u]:["Assign",n,u]}let s=m(n);if(s){let a=x(n),u=e.parseExpression({...t??{},minPrec:20});return u===null?null:["Assign",s,["Function",u,...a]]}if(!b(n))return null;let o=e.parseExpression({...t??{},minPrec:20});return o===null?null:["Assign",n,o]}function Ui(e){let n=e.parseTabular();if(!n)return["List"];if(n.every(i=>{if(i.length!==1)return!1;let r=m(i[0]);return Di(r)||Pi(r)}))return["List",...n.map(i=>i[0])];let t=[];for(let i of n)if(i.length===1)t.push("True"),t.push(i[0]);else if(i.length===2){let r=A(i[1]);t.push(r?"True":qi(i[1])??"True"),t.push(i[0])}return["Which",...t]}function U(e,n){let t=e.index;if(!e.match("<{>"))return e.index=t,!1;for(;e.match("<space>"););for(let i=0;i<n.length;i++)if(n[i]===" "){if(!e.match("<space>"))return e.index=t,!1;for(;e.match("<space>"););}else{if(e.peek!==n[i])return e.index=t,!1;e.nextToken()}for(;e.match("<space>"););return e.match("<}>")?!0:(e.index=t,!1)}function Pe(e,n){let t=e.index;if(e.skipVisualSpace(),e.match("\\text")){if(U(e,n))return!0;e.index=t}let i=e.index,r=e.parseSymbol();return r!==null&&b(r)===n?!0:(e.index=i,!1)}function _e(e,n){let t=e.index,i=Pe(e,n);return e.index=t,i}function is(e,n){e.skipVisualSpace();let t=e.parseExpression({minPrec:0,condition:s=>_e(s,"then")});if(t===null||!Pe(e,"then"))return null;e.skipVisualSpace();let i=e.parseExpression({minPrec:0,condition:s=>_e(s,"else")});if(i===null||!Pe(e,"else"))return null;e.skipVisualSpace();let r=e.parseExpression(n)??"Nothing";return["If",t,i,r]}function rs(e,n){let t=e.parseExpression({minPrec:0,condition:a=>_e(a,"from")}),i=t?b(t):null;if(!i||!Pe(e,"from"))return null;let r=e.parseExpression({minPrec:0,condition:a=>_e(a,"to")});if(r===null||!Pe(e,"to"))return null;let s=e.parseExpression({minPrec:0,condition:a=>_e(a,"do")});return s===null||!Pe(e,"do")?null:["Loop",e.parseExpression(n)??"Nothing",["Element",i,["Range",r,s]]]}function us(e,n,t){let i={minPrec:21,condition:s=>{if(t?.condition?.(s))return!0;let o=s.index;s.skipVisualSpace();let a=s.peek===",";return s.index=o,!!(a||_e(s,"where")||_e(s,"with"))}},r=[];do{e.skipVisualSpace();let s=e.parseExpression(i);if(s===null)break;let o=m(s);if(o!=="Equal"&&o!=="Assign")return null;let a=c(s,1),u=c(s,2);if(!a||!u)return null;r.push(["Element",a,u]),e.skipVisualSpace()}while(e.match(","));return r.length===0?null:["Loop",n,...r]}function ss(e,n,t){let i={minPrec:21,condition:a=>{if(t?.condition?.(a))return!0;let u=a.index;a.skipVisualSpace();let l=a.peek===",";return a.index=u,l}},r=[];do{e.skipVisualSpace();let a=e.parseExpression(i);if(!a)break;r.push(a),e.skipVisualSpace()}while(e.match(","));if(r.length===0)return null;let s=e.index;if(Pe(e,"for")){let a=us(e,n,t);if(a){let u=[];for(let l of r){let f=Yi(l);m(f)==="Assign"&&u.push(["Declare",c(f,1)]),u.push(f)}return u.push(a),["Block",...u]}e.index=s}let o=[];for(let a of r){let u=Yi(a);m(u)==="Assign"&&o.push(["Declare",c(u,1)]),o.push(u)}return o.push(n),["Block",...o]}function Yo(e){let n=[];for(let t of e){let i=Yi(t);m(i)==="Assign"&&n.push(["Declare",c(i,1)]),n.push(i)}return["Block",...n]}function Yi(e){if(m(e)!=="Assign")return e;let n=c(e,1);if(m(n)!=="Subscript")return e;let t=b(c(n,1));if(!t)return e;let i=c(n,2),r=(typeof i=="string"?i:void 0)??(typeof i=="number"?String(i):void 0);return r?["Assign",`${t}_${r}`,c(e,2)??"Nothing"]:e}function Hi(...e){return(n,t)=>{if(!b(t)&&m(t)!=="List")return null;let i=null;return e.length===0&&(i=n.parseGroup()),i??=n.parseExpression({minPrec:0}),i===null||e.length>0&&!n.matchAll(e)||A(i)!==null?null:(m(i)==="Delimiter"&&(i=c(i,1)??"Nothing"),m(i)==="Sequence"?["At",t,...x(i)]:["At",t,i])}}var wn=[["alpha","\\alpha",945],["beta","\\beta",946],["gamma","\\gamma",947],["delta","\\delta",948],["epsilon","\\epsilon",949],["epsilonSymbol","\\varepsilon",1013],["zeta","\\zeta",950],["eta","\\eta",951],["theta","\\theta",952],["thetaSymbol","\\vartheta",977],["iota","\\iota",953],["kappa","\\kappa",954],["kappaSymbol","\\varkappa",1008],["lambda","\\lambda",955],["mu","\\mu",956],["nu","\\nu",957],["xi","\\xi",958],["omicron","\\omicron",959],["pi","\\pi",960],["piSymbol","\\varpi",982],["rho","\\rho",961],["rhoSymbol","\\varrho",1009],["sigma","\\sigma",963],["finalSigma","\\varsigma",962],["tau","\\tau",964],["phi","\\phi",981],["phiLetter","\\varphi",966],["upsilon","\\upsilon",965],["chi","\\chi",967],["psi","\\psi",968],["omega","\\omega",969],["Alpha","\\Alpha",913],["Beta","\\Beta",914],["Gamma","\\Gamma",915],["Delta","\\Delta",916],["Epsilon","\\Epsilon",917],["Zeta","\\Zeta",918],["Eta","\\Eta",919],["Theta","\\Theta",920],["Iota","\\Iota",921],["Kappa","\\Kappa",922],["Lambda","\\Lambda",923],["Mu","\\Mu",924],["Nu","\\Nu",925],["Xi","\\Xi",926],["Omicron","\\Omicron",927],["Rho","\\Rho",929],["Sigma","\\Sigma",931],["Tau","\\Tau",932],["Phi","\\Phi",934],["Upsilon","\\Upsilon",933],["Chi","\\Chi",935],["Psi","\\Psi",936],["Omega","\\Omega",937],["digamma","\\digamma",989],["aleph","\\aleph",8501],["bet","\\beth",8502],["gimel","\\gimel",8503],["dalet","\\daleth",8504],["ell","\\ell",8499],["turnedCapitalF","\\Finv",8498],["turnedCapitalG","\\Game",8513],["weierstrass","\\wp",8472],["eth","\\eth",240],["invertedOhm","\\mho",8487],["hBar","\\hbar",295],["hSlash","\\hslash",8463],["blackClubSuit","\\clubsuit",9827],["whiteHeartSuit","\\heartsuit",9825],["blackSpadeSuit","\\spadesuit",9824],["whiteDiamondSuit","\\diamondsuit",9826],["sharp","\\sharp",9839],["flat","\\flat",9837],["natural","\\natural",9838]],ls=[...wn.map(([e,n,t])=>({kind:"symbol",name:e,latexTrigger:[n],parse:e})),...wn.map(([e,n,t])=>({kind:"symbol",latexTrigger:[String.fromCodePoint(t)],parse:e}))];var cs=[{name:"To",latexTrigger:["\\to"],kind:"infix",precedence:270},{latexTrigger:["-",">"],kind:"infix",precedence:270,parse:(e,n,t)=>{if(e.options.strict!==!1)return null;let i=e.parseExpression({...t,minPrec:270});return i===null?null:["To",n,i]}}];function oe(e,n,t){if(D(e))return null;let i,r=m(e);if(r==="Delimiter"){let l=A(c(e,2));if(l!==","&&l!=="(,)"&&l!=="[,]")return null;let f=c(e,1);m(f)==="Sequence"?i=[...x(f)]:i=f?[f]:[]}else if(r==="Sequence")i=[...x(e)];else return null;if(i.length!==2)return null;let[s,o]=i;return["Interval",n?["Open",s]:s,t?["Open",o]:o]}var fs=new Set(["Less","LessEqual","Greater","GreaterEqual","Equal","NotEqual","And","Or","Not"]),ms=[{name:"AlgebraicNumbers",latexTrigger:"\\overline\\Q"},{latexTrigger:"\\bar\\Q",parse:"AlgebraicNumbers"},{name:"ComplexNumbers",latexTrigger:["\\C"]},{latexTrigger:"\\mathbb{C}",parse:"ComplexNumbers"},{name:"ImaginaryNumbers",latexTrigger:["\\imaginaryI","\\R"]},{name:"EmptySet",latexTrigger:["\\emptyset"]},{latexTrigger:["\\varnothing"],parse:"EmptySet"},{name:"Integers",latexTrigger:["\\Z"]},{latexTrigger:"\\mathbb{Z}",parse:"Integers"},{name:"RationalNumbers",latexTrigger:["\\Q"]},{latexTrigger:"\\mathbb{Q}",parse:"RationalNumbers"},{name:"RealNumbers",latexTrigger:["\\R"]},{latexTrigger:"\\mathbb{R}",parse:"RealNumbers"},{name:"TranscendentalNumbers",latexTrigger:"\\R-\\bar\\Q"},{latexTrigger:"\\R\\backslash\\bar\\Q",parse:"TranscendentalNumbers"},{name:"NegativeNumbers",latexTrigger:"\\R_{<0}"},{latexTrigger:"\\R^-",parse:"NegativeNumbers"},{latexTrigger:"\\R^{-}",parse:"NegativeNumbers"},{latexTrigger:"\\R^-",parse:"NegativeNumbers"},{latexTrigger:"\\R_-",parse:"NegativeNumbers"},{latexTrigger:"\\R_{-}",parse:"NegativeNumbers"},{latexTrigger:"\\R^{\\lt}",parse:"NegativeNumbers"},{latexTrigger:"\\R^{<}",parse:"NegativeNumbers"},{latexTrigger:"\\R^{\\lt0}",parse:"NegativeNumbers"},{latexTrigger:"\\R^{<0}",parse:"NegativeNumbers"},{name:"NonPositiveNumbers",latexTrigger:"\\R_{\\le0}"},{latexTrigger:"\\R^{\\leq0}",parse:"NonPositiveNumbers"},{latexTrigger:"\\R^{-0}",parse:"NonPositiveNumbers"},{latexTrigger:"\\R^{\\leq}",parse:"NonPositiveNumbers"},{latexTrigger:"\\R^{0-}",parse:"NonPositiveNumbers"},{name:"PositiveNumbers",latexTrigger:"\\R_{>0}"},{latexTrigger:"\\R^+",parse:"PositiveNumbers"},{latexTrigger:"\\R^{+}",parse:"PositiveNumbers"},{latexTrigger:"\\R_+",parse:"PositiveNumbers"},{latexTrigger:"\\R_{+}",parse:"PositiveNumbers"},{latexTrigger:"\\R^{\\gt}",parse:"PositiveNumbers"},{latexTrigger:"\\R^{\\gt 0}",parse:"PositiveNumbers"},{latexTrigger:"\\R^{>}",parse:"PositiveNumbers"},{latexTrigger:"\\R^{>0}",parse:"PositiveNumbers"},{name:"NonNegativeNumbers",latexTrigger:"\\R_{\\geq0}"},{latexTrigger:"\\R^{0+}",parse:"NonNegativeNumbers"},{latexTrigger:"\\R^{\\geq}",parse:"NonNegativeNumbers"},{name:"ExtendedRealNumbers",latexTrigger:"\\overline\\R"},{latexTrigger:"\\bar\\R",parse:"ExtendedRealNumbers"},{name:"NegativeIntegers",latexTrigger:"\\Z_{<0}"},{latexTrigger:"\\Z_{\\lt0}",parse:"NegativeIntegers"},{latexTrigger:"\\Z^-",parse:"NegativeIntegers"},{latexTrigger:"\\Z^{-}",parse:"NegativeIntegers"},{latexTrigger:"\\Z_-",parse:"NegativeIntegers"},{latexTrigger:"\\Z_{-}",parse:"NegativeIntegers"},{latexTrigger:"\\Z^{\\lt}",parse:"NegativeIntegers"},{name:"NonPositiveIntegers",latexTrigger:"\\Z_{\\le0}"},{latexTrigger:"\\Z_{\\leq0}",parse:"NonPositiveIntegers"},{latexTrigger:"\\Z_{<0}",parse:"NonPositiveIntegers"},{name:"PositiveIntegers",latexTrigger:"\\N^*"},{latexTrigger:"\\Z_{>0}",parse:"PositiveIntegers"},{latexTrigger:"\\Z_{\\gt0}",parse:"PositiveIntegers"},{latexTrigger:"\\Z^{+}",parse:"PositiveIntegers"},{latexTrigger:"\\Z_+",parse:"PositiveIntegers"},{latexTrigger:"\\Z_{+}",parse:"PositiveIntegers"},{latexTrigger:"\\Z^{\\gt}",parse:"PositiveIntegers"},{latexTrigger:"\\Z^{\\gt0}",parse:"PositiveIntegers"},{latexTrigger:"\\N^+",parse:"PositiveIntegers"},{latexTrigger:"\\N^{+}",parse:"PositiveIntegers"},{latexTrigger:"\\N^*",parse:"PositiveIntegers"},{latexTrigger:"\\N^{*}",parse:"PositiveIntegers"},{latexTrigger:"\\N^\\star",parse:"PositiveIntegers"},{latexTrigger:"\\N^{\\star}",parse:"PositiveIntegers"},{latexTrigger:"\\N_1",parse:"PositiveIntegers"},{latexTrigger:"\\N_{1}",parse:"PositiveIntegers"},{name:"NonNegativeIntegers",latexTrigger:["\\N"]},{latexTrigger:"\\Z^{+0}",parse:"NonNegativeIntegers"},{latexTrigger:"\\Z^{\\geq}",parse:"NonNegativeIntegers"},{latexTrigger:"\\Z^{\\geq0}",parse:"NonNegativeIntegers"},{latexTrigger:"\\Z^{0+}",parse:"NonNegativeIntegers"},{latexTrigger:"\\mathbb{N}",parse:"NonNegativeIntegers"},{latexTrigger:"\\N_0",parse:"NonNegativeIntegers"},{latexTrigger:"\\N_{0}",parse:"NonNegativeIntegers"},{name:"ExtendedIntegers",latexTrigger:"\\overline\\Z"},{latexTrigger:"\\bar\\Z",parse:"ExtendedIntegers"},{name:"ExtendedRationalNumbers",latexTrigger:"\\overline\\Q"},{latexTrigger:"\\bar\\Q",parse:"ExtendedRationalNumbers"},{name:"ExtendedComplexNumbers",latexTrigger:"\\overline\\C"},{latexTrigger:"\\bar\\C",parse:"ExtendedComplexNumbers"},{latexTrigger:["^","\\complement"],kind:"postfix",parse:(e,n)=>["Complement",n]},{name:"Complement",latexTrigger:["^","<{>","\\complement","<}>"],kind:"postfix",serialize:(e,n)=>g([e.serialize(c(n,1)),"^\\complement"])},{name:"Intersection",latexTrigger:["\\cap"],kind:"infix",precedence:350},{name:"Interval",serialize:ps},{kind:"matchfix",openTrigger:["["],closeTrigger:[")"],parse:(e,n)=>oe(n,!1,!0)},{kind:"matchfix",openTrigger:["\\lbrack"],closeTrigger:["\\rparen"],parse:(e,n)=>oe(n,!1,!0)},{kind:"matchfix",openTrigger:["\\lbrack"],closeTrigger:[")"],parse:(e,n)=>oe(n,!1,!0)},{kind:"matchfix",openTrigger:["["],closeTrigger:["\\rparen"],parse:(e,n)=>oe(n,!1,!0)},{kind:"matchfix",openTrigger:["("],closeTrigger:["]"],parse:(e,n)=>oe(n,!0,!1)},{kind:"matchfix",openTrigger:["\\lparen"],closeTrigger:["\\rbrack"],parse:(e,n)=>oe(n,!0,!1)},{kind:"matchfix",openTrigger:["\\lparen"],closeTrigger:["]"],parse:(e,n)=>oe(n,!0,!1)},{kind:"matchfix",openTrigger:["("],closeTrigger:["\\rbrack"],parse:(e,n)=>oe(n,!0,!1)},{kind:"matchfix",openTrigger:["]"],closeTrigger:["["],parse:(e,n)=>oe(n,!0,!0)},{kind:"matchfix",openTrigger:["\\rbrack"],closeTrigger:["\\lbrack"],parse:(e,n)=>oe(n,!0,!0)},{name:"Multiple",serialize:ps},{name:"Union",latexTrigger:["\\cup"],kind:"infix",precedence:350},{name:"Divides",latexTrigger:["\\mid"],kind:"infix",precedence:160},{name:"Set",kind:"matchfix",openTrigger:"{",closeTrigger:"}",parse:(e,n)=>{if(D(n))return"EmptySet";m(n)=="Delimiter"&&A(c(n,2))===","&&(n=c(n,1));let t=m(n);if(t==="Divides"){let i=c(n,1),r=c(n,2);if(i!==null&&r!==null)return["Set",i,["Condition",r]]}if(t==="Colon"){let i=c(n,1),r=c(n,2);if(i!==null&&r!==null){let s=m(i);return s!==null&&fs.has(s)?["Which",i,r]:["Set",i,["Condition",r]]}}if(t==="Sequence"){let i=x(n),r=i.filter(o=>m(o)==="Colon");if(r.length>0&&r.every(o=>{let a=c(o,1),u=a!==null?m(a):null;return u!==null&&fs.has(u)})){let o=[];for(let a=0;a<i.length;a++){let u=i[a];if(m(u)==="Colon"){let l=c(u,1),f=c(u,2);if(l===null||f===null)return["Set",...i];o.push(l,f)}else{if(a!==i.length-1)return["Set",...i];o.push("True",u)}}return["Which",...o]}return["Set",...i]}return["Set",n]},serialize:(e,n)=>{if(B(n)===2&&m(c(n,2))==="Condition"){let t=c(n,2);return g(["\\lbrace",e.serialize(c(n,1)),"\\mid",e.serialize(c(t,1)),"\\rbrace"])}return g(["\\lbrace",x(n).map(t=>e.serialize(t)).join(", "),"\\rbrace"])}},{name:"SetMinus",latexTrigger:["\\setminus"],kind:"infix",precedence:650},{name:"SymmetricDifference",latexTrigger:["\\triangle"],kind:"infix",precedence:k},{latexTrigger:["\\ni"],kind:"infix",associativity:"none",precedence:160,parse:(e,n,t)=>{let i=e.parseExpression(t);return i===null?null:["Element",i,n]}},{name:"Element",latexTrigger:["\\in"],kind:"infix",precedence:240},{name:"NotElement",latexTrigger:["\\notin"],kind:"infix",precedence:240},{name:"NotSubset",latexTrigger:["\\nsubset"],kind:"infix",associativity:"none",precedence:240},{name:"NotSuperset",latexTrigger:["\\nsupset"],kind:"infix",associativity:"none",precedence:240},{name:"NotSubsetNotEqual",latexTrigger:["\\nsubseteq"],kind:"infix",associativity:"none",precedence:240},{name:"NotSupersetNotEqual",latexTrigger:["\\nsupseteq"],kind:"infix",associativity:"none",precedence:240},{name:"SquareSubset",latexTrigger:["\\sqsubset"],kind:"infix",associativity:"none",precedence:265},{name:"SquareSubsetEqual",latexTrigger:["\\sqsubseteq"],kind:"infix",associativity:"none",precedence:265},{name:"SquareSuperset",latexTrigger:["\\sqsupset"],kind:"infix",associativity:"none",precedence:265},{name:"SquareSupersetEqual",latexTrigger:["\\sqsupseteq"],kind:"infix",associativity:"none",precedence:265},{name:"Subset",latexTrigger:["\\subset"],kind:"infix",associativity:"none",precedence:240},{latexTrigger:["\\subsetneq"],kind:"infix",associativity:"none",precedence:240,parse:"Subset"},{latexTrigger:["\\varsubsetneqq"],kind:"infix",associativity:"none",precedence:240,parse:"Subset"},{name:"SubsetEqual",latexTrigger:["\\subseteq"],kind:"infix",associativity:"none",precedence:240},{name:"Superset",latexTrigger:["\\supset"],kind:"infix",associativity:"none",precedence:240},{latexTrigger:["\\supsetneq"],kind:"infix",associativity:"none",precedence:240,parse:"Superset"},{latexTrigger:["\\varsupsetneq"],kind:"infix",associativity:"none",precedence:240,parse:"Superset"},{name:"SupersetEqual",latexTrigger:["\\supseteq"],kind:"infix",associativity:"none",precedence:240}];function ps(e,n){if(n===null)return"";let t=m(n);if(!t)return"";if(t==="Range")return g(["\\mathopen\\lbrack",e.serialize(c(n,1)),", ",e.serialize(c(n,2)),"\\mathclose\\rbrack"]);if(t==="Interval"){let r=c(n,1),s=c(n,2),o=!1,a=!1;return m(r)==="Open"&&(r=c(r,1),o=!0),m(s)==="Open"&&(s=c(s,1),a=!0),g([o?"\\lparen":"\\lbrack",e.serialize(r),", ",e.serialize(s),a?"\\rparen":"\\rbrack"])}let i=e.numericSetStyle(n,e.level);return""}function Re(e,n,t){e.indexOf("#1")<0&&e.indexOf("#2")<0&&(e=`#1 ${e} #2`);let i=e.split(/(#\d+)/).filter(r=>r.trim()!=="").map(r=>r.trim());return g(i.map(r=>{switch(r){case"#1":return n;case"#2":return t;default:return r}}))}function ti(e,n){if(n==="none")return e;if(n==="0...360"){let t=e%360;return(t<0?t+360:t)||0}if(n==="-180...180"){let t=e%360;return t>180&&(t-=360),t<-180&&(t+=360),t||0}return e}function Wo(e){let n=e<0?-1:1,t=Math.abs(e),i=Math.floor(t),r=(t-i)*60,s=Math.floor(r),o=(r-s)*60,a=Math.round(o*1e3)/1e3,u=s,l=i;return a>=60&&(a=0,u++),u>=60&&(u=0,l++),{deg:n*l||0,min:n*u||0,sec:a===0?0:n*a}}function ii(e){let{deg:n,min:t,sec:i}=Wo(e),r=`${n}\xB0`;if(Math.abs(i)>.001){let s=i%1===0?i.toString():i.toFixed(2);r+=`${Math.abs(t)}'${Math.abs(Number(s))}"`}else Math.abs(t)>0?r+=`${Math.abs(t)}'`:r+=`0'0"`;return r}function Xo(e){if(m(e)!=="Multiply")return[[],[]];let n=[],t=[];for(let i of x(e))if(m(i)==="Power"){let r=c(i,1),s=c(i,2);if(m(s)==="Negate"){let o=c(s,1);r&&o&&t.push(["Power",r,o])}else{let o=I(s)??NaN;o===-1?r&&t.push(r):o<0?r&&t.push(["Power",r,-o]):n.push(i)}}else if(m(i)==="Rational"&&B(i)===2||m(i)==="Divide"){let r=c(i,1),s=c(i,2);I(r)!==1&&n.push(r),I(s)!==1&&t.push(s)}else{let r=He(i);r!==null?(r[0]!==1&&n.push(r[0]),t.push(r[1])):n.push(i)}return[n,t]}function Ko(e){let n=e.parseOptionalGroup(),t=e.parseGroup()??e.parseToken();return D(t)?n!==null?["Root",Ze,P(n)]:["Sqrt",Ze]:n!==null?["Root",t,n]:["Sqrt",t]}function Qo(e){if(typeof e=="number")return-e;if(typeof e=="string")return e.startsWith("-")?e.slice(1):e.startsWith("+")?"-"+e.slice(1):"-"+e;let n=e.num;return n.startsWith("-")?{num:n.slice(1)}:n.startsWith("+")?{num:"-"+n.slice(1)}:{num:"-"+n}}function Dn(e,n,t,i){return t==null?"\\sqrt{}":(i=i??2,n==="solidus"?e.wrapShort(t)+"^{1/"+e.serialize(i)+"}":n==="quotient"?e.wrapShort(t)+"^{\\frac{1}{"+e.serialize(i)+"}}":I(i)===2?"\\sqrt{"+e.serialize(t)+"}":"\\sqrt["+e.serialize(i)+"]{"+e.serialize(t)+"}")}function ea(e,n){e.level-=1;let t=m(n),i="",r=c(n,1);if(t==="Negate")i="-"+e.wrap(r,C+1);else if(t==="Subtract"){i=e.wrap(r,C);let s=c(n,2);if(s!==null){let o=e.wrap(s,C);o[0]==="-"?i+="+"+o.slice(1):o[0]==="+"?i+="-"+o.slice(1):i=i+"-"+o}}else if(t==="Add"){if(e.options.prettify&&B(n)===2&&e.options.invisiblePlus!=="+"){let[a,u]=[c(n,1),c(n,2)],[l,f]=[a,u],h=I(l),N=He(f);if((h===null||N===null)&&([l,f]=[u,a],h=I(l),N=He(f)),h!==null&&N!==null&&isFinite(h)&&Number.isInteger(h)&&h>=0&&h<=1e3&&isFinite(N[0])&&isFinite(N[1])&&N[0]>0&&N[0]<=100&&N[1]<=100)return i=Re(e.options.invisiblePlus,e.serialize(l),e.serialize(f)),e.level+=1,i}if(e.options.prettify&&B(n)===2){let[a,u]=Pn(r),[l,f]=Pn(c(n,2));if(u<0&&f>0)return i=e.wrap(l,C)+"-"+e.wrap(a,C),e.level+=1,i}i=e.serialize(r);let s=B(n)+1,o=x(n);for(let a=2;a<s;a++)if(r=o[a-1],e.options.prettify){let[u,l]=Pn(r),f=e.wrap(u,C);l>0?f.startsWith("+")||f.startsWith("-")?i+=f:i+="+"+f:f.startsWith("+")?i+="-"+f.slice(1):f.startsWith("-")?i+="+"+f.slice(1):i+="-"+f}else{let u=e.wrap(r,C);u[0]==="-"||u[0]==="+"?i+=u:i+="+"+u}}return e.level+=1,i}function Ns(e,n){if(n===null)return"";e.level-=1;let t="";if(e.options.prettify===!0){let[u,l]=Xo(n);l.length>0&&(l.length===1&&l[0]===1?u.length===0?t="1":u.length===1?t=e.serialize(u[0]):t=Ns(e,["Multiply",...u]):t=e.serialize(["Divide",u.length===1?u[0]:["Multiply",...u],l.length===1?l[0]:["Multiply",...l]]))}if(t)return e.level+=1,t;let i=!1,r=null,s=B(n)+1,o=x(n);e.options.prettify===!0&&o.length===2&&Ae(o[1])&&!Ae(o[0])&&(o=[o[1],o[0]]);let a=!1;for(let u=1;u<s;u++){if(r=o[u-1],r===null)continue;let l;if(Ae(r)){l=e.serialize(r),l==="-1"&&!t?(t="",i=!i):(l[0]==="-"&&(l=l.slice(1),i=!i),t?t=Re(e.options.multiply,t,l):t=l),a=!0;continue}if(m(r)==="Power"){let f=He(c(r,2));if(f!=null){let[h,N]=f;if(h===1&&N!==null){t+=Dn(e,e.rootStyle(r,e.level),c(r,1),N),a=!1;continue}}}if(m(r)==="Power"&&!isNaN(I(c(r,1))??NaN)){l=e.serialize(r),t?t=Re(e.options.multiply,t,l):t=l,a=!0;continue}if(m(r)==="Negate"&&(r=c(r,1),i=!i),l=e.wrap(r,Z),!t)t=l;else{let f=m(r);a&&(f==="Divide"||f==="Rational")?t=Re(e.options.multiply,t,l):/^\d/.test(l)?t=Re(e.options.multiply,t,l):e.options.invisibleMultiply?t=Re(e.options.invisibleMultiply,t,l):t=g([t,l])}a=!1}return e.level+=1,i?"-"+t:t}function ri(e){let n=e.parseGroup(),t=null;if(n===null?(n=e.parseToken(),t=e.parseToken()):t=e.parseGroup(),n=P(n),t=P(t),m(n)==="PartialDerivative"&&(m(t)==="PartialDerivative"||m(t)==="Multiply"&&m(c(t,1))==="PartialDerivative")){let s=c(n,3)??null,o=c(n,1);o==null&&(o=P(e.parseExpression()));let a=[];if(m(t)==="Multiply"){for(let u of x(t))if(m(u)==="PartialDerivative"){let l=c(u,2);l&&a.push(l)}}else{let u=c(t,2);u&&a.push(u)}return a.length>1&&(a=["List",...a]),["PartialDerivative",o,...a,s===null?1:s]}let i=b(n);if(i==="d"||i==="d_upright"||i==="differentialD"){let s=[],o=a=>{if(!a)return;let u=b(a);if(u&&u!=="d"&&u!=="d_upright"&&u!=="differentialD"){s.push(a);return}let l=m(a);if(l==="Sequence"||l==="Multiply"||l==="InvisibleOperator")for(let f of x(a))o(f)};if(o(t),s.length===0){let a=b(t);a&&a.length>1&&a[0]==="d"&&s.push(a.slice(1))}if(s.length>0)return["D",P(e.parseExpression()),...s]}return["Divide",n,t]}function ds(e,n){if(n===null)return"";let t=P(c(n,1)),i=P(c(n,2)),r=e.options.prettify?e.fractionStyle(n,e.level):"quotient";if(r==="inline-solidus"||r==="nice-solidus"){let u=e.wrapShort(t),l=e.wrapShort(i);return r==="inline-solidus"?`${u}/${l}`:`{}^{${u}}\\!\\!/\\!{}_{${l}}`}else{if(r==="reciprocal")return I(t)===1?e.wrap(i)+"^{-1}":e.wrap(t)+e.wrap(i)+"^{-1}";if(r==="factor")return I(i)===1?e.wrap(t):"\\frac{1}{"+e.serialize(i)+"}"+e.wrapString(e.serialize(t),e.groupStyle(n,1))}let s="\\frac";r==="block-quotient"?s="\\dfrac":r==="inline-quotient"&&(s="\\tfrac");let o=e.serialize(t),a=e.serialize(i);return`${s}{${o}}{${a}}`}function Wi(e,n){if(!n)return"";let t=m(n),i=P(c(n,1));if(t==="Sqrt")return Dn(e,e.rootStyle(n,e.level-1),i,2);let r=P(c(n,2));if(t==="Root")return Dn(e,e.rootStyle(n,e.level-1),i,r);if(e.options.prettify){let o=I(r)??1;if(o===-1)return e.serialize(["Divide","1",i]);if(o<0)return e.serialize(["Divide","1",["Power",i,-o]]);if(m(r)==="Divide"||m(r)==="Rational"){let a=I(c(r,1)),u=I(c(r,2));if(a===1){let l=e.rootStyle(n,e.level);return Dn(e,l,i,c(r,2))}if(a===-1)return u===2?e.serialize(["Divide","1",["Sqrt",i]]):e.serialize(["Divide","1",["Root",i,c(r,2)??Ze]]);if(u===2)return`${e.serialize(["Sqrt",i])}^{${e.serialize(c(r,1))}}`}else if(m(r)==="Power"&&I(c(r,2))===-1){let a=e.rootStyle(n,e.level);return Dn(e,a,i,c(r,1))}}let s=o=>o.startsWith("-")?e.wrapString(o,"normal"):o;if(m(i)==="Power"){let o=c(i,1),a=c(i,2),u=s(e.wrapShort(o)),l=e.wrapShort(a);return`
|
|
8
|
+
${u}^{${Je("^",l,e.serialize(r))}}`}return Je("^",s(e.wrapShort(i)),e.serialize(r))}function An(e,n){e.skipSpace();let t=e.index,i=e.parseNumber(),r=null,s=null;if(i!==null&&(e.match("'")||e.match("\\prime"))){r=I(i),e.skipSpace();let u=e.index,l=e.parseNumber();l!==null&&(e.match('"')||e.match("\\doubleprime"))?s=I(l):e.index=u}else return e.index=t,["Degrees",n];let o=I(n);if(o!==null&&r!==null){let u=o+r/60;return s!==null&&(u+=s/3600),["Degrees",u]}let a=[["Quantity",n,"deg"]];return a.push(["Quantity",i,"arcmin"]),s!==null&&a.push(["Quantity",s,"arcsec"]),["Add",...a]}var Es=[{name:"CatalanConstant",symbolTrigger:"G"},{name:"GoldenRatio",latexTrigger:"\\varphi"},{name:"EulerGamma",latexTrigger:"\\gamma"},{name:"Degrees",latexTrigger:["\\degree"],kind:"postfix",precedence:880,parse:(e,n)=>An(e,n),serialize:(e,n)=>{let t=e.options,i=c(n,1);if(t.dmsFormat||t.angleNormalization&&t.angleNormalization!=="none"){let r=I(i);if(r!==null){let s=r;return t.angleNormalization&&t.angleNormalization!=="none"&&(s=ti(s,t.angleNormalization)),t.dmsFormat?ii(s):`${s}\xB0`}}return g([e.serialize(i),"\\degree"])}},{latexTrigger:["\\degree"],kind:"postfix",precedence:880,parse:(e,n)=>An(e,n)},{latexTrigger:["^","<{>","\\circ","<}>"],kind:"postfix",parse:(e,n)=>An(e,n)},{latexTrigger:["^","\\circ"],kind:"postfix",parse:(e,n)=>An(e,n)},{latexTrigger:["\xB0"],kind:"postfix",precedence:880,parse:(e,n)=>An(e,n)},{latexTrigger:["\\ang"],parse:e=>{let n=e.parseGroup();return n===null?["Degrees"]:["Degrees",n]}},{name:"DMS",serialize:(e,n)=>{let t=I(c(n,1)),i=I(c(n,2)),r=I(c(n,3));if(t!==null){let o=i??0,a=r??0,u=`${t}\xB0`;return(o!==0||a!==0)&&(u+=`${o}'`),a!==0&&(u+=`${a}"`),u}let s=[];for(let o of[1,2,3]){let a=c(n,o);a!==null&&s.push(e.serialize(a))}return`\\operatorname{DMS}(${s.join(", ")})`}},{latexTrigger:["\\infty"],parse:"PositiveInfinity"},{latexTrigger:["\\infin"],parse:"PositiveInfinity"},{name:"PositiveInfinity",serialize:e=>e.options.positiveInfinity},{name:"NegativeInfinity",serialize:e=>e.options.negativeInfinity},{name:"ComplexInfinity",latexTrigger:["\\tilde","\\infty"],serialize:"\\tilde\\infty"},{latexTrigger:["\\tilde","<{>","\\infty","<}>"],parse:"ComplexInfinity"},{name:"Pi",kind:"symbol",latexTrigger:["\\pi"]},{latexTrigger:["\u03C0"],parse:"Pi"},{name:"ExponentialE",latexTrigger:["\\exponentialE"],parse:"ExponentialE",serialize:"\\exponentialE"},{latexTrigger:"\\operatorname{e}",parse:"ExponentialE"},{latexTrigger:"\\mathrm{e}",parse:"ExponentialE"},{kind:"function",symbolTrigger:"exp",parse:e=>{let n=e.parseArguments("implicit");return n===null?"Exp":["Exp",...n]}},{latexTrigger:"\\exp",parse:e=>{let n=e.parseArguments("implicit");return n===null?"Exp":["Exp",...n]}},{name:"ImaginaryUnit",latexTrigger:["\\imaginaryI"]},{latexTrigger:"\\operatorname{i}",parse:"ImaginaryUnit"},{latexTrigger:"\\mathrm{i}",parse:"ImaginaryUnit"},{name:"Abs",kind:"matchfix",openTrigger:"|",closeTrigger:"|",parse:(e,n)=>D(n)?null:["Abs",n]},{kind:"matchfix",openTrigger:["\\vert"],closeTrigger:["\\vert"],parse:(e,n)=>D(n)?null:["Abs",n]},{symbolTrigger:"abs",kind:"function",parse:"Abs"},{name:"Add",latexTrigger:["+"],kind:"infix",associativity:"any",precedence:C,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:C});if(i===null)return null;if(m(i)==="Negate"){let r=c(i,1);if(Ae(r))return Ye("Add",n,Qo(r))}return Ye("Add",n,i)},serialize:ea},{kind:"prefix",latexTrigger:["+"],precedence:C,parse:(e,n)=>e.parseExpression({...n,minPrec:400})},{name:"Ceil",kind:"matchfix",openTrigger:"\\lceil",closeTrigger:"\\rceil",parse:(e,n)=>D(n)?null:["Ceil",n]},{kind:"matchfix",openTrigger:["\u2308"],closeTrigger:["\u2309"],parse:(e,n)=>D(n)?null:["Ceil",n]},{symbolTrigger:"ceil",kind:"function",parse:"Ceil"},{name:"Chop",symbolTrigger:"chop",kind:"function",parse:"Chop"},{name:"Complex",precedence:C-1,serialize:(e,n)=>{let t=e.serialize(c(n,1)),i=I(c(n,2));if(i===0)return t;let r=i===1?"\\imaginaryI":i===-1?"-\\imaginaryI":g([e.serialize(c(n,2)),"\\imaginaryI"]);return I(c(n,1))===0?r:i!==null&&i<0?g([t,r]):g([t,"+",r])}},{name:"Divide",latexTrigger:"\\frac",precedence:K,parse:ri,serialize:ds},{latexTrigger:"\\dfrac",precedence:K,parse:ri},{latexTrigger:"\\tfrac",precedence:K,parse:ri},{latexTrigger:"\\cfrac",precedence:K,parse:ri},{kind:"infix",latexTrigger:"\\over",associativity:"none",precedence:K,parse:"Divide"},{latexTrigger:["\\/"],kind:"infix",associativity:"left",precedence:K,parse:"Divide"},{latexTrigger:["/"],kind:"infix",associativity:"left",precedence:K,parse:"Divide"},{latexTrigger:["\\div"],kind:"infix",associativity:"left",precedence:K,parse:"Divide"},{name:"Exp",serialize:(e,n)=>{let t=c(n,1);return b(t)||I(t)!==null?g(["\\exponentialE^{",e.serialize(t),"}"]):g(["\\exp",e.wrap(P(t))])}},{name:"Factorial",latexTrigger:["!"],kind:"postfix",precedence:Ai},{name:"Factorial2",latexTrigger:["!","!"],kind:"postfix",precedence:Ai},{name:"Floor",kind:"matchfix",openTrigger:"\\lfloor",closeTrigger:"\\rfloor",parse:(e,n)=>D(n)?null:["Floor",n]},{kind:"matchfix",openTrigger:["\u230A"],closeTrigger:["\u230B"],parse:(e,n)=>D(n)?null:["Floor",n]},{symbolTrigger:"floor",kind:"function",parse:"Floor"},{latexTrigger:["\\Gamma"],parse:"Gamma"},{latexTrigger:["\\zeta"],kind:"function",parse:"Zeta"},{latexTrigger:["\\Beta"],kind:"function",parse:"Beta"},{name:"LambertW",latexTrigger:["\\operatorname{W}"],kind:"function",serialize:(e,n)=>"\\operatorname{W}"+e.wrapArguments(n)},{name:"BesselJ",latexTrigger:["\\operatorname{J}"],kind:"function",serialize:(e,n)=>{let t=c(n,1),i=c(n,2);return t!==null&&i!==null?"\\operatorname{J}_{"+e.serialize(t)+"}"+e.wrapArguments(["BesselJ",i]):"\\operatorname{J}"+e.wrapArguments(n)}},{name:"BesselY",latexTrigger:["\\operatorname{Y}"],kind:"function",serialize:(e,n)=>{let t=c(n,1),i=c(n,2);return t!==null&&i!==null?"\\operatorname{Y}_{"+e.serialize(t)+"}"+e.wrapArguments(["BesselY",i]):"\\operatorname{Y}"+e.wrapArguments(n)}},{name:"BesselI",latexTrigger:["\\operatorname{I}"],kind:"function",serialize:(e,n)=>{let t=c(n,1),i=c(n,2);return t!==null&&i!==null?"\\operatorname{I}_{"+e.serialize(t)+"}"+e.wrapArguments(["BesselI",i]):"\\operatorname{I}"+e.wrapArguments(n)}},{name:"BesselK",latexTrigger:["\\operatorname{K}"],kind:"function",serialize:(e,n)=>{let t=c(n,1),i=c(n,2);return t!==null&&i!==null?"\\operatorname{K}_{"+e.serialize(t)+"}"+e.wrapArguments(["BesselK",i]):"\\operatorname{K}"+e.wrapArguments(n)}},{name:"AiryAi",latexTrigger:["\\operatorname{Ai}"],kind:"function",serialize:(e,n)=>"\\operatorname{Ai}"+e.wrapArguments(n)},{name:"AiryBi",latexTrigger:["\\operatorname{Bi}"],kind:"function",serialize:(e,n)=>"\\operatorname{Bi}"+e.wrapArguments(n)},{name:"GCD",latexTrigger:["\\gcd"],kind:"function"},{symbolTrigger:"gcd",kind:"function",parse:"GCD"},{symbolTrigger:"GCD",kind:"function",parse:"GCD"},{name:"Half",serialize:"\\frac12"},{name:"Lg",latexTrigger:["\\lg"],serialize:(e,n)=>"\\log_{10}"+e.wrapArguments(n),parse:e=>{let n=e.parseArguments("implicit");return n===null?"Lg":["Log",...n,10]}},{name:"Lb",latexTrigger:"\\lb",parse:e=>{let n=e.parseArguments("implicit");return n===null?"Log":["Log",n[0],2]}},{name:"Ln",latexTrigger:["\\ln"],parse:e=>bs("Ln",e),serialize:(e,n)=>"\\ln"+e.wrapArguments(n)},{name:"Log",latexTrigger:["\\log"],parse:e=>bs("Log",e),serialize:(e,n)=>{let[t,i]=x(n);return i?g(["\\log_{",e.serialize(i),"}",e.wrap(t)]):"\\log"+e.wrapArguments(n)}},{name:"LCM",latexTrigger:["\\lcm"],kind:"function"},{symbolTrigger:"lcm",kind:"function",parse:"LCM"},{symbolTrigger:"LCM",kind:"function",parse:"LCM"},{symbolTrigger:"max",kind:"function",parse:"Max",arguments:"implicit"},{symbolTrigger:"min",kind:"function",parse:"Min",arguments:"implicit"},{name:"Max",latexTrigger:"\\max",kind:"function",arguments:"implicit"},{name:"Min",latexTrigger:"\\min",kind:"function",arguments:"implicit"},{name:"Supremum",latexTrigger:"\\sup",kind:"function",arguments:"implicit"},{name:"Infimum",latexTrigger:"\\inf",kind:"function",arguments:"implicit"},{name:"Limit",latexTrigger:"\\lim",kind:"expression",parse:e=>{if(!e.match("_"))return null;let n=e.parseGroup();if(m(n)!=="To")return null;let t=e.parseExpression({minPrec:Z});return t?["Limit",["Function",t,c(n,1)],c(n,2)]:null},serialize:(e,n)=>{let t=c(n,1),i=c(t,2),r=c(n,2);return g(["\\lim_{",e.serialize(i),"\\to",e.serialize(r),"}",e.serialize(c(t,1))])}},{name:"MinusPlus",latexTrigger:["\\mp"],kind:"infix",associativity:"any",precedence:pe},{name:"Multiply",latexTrigger:["\\times"],kind:"infix",associativity:"any",precedence:Z,serialize:Ns},{latexTrigger:["\\cdot"],kind:"infix",associativity:"any",precedence:Z,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:Z+2});return i===null?null:Ye("Multiply",n,i)}},{latexTrigger:["*"],kind:"infix",associativity:"any",precedence:Z,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:Z+2});return i===null?["Multiply",n,Ze]:Ye("Multiply",n,i)}},{name:"Mod",latexTrigger:"\\bmod",kind:"infix",precedence:K,serialize:(e,n)=>{if(B(n)!==2)return"";let t=e.serialize(c(n,1)),i=e.serialize(c(n,2));return g([t,"\\bmod",i])}},{latexTrigger:"\\mod",kind:"infix",precedence:K,parse:"Mod"},{latexTrigger:"\\operatorname{mod}",parse:"Mod"},{latexTrigger:"\\pmod",kind:"prefix",precedence:k,parse:e=>{let n=e.parseGroup()??e.parseToken();return["Mod",P(n)]}},{name:"Congruent",serialize:(e,n)=>{let t=e.serialize(c(n,1)),i=e.serialize(c(n,2));if(c(n,3)===null)return g([t,"\\equiv",i]);let r=e.serialize(c(n,3));return g([t,"\\equiv",i,"\\pmod{",r,"}"])}},{name:"Negate",latexTrigger:["-"],kind:"prefix",precedence:kn+1,parse:(e,n)=>{e.skipSpace();let t=e.parseExpression({...n,minPrec:kn+3});return t===null?null:["Negate",t]}},{kind:"matchfix",openTrigger:"||",closeTrigger:"||",parse:(e,n)=>D(n)?null:["Norm",n]},{name:"Norm",kind:"matchfix",openTrigger:["\\left","\\Vert"],closeTrigger:["\\right","\\Vert"],parse:(e,n)=>D(n)?null:["Norm",n],serialize:(e,n)=>{let t=c(n,1);if(m(t)==="Matrix"){let i=c(t,1),r=c(t,2),s=r?["Matrix",i,{str:"\u2016\u2016"},r]:["Matrix",i,{str:"\u2016\u2016"}];return e.serialize(s)}return`\\left\\Vert ${e.serialize(t)}\\right\\Vert`}},{name:"PlusMinus",latexTrigger:["\\pm"],kind:"infix",associativity:"any",precedence:pe,serialize:(e,n)=>{let t=c(n,1);if(t===null)return"\\pm";if(B(n)===1)return g(["\\pm",e.serialize(t)]);let i=c(n,2);return g([e.serialize(t),"\\pm",e.serialize(i)])}},{latexTrigger:["\\pm"],kind:"prefix",precedence:pe,parse:(e,n)=>{let t=e.parseExpression({...n,minPrec:400});return["PlusMinus",0,P(t)]}},{latexTrigger:["\\plusmn"],kind:"infix",associativity:"any",precedence:pe,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:400});return["PlusMinus",n,P(i)]}},{latexTrigger:["\\plusmn"],kind:"prefix",precedence:pe,parse:(e,n)=>{let t=e.parseExpression({...n,minPrec:400});return["PlusMinus",P(t)]}},{name:"Power",latexTrigger:["^"],kind:"infix",serialize:Wi},{latexTrigger:"\\prod",precedence:Z,name:"Product",parse:gs("Product","Multiply",Z),serialize:xs("\\prod")},{latexTrigger:["*","*"],kind:"infix",associativity:"right",precedence:kn,parse:(e,n,t)=>{if(e.options.strict!==!1)return null;let i=e.parseExpression({...t,minPrec:kn});return i===null?null:["Power",n,i]}},{name:"Rational",precedence:K,serialize:(e,n)=>n&&B(n)===1?"\\operatorname{Rational}"+e.wrapArguments(n):ds(e,n)},{name:"Reduce",serialize:(e,n)=>{let t=c(n,1);if(!t)return"";let i=c(n,2);return b(i)==="Add"?`\\sum ${e.serialize(t)}`:b(i)==="Multiply"?`\\prod ${e.serialize(t)}`:`\\operatorname{Reduce}\\left(${e.serialize(t)}, ${e.serialize(c(n,2))}\\right)`}},{name:"Root",serialize:Wi},{name:"Round",symbolTrigger:"round",kind:"function"},{name:"Square",precedence:720,serialize:(e,n)=>{let t=e.wrapShort(c(n,1));return(t.startsWith("-")?e.wrapString(t,"normal"):t)+"^2"}},{latexTrigger:["\\sum"],precedence:C,name:"Sum",parse:gs("Sum","Add",Z),serialize:xs("\\sum")},{name:"Heaviside",symbolTrigger:"Heaviside",kind:"function"},{name:"Sign",symbolTrigger:"sgn",kind:"function"},{name:"Sqrt",latexTrigger:["\\sqrt"],parse:Ko,serialize:Wi},{name:"Subtract",latexTrigger:["-"],kind:"infix",associativity:"left",precedence:C+2,parse:(e,n,t)=>{let i=e.parseExpression({...t,minPrec:C+3});return i===null?null:["Subtract",n,i]},serialize:(e,n)=>{let t=e.wrap(c(n,1),C+2),i=e.wrap(c(n,2),C+3);return g([t,"-",i])}},{name:"Distance",latexTrigger:["\\operatorname{distance}"],kind:"function",serialize:(e,n)=>"\\operatorname{distance}"+e.wrapArguments(n)}];function na(e,n){if(e!==null){if(b(e))return{index:b(e)??"Nothing",upper:n};if(m(e)==="GreaterEqual"){let t=b(c(e,1))??"Nothing",i=c(e,2)??1;return{index:t,lower:i,upper:n}}if(m(e)==="Equal"){let t=b(c(e,1))??"Nothing",i=c(e,2);if(m(i)==="Range"){let s=c(i,1)??1,o=c(i,2)??void 0;return{index:t,lower:s,upper:o}}return{index:t,lower:i??1,upper:n}}if(m(e)==="Element")return{index:b(c(e,1))??"Nothing",element:e}}}function ta(e){let n=m(e);return n?new Set(["Less","LessEqual","Greater","GreaterEqual","NotEqual","And","Or","Not"]).has(n):!1}function hs(e){if(e===null)return[];let n=De(e);if(n)return[...n];if(m(e)==="Tuple"){let t=x(e);return t?[...t]:[e]}return[e]}function ia(e,n){D(e)&&(e=null),D(n)&&(n=null);let t=hs(e),i=hs(n),r=[],s=0;for(;s<t.length;){let o=t[s],a=na(o,i[s]);if(a){if(a.element&&s+1<t.length){let u=t[s+1];if(ta(u)&&m(u)!=="Element"&&m(u)!=="Equal"){let l=a.element;if(Array.isArray(l)&&l.length>=3){let f=[l[0],...l.slice(1),u];a.element=f}s++}}r.push(a)}s++}return r}function gs(e,n,t){return i=>{i.skipSpace(),i.pushSymbolTable();let r=null,s=null;for(;!(s&&r)&&(i.peek==="_"||i.peek==="^");)i.match("_")?s=i.parseGroup()??i.parseToken():i.match("^")&&(r=i.parseGroup()??i.parseToken()),i.skipSpace();if(!r&&!s){let l=i.parseExpression({minPrec:t});return i.popSymbolTable(),l?["Reduce",l,n]:null}let o=ia(s,r),a=i.parseExpression({minPrec:t});if(i.popSymbolTable(),a===null)return[e];let u=[];for(let l of o){if(l.element){u.push(l.element);continue}let f=l.lower,h=l.upper,N=l.index??"Nothing";h!=null?u.push(["Tuple",N,f??1,h]):f!=null?u.push(["Tuple",N,f]):u.push(["Tuple",N])}return[e,a,...u]}}var ra=new Set(["Tuple","Triple","Pair","Single","Limits","Element"]);function ys(e){return e==null||b(e)==="Nothing"?null:e}function sa(e){let n=[],t=x(e);if(t.length<=1)return n;for(let i of t.slice(1)){let r=m(i);if(r&&ra.has(r)){n.push(i);continue}break}return n}function oa(e,n){if(m(n)==="Element"){let l=e.serialize(c(n,1)),f=e.serialize(c(n,2));return{sub:`${l}\\in ${f}`}}let t=c(n,1);t!==null&&m(t)==="Hold"&&(t=c(t,1));let i=ys(c(n,2)),r=ys(c(n,3)),s={},o=t?b(t):null,a=o!==null&&o!=="Nothing",u=a&&t?e.serialize(t):void 0;return a&&i!==null&&u?s.sub=`${u}=${e.serialize(i)}`:a&&u?s.sub=u:i!==null&&(s.sub=e.serialize(i)),r!==null&&(s.sup=e.serialize(r)),s}function xs(e){return(n,t)=>{let i=c(t,1);if(!i)return e;let r=sa(t),s=e;if(r.length>0){let o=[],a=[];for(let u of r){let l=oa(n,u);l.sub&&o.push(l.sub),l.sup&&a.push(l.sup)}o.length>0&&(s=Je("_",s,o.join(", "))),a.length>0&&(s=Je("^",s,a.join(", ")))}return g([s,n.serialize(i)])}}function bs(e,n){let t=null;n.match("_")&&(t=n.parseGroup()??n.parseToken());let i=n.parseArguments("implicit");return i===null&&t===null?[e]:i===null?[e,t]:t===null?[e,...i]:t===10?["Log",i[0]]:t===2?["Lb",...i]:["Log",i[0],t]}function Pn(e){let n=1,t=e;do{e=t;let i=m(e);if(i==="Negate")n*=-1,t=c(e,1);else if(i==="Multiply"){let[r,s]=Pn(c(e,1));s<0&&(n*=-1,r===1?t=["Multiply",...x(e).slice(1)]:t=["Multiply",r,...x(e).slice(1)])}else if(i==="Divide"||i==="Rational"){let[r,s]=Pn(c(e,1));s<0&&(n*=-1,t=[i,r,c(e,2)])}else{let r=I(e);r!==null&&r<0&&(n*=-1,t=-r)}}while(t!==e);return[e,n]}var Ts=[{name:"Real",kind:"function",latexTrigger:["\\Re"],arguments:"implicit"},{name:"Imaginary",kind:"function",latexTrigger:["\\Im"],arguments:"implicit"},{name:"Argument",kind:"function",latexTrigger:["\\arg"],arguments:"implicit"},{name:"Conjugate",latexTrigger:["^","\\star"],kind:"postfix"}];function T(e){return(n,t)=>{let i={"\\arcsin":"Arcsin","\\arccos":"Arccos","\\arctan":"Arctan","\\arctg":"Arctan","\\arcctg":"Arccot","\\arcsec":"Arcsec","\\arccsc":"Arccsc","\\arsinh":"Arsinh","\\arcsinh":"Arsinh","\\arcosh":"Arcosh","\\arccosh":"Arcosh","\\artanh":"Artanh","\\arctanh":"Artanh","\\arsech":"Arsech","\\arcsech":"Arsech","\\arcsch":"Arcsch","\\arccsch":"Arcsch","\\arcoth":"Arcoth","\\arccoth":"Arcoth","\\ch":"Cosh","\\cos":"Cos","\\cosh":"Cosh","\\cosec":"Csc","\\cot":"Cot","\\cotg":"Cot","\\ctg":"Cot","\\csc":"Csc","\\csch":"Csch","\\coth":"Coth","\\cth":"Coth","\\sec":"Sec","\\sech":"Sech","\\sin":"Sin","\\sinh":"Sinh","\\sh":"Sinh","\\tan":"Tan","\\tg":"Tan","\\tanh":"Tanh","\\th":"Tanh"},r=i[e??""]??e??"";if(n.atTerminator(t))return r;let s=r;do{let h=n.parsePostfixOperator(s,t);if(h===null)break;s=h}while(!0);n.skipSpace();let o=null;n.match("^")&&(o=n.parseGroup()??n.parseToken()),n.skipSpace();let a=n.parseArguments("implicit",{minPrec:Z,condition:h=>i[h.peek]||(t?.condition?.(h)??!1)}),l=a?.length===2&&(s==="Arctan"||Array.isArray(s)&&s[0]==="InverseFunction"&&s[1]==="Tan")?"Arctan2":s,f=a===null?s:typeof l=="string"?[l,...a]:["Apply",l,...a];return o===null?f:["Power",f,o]}}var vs=[{name:"Arcsin",latexTrigger:["\\arcsin"],parse:T("Arcsin")},{name:"Arccos",latexTrigger:["\\arccos"],parse:T("Arccos")},{name:"Arctan",latexTrigger:["\\arctan"],parse:T("Arctan")},{latexTrigger:["\\arctg"],parse:T("Arctan")},{symbolTrigger:"arctg",parse:T("Arctan")},{name:"Arccot",symbolTrigger:"arcctg",parse:T("Arccot")},{latexTrigger:["\\arcctg"],parse:T("Arccot")},{name:"Arcoth",symbolTrigger:"arcoth",parse:T("Arcoth")},{symbolTrigger:"arccoth",parse:T("Arcoth")},{latexTrigger:["\\arcoth"],parse:T("Arcoth")},{latexTrigger:["\\arccoth"],parse:T("Arcoth")},{name:"Arcsec",symbolTrigger:"arcsec",parse:T("Arcsec")},{latexTrigger:["\\arcsec"],parse:T("Arcsec")},{name:"Arccsc",symbolTrigger:"arccsc",parse:T("Arccsc")},{latexTrigger:["\\arccsc"],parse:T("Arccsc")},{name:"Arsinh",symbolTrigger:"arsinh",parse:T("Arsinh")},{symbolTrigger:"arcsinh",parse:T("Arsinh")},{latexTrigger:["\\arsinh"],parse:T("Arsinh")},{latexTrigger:["\\arcsinh"],parse:T("Arsinh")},{name:"Arcosh",symbolTrigger:"arcosh",parse:T("Arcosh")},{symbolTrigger:"arccosh",parse:T("Arcosh")},{latexTrigger:"\\arcosh",parse:T("Arcosh")},{latexTrigger:"\\arccosh",parse:T("Arcosh")},{name:"Artanh",symbolTrigger:"artanh",parse:T("Artanh")},{symbolTrigger:"arctanh",parse:T("Artanh")},{latexTrigger:"\\artanh",parse:T("Artanh")},{latexTrigger:["\\arctanh"],parse:T("Artanh")},{name:"Arsech",symbolTrigger:"arsech",parse:T("Arsech")},{symbolTrigger:"arcsech",parse:T("Arsech")},{latexTrigger:["\\arsech"],parse:T("Arsech")},{latexTrigger:["\\arcsech"],parse:T("Arsech")},{name:"Arcsch",symbolTrigger:"arcsch",parse:T("Arcsch")},{symbolTrigger:"arccsch",parse:T("Arcsch")},{latexTrigger:["\\arcsch"],parse:T("Arcsch")},{latexTrigger:["\\arccsch"],parse:T("Arcsch")},{name:"Cosec",symbolTrigger:"cosec",parse:T("Cosec")},{latexTrigger:["\\cosec"],parse:T("Cosec")},{name:"Cosh",latexTrigger:["\\cosh"],parse:T("Cosh")},{latexTrigger:["\\ch"],parse:T("Cosh")},{name:"Cot",latexTrigger:["\\cot"],parse:T("Cot")},{latexTrigger:["\\cotg"],parse:T("Cot")},{latexTrigger:["\\ctg"],parse:T("Cot")},{name:"Csc",latexTrigger:["\\csc"],parse:T("Csc")},{name:"Csch",latexTrigger:["\\csch"],parse:T("Csch")},{name:"Coth",latexTrigger:["\\coth"],parse:T("Coth")},{latexTrigger:["\\cth"],parse:T("Coth")},{symbolTrigger:"cth",parse:T("Coth")},{latexTrigger:["\\coth"],parse:T("Coth")},{name:"Sec",latexTrigger:["\\sec"],parse:T("Sec")},{name:"Sech",symbolTrigger:"sech",parse:T("Sech")},{latexTrigger:["\\sech"],parse:T("Sech")},{name:"Sinh",latexTrigger:["\\sinh"],parse:T("Sinh")},{latexTrigger:["\\sh"],parse:T("Sinh")},{name:"Tan",latexTrigger:["\\tan"],parse:T("Tan")},{latexTrigger:["\\tg"],parse:T("Tan")},{name:"Tanh",latexTrigger:["\\tanh"],parse:T("Tanh")},{latexTrigger:["\\th"],parse:T("Tanh")},{name:"Cos",latexTrigger:["\\cos"],parse:T("Cos")},{name:"Sin",latexTrigger:["\\sin"],parse:T("Sin")},{name:"Sinc",symbolTrigger:"sinc",kind:"function"},{name:"FresnelS",symbolTrigger:"FresnelS",kind:"function"},{name:"FresnelC",symbolTrigger:"FresnelC",kind:"function"}];function We(e){return n=>{let t=!1,i=[],r=[];for(;!t;){n.skipVisualSpace(),n.match("\\limits"),n.skipSpace();let a=null,u=null;for(;!(u!==null&&a!==null)&&(n.peek==="_"||n.peek==="^");)n.match("_")?u=n.parseGroup()??n.parseToken():n.match("^")&&(a=n.parseGroup()??n.parseToken()),n.skipSpace();D(u)&&(u=null),D(a)&&(a=null),i.push(u??"Nothing"),r.push(a??"Nothing"),n.skipVisualSpace(),t=!n.match(e)}let[s,o]=aa(n);if(s&&o.length===0){if(m(s)==="Add"||m(s)==="Subtract"){let a=[],u=[];for(let l of x(s))if(o)u.push(l);else{let f;[f,o]=de(l),a.push(f??l)}if(o!==null&&u.length>0)return["Add",Is(e,["Add",...a],{indexes:o,subs:i,sups:r})??"Nothing",...u]}else if(m(s)==="Divide"){let a;[a,o]=de(c(s,1)),a!==null&&o!==null&&(s=["Divide",a,c(s,2)])}}return Is(e,s,{indexes:o,subs:i,sups:r})}}function Is(e,n,t){if(!n)return null;if(t.sups.length===0&&t.subs.length===0)return[e,n,...t.indexes];let i=t.indexes.length===0?m(n)==="Function"?x(n).slice(1):[]:t.indexes,r=Math.max(t.sups.length,t.subs.length,i.length);if(i.length===0)for(let o=0;o<r;o++)i.push("Nothing");else if(i.length!==r)for(let o=i.length;o<r;o++)i.push(["Error","'missing'"]);if(t.subs.length!==r)for(let o=t.subs.length;o<r;o++)t.subs.push("Nothing");if(t.sups.length!==r)for(let o=t.sups.length;o<r;o++)t.sups.push("Nothing");let s=i.map((o,a)=>{let u=t.sups[a],l=t.subs[a];return l==="Nothing"&&u==="Nothing"?o:["Tuple",o,l,u]});return[e,n,...s]}function aa(e){let n=!1,t=e.parseExpression({minPrec:266,condition:()=>{let i=e.index;return n=Ms(e),e.index=i,n}});return t!==null&&!n?de(t):[t,ua(e)]}function ua(e){let n=[];for(;Ms(e);){e.skipVisualSpace();let t=b(e.parseSymbol());if(t===null)return n;n.push(t)}return n}function de(e){let n=m(e),t=c(e,1);if(!t)return[e,[]];if(n==="Sequence"&&B(e)===1)return de(t);if(n==="Multiply"||n==="InvisibleOperator"){let i=x(e);if(i){let[r,s]=la(i);return r.length>0?[[n,...r],s]:[null,s]}}else if(n==="Delimiter"){let[i,r]=de(t);if(r)return i?[["Delimiter",["Sequence",i],...x(e).slice(1)],r]:[null,r]}else if(n==="Add"){let i=x(e);if(i.length>0){let[r,s]=de(i[i.length-1]);if(s.length>0){if(r)return[["Add",...i.slice(0,-1),r],s];if(i.length>2)return[["Add",...i.slice(0,-1)],s];if(i.length>2)return[i[0],s]}}}else if(n==="Negate"){let[i,r]=de(t);if(r.length>0)return[i?["Negate",i]:null,r]}else if(n==="Divide"){let[i,r]=de(t);if(r.length>0)return[["Divide",i??1,c(e,2)],r]}else{let i=x(e);if(i.length===1){let[r,s]=de(i[0]);if(s.length>0)return[[m(e),r],s]}}return[e,[]]}function ks(e){return(n,t)=>{if(!c(t,1))return e;let i=c(t,1),r=[];m(i)==="BuiltInFunction"?(r=["x"],i=[c(i,1),"x"]):m(i)==="Function"?(r=x(i).slice(1),i=c(i,1)):b(i)?r=[]:r=[];let s=x(t).slice(1),o=[],a=s.map((l,f)=>{if(b(l)==="Nothing")return o.push(b(r[f])??"Nothing"),"";if(b(l))return o.push(b(l)??"Nothing"),"";let h=m(l);if(h==="Tuple"||h==="Pair"||h==="Limits"||h==="Range"){if(B(l)===3){let N=c(l,1);o.push(b(N)??"Nothing");let E=c(l,2),S=c(l,3);return b(E)==="Nothing"&&(E=null),b(S)==="Nothing"&&(S=null),E!==null&&S!==null?`_{${n.serialize(E)}}^{${n.serialize(S)}}`:E!==null?`_{${n.serialize(E)}}`:S!==null?`^{${n.serialize(S)}}`:""}return`_{${n.serialize(l)}}`}if(B(l)===2){if(b(c(l,1))){o.push(b(c(l,1))??"Nothing");let S=c(l,2);return b(S)==="Nothing"?"":`_{${n.serialize(S)}}`}o.push(b(r[f])??"Nothing");let N=c(l,1),E=c(l,2);if(b(N)==="Nothing"&&(N=null),b(E)==="Nothing"&&(E=null),N!==null&&E!==null)return`_{${n.serialize(N)}}^{${n.serialize(E)}}`;if(N!==null)return`_{${n.serialize(N)}}`;if(E!==null)return`^{${n.serialize(E)}}`}else o.push(b(r[f])??"Nothing")}),u=o.filter(l=>b(l)!=="Nothing").map(l=>`\\mathrm{d}${n.serialize(b(l)??"x")}`);return u.length>0&&(u=["\\,",...u]),a.length===0?`${e}\\,${n.serialize(i)}\\!${u.join(" ")}`:a.reverse().map(l=>`${e}${l}`).join("")+"\\!"+n.serialize(i)+u.join(" ")}}var Ss=[{kind:"expression",name:"Integrate",latexTrigger:["\\int"],parse:We("Integrate"),serialize:ks("\\int")},{kind:"expression",latexTrigger:["\\iint"],parse:We("Integrate")},{kind:"expression",latexTrigger:["\\iiint"],parse:We("Integrate")},{kind:"expression",name:"CircularIntegrate",latexTrigger:["\\oint"],parse:We("CircularIntegrate"),serialize:ks("\\oint")},{kind:"expression",latexTrigger:["\\oiint"],parse:We("CircularIntegrate")},{kind:"expression",latexTrigger:["\\oiiint"],parse:We("CircularIntegrate")}];function Ms(e){let n=e.index;for(;e.match("\\cdot")||e.skipVisualSpace(););return e.matchAll(["\\mathrm","<{>","d","<}>"])||e.matchAll(["\\operatorname","<{>","d","<}>"])||e.match("d")||e.match("\\differentialD")?!0:(e.index=n,!1)}function la(e){let n=[...e],t=[];for(;n.length>0;){let i;if([n,i]=ca(n),!i)break;t.push(i)}return[n,t]}function ca(e){if(e.length<2)return[e,""];let n=e[e.length-2];if(n==="d"||n==="d_upright"){let t=b(e[e.length-1]);if(t)return[e.slice(0,-2),t]}return[e,""]}var ws=[{name:"Matrix",serialize:(e,n)=>{let t=x(c(n,1));return Xi(e,t,A(c(n,2)),A(c(n,3)))}},{name:"Vector",serialize:(e,n)=>{let t=x(n);return Xi(e,t.map(i=>["List",i]),A(c(n,2)),A(c(n,3)))}},{kind:"environment",symbolTrigger:"pmatrix",parse:e=>{let n=ge(e),[t,i]=he(e);return n?[t,i,{str:"()"},{str:n}]:[t,i]}},{kind:"environment",symbolTrigger:"bmatrix",parse:e=>{let n=ge(e),[t,i]=he(e);return n?[t,i,{str:"[]"},{str:n}]:[t,i,{str:"[]"}]}},{kind:"environment",symbolTrigger:"Bmatrix",parse:e=>{let n=ge(e),[t,i]=he(e);return n?[t,i,{str:"{}"},{str:n}]:[t,i,{str:"{}"}]}},{kind:"environment",symbolTrigger:"vmatrix",parse:e=>{let n=ge(e),[t,i]=he(e);return n?["Determinant",[t,i,{str:n}]]:["Determinant",[t,i]]}},{kind:"environment",symbolTrigger:"Vmatrix",parse:e=>{let n=ge(e),[t,i]=he(e);return n?["Norm",[t,i,{str:n}]]:["Norm",[t,i]]}},{kind:"environment",symbolTrigger:"smallmatrix",parse:e=>{let n=ge(e),[t,i]=he(e);return n?[t,i,{str:"()"},{str:n}]:[t,i]}},{kind:"environment",symbolTrigger:"array",parse:e=>{let n=ge(e,!1),[t,i]=he(e);return n?[t,i,{str:".."},{str:n}]:[t,i,{str:".."}]}},{kind:"environment",symbolTrigger:"matrix",parse:e=>{let n=ge(e),[t,i]=he(e);return n?[t,i,{str:".."},{str:n}]:[t,i,{str:".."}]}},{kind:"environment",symbolTrigger:"matrix*",parse:e=>{let n=ge(e),[t,i]=he(e);return n?[t,i,{str:".."},{str:n}]:[t,i,{str:".."}]}},{name:"ConjugateTranspose",kind:"postfix",latexTrigger:["^","\\star"]},{kind:"postfix",latexTrigger:["^","\\H"],parse:"ConjugateTranspose"},{kind:"postfix",latexTrigger:["^","\\dagger"],parse:(e,n)=>["ConjugateTranspose",n]},{kind:"postfix",latexTrigger:["^","\\ast"],parse:(e,n)=>["ConjugateTranspose",n]},{kind:"postfix",latexTrigger:["^","\\top"],parse:(e,n)=>["Transpose",n]},{kind:"postfix",latexTrigger:["^","\\intercal"],parse:(e,n)=>["Transpose",n]},{name:"Transpose",kind:"postfix",latexTrigger:["^","T"]},{name:"PseudoInverse",kind:"postfix",latexTrigger:["^","+"]},{name:"Inverse",serialize:(e,n)=>e.serialize(c(n,1))+"^{-1}"},{name:"Trace",kind:"function",latexTrigger:"\\tr",arguments:"implicit",serialize:(e,n)=>Xe(e,n,"\\tr")},{symbolTrigger:"tr",kind:"function",parse:"Trace",arguments:"implicit"},{name:"Kernel",kind:"function",latexTrigger:"\\ker",arguments:"implicit",serialize:(e,n)=>Xe(e,n,"\\ker")},{symbolTrigger:"ker",kind:"function",parse:"Kernel",arguments:"implicit"},{name:"Dimension",kind:"function",latexTrigger:"\\dim",arguments:"implicit",serialize:(e,n)=>Xe(e,n,"\\dim")},{symbolTrigger:"dim",kind:"function",parse:"Dimension",arguments:"implicit"},{name:"Degree",kind:"function",latexTrigger:"\\deg",arguments:"implicit",serialize:(e,n)=>Xe(e,n,"\\deg")},{symbolTrigger:"deg",kind:"function",parse:"Degree",arguments:"implicit"},{name:"Hom",kind:"function",latexTrigger:"\\hom",arguments:"implicit",serialize:(e,n)=>Xe(e,n,"\\hom")},{symbolTrigger:"hom",kind:"function",parse:"Hom",arguments:"implicit"},{name:"Determinant",kind:"function",latexTrigger:"\\det",arguments:"implicit",serialize:(e,n)=>{let t=c(n,1);if(m(t)==="Matrix"){let i=x(c(t,1));return Xi(e,i,"||",A(c(t,2)))}return Xe(e,n,"\\det")}},{symbolTrigger:"det",kind:"function",parse:"Determinant",arguments:"implicit"},{name:"MatrixMultiply",serialize:(e,n)=>{let t=e.serialize(c(n,1)),i=e.serialize(c(n,2));return`${t} \\cdot ${i}`}}];function he(e){let n=e.parseTabular();return n?["Matrix",["List",...n.map(t=>["List",...t])]]:["",null]}function ge(e,n=!0){let t=e.parseStringGroup(n)?.trim();if(!t)return"";let i="";for(let r of t)r==="c"&&(i+="="),r==="l"&&(i+="<"),r==="r"&&(i+=">"),r==="|"&&(i+="|"),r===":"&&(i+=":");return i}function Xe(e,n,t){if(x(n).length!==1)return`${t}${e.wrapArguments(n)}`;let r=c(n,1),s=e.serialize(r);return typeof r=="string"||typeof r=="number"?`${t} ${s}`:`${t}\\left(${s}\\right)`}function Xi(e,n,t,i){t??="()";let[r,s]=["",""];typeof t=="string"&&t.length===2&&([r,s]=t);let o="";if(i)for(let f of i)f==="<"?o+="l":f===">"?o+="r":f==="="?o+="c":f==="|"?o+="|":f===":"&&(o+=":");let a=[];for(let f of n??[]){let h=[];for(let N of x(f))h.push(e.serialize(N));a.push(h.join(" & "))}let u=a.join(`\\\\
|
|
9
|
+
`),l=o.length>0?`[${o}]`:"";return r==="("&&s===")"?g(["\\begin{pmatrix}",l,u,"\\end{pmatrix}"]):r==="["&&s==="]"?g(["\\begin{bmatrix}",l,u,"\\end{bmatrix}"]):r==="{"&&s==="}"?g(["\\begin{Bmatrix}",l,u,"\\end{Bmatrix}"]):r==="|"&&s==="|"?g(["\\begin{vmatrix}",l,u,"\\end{vmatrix}"]):r==="\u2016"&&s==="\u2016"?g(["\\begin{Vmatrix}",l,u,"\\end{Vmatrix}"]):r==="{"&&s==="."?g(["\\begin{dcases}",l,u,"\\end{dcases}"]):r==="."&&s==="}"?g(["\\begin{rcases}",l,u,"\\end{rcases}"]):o||r!=="."||s!=="."?g(["\\left",ni[r]??r,"\\begin{array}",`{${o}}`,u,"\\end{array}","\\right",ni[s]??s]):g(["\\begin{matrix}",u,"\\end{matrix}"])}var As=[{name:"Mean",kind:"function",symbolTrigger:"mean"},{name:"Median",kind:"function",symbolTrigger:"median"},{name:"StandarDeviation",kind:"function",symbolTrigger:"stddev"},{latexTrigger:["\\bar"],kind:"expression",parse:(e,n)=>{let t=e.parseGroup()??e.parseToken();return!t||!b(t)?null:["Mean",t]}},{latexTrigger:"\\operatorname{var}",parse:"Variance"}];var si={Q:1e30,R:1e27,Y:1e24,Z:1e21,E:1e18,P:1e15,T:1e12,G:1e9,M:1e6,k:1e3,h:100,da:10,d:.1,c:.01,m:.001,\u00B5:1e-6,\u03BC:1e-6,n:1e-9,p:1e-12,f:1e-15,a:1e-18,z:1e-21,y:1e-24,r:1e-27,q:1e-30},Ds=new Set(["m","g","s","A","K","mol","cd","Hz","N","Pa","J","W","C","V","F","ohm","S","Wb","T","H","lm","lx","Bq","Gy","Sv","kat","eV","L","bar"]),oi={m:{dimension:[1,0,0,0,0,0,0],scale:1},kg:{dimension:[0,1,0,0,0,0,0],scale:1},g:{dimension:[0,1,0,0,0,0,0],scale:.001},s:{dimension:[0,0,1,0,0,0,0],scale:1},A:{dimension:[0,0,0,1,0,0,0],scale:1},K:{dimension:[0,0,0,0,1,0,0],scale:1},mol:{dimension:[0,0,0,0,0,1,0],scale:1},cd:{dimension:[0,0,0,0,0,0,1],scale:1},Hz:{dimension:[0,0,-1,0,0,0,0],scale:1},N:{dimension:[1,1,-2,0,0,0,0],scale:1},Pa:{dimension:[-1,1,-2,0,0,0,0],scale:1},J:{dimension:[2,1,-2,0,0,0,0],scale:1},W:{dimension:[2,1,-3,0,0,0,0],scale:1},C:{dimension:[0,0,1,1,0,0,0],scale:1},V:{dimension:[2,1,-3,-1,0,0,0],scale:1},F:{dimension:[-2,-1,4,2,0,0,0],scale:1},ohm:{dimension:[2,1,-3,-2,0,0,0],scale:1},S:{dimension:[-2,-1,3,2,0,0,0],scale:1},Wb:{dimension:[2,1,-2,-1,0,0,0],scale:1},T:{dimension:[0,1,-2,-1,0,0,0],scale:1},H:{dimension:[2,1,-2,-2,0,0,0],scale:1},lm:{dimension:[0,0,0,0,0,0,1],scale:1},lx:{dimension:[-2,0,0,0,0,0,1],scale:1},Bq:{dimension:[0,0,-1,0,0,0,0],scale:1},Gy:{dimension:[2,0,-2,0,0,0,0],scale:1},Sv:{dimension:[2,0,-2,0,0,0,0],scale:1},kat:{dimension:[0,0,-1,0,0,1,0],scale:1},degC:{dimension:[0,0,0,0,1,0,0],scale:1,offset:273.15},degF:{dimension:[0,0,0,0,1,0,0],scale:5/9,offset:459.67},min:{dimension:[0,0,1,0,0,0,0],scale:60},h:{dimension:[0,0,1,0,0,0,0],scale:3600},d:{dimension:[0,0,1,0,0,0,0],scale:86400},ha:{dimension:[2,0,0,0,0,0,0],scale:1e4},L:{dimension:[3,0,0,0,0,0,0],scale:.001},t:{dimension:[0,1,0,0,0,0,0],scale:1e3},eV:{dimension:[2,1,-2,0,0,0,0],scale:1602176634e-28},Da:{dimension:[0,1,0,0,0,0,0],scale:16605390666e-37},au:{dimension:[1,0,0,0,0,0,0],scale:149597870700},deg:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/180},rad:{dimension:[0,0,0,0,0,0,0],scale:1},grad:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/200},turn:{dimension:[0,0,0,0,0,0,0],scale:2*Math.PI},arcmin:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/10800},arcsec:{dimension:[0,0,0,0,0,0,0],scale:Math.PI/648e3},percent:{dimension:[0,0,0,0,0,0,0],scale:.01},ppm:{dimension:[0,0,0,0,0,0,0],scale:1e-6},dB:{dimension:[0,0,0,0,0,0,0],scale:1},Np:{dimension:[0,0,0,0,0,0,0],scale:1},in:{dimension:[1,0,0,0,0,0,0],scale:.0254},ft:{dimension:[1,0,0,0,0,0,0],scale:.3048},mi:{dimension:[1,0,0,0,0,0,0],scale:1609.344},lb:{dimension:[0,1,0,0,0,0,0],scale:.45359237},oz:{dimension:[0,1,0,0,0,0,0],scale:.028349523125},gal:{dimension:[3,0,0,0,0,0,0],scale:.003785411784},atm:{dimension:[-1,1,-2,0,0,0,0],scale:101325},bar:{dimension:[-1,1,-2,0,0,0,0],scale:1e5},cal:{dimension:[2,1,-2,0,0,0,0],scale:4.184},kWh:{dimension:[2,1,-2,0,0,0,0],scale:36e5},\u00C5:{dimension:[1,0,0,0,0,0,0],scale:1e-10}};function fa(e){if(e.length>2){let n=e.slice(0,2),t=e.slice(2);if(si[n]!==void 0&&Ds.has(t)){let i=oi[t];if(i)return{prefixScale:si[n],baseEntry:i}}}if(e.length>1){let n=e.slice(0,1),t=e.slice(1);if(si[n]!==void 0&&Ds.has(t)){let i=oi[t];if(i)return{prefixScale:si[n],baseEntry:i}}}return null}function pa(e){let n=oi[e];if(n)return n;let t=fa(e);return t?{dimension:t.baseEntry.dimension,scale:t.prefixScale*t.baseEntry.scale}:null}function Ki(e){let n=pa(e);return n?n.dimension:null}var Uf=new Map(["N","J","W","Pa","Hz","C","V","F","ohm","S","Wb","T","H","lm","lx","Gy","kat"].map(e=>[oi[e].dimension.join(","),e]));function ma(e){let n=e.indexOf("^");if(n===-1)return e;let t=e.slice(0,n),i=e.slice(n+1),r=parseInt(i,10);return isNaN(r)?e:["Power",t,r]}function _n(e){if(e=e.trim(),e.length===0)return null;if(e[0]==="("&&e[e.length-1]===")"){let r=0,s=!0;for(let o=0;o<e.length-1;o++)if(e[o]==="("?r++:e[o]===")"&&r--,r===0&&o<e.length-1){s=!1;break}if(s)return _n(e.slice(1,-1))}let n=-1,t=[],i=0;for(let r=0;r<e.length;r++)e[r]==="("?i++:e[r]===")"?i--:i===0&&(e[r]==="/"&&n===-1?n=r:e[r]==="*"&&t.push(r));if(n!==-1){let r=e.slice(0,n).trim(),s=e.slice(n+1).trim(),o=_n(r),a=_n(s);return!o||!a?null:["Divide",o,a]}if(t.length>0){let r=[],s=0;for(let a of t)r.push(e.slice(s,a).trim()),s=a+1;r.push(e.slice(s).trim());let o=r.filter(a=>a.length>0).map(a=>_n(a));return o.some(a=>a===null)?null:o.length===1?o[0]:["Multiply",...o]}return e[0]==="("?null:ma(e)}function Ps(e){return e=e.trim(),e.length===0?null:/[/*^()]/.test(e)?_n(e):e}function Os(e){if(!e.match("<{>"))return null;let n="",t=0;for(;!e.atEnd;){let i=e.peek;if(i==="<}>"&&t===0)return e.nextToken(),n;if(i==="<}>"){t--,e.nextToken();continue}if(i==="<{>"){t++,e.nextToken();continue}if(i==="<space>"){e.nextToken();continue}if(i==="\\cdot"){n+="*",e.nextToken();continue}if(i==="^"){n+="^",e.nextToken();continue}n+=i,e.nextToken()}return null}var da=new Set(["d"]);function Cs(e){if(!e||e.length===0||da.has(e))return null;if(Ki(e)!==null)return e;if(/[/*^]/.test(e))try{let n=Ps(e);if(n!==null&&Qi(n))return n}catch{return null}return null}function Qi(e){if(typeof e=="string")return Ki(e)!==null;if(!Array.isArray(e))return!1;let n=e[0];return n==="Multiply"||n==="Divide"?e.slice(1).every(t=>Qi(t)):n==="Power"?Qi(e[1]):!1}var _s=e=>{let n=e.index,t=Os(e);if(t===null)return e.index=n,null;let i=Cs(t);return i===null?(e.index=n,null):["__unit__",i]};function Be(e){let n=b(e);if(n!==null)return n;if(typeof e=="number")return String(e);let t=m(e);if(!t)return"";if(t==="Divide"){let i=c(e,1),r=c(e,2);return`${Be(i)}/${Be(r)}`}if(t==="Multiply"){let i=[];if(Array.isArray(e))for(let r=1;r<e.length;r++)i.push(Be(e[r]));return i.join("\\cdot ")}if(t==="Power"){let i=c(e,1),r=c(e,2),s=typeof r=="number"?String(r):b(r)??String(r);return`${Be(i)}^{${s}}`}if(t==="Square"){let i=c(e,1);return`${Be(i)}^{2}`}return""}function Rs(e){let n=e.parseGroup();if(n===null)return null;let t=Fs(e);return t===null?null:["Quantity",n,t]}function Bs(e){return Fs(e)}function Fs(e){let n=e.index,t=Os(e);if(t===null)return e.index=n,null;let i=Cs(t);return i===null?(e.index=n,null):i}var Vs=[{latexTrigger:"\\mathrm",kind:"expression",parse:_s},{latexTrigger:"\\text",kind:"expression",parse:_s},{latexTrigger:"\\qty",parse:Rs},{latexTrigger:"\\SI",parse:Rs},{latexTrigger:"\\unit",parse:Bs},{latexTrigger:"\\si",parse:Bs},{name:"Quantity",serialize:(e,n)=>{let t=c(n,1),i=c(n,2);if(t===null||i===null)return"";let r=b(i),s=r==="deg"||r==="rad"||r==="arcmin"||r==="arcsec",o=e.options;if(s&&(o.dmsFormat||o.angleNormalization&&o.angleNormalization!=="none")){let l=I(t);if(l===null){let h=e.serialize(t),N=Be(i);return g([h,"\\,",`\\mathrm{${N}}`])}let f=l;return r==="rad"?f=f*180/Math.PI:r==="arcmin"?f=f/60:r==="arcsec"&&(f=f/3600),o.angleNormalization&&o.angleNormalization!=="none"&&(f=ti(f,o.angleNormalization)),o.dmsFormat?ii(f):`${f}\xB0`}let a=e.serialize(t),u=Be(i);return g([a,"\\,",`\\mathrm{${u}}`])}}];var ha=["pt","em","mu","ex","mm","cm","in","bp","sp","dd","cc","pc","nc","nd"];function Ls(e){for(e.skipSpace(),(e.peek==="-"||e.peek==="+")&&e.nextToken();/^[\d.]$/.test(e.peek);)e.nextToken();for(let n of ha)if(e.matchAll([...n]))return}function H(e){return n=>{let t=n.parseGroup();return t===null?[e]:[e,t]}}function ai(e){return n=>{let t=n.parseExpression();return t!==null&&!D(t)?["Annotated",t,{dict:{mathStyle:e}}]:"Nothing"}}function ae(e){return n=>{let t=n.parseExpression();return t!==null&&!D(t)?["Annotated",t,{dict:{size:e}}]:"Nothing"}}var Js=[{name:"Overscript",latexTrigger:["\\overset"],kind:"infix",precedence:700},{name:"Underscript",latexTrigger:["\\underset"],kind:"infix",precedence:700},{name:"Increment",latexTrigger:["+","+"],kind:"postfix",precedence:880,parse:(e,n)=>b(n)===null?null:["Increment",n]},{name:"Decrement",latexTrigger:["-","-"],kind:"postfix",precedence:880,parse:(e,n)=>b(n)===null?null:["Decrement",n]},{name:"PreIncrement",latexTrigger:["+","+"],kind:"prefix",precedence:880,parse:(e,n)=>{let t=e.parseExpression(n);return b(t)===null?null:["PreIncrement",t]}},{name:"PreDecrement",latexTrigger:["-","-"],kind:"prefix",precedence:880,parse:(e,n)=>{let t=e.parseExpression(n);return b(t)===null?null:["PreDecrement",t]}},{name:"Ring",latexTrigger:["\\circ"],kind:"infix",precedence:265},{name:"StringJoin",latexTrigger:["\\lt","\\gt"],kind:"infix",precedence:780},{name:"Starstar",latexTrigger:["\\star","\\star"],kind:"infix",precedence:780},{name:"PartialDerivative",latexTrigger:["\\partial"],kind:"prefix",parse:e=>{let n=!1,t="Nothing",i="Nothing";for(;!n;)e.skipSpace(),e.match("_")?i=e.parseGroup()??e.parseToken():e.match("^")?t=e.parseGroup()??e.parseToken():n=!0;let r=De(i);if(r&&(i=["List",...r]),i===null||t===null)return null;let s=e.parseGroup()??"Nothing";if(!D(s)){let o=e.parseArguments()??["Nothing"];s=[s,...o]}return["PartialDerivative",s,i,t]},serialize:(e,n)=>{let t="\\partial",i=c(n,1),r=c(n,2),s=c(n,3);return r!==null&&r!=="Nothing"&&(m(r)==="List"?t+="_{"+e.serialize(["Sequence",...x(r)])+"}":t+="_{"+e.serialize(r)+"}"),s!==null&&s!=="Nothing"&&(t+="^{"+e.serialize(s)+"}"),i!==null&&i!=="Nothing"&&(t+=e.serialize(i)),t},precedence:740},{name:"OverBar",latexTrigger:["\\overline"],parse:H("OverBar")},{name:"UnderBar",latexTrigger:["\\underline"],parse:H("UnderBar")},{name:"OverVector",latexTrigger:["\\vec"],parse:H("OverVector")},{name:"OverTilde",latexTrigger:["\\tilde"],parse:H("OverTilde")},{name:"OverHat",latexTrigger:["\\hat"],parse:H("OverHat")},{name:"OverRightArrow",latexTrigger:["\\overrightarrow"],parse:H("OverRightArrow")},{name:"OverLeftArrow",latexTrigger:["\\overleftarrow"],parse:H("OverLeftArrow")},{name:"OverRightDoubleArrow",latexTrigger:["\\Overrightarrow"],parse:H("OverRightDoubleArrow")},{name:"OverLeftHarpoon",latexTrigger:["\\overleftharpoon"],parse:H("OverLeftHarpoon")},{name:"OverRightHarpoon",latexTrigger:["\\overrightharpoon"],parse:H("OverRightHarpoon")},{name:"OverLeftRightArrow",latexTrigger:["\\overleftrightarrow"],parse:H("OverLeftRightArrow")},{name:"OverBrace",latexTrigger:["\\overbrace"],parse:H("OverBrace")},{name:"OverLineSegment",latexTrigger:["\\overlinesegment"],parse:H("OverLineSegment")},{name:"OverGroup",latexTrigger:["\\overgroup"],parse:H("OverGroup")},{latexTrigger:["\\textcolor"],parse:e=>{let n=e.index,t=e.parseStringGroup(),i=e.parseGroup();return t!==null?i!==null?["Annotated",i,{dict:{color:t}}]:"Nothing":(e.index=n,"Nothing")}},{latexTrigger:["\\colorbox"],parse:e=>{let n=e.index,t=e.parseStringGroup(),i=e.parseGroup();return t!==null?i!==null?["Annotated",i,{dict:{backgroundColor:t}}]:"Nothing":(e.index=n,"Nothing")}},{latexTrigger:["\\boxed"],parse:e=>{let n=e.parseGroup();return n!==null?["Annotated",n,{dict:{border:!0}}]:"Nothing"}},{latexTrigger:["\\displaystyle"],parse:ai("normal")},{latexTrigger:["\\textstyle"],parse:ai("compact")},{latexTrigger:["\\scriptstyle"],parse:ai("script")},{latexTrigger:["\\scriptscriptstyle"],parse:ai("scriptscript")},{latexTrigger:["\\color"],parse:e=>{let n=e.parseStringGroup();if(n!==null){let t=e.parseExpression();if(t!==null&&!D(t))return["Annotated",t,{dict:{color:n}}]}return"Nothing"}},{latexTrigger:["\\tiny"],parse:ae(1)},{latexTrigger:["\\scriptsize"],parse:ae(2)},{latexTrigger:["\\footnotesize"],parse:ae(3)},{latexTrigger:["\\small"],parse:ae(4)},{latexTrigger:["\\normalsize"],parse:ae(5)},{latexTrigger:["\\large"],parse:ae(6)},{latexTrigger:["\\Large"],parse:ae(7)},{latexTrigger:["\\LARGE"],parse:ae(8)},{latexTrigger:["\\huge"],parse:ae(9)},{latexTrigger:["\\Huge"],parse:ae(10)},{name:"Annotated",serialize:(e,n)=>{let t=e.serialize(c(n,1)),i=Xr(c(n,2));if(i==null)return t;i.dict.mathStyle==="normal"?t=g(["{\\displaystyle",t,"}"]):i.dict.mathStyle==="compact"?t=g(["{\\textstyle",t,"}"]):i.dict.mathStyle==="script"?t=g(["{\\scriptstyle",t,"}"]):i.dict.mathStyle==="scriptscript"&&(t=g(["{\\scriptscriptstyle",t,"}"]));let r=i.dict.size;return r!==null&&r>=1&&r<=10&&(t=g(["{",{1:"\\tiny",2:"\\scriptsize",3:"\\footnotesize",4:"\\small",5:"\\normalsize",6:"\\large",7:"\\Large",8:"\\LARGE",9:"\\huge",10:"\\Huge"}[r],t,"}"])),i.dict.fontFamily==="monospace"?t=g(["\\texttt{",t,"}"]):i.dict.fontFamily==="sans-serif"&&(t=g(["\\textsf{",t,"}"])),i.dict.fontWeight==="bold"&&(t=g(["\\textbf{",t,"}"])),i.dict.fontStyle==="italic"?t=g(["\\textit{",t,"}"]):i.dict.fontStyle==="normal"&&(t=g(["\\textup{",t,"}"])),i.dict.color&&(t=g(["\\textcolor{",i.dict.color,"}{",t,"}"])),i.dict.backgroundColor&&(t=g(["\\colorbox{",i.dict.backgroundColor,"}{",t,"}"])),i.dict.border===!0&&(t=g(["\\boxed{",t,"}"])),t}},{latexTrigger:["\\!"],parse:()=>["HorizontalSpacing",-3]},{latexTrigger:["\\ "],parse:()=>["HorizontalSpacing",6]},{latexTrigger:["\\:"],parse:()=>["HorizontalSpacing",4]},{latexTrigger:["\\enskip"],parse:()=>["HorizontalSpacing",9]},{latexTrigger:["\\quad"],parse:()=>["HorizontalSpacing",18]},{latexTrigger:["\\qquad"],parse:()=>["HorizontalSpacing",36]},{latexTrigger:["\\,"],parse:()=>["HorizontalSpacing",3]},{latexTrigger:["\\;"],parse:()=>["HorizontalSpacing",5]},{latexTrigger:["\\enspace"],parse:()=>["HorizontalSpacing",9]},{latexTrigger:["\\hspace"],parse:e=>(e.peek==="*"&&e.nextToken(),e.parseStringGroup(),["HorizontalSpacing",0])},{latexTrigger:["\\hskip"],parse:e=>(Ls(e),["HorizontalSpacing",0])},{latexTrigger:["\\kern"],parse:e=>(Ls(e),["HorizontalSpacing",0])},{latexTrigger:["\\phantom"],parse:e=>(e.parseGroup(),"Nothing")},{latexTrigger:["\\vphantom"],parse:e=>(e.parseGroup(),"Nothing")},{latexTrigger:["\\hphantom"],parse:e=>(e.parseGroup(),"Nothing")},{latexTrigger:["\\placeholder"],parse:e=>(e.parseOptionalGroup(),e.parseGroup()??"Nothing")},{latexTrigger:["\\smash"],parse:e=>(e.parseGroup(),"Nothing")},{latexTrigger:["\\strut"],parse:e=>"Nothing"},{latexTrigger:["\\mathstrut"],parse:e=>"Nothing"},{name:"HorizontalSpacing",serialize:(e,n)=>{if(c(n,2)!==null){let i=A(c(n,2)),r=e.serialize(c(n,1));return i==="bin"?`\\mathbin{${r}}`:i==="op"?`\\mathop{${r}}`:i==="rel"?`\\mathrel{${r}}`:i==="ord"?`\\mathord{${r}}`:i==="open"?`\\mathopen{${r}}`:i==="close"?`\\mathclose{${r}}`:i==="punct"?`\\mathpunct{${r}}`:i==="inner"?`\\mathinner{${r}}`:r}let t=I(c(n,1));return t===null?"":{"-3":"\\!",6:"\\ ",3:"\\,",4:"\\:",5:"\\;",9:"\\enspace",18:"\\quad",36:"\\qquad"}[t]??""}},{latexTrigger:"\\operatorname{count}",parse:"Length"},{latexTrigger:"\\operatorname{random}",parse:"Random"},{latexTrigger:"\\operatorname{shuffle}",parse:"Shuffle"},{latexTrigger:"\\operatorname{repeat}",parse:"Repeat"},{latexTrigger:"\\operatorname{join}",parse:"Join"},{latexTrigger:"\\operatorname{range}",parse:"Range"},{name:"Triangle",latexTrigger:["\\operatorname{triangle}"],kind:"function",serialize:(e,n)=>"\\operatorname{triangle}"+e.wrapArguments(n)},{name:"GeometricVector",latexTrigger:["\\operatorname{vector}"],kind:"function",serialize:(e,n)=>"\\operatorname{vector}"+e.wrapArguments(n)},{name:"Sphere",latexTrigger:["\\operatorname{sphere}"],kind:"function",serialize:(e,n)=>"\\operatorname{sphere}"+e.wrapArguments(n)},{name:"Segment",latexTrigger:["\\operatorname{segment}"],kind:"function",serialize:(e,n)=>"\\operatorname{segment}"+e.wrapArguments(n)}];var $s=[{name:"Rgb",latexTrigger:["\\operatorname{rgb}"],kind:"function",serialize:(e,n)=>"\\operatorname{rgb}"+e.wrapArguments(n)},{name:"Hsv",latexTrigger:["\\operatorname{hsv}"],kind:"function",serialize:(e,n)=>"\\operatorname{hsv}"+e.wrapArguments(n)},{name:"Hsl",latexTrigger:["\\operatorname{hsl}"],kind:"function",serialize:(e,n)=>"\\operatorname{hsl}"+e.wrapArguments(n)},{name:"Oklab",latexTrigger:["\\operatorname{oklab}"],kind:"function",serialize:(e,n)=>"\\operatorname{oklab}"+e.wrapArguments(n)},{name:"Oklch",latexTrigger:["\\operatorname{oklch}"],kind:"function",serialize:(e,n)=>"\\operatorname{oklch}"+e.wrapArguments(n)},{name:"AsRgb",latexTrigger:["\\operatorname{asRgb}"],kind:"function",serialize:(e,n)=>"\\operatorname{asRgb}"+e.wrapArguments(n)},{name:"AsHsv",latexTrigger:["\\operatorname{asHsv}"],kind:"function",serialize:(e,n)=>"\\operatorname{asHsv}"+e.wrapArguments(n)},{name:"AsHsl",latexTrigger:["\\operatorname{asHsl}"],kind:"function",serialize:(e,n)=>"\\operatorname{asHsl}"+e.wrapArguments(n)},{name:"AsOklab",latexTrigger:["\\operatorname{asOklab}"],kind:"function",serialize:(e,n)=>"\\operatorname{asOklab}"+e.wrapArguments(n)},{name:"AsOklch",latexTrigger:["\\operatorname{asOklch}"],kind:"function",serialize:(e,n)=>"\\operatorname{asOklch}"+e.wrapArguments(n)},{name:"ColorDelta",latexTrigger:["\\operatorname{colorDelta}"],kind:"function",serialize:(e,n)=>"\\operatorname{colorDelta}"+e.wrapArguments(n)}];var ga=[{name:"Mu0",kind:"symbol",latexTrigger:"\\mu_0"},{name:"VacuumPermittivity",kind:"symbol",latexTrigger:"\\varepsilon_0"}];var ya=[...os,...ls,...cs,...Qr,...ms,...$e,...Es,...Ts,...vs,...Ss,...ws,...As,...Vs,...Js,...ga,...$s];var xa="\\u{FE0F}",ba="\\u{20E3}",Na="\\u{200D}",Ea="\\p{RI}\\p{RI}",Ta="(?:[\\u{E0020}-\\u{E007E}]+\\u{E007F})",qs=`(?:\\p{EMod}|${xa}${ba}?|${Ta})`,va="(?:(?=\\P{XIDC})(?=[^\\x23\\x2a\\x30-\\x39])\\p{Emoji})",zs=`(?:${va}${qs}*|\\p{Emoji}${qs}+|${Ea})`,Gs=`(?:${zs})(${Na}${zs})*`,Np=new RegExp(`(?:${Gs})+`,"u"),Zs=new RegExp(`^(?:${Gs})+$`,"u");var pm=new Set([...'!"#$%&(),/;:?@[]\\`|~'.split(""),"\\left","\\bigl","\\mleft"]);var mm=["pt","em","mu","ex","mm","cm","in","bp","sp","dd","cc","pc","nc","nd"].map(e=>[...e]);var Rn=[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1],[1,5,10,10,5,1],[1,6,15,20,15,6,1],[1,7,21,35,35,21,7,1],[1,8,28,56,70,56,28,8,1]];function tr(e,n){for(;e>=Rn.length;){let t=Rn.length,i=[1],r=Rn[t-1];for(let s=1;s<t;s++)i[s]=r[s-1]+r[s];i[t]=1,Rn.push(i)}return Rn[e][n]}function Bn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return Za(t)}function Za(e){return e.hi<0?{kind:"empty"}:e.lo>=0?d({lo:Math.sqrt(e.lo),hi:Math.sqrt(e.hi)}):{kind:"partial",value:{lo:0,hi:Math.sqrt(e.hi)},domainClipped:"lo"}}function On(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>=0?d({lo:t.lo*t.lo,hi:t.hi*t.hi}):t.hi<=0?d({lo:t.hi*t.hi,hi:t.lo*t.lo}):d({lo:0,hi:Math.max(t.lo*t.lo,t.hi*t.hi)})}function Ws(e,n){return n===0?{lo:1,hi:1}:n===1?e:n%2===0?e.lo>=0?{lo:Math.pow(e.lo,n),hi:Math.pow(e.hi,n)}:e.hi<=0?{lo:Math.pow(e.hi,n),hi:Math.pow(e.lo,n)}:{lo:0,hi:Math.max(Math.pow(e.lo,n),Math.pow(e.hi,n))}:{lo:Math.pow(e.lo,n),hi:Math.pow(e.hi,n)}}function Ke(e,n){let t=y(e);if(!Array.isArray(t))return t;let[i]=t;if(Number.isInteger(n)){if(n>=0)return d(Ws(i,n));{if(q(i))return{kind:"singular"};let r=Ws(i,-n);return d({lo:1/r.hi,hi:1/r.lo})}}else return ve(i)?{kind:"empty"}:i.lo<0?{kind:"partial",value:n>0?{lo:0,hi:Math.pow(i.hi,n)}:{lo:Math.pow(i.hi,n),hi:1/0},domainClipped:"lo"}:n>0?d({lo:Math.pow(i.lo,n),hi:Math.pow(i.hi,n)}):i.lo===0?{kind:"partial",value:{lo:Math.pow(i.hi,n),hi:1/0},domainClipped:"hi"}:d({lo:Math.pow(i.hi,n),hi:Math.pow(i.lo,n)})}function Cn(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;if(r.lo===r.hi&&Number.isInteger(r.lo))return Ke(i,r.lo);if(i.hi<=0)return i.lo===-1&&i.hi===-1&&Math.floor(r.hi)>Math.floor(r.lo)?d({lo:-1,hi:1}):{kind:"empty"};if(i.lo<=0){let o={lo:Math.max(i.lo,Number.EPSILON),hi:i.hi},a=[Math.pow(o.lo,r.lo),Math.pow(o.lo,r.hi),Math.pow(o.hi,r.lo),Math.pow(o.hi,r.hi)];return{kind:"partial",value:{lo:Math.min(...a),hi:Math.max(...a)},domainClipped:"lo"}}let s=[Math.pow(i.lo,r.lo),Math.pow(i.lo,r.hi),Math.pow(i.hi,r.lo),Math.pow(i.hi,r.hi)];return d({lo:Math.min(...s),hi:Math.max(...s)})}function Fn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.exp(t.lo),hi:Math.exp(t.hi)})}function Vn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.hi<=0?{kind:"empty"}:t.lo>0?d({lo:Math.log(t.lo),hi:Math.log(t.hi)}):{kind:"partial",value:{lo:-1/0,hi:Math.log(t.hi)},domainClipped:"lo"}}function Ln(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.hi<=0?{kind:"empty"}:t.lo>0?d({lo:Math.log10(t.lo),hi:Math.log10(t.hi)}):{kind:"partial",value:{lo:-1/0,hi:Math.log10(t.hi)},domainClipped:"lo"}}function Jn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.hi<=0?{kind:"empty"}:t.lo>0?d({lo:Math.log2(t.lo),hi:Math.log2(t.hi)}):{kind:"partial",value:{lo:-1/0,hi:Math.log2(t.hi)},domainClipped:"lo"}}function $n(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>=0?d(t):t.hi<=0?d({lo:-t.hi,hi:-t.lo}):d({lo:0,hi:Math.max(-t.lo,t.hi)})}function qn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.floor(t.lo),r=Math.floor(t.hi);return i===r?d({lo:i,hi:r}):{kind:"singular",at:i+1,continuity:"right"}}function zn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.ceil(t.lo),r=Math.ceil(t.hi);return i===r?d({lo:i,hi:r}):{kind:"singular",at:i,continuity:"left"}}function Qe(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.round(t.lo),r=Math.round(t.hi);return i===r?d({lo:i,hi:r}):{kind:"singular",at:i+.5,continuity:"right"}}function Gn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.floor(t.lo),r=Math.floor(t.hi);return i===r?d({lo:t.lo-i,hi:t.hi-i}):{kind:"singular",at:i+1,continuity:"right"}}function Zn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Math.trunc(t.lo),r=Math.trunc(t.hi);if(i===r)return d({lo:i,hi:r});if(t.lo>=0)return{kind:"singular",at:i+1,continuity:"right"};let s=Math.ceil(t.lo);return s!==0?{kind:"singular",at:s,continuity:"left"}:{kind:"singular",at:1,continuity:"right"}}function jn(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:Math.min(i.lo,r.lo),hi:Math.min(i.hi,r.hi)})}function Un(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:Math.max(i.lo,r.lo),hi:Math.max(i.hi,r.hi)})}function Hn(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;if(q(r))return{kind:"singular"};let s=Math.abs(r.lo===r.hi?r.lo:Math.max(Math.abs(r.lo),Math.abs(r.hi))),o=r.hi<0,a=Math.floor(i.lo/s),u=Math.floor(i.hi/s);if(a!==u)return{kind:"singular",at:(a+1)*s,continuity:"right"};let l=i.lo-s*a,f=i.hi-s*a;return o?l===0?{kind:"singular",at:i.lo,continuity:"right"}:d({lo:l-s,hi:f-s}):d({lo:Math.min(l,f),hi:Math.max(l,f)})}function Yn(e,n){return Ie(e,ke(n,Qe(z(e,n))))}function Wn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>0?d({lo:1,hi:1}):t.hi<0?d({lo:0,hi:0}):t.lo===0&&t.hi===0?d({lo:.5,hi:.5}):{kind:"singular",at:0}}function Xn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>0?d({lo:1,hi:1}):t.hi<0?d({lo:-1,hi:-1}):t.lo===0&&t.hi===0?d({lo:0,hi:0}):{kind:"singular",at:0}}var Xs=1.4616321449683622,ja=.8856031944108887;function Kn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return Ua(t)}var Ks=[-.504083008264455,-1.573498473162391,-2.610720868444145,-3.635293366436901,-4.653163765628266,-5.667162441556885,-6.678418213073426,-7.687788325031709,-8.695764163640956,-9.702672540001863];function eo(e){let t=-Math.floor(e)-1;return t>=0&&t<Ks.length?Ks[t]:null}function Ua(e){if(e.hi>=0&&e.lo<=0)return{kind:"singular",at:0};if(e.lo<0){let n=Math.ceil(e.lo),t=Math.floor(e.hi);if(n<=t)return{kind:"singular",at:n};let i=ne(e.lo),r=ne(e.hi),s=Math.min(i,r),o=Math.max(i,r),a=eo(e.lo);if(a!==null){if(a>=e.lo&&a<=e.hi){let u=ne(a);s=Math.min(s,u),o=Math.max(o,u)}}else Math.floor(e.lo)%2===0?s=Math.min(s,0):o=Math.max(o,0);return d({lo:s,hi:o})}return e.lo>=Xs?d({lo:ne(e.lo),hi:ne(e.hi)}):e.hi<=Xs?d({lo:ne(e.hi),hi:ne(e.lo)}):d({lo:ja,hi:Math.max(ne(e.lo),ne(e.hi))})}function Qn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return Ha(t)}function Ha(e){if(e.hi>=0&&e.lo<=0)return{kind:"singular",at:0};if(e.lo<0){let n=Math.ceil(e.lo),t=Math.floor(e.hi);if(n<=t)return{kind:"singular",at:n};let i=Se(e.lo),r=Se(e.hi),s=Math.min(i,r),o=Math.max(i,r),a=eo(e.lo);return a!==null?a>=e.lo&&a<=e.hi&&(s=Math.min(s,Se(a))):s=-1/0,d({lo:s,hi:o})}return d({lo:Se(e.lo),hi:Se(e.hi)})}function et(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo<0)return{kind:"empty"};let i=Si(Math.round(t.lo)),r=Si(Math.round(t.hi));return!Number.isFinite(i)||!Number.isFinite(r)?d({lo:Math.min(i,r),hi:Math.max(i,r)}):d({lo:i,hi:r})}function nt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo<0)return{kind:"empty"};let i=Mi(Math.round(t.lo)),r=Mi(Math.round(t.hi));return!Number.isFinite(i)||!Number.isFinite(r)?d({lo:Math.min(i,r),hi:Math.max(i,r)}):d({lo:i,hi:r})}var ir=4096;function Qs(e,n,t){let i=Math.round(e),r=Math.round(n);if(!Number.isFinite(i)||!Number.isFinite(r)||r-i+1>t)return null;let s=[];for(let o=i;o<=r;o++)s.push(o);return s}function rr(e,n,t){let i=Qs(e.lo,e.hi,ir),r=Qs(n.lo,n.hi,ir);if(!i||!r||i.length*r.length>ir)return null;let s=1/0,o=-1/0;for(let a of i)for(let u of r){let l=t(a,u);Number.isFinite(l)&&(l<s&&(s=l),l>o&&(o=l))}return s===1/0?null:d({lo:s,hi:o})}function tt(e,n){let t=y(e);if(!Array.isArray(t))return t;let i=y(n);if(!Array.isArray(i))return i;let[r]=t,[s]=i,o=rr(r,s,tr);if(o)return o;let a=Math.round(r.hi);return d({lo:0,hi:tr(a,Math.floor(a/2))})}function it(e,n){let t=y(e);if(!Array.isArray(t))return t;let i=y(n);if(!Array.isArray(i))return i;let[r]=t,[s]=i,o=rr(r,s,vn);if(o)return o;let a=Math.max(Math.abs(Math.round(r.lo)),Math.abs(Math.round(r.hi)),Math.abs(Math.round(s.lo)),Math.abs(Math.round(s.hi)));return d({lo:0,hi:a})}function rt(e,n){let t=y(e);if(!Array.isArray(t))return t;let i=y(n);if(!Array.isArray(i))return i;let[r]=t,[s]=i,o=rr(r,s,ki);if(o)return o;let a=Math.max(Math.abs(Math.round(r.lo)),Math.abs(Math.round(r.hi))),u=Math.max(Math.abs(Math.round(s.lo)),Math.abs(Math.round(s.hi)));return d({lo:0,hi:a*u})}function fi(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:wi(t.lo),hi:wi(t.hi)})}function pi(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Jt(t.lo),hi:Jt(t.hi)})}function mi(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Lt(t.hi),hi:Lt(t.lo)})}function di(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.pow(2,t.lo),hi:Math.pow(2,t.hi)})}function hi(e,n){let t=y(e);if(!Array.isArray(t))return t;let i=y(n);if(!Array.isArray(i))return i;let[r]=t,[s]=i,o=[Math.hypot(r.lo,s.lo),Math.hypot(r.lo,s.hi),Math.hypot(r.hi,s.lo),Math.hypot(r.hi,s.hi)],a=Math.min(...o);return r.lo<=0&&r.hi>=0&&(a=Math.min(a,Math.abs(s.lo),Math.abs(s.hi))),s.lo<=0&&s.hi>=0&&(a=Math.min(a,Math.abs(r.lo),Math.abs(r.hi))),r.lo<=0&&r.hi>=0&&s.lo<=0&&s.hi>=0&&(a=0),d({lo:a,hi:Math.max(...o)})}var ue=2*Math.PI,L=Math.PI,Ee=Math.PI/2,no=3*Math.PI/2;function st(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=ue)return d({lo:-1,hi:1});let i=Math.sin(t.lo),r=Math.sin(t.hi),s=Math.min(i,r),o=Math.max(i,r);return J(t,Ee,ue)&&(o=1),J(t,no,ue)&&(s=-1),d({lo:s,hi:o})}function ot(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=ue)return d({lo:-1,hi:1});let i=Math.cos(t.lo),r=Math.cos(t.hi),s=Math.min(i,r),o=Math.max(i,r);return J(t,0,ue)&&(o=1),J(t,L,ue)&&(s=-1),d({lo:s,hi:o})}function at(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=L)return{kind:"singular"};if(J(t,Ee,L)){let s=Math.ceil((t.lo-Ee)/L);return{kind:"singular",at:Ee+s*L}}let i=Math.tan(t.lo),r=Math.tan(t.hi);return i>1e10&&r<-1e10||i<-1e10&&r>1e10?{kind:"singular"}:d({lo:i,hi:r})}function ut(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=L)return{kind:"singular"};if(J(t,0,L))return{kind:"singular",at:Math.ceil(t.lo/L)*L};let i=1/Math.tan(t.lo),r=1/Math.tan(t.hi);return d({lo:Math.min(i,r),hi:Math.max(i,r)})}function lt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=L)return{kind:"singular"};if(J(t,Ee,L)){let a=Math.ceil((t.lo-Ee)/L);return{kind:"singular",at:Ee+a*L}}let i=1/Math.cos(t.lo),r=1/Math.cos(t.hi),s=Math.min(i,r),o=Math.max(i,r);return J(t,0,ue)&&(s=Math.min(s,1),o=Math.max(o,1)),J(t,L,ue)&&(s=Math.min(s,-1),o=Math.max(o,-1)),d({lo:s,hi:o})}function ct(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.hi-t.lo>=L)return{kind:"singular"};if(J(t,0,L))return{kind:"singular",at:Math.ceil(t.lo/L)*L};let i=1/Math.sin(t.lo),r=1/Math.sin(t.hi),s=Math.min(i,r),o=Math.max(i,r);return J(t,Ee,ue)&&(s=Math.min(s,1),o=Math.max(o,1)),J(t,no,ue)&&(s=Math.min(s,-1),o=Math.max(o,-1)),d({lo:s,hi:o})}function en(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo>1||t.hi<-1)return{kind:"empty"};if(t.lo<-1||t.hi>1){let i=Math.max(t.lo,-1),r=Math.min(t.hi,1);return{kind:"partial",value:{lo:Math.asin(i),hi:Math.asin(r)},domainClipped:t.lo<-1&&t.hi>1?"both":t.lo<-1?"lo":"hi"}}return d({lo:Math.asin(t.lo),hi:Math.asin(t.hi)})}function nn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo>1||t.hi<-1)return{kind:"empty"};if(t.lo<-1||t.hi>1){let i=Math.max(t.lo,-1),r=Math.min(t.hi,1);return{kind:"partial",value:{lo:Math.acos(r),hi:Math.acos(i)},domainClipped:t.lo<-1&&t.hi>1?"both":t.lo<-1?"lo":"hi"}}return d({lo:Math.acos(t.hi),hi:Math.acos(t.lo)})}function tn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.atan(t.lo),hi:Math.atan(t.hi)})}function ft(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;if(i.lo===i.hi&&r.lo===r.hi){let o=Math.atan2(i.lo,r.lo);return d({lo:o,hi:o})}let s=[];return s.push(Math.atan2(i.lo,r.lo)),s.push(Math.atan2(i.lo,r.hi)),s.push(Math.atan2(i.hi,r.lo)),s.push(Math.atan2(i.hi,r.hi)),r.lo<0&&i.lo<0&&i.hi>0?d({lo:-L,hi:L}):d({lo:Math.min(...s),hi:Math.max(...s)})}function Oe(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.sinh(t.lo),hi:Math.sinh(t.hi)})}function Ce(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.lo>=0?d({lo:Math.cosh(t.lo),hi:Math.cosh(t.hi)}):t.hi<=0?d({lo:Math.cosh(t.hi),hi:Math.cosh(t.lo)}):d({lo:1,hi:Math.max(Math.cosh(t.lo),Math.cosh(t.hi))})}function pt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.tanh(t.lo),hi:Math.tanh(t.hi)})}function rn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:Math.asinh(t.lo),hi:Math.asinh(t.hi)})}function sn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return t.hi<1?{kind:"empty"}:t.lo<1?{kind:"partial",value:{lo:0,hi:Math.acosh(t.hi)},domainClipped:"lo"}:d({lo:Math.acosh(t.lo),hi:Math.acosh(t.hi)})}function on(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;if(t.lo>=1||t.hi<=-1)return{kind:"empty"};if(t.lo<=-1||t.hi>=1){let i=Math.max(t.lo,-1+Number.EPSILON),r=Math.min(t.hi,1-Number.EPSILON);return{kind:"partial",value:{lo:Math.atanh(i),hi:Math.atanh(r)},domainClipped:t.lo<=-1&&t.hi>=1?"both":t.lo<=-1?"lo":"hi"}}return d({lo:Math.atanh(t.lo),hi:Math.atanh(t.hi)})}function mt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return q(t)?{kind:"singular",at:0}:tn(z(d({lo:1,hi:1}),d(t)))}function dt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return q(t)?{kind:"singular",at:0}:en(z(d({lo:1,hi:1}),d(t)))}function ht(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return q(t)?{kind:"singular",at:0}:nn(z(d({lo:1,hi:1}),d(t)))}function gt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return q(t)?{kind:"singular",at:0}:z(Ce(t),Oe(t))}function yt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return q(t)?{kind:"singular",at:0}:z(d({lo:1,hi:1}),Oe(t))}function xt(e){return z(d({lo:1,hi:1}),Ce(e))}function bt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return q(t)?{kind:"singular",at:0}:on(z(d({lo:1,hi:1}),d(t)))}function Nt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return q(t)?{kind:"singular",at:0}:rn(z(d({lo:1,hi:1}),d(t)))}function Et(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return q(t)?{kind:"singular",at:0}:sn(z(d({lo:1,hi:1}),d(t)))}var sr=[4.49341,7.72525,10.90412,14.06619,17.22076,20.3713,23.51945,26.66605,29.8116,32.95639];function Tt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=l=>l===0?1:Math.sin(l)/l,r=i(t.lo),s=r,o=l=>{l<r&&(r=l),l>s&&(s=l)};o(i(t.hi)),t.lo<=0&&t.hi>=0&&o(1);let a=sr[sr.length-1];for(let l of sr)l>=t.lo&&l<=t.hi&&o(i(l)),-l>=t.lo&&-l<=t.hi&&o(i(-l));let u=1/0;return t.hi>a&&(u=Math.min(u,Math.max(t.lo,a))),t.lo<-a&&(u=Math.min(u,-Math.min(t.hi,-a))),Number.isFinite(u)&&u>0&&(o(1/u),o(-1/u)),d({lo:r,hi:s})}var or=[],ar=[];for(let e=1;e<=20;e++)or.push(Math.sqrt(2*e)),ar.push(Math.sqrt(2*e-1));function vt(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Ve(t.lo),r=i,s=o=>{o<i&&(i=o),o>r&&(r=o)};s(Ve(t.hi)),t.lo<=0&&t.hi>=0&&s(0);for(let o of or)o>=t.lo&&o<=t.hi&&s(Ve(o)),-o>=t.lo&&-o<=t.hi&&s(Ve(-o));return to(t,or,Ve,s),d({lo:i,hi:r})}function to(e,n,t,i){let r=n[n.length-1],s=Math.abs(t(r)-.5);e.hi>r&&(i(.5+s),i(.5-s)),e.lo<-r&&(i(-.5-s),i(-.5+s))}function It(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n,i=Le(t.lo),r=i,s=o=>{o<i&&(i=o),o>r&&(r=o)};s(Le(t.hi)),t.lo<=0&&t.hi>=0&&s(0);for(let o of ar)o>=t.lo&&o<=t.hi&&s(Le(o)),-o>=t.lo&&-o<=t.hi&&s(Le(-o));return to(t,ar,Le,s),d({lo:i,hi:r})}function Te(e){return"kind"in e?e:{kind:"interval",value:e}}function kt(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.hi<r.lo?"true":i.lo>=r.hi?"false":"maybe"}function St(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.hi<=r.lo?"true":i.lo>r.hi?"false":"maybe"}function Mt(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.lo>r.hi?"true":i.hi<=r.lo?"false":"maybe"}function wt(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.lo>=r.hi?"true":i.hi<r.lo?"false":"maybe"}function an(e,n){let t=y(e,n);if(!Array.isArray(t))return"maybe";let[i,r]=t;return i.lo===i.hi&&r.lo===r.hi&&i.lo===r.lo?"true":i.hi<r.lo||r.hi<i.lo?"false":"maybe"}function At(e,n){let t=an(e,n);return t==="true"?"false":t==="false"?"true":"maybe"}function Dt(e,n){return e==="false"||n==="false"?"false":e==="true"&&n==="true"?"true":"maybe"}function Pt(e,n){return e==="true"||n==="true"?"true":e==="false"&&n==="false"?"false":"maybe"}function _t(e){return e==="true"?"false":e==="false"?"true":"maybe"}function Rt(e,n,t,i){if(e==="true"||e==="false"||e==="maybe"){let h=e,N=n,E=t;switch(h){case"true":return Te(N());case"false":return Te(E());case"maybe":return xe(Te(N()),Te(E()))}}let r=e,s=n,o=t,a=i,u=y(r);if(!Array.isArray(u))return u;let[l]=u;switch(s(l)){case"true":return Te(o(l));case"false":return Te(a(l));case"maybe":let h=Te(o(l)),N=Te(a(l));return xe(h,N)}}function Bt(e,n,t){let i=y(e,n,t);if(!Array.isArray(i))return i;let[r,s,o]=i,a={lo:Math.max(r.lo,s.lo),hi:Math.max(r.hi,s.hi)},u=Math.min(a.lo,o.lo),l=Math.min(a.hi,o.hi);return{kind:"interval",value:{lo:u,hi:l}}}var io={ok:d,point:un,containsExtremum:J,unionResults:xe,mergeDomainClip:Fe,isPoint:ln,containsZero:q,isPositive:cn,isNegative:ve,isNonNegative:fn,isNonPositive:pn,width:mn,midpoint:dn,getValue:hn,unwrap:gn,unwrapOrPropagate:y,add:yn,sub:Ie,mul:ke,div:z,negate:xn,sqrt:Bn,square:On,pow:Ke,powInterval:Cn,exp:Fn,ln:Vn,log10:Ln,log2:Jn,abs:$n,floor:qn,ceil:zn,round:Qe,fract:Gn,trunc:Zn,min:jn,max:Un,mod:Hn,remainder:Yn,heaviside:Wn,sign:Xn,gamma:Kn,gammaln:Qn,factorial:et,factorial2:nt,binomial:tt,gcd:it,lcm:rt,chop:fi,erf:pi,erfc:mi,exp2:di,hypot:hi,sin:st,cos:ot,tan:at,cot:ut,sec:lt,csc:ct,asin:en,acos:nn,atan:tn,atan2:ft,sinh:Oe,cosh:Ce,tanh:pt,asinh:rn,acosh:sn,atanh:on,acot:mt,acsc:dt,asec:ht,coth:gt,csch:yt,sech:xt,acoth:bt,acsch:Nt,asech:Et,sinc:Tt,fresnelS:vt,fresnelC:It,less:kt,lessEqual:St,greater:Mt,greaterEqual:wt,equal:an,notEqual:At,and:Dt,or:Pt,not:_t,piecewise:Rt,clamp:Bt};var Ya="0.59.0";return lo(Wa);})();
|
|
10
10
|
/*! Bundled license information:
|
|
11
11
|
|
|
12
12
|
complex-esm/dist/src/complex.js:
|