flo-mat 3.0.5 → 3.0.6

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/browser/index.js CHANGED
@@ -566,6 +566,7 @@ function parseNumber(source) {
566
566
  }
567
567
  // Read the decimals.
568
568
  if (ci < source._endIndex && source._string[ci] === ".") {
569
+ source._currentIndex += 1;
569
570
  ci += 1;
570
571
  if (ci >= source._endIndex ||
571
572
  source._string[ci] < "0" ||
@@ -11042,37 +11043,10 @@ function getBoundingBox(ps) {
11042
11043
  }
11043
11044
 
11044
11045
  //# sourceMappingURL=get-bounding-box.js.map
11045
- ;// ./node_modules/flo-boolean/node_modules/flo-memoize/node/memoize.js
11046
- /**
11047
- * Memoize (by reference on the input parameter) the given arity 1 function.
11048
- *
11049
- * * the input parameter must be an `object` (so it can be used as a key to
11050
- * `WeakMap` and thus garbage collected later; this is especially important
11051
- * in functional programming where a lot of garbage collection takes place;
11052
- *
11053
- * * use `memoizePrimitive` instead if it is not important that the keys
11054
- * will *never* be garbage collected
11055
- */
11056
- function memoize_memoize(f) {
11057
- const results = new WeakMap();
11058
- return function (t) {
11059
- let r = results.get(t);
11060
- if (r !== undefined) {
11061
- //console.log('cache hit');
11062
- return r;
11063
- }
11064
- //console.log('cache miss');
11065
- r = f(t);
11066
- results.set(t, r);
11067
- return r;
11068
- };
11069
- }
11070
-
11071
- //# sourceMappingURL=memoize.js.map
11072
11046
  ;// ./node_modules/flo-boolean/node/get-bounding-box-.js
11073
11047
 
11074
11048
 
11075
- const getBoundingBox$ = memoize_memoize(getBoundingBox);
11049
+ const getBoundingBox$ = memoize(getBoundingBox);
11076
11050
 
11077
11051
  //# sourceMappingURL=get-bounding-box-.js.map
11078
11052
  ;// ./node_modules/flo-bezier3/node/global-properties/bounds/get-bounds.js
@@ -11146,7 +11120,7 @@ function getBounds(ps) {
11146
11120
  ;// ./node_modules/flo-boolean/node/get-bounds-.js
11147
11121
 
11148
11122
 
11149
- const getBounds$ = memoize_memoize(getBounds);
11123
+ const getBounds$ = memoize(getBounds);
11150
11124
 
11151
11125
  //# sourceMappingURL=get-bounds-.js.map
11152
11126
  ;// ./node_modules/flo-boolean/node/calc-paths/get-shape-bounds.js
@@ -18797,6 +18771,7 @@ function getInOutsViaSides(container, ioIdx) {
18797
18771
  //# sourceMappingURL=get-in-outs-via-sides.js.map
18798
18772
  ;// ./node_modules/flo-boolean/node/containers/get-container-in-outs/get-container-in-outs.js
18799
18773
 
18774
+ // import { getInOutsViaCrossing } from "./get-in-outs-via-crossing/get-in-outs-via-crossing.js";
18800
18775
  /**
18801
18776
  * * **warning** ioIdx will be modified by this function
18802
18777
  *
@@ -22503,7 +22478,7 @@ function getExcessiveCurvatures(expMax, loops) {
22503
22478
  /**
22504
22479
  *
22505
22480
  */
22506
- const get_min_y_getMinY = memoize_memoize(function (loop) {
22481
+ const get_min_y_getMinY = memoize(function (loop) {
22507
22482
  const { curves } = loop;
22508
22483
  let bestY = getYBoundsTight(curves[0].ps).minY;
22509
22484
  let bestCurve = curves[0];
@@ -22683,7 +22658,9 @@ function filterContainers(containers) {
22683
22658
 
22684
22659
 
22685
22660
 
22661
+ // import { compareInOut } from './get-container-in-outs/get-in-outs-via-sides/compare-in-out.js';
22686
22662
 
22663
+ // import { orderInOuts } from './order-in-outs.js';
22687
22664
  /**
22688
22665
  *
22689
22666
  * @param containerDim
@@ -23301,7 +23278,7 @@ function scrambleLoops(loops, maxBitLength, expMax, mult = 0.02) {
23301
23278
  * Returns the maximum control point coordinate value (x or y) within any loop.
23302
23279
  * @param loops The array of loops
23303
23280
  */
23304
- const getMaxCoordinate = memoize_memoize((loops) => {
23281
+ const getMaxCoordinate = memoize((loops) => {
23305
23282
  let max = 0;
23306
23283
  for (const loop of loops) {
23307
23284
  for (const ps of loop) {
@@ -1 +1 @@
1
- var t={};function n(t=[],n){const r=[],o={beziers:t,curves:r,idx:n};if(0===t.length)return o;let i,c=0;for(let n=0;n<t.length;n++){if(e(t[n]))continue;const s={loop:o,ps:t[n],prev:i,next:void 0,idx:c};i&&(i.next=s),i=s,r.push(s),c++}const s=r[r.length-1];return r[0].prev=s,s.next=r[0],s.ps[s.ps.length-1]=r[0].ps[0],o}function e(t){return 2===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]:3===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]:t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]&&t[2][1]===t[3][1]&&t[2][1]===t[3][1]}function r(t){const n=[];for(let e=0;e<t.length;e++){const r=t[e];0===e&&n.push("M "+r[0][0].toString()+" "+r[0][1].toString()),4===r.length?n.push("C "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "+r[3][0].toString()+" "+r[3][1].toString()+" "):3===r.length?n.push("Q "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "):2===r.length&&n.push("L "+r[1][0].toString()+" "+r[1][1].toString()+" ")}return n.push(" z"),n.join("\n")}t.d=(n,e)=>{for(var r in e)t.o(e,r)&&!t.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:e[r]})},t.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n);class o{initialPoint=void 0;p;vals=void 0;prev2ndCubicControlPoint=void 0;prev2ndQuadraticControlPoint=void 0;constructor(){this.p=[0,0]}}function i(t){const n=[t.p,t.initialPoint];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n}function c(t){t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0;const n=(e=t.p,t.vals[0],t.vals[1],t.vals[2],t.vals[3],t.vals[4],[[e,[t.vals[5],t.vals[6]]]]);var e;const r=n[n.length-1];return t.p=r[r.length-1],n}const s={c:function(t){const n=[t.p,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]],[t.vals[4],t.vals[5]]];return t.prev2ndCubicControlPoint=n[2],t.prev2ndQuadraticControlPoint=void 0,n},h:function(t){const n=[t.p,[t.vals[0],t.p[1]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},l:function(t){const n=[t.p,t.vals];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},q:function(t){const n=[t.vals[0],t.vals[1]],e=[t.vals[2],t.vals[3]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},s:function(t){const n=t.prev2ndCubicControlPoint?[t.p[0]-t.prev2ndCubicControlPoint[0]+t.p[0],t.p[1]-t.prev2ndCubicControlPoint[1]+t.p[1]]:t.p,e=[t.p,n,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]]];return t.prev2ndCubicControlPoint=e[2],t.prev2ndQuadraticControlPoint=void 0,e},t:function(t){const n=t.prev2ndQuadraticControlPoint?[t.p[0]-t.prev2ndQuadraticControlPoint[0]+t.p[0],t.p[1]-t.prev2ndQuadraticControlPoint[1]+t.p[1]]:t.p,e=[t.vals[0],t.vals[1]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},v:function(t){const n=[t.p,[t.p[0],t.vals[0]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},z:i};function u(t){let n=0,e=0,r=1,o=0,i=1,c=1;const s=t._currentIndex;t._skipOptionalSpaces();let u=t._currentIndex;u<t._endIndex&&"+"===t._string[u]?(t._currentIndex+=1,u+=1):u<t._endIndex&&"-"===t._string[u]&&(t._currentIndex+=1,u+=1,i=-1);const f=t._string[u];if(u===t._endIndex||(f<"0"||f>"9")&&"."!==f)throw new Error(`The first character of a number must be one of [0-9+-.]. Found '${f}' at index ${u}.`);const l=t._currentIndex;for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)t._currentIndex+=1,u+=1;if(u!==l){let n=u-1,r=1;for(;n>=l;)e+=r*(Number(t._string[n])-0),n-=1,r*=10}if(u<t._endIndex&&"."===t._string[u]){if(u+=1,u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be a least one digit following the .");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)r*=10,o+=Number(t._string.charAt(u))/r,t._currentIndex+=1,u+=1}if(u!==s&&u+1<t._endIndex&&("e"===t._string[u]||"E"===t._string[u])&&"x"!==t._string[u+1]&&"m"!==t._string[u+1]){if(t._currentIndex+=1,u+=1,"+"===t._string[u]?(t._currentIndex+=1,u+=1):"-"===t._string[u]&&(t._currentIndex+=1,u+=1,c=-1),u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be an exponent.");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)n*=10,n+=Number(t._string[u]),t._currentIndex+=1,u+=1}let a=e+o;if(a*=i,n&&(a*=Math.pow(10,c*n)),s===u)throw new Error("Internal error: startIndex === source._currentIndex");return t._skipOptionalSpacesOrDelimiter(),a}const f={Z:"Z",M:"M",L:"L",C:"C",Q:"Q",A:"A",H:"H",V:"V",S:"S",T:"T",z:"Z",m:"m",l:"l",c:"c",q:"q",a:"a",h:"h",v:"v",s:"s",t:"t"};class l{_string;_currentIndex;_endIndex;_prevCommand;constructor(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._prevCommand=void 0,this._skipOptionalSpaces()}parseSegment(){const t=this._string[this._currentIndex];let n,e=f[t];if(void 0===e){if(void 0===this._prevCommand)throw new Error("Implicit command not allowed for first commands.");if(!("+"===t||"-"===t||"."===t||t>="0"&&t<="9")||"Z"===this._prevCommand)throw new Error("Remaining coordinates not found for implicit command");e="M"===this._prevCommand?"L":"m"===this._prevCommand?"l":this._prevCommand}else this._currentIndex+=1;this._prevCommand=e;const r=e.toUpperCase();if("H"===r||"V"===r?n=[u(this)]:"M"===r||"L"===r||"T"===r?n=[u(this),u(this)]:"S"===r||"Q"===r?n=[u(this),u(this),u(this),u(this)]:"C"===r?n=[u(this),u(this),u(this),u(this),u(this),u(this)]:"A"===r?n=[u(this),u(this),u(this),this._parseArcFlag(),this._parseArcFlag(),u(this),u(this)]:"Z"===r&&(this._skipOptionalSpaces(),n=[]),void 0===n)throw new Error("Unknown command");return{type:e,values:n}}hasMoreData(){return this._currentIndex<this._endIndex}initialCommandIsMoveTo(){if(!this.hasMoreData())return!0;const t=f[this._string[this._currentIndex]];return"M"===t||"m"===t}_isCurrentSpace(){const t=this._string[this._currentIndex];return t<=" "&&(" "===t||"\n"===t||"\t"===t||"\r"===t||"\f"===t)}_skipOptionalSpaces(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex+=1;return this._currentIndex<this._endIndex}_skipOptionalSpacesOrDelimiter(){return!(this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&","!==this._string[this._currentIndex])&&(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&","===this._string[this._currentIndex]&&(this._currentIndex+=1,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)}_parseArcFlag(){if(this._currentIndex>=this._endIndex)throw new Error("Unable to parse arc flag");let t;const n=this._string[this._currentIndex];if(this._currentIndex+=1,"0"===n)t=0;else{if("1"!==n)throw new Error("Unable to parse arc flag - arc flag must be 0 or 1");t=1}return this._skipOptionalSpacesOrDelimiter(),t}}function a(t){return function(t){if(0===t.length)return[];if("m"!==t[0].type.toLowerCase())throw new Error("Invalid SVG - every new path must start with an M or m.");const n=new o,e=[];let r,u=[];for(let o=0;o<t.length;o++){const f=t[o],l=f.type.toLowerCase();if(n.vals=f.values,f.type===l)if("v"===l)n.vals[0]+=n.p[1];else if("a"===l)n.vals[5]+=n.p[0],n.vals[6]+=n.p[1];else for(let t=0;t<n.vals.length;t++)n.vals[t]+=n.p[t%2];if("m"!==l){if("a"===l)u.push(...c(n));else{const t=s[l];if(!t)throw new Error("Invalid SVG - command not recognized.");const e=t(n);n.p=e[e.length-1],u.push(e)}r=l}else u.length&&("z"!==r&&u.push(i(n)),e.push(u),u=[]),n.initialPoint=n.p=n.vals,r=l}return u.length>0&&("z"!==r&&u.push(i(n)),e.push(u)),e}(function(t){if(!t.length)return[];const n=new l(t),e=[];if(!n.initialCommandIsMoveTo())throw new Error("Path must start with m or M");for(;n.hasMoreData();)e.push(n.parseSegment());return e}(t))}function p(t,n,e="thin10 red nofill",r=0){if(0===n.length)return[];let o=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];if(e.length<=1)continue;const[,r,i,c]=e;o+=2===e.length?`L ${r[0]} ${r[1]} `:3===e.length?`Q ${r[0]} ${r[1]} ${i[0]} ${i[1]} `:`C ${r[0]} ${r[1]} ${i[0]} ${i[1]} ${c[0]} ${c[1]} `}const i=document.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttributeNS(null,"d",o),i.setAttributeNS(null,"class",e),t.appendChild(i),[i]}function h(t){const n=t.length,e=Array.from(Array(n),()=>new Array(n).fill(0));for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][o]=t[r][o];for(let t=0;t<n;t++)for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][t]+e[t][o]<e[r][o]&&(e[r][o]=e[r][t]+e[t][o]);return e}function d(t,n){let e=function(t,n){let e;return e=t.curve.idx-n.curve.idx,0!==e||(e=t.t-n.t),e}(t.pointOnShape,n.pointOnShape);return 0!==e?e:(e=t.order-n.order,0!==e?e:t.order2-n.order2)}function v(t){const n=t,e=[n];let r=t.next;for(;r!==n;)e.push(r),r=r.next;return e}const g=134217729;function m(t,n){const e=t*n,r=g*t,o=r-(r-t),i=t-o,c=g*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}function b(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r+i,s=c-r,u=e+o,f=u-e,l=r-(c-s)+(i-s)+u,a=c+l,p=e-(u-f)+(o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}function x(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r-i,s=c-r,u=e-o,f=u-e,l=r-(c-s)+(-i-s)+u,a=c+l,p=e-(u-f)+(-o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}const w=m,_=b,I=x,{atan2:N}=Math;function M(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=I(w(i,e),w(o,r))[1],s=_(w(o,e),w(i,r))[1];return N(c,s)}const S=Math.abs,E=[[0,0],[0,0],[0,0]];function y(t,n,e){return 0===n?1===e?{ps:t,_ps:E}:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=c-u,d=[[i,c],[-n*p+i,-n*h+c],[a*(p+(f-s))-(2*n*p-i),a*(h+(l-u))-(2*n*h-c)]],v=S(n),g=S(i),m=S(s),b=S(f),x=g+m,w=S(c),_=S(u),I=w+_;return{ps:d,_ps:[[0,0],[v*x+g,v*I+w],[a*(x+(b+m))+(2*v*x+g),a*(I+(S(l)+_))+(2*v*I+w)]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=f-s,d=c-u,v=l-u,g=[[a*(p+h)-(2*n*p-i),a*(d+v)-(2*n*d-c)],[n*h+s,n*v+u],[f,l]],m=S(n),b=S(i),x=S(s),w=b+x,_=S(f)+x,I=S(c),N=S(u),M=I+N;return{ps:g,_ps:[[a*(w+_)+(2*m*w+b),a*(M+(S(l)+N))+(2*m*M+I)],[m*_+x,0],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=i[0],a=i[1],p=n*n,h=e*e,d=n*e,v=c-u,g=v+(l-u),m=s-f,b=m+(a-f),x=p*g-(2*n*v-c),w=d*g-(v*(e+n)-c),_=h*g-(2*e*v-c),I=p*b-(2*n*m-s),N=d*b-(m*(e+n)-s),M=h*b-(2*e*m-s),E=S(n),y=S(e),O=S(d),C=S(c),T=S(u),P=C+T,A=P+S(l)+T,k=S(s),B=S(f),F=k+B,z=F+S(a)+B;return{ps:[[x,I],[w,N],[_,M]],_ps:[[p*A+(2*E*P+C),p*z+(2*E*F+k)],[O*A+(P*(y+E)+C),O*b+(F*(y+E)+k)],[h*A+(2*y*P+C),h*z+(2*y*F+k)]]}}(t,n,e)}const O=Math.abs,C=[[0,0],[0,0],[0,0],[0,0]];function T(t,n,e){return 0===n?1===e?{ps:t,_ps:C}:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=d-n*(d-v),m=g-n*(g-(v-n*(v-(l-n*(l-p))))),b=s-n*(s-f),x=f-n*(f-a),w=b-n*(b-x),_=w-n*(w-(x-n*(x-(a-n*(a-h))))),I=O(n),N=O(c),M=O(u),S=O(l),E=O(p),y=O(s),C=O(f),T=O(a),P=N+I*(N+M),A=M+I*(M+S),k=P+I*(P+A),B=y+I*(y+C),F=C+I*(C+T),z=B+I*(B+F);return{ps:[[c,s],[d,b],[g,w],[m,_]],_ps:[[0,0],[P,B],[k,z],[k+I*(k+(A+I*(A+(S+I*(S+E))))),z+I*(z+(F+I*(F+(T+I*(T+O(h))))))]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=l-n*(l-p),m=d-n*(d-v),b=v-n*(v-g),x=m-n*(m-b),w=s-n*(s-f),_=f-n*(f-a),I=a-n*(a-h),N=w-n*(w-_),M=_-n*(_-I),S=N-n*(N-M),E=O(n),y=O(c),C=O(u),T=O(l),P=O(p),A=O(s),k=O(f),B=O(a),F=y+E*(y+C),z=C+E*(C+T),Y=T+E*(T+P),V=F+E*(F+z),L=z+E*(z+Y),$=A+E*(A+k),X=k+E*(k+B),j=B+E*(B+O(h)),q=$+E*($+X),W=X+E*(X+j);return{ps:[[x,S],[b,M],[g,I],[p,h]],_ps:[[V+E*(V+L),q+E*(q+W)],[L,W],[Y,j],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,b=s-f,x=a-f,w=c[0]-s,_=b+x,I=n*b,N=e*b,M=w-3*x,S=u-l,E=p-l,y=c[1]-u,C=S+E,T=n*S,P=e*S,A=y-3*E,k=d*M+(3*n*(n*_-b)+s),B=m*(n*M+2*_)+(h*_+s-(N+2*I)),F=m*(e*M+2*_)+(v*_+s-(2*N+I)),z=g*M+(3*e*(e*_-b)+s),Y=d*A+(3*n*(n*C-S)+u),V=m*(n*A+2*C)+(h*C+u-(P+2*T)),L=m*(e*A+2*C)+(v*C+u-(2*P+T)),$=g*A+(3*e*(e*C-S)+u),X=O(n),j=O(e),q=O(m),W=O(d),H=O(g),D=O(s),Q=O(f),R=D+Q,G=O(a)+Q,U=R+G,Z=X*R,J=j*R,K=O(w)+3*G,tt=O(u),nt=O(l),et=tt+nt,rt=O(p)+nt,ot=et+rt,it=X*et,ct=j*et,st=O(y)+3*rt;return{ps:[[k,Y],[B,V],[F,L],[z,$]],_ps:[[W*K+(3*X*(X*U+R)+D),W*st+(3*X*(X*ot+et)+tt)],[q*(X*K+2*U)+(h*U+D+(J+2*Z)),q*(X*st+2*ot)+(h*ot+tt+(ct+2*it))],[q*(j*K+2*U)+(v*U+D+(2*J+Z)),q*(j*st+2*ot)+(v*ot+tt+(2*ct+it))],[H*K+(3*j*(j*U+R)+D),H*st+(3*j*(j*ot+et)+tt)]]}}(t,n,e)}function P(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function A(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}function k(t,n){const e=t.length,r=n.length;let o=0,i=0;const c=[];for(;o<e&&i<r;)0!==t[o]?0!==n[i]?Math.abs(t[o])<=Math.abs(n[i])?(c.push(t[o]),o++):(c.push(n[i]),i++):i++:o++;for(;o<e;)c.push(t[o]),o++;for(;i<r;)c.push(n[i]),i++;if(0===c.length)return[0];const s=c.length;if(1===s)return c;const u=[],f=c[1],l=c[0];let a=f+l;const p=l-(a-f);0!==p&&u.push(p),i=0;for(let t=2;t<s;t++){const n=c[t],e=a+n,r=e-a,o=a-(e-r)+(n-r);0!==o&&u.push(o),a=e}return 0===a&&0!==u.length||u.push(a),u}function B(t){const n=t.length,e=new Array(n);for(let r=0;r<n;r++)e[r]=-t[r];return e}const F=B,z=k;function Y(t,n){const e=F(n);return z(t,e)}const V=134217729;function L(t,n){const e=t.length;let r;const o=t[0];let i=o*n;const c=V*o,s=c-(c-o),u=o-s,f=V*n,l=f-(f-n),a=n-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=t[o],c=e*n,s=V*e,u=s-(s-e),f=e-u,l=V*n,a=l-(l-n),h=n-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const b=c+r,x=r-(b-c);0!==x&&p.push(x),i=b}return 0===i&&0!==p.length||p.push(i),p}function $(t,n){const e=n.length;let r;const o=n[0];let i=o*t;const c=V*o,s=c-(c-o),u=o-s,f=V*t,l=f-(f-t),a=t-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=n[o],c=e*t,s=V*e,u=s-(s-e),f=e-u,l=V*t,a=l-(l-t),h=t-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const b=c+r,x=r-(b-c);0!==x&&p.push(x),i=b}return 0===i&&0!==p.length||p.push(i),p}const X=L,j=k;function q(t,n){let e=[0];for(let r=0;r<t.length;r++)e=j(e,X(n,t[r]));return e}function W(t,n){const e=t.length;let r=n;const o=[];for(let n=0;n<e;n++){const e=t[n],i=r+e,c=i-r,s=r-(i-c)+(e-c);0!==s&&o.push(s),r=i}return 0===r&&0!==o.length||o.push(r),o}function H(t){return t[t.length-1]}function D(t,n){return H(Y(t,n))}const Q=Number.EPSILON/2,R=Q*Q;function G(t){const n=t*Q;return n/(1-n)}function U(t){const n=t*R;return n/(1-n)}function Z(t){const n=t[0][0],e=t[0][1];for(let r=1;r<t.length;r++)if(n!==t[r][0]||e!==t[r][1])return!1;return!0}function J(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}G(1),U(3);const K=Y,tt=H,nt=J,{abs:et}=Math;function rt(t){const[[n,e],[r,o],[i,c]]=t,s=n+i,u=s-2*r,f=et(s)+et(u);if(et(u)-f>0)return!1;const l=e+c,a=l-2*o,p=et(l)+et(a);return!(et(a)-p>0)&&0===tt(K(nt(n,i),[2*r]))&&0===tt(K(nt(e,c),[2*o]))}const ot=134217729;function it(t,n){const e=t*n,r=ot*t,o=r-(r-t),i=t-o,c=ot*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}const ct=it,st=k,ut=H,ft=Y,lt=Number.EPSILON/2,at=Math.abs;function pt(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s+3*r,l=n+3*i,a=f-l,p=at(3*r)+at(f)+(at(3*i)+at(l))+at(a);if(at(a)-lt*p>0)return!1;const h=u+3*o,d=e+3*c,v=h-d,g=at(3*o)+at(h)+(at(3*c)+at(d))+at(v);return!(at(v)-lt*g>0)&&0===ut(ft(st([s],ct(3,r)),st([n],ct(3,i))))&&0===ut(ft(st([u],ct(3,o)),st([e],ct(3,c))))}function ht(t){let n=t[0];for(let e=1;e<t.length;e++)n+=t[e];return n}function dt(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function vt(t){const n=t.slice(),e=n.length;if(1===e)return n;let r=n[e-1],o=e;for(let t=e-2;t>=0;--t){const e=r,i=n[t];r=e+i;const c=i-(r-e);c&&(n[--o]=r,r=c)}let i=0;for(let t=o;t<e;++t){const e=n[t],o=r;r=e+o;const c=o-(r-e);c&&(n[i++]=c)}return n[i++]=r,n.length=i,n}function gt(t,n,e){const r=(t[0]-e[0])*(n[1]-e[1]),o=(t[1]-e[1])*(n[0]-e[0]),i=r-o;let c;if(r>0){if(o<=0)return i;c=r+o}else{if(!(r<0))return i;if(o>=0)return i;c=-r-o}return Math.abs(i)>=3330669073875472e-31*c?i:function(t,n,e,r){const o=t[0]-e[0],i=n[0]-e[0],c=t[1]-e[1],s=n[1]-e[1],u=Y(it(o,s),it(c,i));let f=ht(u);if(Math.abs(f)>=2220446049250315e-31*r)return f;const l=dt(t[0],e[0])[0],a=dt(n[0],e[0])[0],p=dt(t[1],e[1])[0],h=dt(n[1],e[1])[0];if(0===l&&0===p&&0===a&&0===h)return f;const d=1109335647967049e-46*r+3330669073875471e-31*Math.abs(f);if(f+=o*h+s*l-(c*a+i*p),Math.abs(f)>=d)return f;const v=k(u,Y(it(l,s),it(p,i))),g=k(v,Y(it(o,h),it(c,a)));let m=k(g,Y(it(l,h),it(p,a)));return m=vt(m),m[m.length-1]}(t,n,e,c)}const mt=gt;function bt(t){if(4===t.length)return 0===mt(t[0],t[1],t[2])&&0===mt(t[1],t[2],t[3])&&0===mt(t[0],t[2],t[3]);if(3===t.length)return 0===mt(t[0],t[1],t[2]);if(t.length<=2)return!0;throw new Error("The given bezier curve must be of order <= 3.")}const xt=L,wt=Y,_t=J,It=H,Nt=Math.abs;const Mt=Math.abs,St=G(1);function Et(t){const{coeffs:[[n,e,r],[o,i,c]],errorBound:[[s,u],[f,l]]}=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s-n,l=r-i,a=f+3*l,p=i+n,h=p-2*r,d=r-n,v=u-e,g=o-c,m=v+3*g,b=c+e,x=b-2*o,w=o-e;return{coeffs:[[a,3*h,3*d,n],[m,3*x,3*w,e]],errorBound:[[Nt(f)+6*Nt(l)+Nt(a),6*(Nt(p)+Nt(h)),6*Nt(d),0],[Nt(v)+6*Nt(g)+Nt(m),6*(Nt(b)+Nt(x)),6*Nt(w),0]]}}(t),a=Mt(n),p=Mt(e),h=Mt(r),d=Mt(o),v=Mt(i),g=Mt(c),m=e*o,b=n*i,x=n*c,w=r*o,_=e*c,I=r*i,N=u*d+p*f+Mt(m),M=s*v+a*l+Mt(b),S=s*g+Mt(x),E=h*f+Mt(w),y=u*g+Mt(_),O=h*l+Mt(I),C=m-b,T=Mt(C),P=N+M+T,A=w-x,k=Mt(A),B=E+S+k,F=_-I,z=Mt(F),Y=y+O+z,V=C*C,L=C*A,$=F*C,X=A*A,j=$+X;return{coeffs:[V,L,j],errBound:[2*P*T+Mt(V),P*k+T*B+Mt(L),Y*T+z*P+Mt($)+(2*k*B+Mt(X))+Mt(j)].map(t=>St*t)}}const yt=dt,Ot=J,Ct=$,Tt=W,Pt=k;function At(t){if(4===t.length)return kt(t);if(3===t.length)return Bt(t);if(2===t.length)return Ft(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[n]],[[e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}function kt(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Pt(yt(s,n),Ct(3,yt(r,i))),Ct(3,Tt(Ot(i,n),-2*r)),Ct(3,yt(r,n)),[n]],[Pt(yt(u,e),Ct(3,yt(o,c))),Ct(3,Tt(Ot(c,e),-2*o)),Ct(3,yt(o,e)),[e]]]}function Bt(t){const[[n,e],[r,o],[i,c]]=t;return[[Tt(Ot(i,n),-2*r),yt(2*r,2*n),[n]],[Tt(Ot(c,e),-2*o),yt(2*o,2*e),[e]]]}function Ft(t){const[[n,e],[r,o]]=t;return[[yt(r,n),[n]],[yt(o,e),[e]]]}const zt=q,Yt=k,Vt=Y;function Lt(t){const[[n,e,r],[o,i,c]]=kt(t),s=zt(e,o),u=zt(n,i),f=zt(n,c),l=zt(r,o),a=zt(e,c),p=zt(r,i),h=Vt(s,u),d=Vt(l,f),v=Vt(a,p),g=zt(h,h),m=zt(h,d),b=zt(h,v),x=zt(d,d);return[g,m,Yt(b,x)]}const $t=H,Xt=D,jt=Y,qt=q,Wt=$,Ht=P,Dt=A,Qt=k,Rt=W,Gt=Math.abs,Ut=G(1),Zt={order:0,realOrder:0,collinear:!0,nodeType:"n/a"},Jt={order:1,realOrder:1,collinear:!0,nodeType:"n/a"},Kt={order:1,realOrder:0,collinear:!0,nodeType:"n/a"},tn={order:2,realOrder:2,collinear:!1,nodeType:"n/a"},nn={order:2,realOrder:2,collinear:!0,nodeType:"n/a"},en={order:2,realOrder:1,collinear:!0,nodeType:"n/a"},rn={order:2,realOrder:0,collinear:!0,nodeType:"n/a"},on={order:3,realOrder:3,collinear:!1,nodeType:"crunode"},cn={order:3,realOrder:3,collinear:!1,nodeType:"acnode"},sn={order:3,realOrder:3,collinear:!1,nodeType:"cusp"},un={order:3,realOrder:3,collinear:!1,nodeType:"explicit"},fn={order:3,realOrder:3,collinear:!0,nodeType:"n/a"},ln={order:3,realOrder:2,collinear:!1,nodeType:"n/a"},an={order:3,realOrder:2,collinear:!0,nodeType:"n/a"},pn={order:3,realOrder:1,collinear:!0,nodeType:"n/a"},hn={order:3,realOrder:0,collinear:!0,nodeType:"n/a"};function dn(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push((e-r)*t[r]);return n}function vn(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+t[r];return e}const gn=vn,mn=Number.EPSILON/2,bn=Math.abs,xn=Math.max;function wn(t){const n=[];for(let e=0;e<t.length;e++)n.push(-t[e]);return n}const _n=wn,In=function(t){return n=>1/t(function(t){return t.slice().reverse()}(n))};function Nn(t){const n=t.length-1;if(n<1)return 0;t[0]<0&&(t=_n(t));const e=[];for(let t=0;t<n;t++)e.push(1);let r=0;for(let o=0;o<=n;o++){if(t[o]>=0)continue;let n=Number.POSITIVE_INFINITY,i=!1;for(let r=0;r<o;r++){if(t[r]<=0)continue;const c=(-t[o]/(t[r]/2**e[r]))**(1/(o-r));e[r]++,n>c&&(n=c),i=!0}i&&r<n&&(r=n)}return r}In(Nn);const Mn=(Sn=Nn,t=>-Sn(function(t){const n=t.length-1;if(n<0)return[];const e=t.slice();for(let t=0;t<n+1;t++)t%2==(n-1)%2&&(e[t]=-e[t]);return e}(t)));var Sn;function En(t){let n=0;for(let e=0;e<=t.length-1&&0===t[e];e++)n++;return 0!==n&&(t=t.slice(n)),t}In(Mn);const yn=dn,On=vn,Cn=function(t,n,e,r=gn(t,n),o=gn(t,e)){let i=n,c=e,s=i,u=r,f=c-i,l=f;for(;;){bn(u)<bn(o)&&(i=c,c=s,s=i,r=o,o=u,u=r);const n=2*mn*xn(1,bn(i),bn(c)),e=.5*(s-c);if(bn(e)<=n)return c;if(bn(f)<n||bn(r)<=bn(o))f=e,l=f;else{let t,a,p=o/r;if(i===s)t=2*e*p,a=1-p;else{a=r/u;const n=o/u;t=p*(2*e*a*(a-n)-(c-i)*(n-1)),a=(a-1)*(n-1)*(p-1)}0<t?a=-a:t=-t,p=f,f=l,2*t<3*e*a-bn(n*a)&&t<bn(.5*p*a)?l=t/a:(f=e,l=f)}if(i=c,r=o,n<bn(l)?c+=l:0<e?c+=n:c-=n,0===(o=gn(t,c)))return c;o*u>0&&(s=i,u=r,f=c-i,l=f)}},Tn=Mn,Pn=Nn,An=En;function kn(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY){t=An(t);let r=0;for(;0===t[t.length-1];)t=t.slice(0,-1),r++;if(t.length<=1){const t=[];for(let n=0;n<r;n++)t.push(0);return t}n===Number.NEGATIVE_INFINITY&&(n=Tn(t)),e===Number.POSITIVE_INFINITY&&(e=Pn(t));const o=[t];for(let n=1;n<=t.length-1;n++)o.push(yn(o[n-1]));let i=[];for(let r=t.length-2;r>=0;r--){const t=o[r],c=[];let s=n,u=On(t,s);0===u&&0===r&&c.push(n);for(let n=0;n<i.length;n++){const e=i[n],r=On(t,e);0===r?c.push(e):u*r<0&&c.push(Cn(t,s,e,u,r)),s=e,u=r}const f=On(t,e);u*f<0&&c.push(Cn(t,s,e,u,f)),0===f&&0===r&&c.push(e),i=c}if(r>0&&n<=0&&e>=0){const t=[];let n=!1;for(let e=0;e<i.length;e++){if(!n&&i[e]>=0){for(let n=0;n<r;n++)t.push(0);n=!0}t.push(i[e])}if(!n)for(let n=0;n<r;n++)t.push(0);return t}return i}function Bn(t){if(t.length<4)return[];const[[n,e],[r,o],[i,c],[s,u]]=t,f=r-n,l=o-e,a=i-r-f,p=c-o-l,h=s-i-f-2*a,d=u-c-l-2*p;return kn([a*d-p*h,f*d-l*h,f*p-l*a],0,1)}const{abs:Fn,PI:zn}=Math;function Yn(t,n=[0,1]){if(t.length<=2)return 0;const[e,r]=n;if(e===r)return 0;if(3===t.length){const n=y(t,e,r).ps,[[o,i],[c,s],[u,f]]=n;return M([c-o,s-i],[u-c,f-s])}if(4===t.length){const n=T(t,e,r).ps,o=function(t){if(4===t.length)return pt(t)?function(t){if(!bt(t))return!1;const[n,e,r,o]=t,[i,c]=n,[s,u]=e,[f,l]=r,[a,p]=o,h=wt(xt(_t(s/4,f/4),3),_t(i/4,a/4)),d=wt(xt(_t(u/4,l/4),3),_t(c/4,p/4));return 0===It(wt(_t(i/2,a/2),h))&&0===It(wt(_t(c/2,p/2),d))}(t)?Z(t)?hn:pn:bt(t)?an:ln:bt(t)?fn:function(t){const{coeffs:[n,e,r],errBound:[o,i,c]}=Et(t);if(Gt(n)<=o){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Qt(Ht(s,n),Wt(3,Ht(r,i))),l=Rt(Dt(i,n),-2*r),a=Qt(Ht(u,e),Wt(3,Ht(o,c))),p=Rt(Dt(c,e),-2*o),h=qt(l,a),d=qt(f,p);if(0===Xt(h,d))return un}const s=e*e,u=4*n*r,f=s-u,l=2*i*Gt(e)+Ut*s+(4*(o*Gt(r)+Gt(n)*c)+Ut*Gt(u))+Ut*Gt(f);if(f<-l)return cn;if(f>l)return on;const[a,p,h]=Lt(t),d=jt(qt(p,p),Wt(4,qt(a,h))),v=$t(d);return v<0?cn:v>0?on:sn}(t);if(3===t.length)return bt(t)?rt(t)?Z(t)?rn:en:nn:tn;if(2===t.length)return Z(t)?Kt:Jt;if(1===t.length)return Zt;throw new Error("The given bezier curve must be of order <= 3")}(n),[[i,c],[s,u],[f,l],[a,p]]=n,h=[s-i,u-c],d=[f-s,l-u],v=[a-f,p-l];if(0===d[0]&&0===d[1]||o.realOrder<=2)return M(h,v);const g=M(h,d)+M(d,v);return"acnode"===o.nodeType||"cusp"===o.nodeType?g<=-zn?g+2*zn:g>=+zn?g-2*zn:g:g}throw new Error("The given bezier curve must be of order <= 3.")}function Vn(t,n){const e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}function Ln(t,n){const[e,r]=t,[[o,i],[c,s]]=n;return Vn([o+e*(c-o),i+e*(s-i)],[o+r*(c-o),i+r*(s-i)])}function $n(t,n,e=16){if(n[0]===n[1])return 0;const{weights:r,abscissas:o}=Xn[e],[i,c]=n;let s=0;const u=(c-i)/2,f=(c+i)/2;for(let n=0;n<=e-1;n++)s+=r[n]*t(u*o[n]+f);return u*s}const Xn={2:{weights:[1,1],abscissas:[-.5773502691896257,.5773502691896257]},4:{weights:[.6521451548625461,.6521451548625461,.3478548451374538,.3478548451374538],abscissas:[-.3399810435848563,.3399810435848563,-.8611363115940526,.8611363115940526]},8:{weights:[.362683783378362,.362683783378362,.3137066458778873,.3137066458778873,.2223810344533745,.2223810344533745,.1012285362903763,.1012285362903763],abscissas:[-.1834346424956498,.1834346424956498,-.525532409916329,.525532409916329,-.7966664774136267,.7966664774136267,-.9602898564975363,.9602898564975363]},16:{weights:[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685,.1894506104550685,.18260341504492358,.16915651939500254,.14959598881657674,.12462897125553388,.09515851168249279,.062253523938647894,.027152459411754096],abscissas:[-.9894009349916499,-.9445750230732326,-.8656312023878318,-.755404408355003,-.6178762444026438,-.45801677765722737,-.2816035507792589,-.09501250983763744,.09501250983763744,.2816035507792589,.45801677765722737,.6178762444026438,.755404408355003,.8656312023878318,.9445750230732326,.9894009349916499]},64:{weights:[.048690957009139724,.048690957009139724,.04857546744150343,.04857546744150343,.048344762234802954,.048344762234802954,.04799938859645831,.04799938859645831,.04754016571483031,.04754016571483031,.04696818281621002,.04696818281621002,.046284796581314416,.046284796581314416,.04549162792741814,.04549162792741814,.044590558163756566,.044590558163756566,.04358372452932345,.04358372452932345,.04247351512365359,.04247351512365359,.04126256324262353,.04126256324262353,.03995374113272034,.03995374113272034,.038550153178615626,.038550153178615626,.03705512854024005,.03705512854024005,.035472213256882386,.035472213256882386,.033805161837141606,.033805161837141606,.03205792835485155,.03205792835485155,.030234657072402478,.030234657072402478,.028339672614259483,.028339672614259483,.02637746971505466,.02637746971505466,.024352702568710874,.024352702568710874,.022270173808383253,.022270173808383253,.02013482315353021,.02013482315353021,.017951715775697343,.017951715775697343,.015726030476024718,.015726030476024718,.013463047896718643,.013463047896718643,.011168139460131128,.011168139460131128,.008846759826363947,.008846759826363947,.006504457968978363,.006504457968978363,.004147033260562468,.004147033260562468,.001783280721696433,.001783280721696433],abscissas:[-.024350292663424433,.024350292663424433,-.07299312178779904,.07299312178779904,-.12146281929612056,.12146281929612056,-.16964442042399283,.16964442042399283,-.21742364374000708,.21742364374000708,-.2646871622087674,.2646871622087674,-.31132287199021097,.31132287199021097,-.3572201583376681,.3572201583376681,-.4022701579639916,.4022701579639916,-.4463660172534641,.4463660172534641,-.48940314570705296,.48940314570705296,-.5312794640198946,.5312794640198946,-.571895646202634,.571895646202634,-.6111553551723933,.6111553551723933,-.6489654712546573,.6489654712546573,-.6852363130542333,.6852363130542333,-.7198818501716109,.7198818501716109,-.7528199072605319,.7528199072605319,-.7839723589433414,.7839723589433414,-.8132653151227975,.8132653151227975,-.8406292962525803,.8406292962525803,-.8659993981540928,.8659993981540928,-.8893154459951141,.8893154459951141,-.9105221370785028,.9105221370785028,-.9295691721319396,.9295691721319396,-.9464113748584028,.9464113748584028,-.9610087996520538,.9610087996520538,-.973326827789911,.973326827789911,-.983336253884626,.983336253884626,-.9910133714767443,.9910133714767443,-.9963401167719553,.9963401167719553,-.9993050417357722,.9993050417357722]}};function jn(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[3*(s-n+3*(r-i)),6*(i+n-2*r),3*(r-n)],[3*(u-e+3*(o-c)),6*(c+e-2*o),3*(o-e)]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[2*(i+n-2*r),2*(r-n)],[2*(c+e-2*o),2*(o-e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n],[o-e]]}(t);if(1===t.length)return[[0],[0]];throw new Error("The bezier curve must be of order <= 3.")}function qn(t){const[n,e]=jn(t);return function(t){const r=vn(n,t),o=vn(e,t);return Math.sqrt(r*r+o*o)}}const{abs:Wn}=Math;function Hn(t){const n=[];for(let e=0;e<t.length-1;e++){const r=[t[e+1][0]-t[e][0],t[e+1][1]-t[e][1]];0!==(0!==r[0]||r[1])&&n.push(r)}const e=n.length;let r=0;for(let t=0;t<e-1;t++)r+=Wn(M(n[t],n[t+1]));return r}function Dn(t,n,e){if(4===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=p-n*(p-h),v=s-n*(s-f),g=f-n*(f-a),m=v-n*(v-g);return[e,[p,v],[d,m],[d-n*(d-(h-n*(h-(l-n*(l-i[0]))))),m-n*(m-(g-n*(g-(a-n*(a-i[1])))))]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=l-n*(l-i[0]),v=p-n*(p-h),g=h-n*(h-d),m=s-n*(s-f),b=f-n*(f-a),x=a-n*(a-i[1]),w=m-n*(m-b),_=b-n*(b-x);return[[v-n*(v-g),w-n*(w-_)],[g,_],[d,x],i]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,b=s-f,x=a-f,w=b+x,_=n*b,I=e*b,N=c[0]-s-3*x,M=u-l,S=p-l,E=M+S,y=n*M,O=e*M,C=c[1]-u-3*S;return[[d*N+(3*n*(n*w-b)+s),d*C+(3*n*(n*E-M)+u)],[m*(n*N+2*w)+(h*w+s-(I+2*_)),m*(n*C+2*E)+(h*E+u-(O+2*y))],[m*(e*N+2*w)+(v*w+s-(2*I+_)),m*(e*C+2*E)+(v*E+u-(2*O+y))],[g*N+(3*e*(e*w-b)+s),g*C+(3*e*(e*E-M)+u)]]}(t,n,e)}(t,n,e);if(3===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=c-u;return[e,[-n*l+i,-n*a+c],[f*(l+(o[0]-s))-(2*n*l-i),f*(a+(o[1]-u))-(2*n*a-c)]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=o[0]-s,p=c-u,h=o[1]-u;return[[f*(l+a)-(2*n*l-i),f*(p+h)-(2*n*p-c)],[n*a+s,n*h+u],o]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=n*n,a=e*e,p=n*e,h=c-u,d=h+(i[0]-u),v=s-f,g=v+(i[1]-f);return[[l*d-(2*n*h-c),l*g-(2*n*v-s)],[p*d-(h*(e+n)-c),p*g-(v*(e+n)-s)],[a*d-(2*e*h-c),a*g-(2*e*v-s)]]}(t,n,e)}(t,n,e);if(2===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[e,[n*(r[0]-o)+o,n*(r[1]-i)+i]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[[n*(r[0]-o)+o,n*(r[1]-i)+i],r]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1];return[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]]}(t,n,e)}(t,n,e);if(1===t.length)return t;throw new Error("The given bezier curve must be of order <= 3.")}function Qn(t,n=.4,e=2**-16){const r=[0],o=[1];for(;;){const i=r[r.length-1],c=o[o.length-1];if(Hn(Dn(t,i,c))<=n||c-i<=e){if(r.push(o.pop()),1===c)return r;continue}const s=(i+c)/2;o.push(s)}}function Rn(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a]]=n;if(c===u&&u===l&&s===f&&f===a)return 0;const p=y(n,o,i).ps,h=Qn(p,e);let d=0;for(let t=0;t<h.length-1;t++){const n=h[t],e=h[t+1];d+=$n(qn(p),[n,e],r)}return d}function Gn(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a],[p,h]]=n;if(c===u&&u===l&&l===p&&s===f&&f===a&&a===h)return 0;const d=T(n,o,i).ps,v=Qn(d,e);let g=0;for(let t=0;t<v.length-1;t++){const n=v[t],e=v[t+1];g+=$n(qn(d),[n,e],r)}return g}function Un(t,n=.4,e=16){if(4===t.length)return Gn([0,1],t,n,e);if(3===t.length)return Rn([0,1],t,n,e);if(2===t.length)return Ln([0,1],t);if(1===t.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}function Zn(t,n,e){if(void 0===t.size||void 0===e)return;const r=e[n];if(t.size>r&&void 0!==r)for(const[n]of t){t.delete(n);break}}const Jn=[function(t,n){let e,r=!1;return function(){return r||(e=t(),r=!0),e}},function(t,n,e=!1){const r=new WeakMap,o=new Map;function i(t){return"object"!=typeof t&&"function"!=typeof t||null===t?o:r}const c=function(r){let c;const s=i(r);return s.has(r)?(e&&console.log("cache hit"),c=s.get(r)):(e&&console.log("cache miss"),c=t(r),s.set(r,c),Zn(o,0,n)),c};return c.mapS=o,c.weakMapS=r,c.clearCache=function(){o.clear()},c.addToCache=function(t,e){const r=i(e);r.set(e,t),Zn(r,1,n)},c},function(t,n){const e=new WeakMap,r=new Map;function o(t,o){const i=("object"==typeof o||"function"==typeof o)&&null!==o;let c="object"!=typeof t&&"function"!=typeof t||null===t?r:e,s=c.get(t);return void 0===s&&(s={weakMap:new WeakMap,map:new Map},c.set(t,s),Zn(c,0,n)),i?s.weakMap:s.map}function i(e,r){const i=o(e,r);let c;return i.has(r)?c=i.get(r):(c=t(e,r),i.set(r,c),Zn(i,1,n)),c}return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r){const i=o(e,r);i.set(r,t),Zn(i,1,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i){const c=("object"==typeof o||"function"==typeof o)&&null!==o,s=("object"==typeof i||"function"==typeof i)&&null!==i;let u="object"!=typeof t&&"function"!=typeof t||null===t?r:e,f=u.get(t);void 0===f&&(f={weakMap:new WeakMap,map:new Map},u.set(t,f),Zn(u,0,n));const l=c?f.weakMap:f.map;let a=l.get(o);return void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(o,a),Zn(l,1,n)),s?a.weakMap:a.map}const i=function(e,r,i){const c=o(e,r,i);let s;return c.has(i)?s=c.get(i):(s=t(e,r,i),c.set(i,s),Zn(c,2,n)),s};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i){const c=o(e,r,i);c.set(i,t),Zn(c,2,n)},i},function(t,n,e=!1){const r=new WeakMap,o=new Map;function i(t,e,i,c){const s=("object"==typeof e||"function"==typeof e)&&null!==e,u=("object"==typeof i||"function"==typeof i)&&null!==i,f=("object"==typeof c||"function"==typeof c)&&null!==c;let l="object"!=typeof t&&"function"!=typeof t||null===t?o:r,a=l.get(t);void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(t,a),Zn(l,0,n));const p=s?a.weakMap:a.map;let h=p.get(e);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(e,h),Zn(p,1,n));const d=u?h.weakMap:h.map;let v=d.get(i);return void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(i,v),Zn(d,2,n)),f?v.weakMap:v.map}const c=function(r,o,c,s){const u=i(r,o,c,s);let f;return u.has(s)?(e&&console.log("cache hit"),f=u.get(s)):(e&&console.log("cache miss"),f=t(r,o,c,s),u.set(s,f),Zn(u,3,n)),f};return c.mapS=o,c.weakMapS=r,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,r,o,c){const s=i(e,r,o,c);s.set(c,t),Zn(s,3,n)},c},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s){const u=("object"==typeof o||"function"==typeof o)&&null!==o,f=("object"==typeof i||"function"==typeof i)&&null!==i,l=("object"==typeof c||"function"==typeof c)&&null!==c,a=("object"==typeof s||"function"==typeof s)&&null!==s;let p="object"!=typeof t&&"function"!=typeof t||null===t?r:e,h=p.get(t);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(t,h),Zn(p,0,n));const d=u?h.weakMap:h.map;let v=d.get(o);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(o,v),Zn(d,1,n));const g=f?v.weakMap:v.map;let m=g.get(i);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(i,m),Zn(g,2,n));const b=l?m.weakMap:m.map;let x=b.get(c);return void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(c,x),Zn(b,3,n)),a?x.weakMap:x.map}const i=function(e,r,i,c,s){const u=o(e,r,i,c,s);let f;return u.has(s)?f=u.get(s):(f=t(e,r,i,c,s),u.set(s,f),Zn(u,4,n)),f};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s){const u=o(e,r,i,c,s);u.set(s,t),Zn(u,4,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u){const f=("object"==typeof o||"function"==typeof o)&&null!==o,l=("object"==typeof i||"function"==typeof i)&&null!==i,a=("object"==typeof c||"function"==typeof c)&&null!==c,p=("object"==typeof s||"function"==typeof s)&&null!==s,h=("object"==typeof u||"function"==typeof u)&&null!==u;let d="object"!=typeof t&&"function"!=typeof t||null===t?r:e,v=d.get(t);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(t,v),Zn(d,0,n));const g=f?v.weakMap:v.map;let m=g.get(o);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(o,m),Zn(g,1,n));const b=l?m.weakMap:m.map;let x=b.get(i);void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(i,x),Zn(b,2,n));const w=a?x.weakMap:x.map;let _=w.get(c);void 0===_&&(_={weakMap:new WeakMap,map:new Map},w.set(c,_),Zn(w,3,n));const I=p?_.weakMap:_.map;let N=I.get(s);return void 0===N&&(N={weakMap:new WeakMap,map:new Map},I.set(s,N),Zn(I,4,n)),h?N.weakMap:N.map}const i=function(e,r,i,c,s,u){const f=o(e,r,i,c,s,u);let l;return f.has(u)?l=f.get(u):(l=t(e,r,i,c,s,u),f.set(u,l),Zn(f,5,n)),l};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u){const f=o(e,r,i,c,s,u);f.set(u,t),Zn(f,5,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u,f){const l=("object"==typeof o||"function"==typeof o)&&null!==o,a=("object"==typeof i||"function"==typeof i)&&null!==i,p=("object"==typeof c||"function"==typeof c)&&null!==c,h=("object"==typeof s||"function"==typeof s)&&null!==s,d=("object"==typeof u||"function"==typeof u)&&null!==u,v=("object"==typeof f||"function"==typeof f)&&null!==f;let g="object"!=typeof t&&"function"!=typeof t||null===t?r:e,m=g.get(t);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(t,m),Zn(g,0,n));const b=l?m.weakMap:m.map;let x=b.get(o);void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(o,x),Zn(b,1,n));const w=a?x.weakMap:x.map;let _=w.get(i);void 0===_&&(_={weakMap:new WeakMap,map:new Map},w.set(i,_),Zn(w,2,n));const I=p?_.weakMap:_.map;let N=I.get(c);void 0===N&&(N={weakMap:new WeakMap,map:new Map},I.set(c,N),Zn(I,3,n));const M=h?N.weakMap:N.map;let S=M.get(s);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(s,S),Zn(M,4,n));const E=d?S.weakMap:S.map;let y=E.get(u);return void 0===y&&(y={weakMap:new WeakMap,map:new Map},E.set(u,y),Zn(E,5,n)),v?y.weakMap:y.map}const i=function(e,r,i,c,s,u,f){const l=o(e,r,i,c,s,u,f);let a;return l.has(f)?a=l.get(f):(a=t(e,r,i,c,s,u,f),l.set(f,a),Zn(l,6,n)),a};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u,f){const l=o(e,r,i,c,s,u,f);l.set(f,t),Zn(l,6,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u,f,l){const a=("object"==typeof o||"function"==typeof o)&&null!==o,p=("object"==typeof i||"function"==typeof i)&&null!==i,h=("object"==typeof c||"function"==typeof c)&&null!==c,d=("object"==typeof s||"function"==typeof s)&&null!==s,v=("object"==typeof u||"function"==typeof u)&&null!==u,g=("object"==typeof f||"function"==typeof f)&&null!==f,m=("object"==typeof l||"function"==typeof l)&&null!==l;let b="object"!=typeof t&&"function"!=typeof t||null===t?r:e,x=b.get(t);void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(t,x),Zn(b,0,n));const w=a?x.weakMap:x.map;let _=w.get(o);void 0===_&&(_={weakMap:new WeakMap,map:new Map},w.set(o,_),Zn(w,1,n));const I=p?_.weakMap:_.map;let N=I.get(i);void 0===N&&(N={weakMap:new WeakMap,map:new Map},I.set(i,N),Zn(I,2,n));const M=h?N.weakMap:N.map;let S=M.get(c);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(c,S),Zn(M,3,n));const E=d?S.weakMap:S.map;let y=E.get(s);void 0===y&&(y={weakMap:new WeakMap,map:new Map},E.set(s,y),Zn(E,4,n));const O=v?y.weakMap:y.map;let C=O.get(u);void 0===C&&(C={weakMap:new WeakMap,map:new Map},O.set(u,C),Zn(O,5,n));const T=g?C.weakMap:C.map;let P=T.get(f);return void 0===P&&(P={weakMap:new WeakMap,map:new Map},T.set(f,P),Zn(T,6,n)),m?P.weakMap:P.map}const i=function(e,r,i,c,s,u,f,l){const a=o(e,r,i,c,s,u,f,l);let p;return a.has(l)?p=a.get(l):(p=t(e,r,i,c,s,u,f,l),a.set(l,p),Zn(a,7,n)),p};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u,f,l){const a=o(e,r,i,c,s,u,f,l);a.set(l,t),Zn(a,7,n)},i}];function Kn(t,n,e=!1){const r=t.length;if(r>8)throw new Error("A maximum of 8 formal parameters are supported");return(0,Jn[r])(t,n,e)}function te(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=o-e,a=i-r,p=u-c,h=f-s,d=p*a-h*l;if(0===d)return;const v=((s-r)*l-(c-e)*a)/d;return[c+v*p,s+v*h]}function ne(t,n){return[n[0]-t[0],n[1]-t[1]]}function ee(t,n){return t[0]*n[0]+t[1]*n[1]}function re(t){return[-t[1],t[0]]}function oe(t,n){return t[0]*n[1]-t[1]*n[0]}function ie(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e]}function ce(t,n){function e(n){return[t[0]+n[0],t[1]+n[1]]}return void 0===n?e:e(n)}function se(t){const n=1/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]*n,t[1]*n]}function ue(t,n,e){function r(e){return[e[0]*n-e[1]*t,e[0]*t+e[1]*n]}return void 0===e?r:r(e)}function fe(t,n){const[e,r]=jn(t);return[vn(e,n),vn(r,n)]}const le=dt,ae=$;function pe(t){if(4===t.length){const[[n,e],[r,o]]=t;return[ae(3,le(r,n)),ae(3,le(o,e))]}if(3===t.length){const[[n,e],[r,o]]=t;return[le(2*r,2*n),le(2*o,2*e)]}if(2===t.length){const[[n,e],[r,o]]=t;return[le(r,n),le(o,e)]}if(1===t.length)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}const he=J,de=$,ve=W;function ge(t){if(4===t.length){const[[n,e],[r,o],[i,c]]=t;return[de(6,ve(he(i,n),-2*r)),de(6,ve(he(c,e),-2*o))]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[ve(he(2*i,2*n),-4*r),ve(he(2*c,2*e),-4*o)]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3")}const me=dt,be=$,xe=k;function we(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[be(6,xe(me(s,n),be(3,me(r,i))))],[be(6,xe(me(u,e),be(3,me(o,c))))]]}if(t.length<=3)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}const{sign:_e}=Math;function Ie(t,n){const[e,r]=pe(t),[o,i]=ge(t),[c,s]=pe(n),[u,f]=ge(n),l=Y(q(e,i),q(r,o)),a=Y(q(c,f),q(s,u)),p=H(l),h=H(a);if(_e(p)!==_e(h))return p-h;const d=k(q(c,c),q(s,s)),v=k(q(e,e),q(r,r)),g=q(d,d),m=q(g,d),b=q(v,v),x=q(b,v);if(0!==p||0!==h){const t=q(l,l),n=q(a,a),e=H(Y(q(t,m),q(n,x)));if(0!==e)return p>0?e:-e}const[[w],[_]]=we(t),[[I],[N]]=we(n),M=Y(q(e,_),q(r,w)),S=k(q(e,o),q(r,i)),E=Y(q(c,N),q(s,I)),y=k(q(c,u),q(s,f)),O=Y(q(v,M),L(q(l,S),3)),C=Y(q(d,E),L(q(a,y),3)),T=H(O),P=H(C);if(T!==P)return T-P;if(0===T&&0===P)return 0;const A=q(O,O),B=q(g,m),F=q(C,C),z=q(b,x),V=H(Y(q(A,B),q(F,z)));return T>0?V:-V}function Ne(t,n){return t[0]===n[0]&&t[1]===n[1]}function Me(t,n){const{ccw:e,tangentI:r,tangentO:o,dotTangents:i}=function(t,n){const e=t.length;let r=t[e-2],o=n[0],i=n[1];Ne(r,o)&&(r=t[e-3]),Ne(o,i)&&(i=n[2]);const c=function(t,n,e){const r=dt(t[0],e[0]),o=dt(n[1],e[1]),i=dt(t[1],e[1]),c=dt(n[0],e[0]);return ht(k(q(r,o),B(q(i,c))))}(r,o,i),s=[dt(o[0],r[0]),dt(o[1],r[1])],u=[dt(i[0],o[0]),dt(i[1],o[1])],f=function(t,n){return ht(k(q(t[0],n[0]),q(t[1],n[1])))}(s,u);return 0!==c||f>0?{ccw:c,tangentI:s,tangentO:u,dotTangents:f}:{ccw:Ie(t.slice().reverse(),n),tangentI:s,tangentO:u,dotTangents:f}}(t,n),c=e<0,s=e>0,u=[se(r.map(t=>t[1])),se(o.map(t=>t[1]))],f=oe(u[0],u[1]);let l,a;return i>0?(l=f<-.0698,a=f>.0698):(l=c,a=s),{tangents:u,isSharp:c,isDull:s,isQuiteSharp:l,isQuiteDull:a}}function Se(t){return Me(1===t.t?t.curve.ps:t.curve.prev.ps,1===t.t?t.curve.next.ps:t.curve.ps)}function Ee(t){return 0===t.t||1===t.t}const ye=Kn(t=>!!Ee(t)&&Se(t).isSharp);function Oe(t){const n=t.cp.circle.center,e=t,r=t.nextOnCircle,o=e.cp.pointOnShape,i=r.cp.pointOnShape,c=o.p,s=i.p;let u;if(ye(o)){let t,n;0===o.t?(t=o.curve,n=o.curve.prev):1===o.t&&(t=o.curve.next,n=o.curve);const e=se(fe(t.ps,0)),r=[-(f=se(fe(n.ps,1)))[0],-f[1]],i=ee(e,r),c=Math.sqrt((1+i)/2);u=ue(Math.sqrt((1-i)/2),c,r)}else u=c[0]===s[0]&&c[1]===s[1]?ne(c,n):re(ne(c,s));var f;return[n,ce(se(u),n)]}const Ce=1e-4;function Te(t,n){const e=t.cp.circle.center,r=Oe(t),o=n.cp.circle.center,i=Oe(n.prevOnCircle),c=te(r,i),s=ne(e,o);let u;if(c){const t=ne(e,c),n=ne(o,c);u=ee(t,s)<0||ee(n,s)>0}else u=!0;if(!u)return[e,c,o];const f=re(s),l=ne(r[0],r[1]),a=ne(i[0],i[1]),p=Math.abs(oe(s,l))/9,h=Math.abs(oe(s,a))/9;if(p>.01||h>.01)return[e,o];if(p>Ce||h>Ce){const t=ie(e,o,1/3),n=ie(e,o,2/3),c=ce(f,t),s=[n,ce(f,n)];return[e,te(r,[t,c]),te(i,s),o]}return[e,o]}function Pe(t){return Te(t,t.next)}const Ae=Kn(Pe);function ke(t,n=!1){const e=t;let r=e;const o=[];do{n&&r===e||o.push(r),r=r.nextOnCircle}while(r!==e);return o}function Be(t){return t===t.next.prevOnCircle}function Fe(t){return ke(t).filter(t=>!Be(t)).length}const{min:ze,abs:Ye}=Math;function Ve(t){if(2!==Fe(t))return 0;const{radius:n}=t.cp.circle,e=Pe(t),r=function(t,n=[0,1]){if(t.length<=3)return Fn(Yn(t,n));if(4===t.length){const[e,r]=n;if(e===r)return 0;const o=T(t,e,r).ps,i=[0,...Bn(o),1];let c=0;for(let t=0;t<i.length-1;t++)c+=Fn(Yn(o,[i[t],i[t+1]]));return c}throw new Error("The given bezier curve must be of order <= 3.")}(e,[0,1]);return 0!==Un(e)?r*n:void 0}Kn(Ve);const Le=Kn(Yn),$e=Kn(Un);function Xe(t){return ke(t.prevOnCircle,!0).every(Be)}const je=function(){const t=new Map;return function(n){let e=t.get(n);return void 0!==e||(r=n,e=Kn(function(t){let n=t,e=0,o=0,i=n.prev,c=n,s=0,u=0,f=0,l=0;for(;l<r/2/40&&c!==n.prev&&!Xe(c)&&Fe(c)<=2;){const{radius:t}=c.cp.circle,n=Ae(c),e=Le(n);let r=0;const i=$e(Ae(c));u+=t*(e+r),o+=i,l+=i/t,c=c.next}for(;f<r/2/40&&i!==n&&!Xe(i)&&Fe(i)<=2;){const{radius:t}=i.cp.circle,n=Ae(i),r=Le(n);let o=0;const c=$e(Ae(i));s+=t*(r+o),e+=c,f+=c/t,i=i.prev}const a=e+o;if(0!==a)return-(s+u)/a}),t.set(n,e)),e;var r}}();function qe(t){const n=t.cp,e=n.pointOnShape;return{idx:e.curve.idx,t:e.t,order:n.order,order2:n.order2}}function We(t){const n=t;let e=n,r=0;do{r++,e=e.nextOnCircle}while(e!==n);return r}function He(t){return 0===t.cp.circle.radius}function De(t){let n=t;if(Be(n))return[n];const e=[];do{e.push(n);const t=n.next.prevOnCircle;n=n=n===t?n.next.next:t}while(n!==t);return e}function Qe(t,n){const e=v(t),r=new Set;for(t of e)Be(t)||r.has(t.next.prevOnCircle)||n(t),r.add(t)}function Re(t){const n=[],e=t;let r=e;for(;r!==e.prevOnCircle;)Be(r)||n.push(r.next),r=r.nextOnCircle;return n}function Ge(t,n){n(t);const e=ke(t).filter(t=>!Be(t)).map(t=>t.next);for(const t of e){const e=[t];for(;e.length;){const t=e.pop();n(t),e.push(...Re(t))}}}const Ue=["prev","next","prevOnCircle","nextOnCircle"];function Ze(t){const n=new Map,e=Je(t);n.set(t,e);const r=[{cpNode:t,newCpNode:e}];for(;r.length;){const{cpNode:t,newCpNode:e}=r.pop();for(const o of Ue){const i=t[o];let c=n.get(i);c||(c=Je(i),n.set(i,c),r.push({cpNode:i,newCpNode:c})),e[o]=c}}return e}function Je(t){return{...t,prev:void 0,next:void 0,prevOnCircle:void 0,nextOnCircle:void 0}}function Ke(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,c=o.curve;if(i.loop!==c.loop)return[];const s=[];return c===i?s.push(Dn(r.curve.ps,r.t,o.t)):(s.push(Dn(r.curve.ps,r.t,1)),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push(Dn(o.ps,0,n))}while(o!==e)}(s,r.curve,o.curve,o.t)),s}function tr(t,n){const e=t.prev,r=t.next;e.next=r,r.prev=e,n.get(t.cp.pointOnShape.curve.loop).remove(t,!1)}function nr(t,n){const e=We(t);if(2!==e)throw new Error(`Cannot delete \`CpNode\` on ${e}-prong`);ke(t).forEach(t=>tr(t,n))}function er(t,n){return ke(t).indexOf(n)>=0}function rr(t){if(function(t){return ke(t).every(Be)}(t))return[];for(;Be(t);)t=t.nextOnCircle;for(t=t.next;2===Fe(t);)t=t.next;t=t.prevOnCircle;const n=[];do{n.push(t),t=t.next}while(!Xe(t)&&2===Fe(t));return n}function or(t,n,e=!0){const r=function(t,n,e=!0){if(!e&&t===n)return{cpNodes:[],hasHoleCloser:!1};const r=t,o=[r];let i=t.next,c=r.isHoleClosing;for(;i!==n&&i!==r;)i.isHoleClosing&&(c=!0),o.push(i),i=i.next;return{cpNodes:o,hasHoleCloser:c}}(t,n,e);return{pss:(o=r.cpNodes,o.flatMap(Ke)),hasHoleCloser:r.hasHoleCloser};var o}const ir={getChildren:function(t){const n=[],e=t.next;let r=e;do{n.push(r),r=r.nextOnCircle}while(r.nextOnCircle!==e);return n},getVertexForwardChildren:Re,getAllOnLoop:v,getAllOnCircle:ke,isOnSameCircle:er,isTerminating:Be,isFullyTerminating:Xe,getFirstExit:function(t){const n=t;let e=n;for(;e.next===e.prevOnCircle;)if(e=e.next,e===n)return;return e},isSharp:He,isOneProng:function(t){const n=t;if(0===n.cp.circle.radius)return!0;const e=n.nextOnCircle,r=n.cp.pointOnShape.p,o=e.cp.pointOnShape.p;return r[0]===o[0]&&r[1]===o[1]},getProngCount:We,getRealProngCount:Fe,cpNodeComparator:(t,n)=>d(t.cp,n.cp),enhanceCpNode:function(t){const n=t.cp.pointOnShape.curve;return{...t,pos:t.cp.pointOnShape,p:t.cp.pointOnShape.p,t:t.cp.pointOnShape.t,isTerminating:Be(t),isFullyTerminating:Xe(t),isSharp:He(t),prongCount:We(t),getRealProngCount:Fe(t),ordering:qe(t),curve:n,loop:n.loop}},traverseCp:De,traverseEdges:Qe,traverseVertices:Ge,clone:Ze,getBoundaryBezierPartsToNext:function(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,c=o.curve;if(i.loop!==c.loop)return;const s=[];return c===i?s.push({ps:r.curve.ps,ts:[r.t,o.t]}):(s.push({ps:r.curve.ps,ts:[r.t,1]}),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?{ps:o.ps,ts:[0,r]}:{ps:o.ps,ts:[0,1]};t.push(n)}while(o!==e)}(s,r.curve,o.curve,o.t)),s},getBoundaryBeziersToNext:Ke,removeVertex:nr,getMatCurveToNext:Pe,isTwoProng:function(t){return 2===Fe(t)},getBranch:rr,getBranchBeziers:function(t){return rr(t).map(t=>Pe(t))},getSalience:function(t){const n=t,e=t.nextOnCircle,r=Vn(n.cp.pointOnShape.p,e.cp.pointOnShape.p),{pss:o,hasHoleCloser:i}=or(n,e),c=function(t){let n=0;for(let e of t)n+=e;return n}(o.map(t=>Un(t)));return i?Number.POSITIVE_INFINITY:c/r},getMatCurveBetween:Te,getEdgeDirection:Oe,getBoundaryBeziersBetween:or,getMatCurvesBetween:function(t,n){let e=t;const r=[];for(;e!==n;){const t=Te(e,e.next);r.push(t),e=e.next}return r},getHoleClosers:function(t){return v(t).filter(t=>t.isHoleClosing)},getSpeed:Ve,getSmoothedSpeed$:je,getInitialDegAngleBetweenMatCurves:function(t,n){const e=oe(se(fe(Pe(t),0)),se(fe(Pe(n),0)));return Math.abs(Math.asin(e)*(180/Math.PI))},getAllVertices:function(t){const n=[];return Ge(t,t=>{n.push(t)}),n}};function cr(t){return n=>ke(n).some(t)}const sr=cr(function(t){return 2!==Fe(t)&&!t.isHoleClosing}),ur=2**27+1;function fr(t,n){const e=t[1],r=n[1],o=e*r,i=ur*e,c=i-(i-e),s=e-c,u=ur*r,f=u-(u-r),l=r-f,a=s*l-(o-c*f-s*f-c*l)+(e*n[0]+t[0]*r),p=o+a;return[a-(p-o),p]}function lr(t,n){const e=t[0],r=t[1],o=r+n,i=o-r,c=e+(r-(o-i)+(n-i)),s=o+c;return[c-(s-o),s]}const ar=fr,pr=b,hr=x,dr=P,vr=lr;function gr(t,n){if(0===n[0]&&0===n[1])return t[0].map(t=>[0,t]);if(0===n[0]&&1===n[1])return t[t.length-1].map(t=>[0,t]);if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=vr(ar(dr(o,e),n),e),a=vr(ar(dr(c,o),n),o),p=vr(ar(dr(u,c),n),c),h=pr(l,ar(hr(a,l),n)),d=pr(a,ar(hr(p,a),n)),v=pr(h,ar(hr(d,h),n)),g=vr(ar(dr(i,r),n),r),m=vr(ar(dr(s,i),n),i),b=vr(ar(dr(f,s),n),s),x=pr(g,ar(hr(m,g),n)),w=pr(m,ar(hr(b,m),n));return[v,pr(x,ar(hr(w,x),n))]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=pr([0,e],ar(dr(o,e),n)),f=pr([0,o],ar(dr(c,o),n)),l=pr(u,ar(hr(f,u),n)),a=pr([0,r],ar(dr(i,r),n)),p=pr([0,i],ar(dr(s,i),n));return[l,pr(a,ar(hr(p,a),n))]}if(2===t.length){const[[e,r],[o,i]]=t;return[vr(ar(dr(o,e),n),e),vr(ar(dr(i,r),n),r)]}if(1===t.length){const[n,e]=t[0];return[[0,n],[0,e]]}throw new Error("The given bezier curve must be of order <= 3.")}function mr(t,n,e){return{curve:t,t:n,p:gr(t.ps,[0,n]).map(t=>t[1]),isSource:void 0!==e&&e}}const br=Number.EPSILON/2,xr=br*br,wr=134217729;function _r(t,n){const e=n[0],r=n[1],o=r*t,i=wr*r,c=i-(i-r),s=r-c,u=wr*t,f=u-(u-t),l=t-f,a=e*t,p=o+a,h=a-(p-o)+(s*l-(o-c*f-s*f-c*l)),d=p+h;return[h-(d-p),d]}function Ir(t,n){const e=n[0],r=n[1],o=r*t,i=wr*r,c=i-(i-r),s=r-c,u=wr*t,f=u-(u-t),l=t-f,a=s*l-(o-c*f-s*f-c*l)+e*t,p=o+a;return[a-(p-o),p]}const Nr=Ir,Mr=ht,Sr=function(){const t=3*xr;return t/(1-t)}(),Er=L,yr=J,Or=it,Cr=Math.abs,Tr=Number.EPSILON/2;function Pr(t,n){let e=t[0],r=.5*Cr(e);for(let o=1;o<t.length;o++)e=e*n+t[o],r=r*Cr(n)+Cr(e);return r=Tr*(2*r-Cr(e)),[e,r]}const Ar=Math.abs,kr=function(t){const n=t*br;return n/(1-n)},Br=Pr,Fr=vn,zr=kr(1),Yr=kr(2);function Vr(t,n,e=void 0,r=1){const o=Math.abs(n),i=t[0],[c,s]=Br(i,n),u=Yr*function(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+Ar(t[r]);return e}(i,o),f=void 0!==e?Fr(e,o):0;if((s+u+f)*r<Math.abs(c))return c;const l=function(t,n){const e=[],r=[];let o,i=t[0];for(let c=1;c<t.length;c++){const[s,u]=Or(i,n);[o,i]=yr(u,t[c]),e.push(s),r.push(o)}return{r̂:i,pπ:e,pσ:r}}(i,n),{pπ:a,pσ:p}=l;let{r̂:h}=l;const[d,v]=Br(a,n),[g,m]=Br(p,n),[b,x]=Br(t[1],n);let w=v+m+x+f;return h=d+g+b+h,w+=zr*h,w*r<Math.abs(h)?h:0}const Lr=k,$r=L;function Xr(t,n){let e=[0];for(let r=0;r<t.length;r++)e=Lr(t[r],$r(e,n));return e}const jr=Vr,qr=Xr,Wr=ht,Hr=Vr,Dr=Xr,Qr=ht,Rr=Number.EPSILON,Gr=Math.abs,Ur=Math.max,Zr=function(t){const{p:n,pE:e}=t,r=[],o=[],i=n.length-1;for(let t=0;t<i;t++){const c=i-t,s=Nr(c,n[t]);r.push(s);const u=c&c-1?Sr:0,f=Mr(s);o.push(c*e[t]+Math.abs(f)*u)}return{p:r,pE:o}},Jr=Vr,Kr=Xr,to=function(t){const n=t[0].length,e=[];for(let r=0;r<n;r++){const o=[];for(let e=0;e<t.length;e++)o.push(t[e][n-(r+1)]);e.push(o)}return e},no=function(t,n,e,r){const o=jr(t,e,n,4);return 0!==o?o:Wr(qr(r(),e))},eo=function(t,n,e,r,o,i,c,s){let u=e,f=r,l=u,a=o,p=f-u,h=p;for(;;){let d;Gr(a)<Gr(i)&&(u=f,f=l,l=u,o=i,i=a,a=o);const v=Ur(Gr(u),Gr(f));d=v<=1?Rr:Rr*2**Math.ceil(Math.log2(v));const g=.5*(l-f);if(Gr(g)<=d)return f<l?[f,l]:[l,f];if(Gr(p)<d||Gr(o)<=Gr(i))p=g,h=p;else{let t,n,e=i/o;if(u===l)t=2*g*e,n=1-e;else{n=o/a;const r=i/a;t=e*(2*g*n*(n-r)-(f-u)*(r-1)),n=(n-1)*(r-1)*(e-1)}0<t?n=-n:t=-t,e=p,p=h,2*t<3*g*n-Gr(d*n)&&t<Gr(.5*e*n)?h=t/n:(p=g,h=p)}if(u=f,o=i,d<Gr(h)?f+=h:0<g?f+=d:f-=d,0===(i=s?Qr(Dr(c(),f)):Hr(t,f,n))){if(s)return[f,f];const o=Math.max(e,f-d),u=Math.min(r,f+d);if(Hr(t,o,n)*Hr(t,u,n)!==0)return[o,u];if(s=!0,0===(i=Qr(Dr(c(),f))))return[f,f]}(0<i&&0<a||i<=0&&a<=0)&&(l=u,a=o,p=f-u,h=p)}},ro=Mn,oo=Nn,io=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(Er(t[r],e-r));return n},co=ht,so=Pr,uo=H,fo=Math.max,lo=Math.min,ao=Math.abs,po=1+Number.EPSILON;function ho(t,n=0,e=1,r,o,i){o||(o=()=>t),r=r||new Array(t.length).fill(0);let c,s,u=0;for(;t.length>0&&ao(t[0][1])<=r[0]&&(s=s||o(),0===uo(s[0]));)(t=t.slice()).shift(),(r=r.slice()).shift(),s.shift();if(0===t.length)return i?void 0:[];if(1===t.length)return[];if(n===Number.NEGATIVE_INFINITY||e===Number.POSITIVE_INFINITY){const r=t.map(t=>t[1]);n===Number.NEGATIVE_INFINITY&&(n=ro(r)),e===Number.POSITIVE_INFINITY&&(e=oo(r))}const f=to(t);let l,a;const p=t.length-1;let h,d;l=0,a=!1;do{if(h=a?co(Kr(w(),n)):Jr(f,n,r),0===h){if(l++,l>=3&&!a){a=!0;continue}n-=2*Number.EPSILON*fo(1,ao(n))}}while(0===h);l=0,a=!1;do{if(d=a?co(Kr(w(),e)):Jr(f,e,r),0===d){if(l++,l>=3&&!a){a=!0;continue}e+=2*Number.EPSILON*fo(1,ao(e))}}while(0===d);const v=[{p:t,pE:r}],g=[to(t)];for(let t=1;t<=p;t++){const n=Zr(v[t-1]);v.push(n),g.push(to(n.p))}let m,b,x=[];for(u=p-1;u>=0;u--)m=v[u].pE,b=g[u],x=_();function w(){if(void 0!==c)return c[u];let t=s||o();for(c=[t];t.length>1;)t=io(t),c.push(t);return c[u]}return x;function _(){const t=[],r=no(b,m,n,w);if(!x.length){const t=no(b,m,e,w);if(r*t>=0)return[];const[o,i]=eo(b,m,n,e,r,t,w);return[{tS:o,tE:i,multiplicity:1}]}let o=x[0].tS,i=no(b,m,o,w);if(r*i>0);else if(r*i<0){const[e,c]=eo(b,m,n,o,r,i,w);t.push({tS:e,tE:c,multiplicity:1})}let c,s=n,f=r,l=o,a=i;for(let n=0;n<x.length;n++){const r=x[n+1];c=x[n],o=l,s=x[n].tE,l=r?r.tS:e;const u=f;if(i=a,f=no(b,m,s,w),a=no(b,m,l,w),i*f>0)if(f*a>0)s!==o&&c.multiplicity%2==1&&h();else if(f*a<0){s!==o&&c.multiplicity%2==1&&h();const[n,e]=eo(b,m,s,l,f,a,w);t.push({tS:n,tE:e,multiplicity:1})}else s!==o&&c.multiplicity%2==1&&h();else if(i*f<0){if(t.push({tS:c.tS,tE:c.tE,multiplicity:3}),f*a<0){const[n,e]=eo(b,m,s,l,f,a,w);t.push({tS:n,tE:e,multiplicity:1})}}else if(0===f)0===i?t.push({tS:c.tS,tE:c.tE,multiplicity:c.multiplicity+1}):i*a>0?t.push({tS:c.tS,tE:c.tE,multiplicity:2}):t.push({tS:c.tS,tE:c.tE,multiplicity:3});else{if(f*a<0){const[n,e]=eo(b,m,s,l,f,a,w);t.push({tS:n,tE:e,multiplicity:1})}u*f>0?t.push({tS:c.tS,tE:c.tE,multiplicity:2}):t.push({tS:c.tS,tE:c.tE,multiplicity:3})}}for(let n=0;n<t.length-1;n++){const e=t[n],r=t[n+1];if(e.tE>=r.tS)return vo(t)}return t;function h(){const n=(s-o)*po;let e=1,r=0;for(let t=u+2;t<=p;t++){const i=g[t][0],c=so(i,o);r+=(ao(c[0])+c[1])*e,e*=n*po}const l=f>0?lo(i,f):fo(i,f),a=2*Number.EPSILON*fo(1,ao(s)),h=r*(2*a);(l+(f>0?2*-h*a:2*h*a))*f<0&&t.push({tS:c.tS,tE:c.tE,multiplicity:2})}}}function vo(t){const n=[],e=t[0];let r={tS:e.tS,tE:e.tE,multiplicity:e.multiplicity};for(let e=0;e<t.length-1;e++){const o=t[e],i=t[e+1];o.tE<i.tS?(n.push(r),r={tS:i.tS,tE:i.tE,multiplicity:i.multiplicity}):(r.tE=i.tE,r.multiplicity=o.multiplicity+i.multiplicity)}return n.push(r),n}function go(t){return(t.tS+t.tE)/2}function mo(t,n){if(0===n)return t[0];if(1===n)return t[t.length-1];if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=e+(o-e)*n,a=o+(c-o)*n,p=l+(a-l)*n,h=r+(i-r)*n,d=i+(s-i)*n,v=h+(d-h)*n;return[p+(a+(c+(u-c)*n-a)*n-p)*n,v+(d+(s+(f-s)*n-d)*n-v)*n]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=e+(o-e)*n,f=r+(i-r)*n;return[u+(o+(c-o)*n-u)*n,f+(i+(s-i)*n-f)*n]}if(2===t.length){const[[e,r],[o,i]]=t;return[e+(o-e)*n,r+(i-r)*n]}if(1===t.length)return t[0];throw new Error("The given bezier curve must be of order <= 3.")}const bo=Math.abs;function xo(t,n){if(0===n[0]&&0===n[1])return[0,0];if(0===n[0]&&1===n[1])return[0,0];const e=bo(n[1]);if(4===t.length){const[[n,r],[o,i],[c,s],[u,f]]=t,l=bo(n),a=bo(r),p=bo(o),h=bo(i),d=bo(c),v=bo(s),g=l+(p+l)*e,m=p+(d+p)*e,b=g+(m+g)*e,x=a+(h+a)*e,w=h+(v+h)*e,_=x+(w+x)*e;return[b+(m+(d+(bo(u)+d)*e+m)*e+b)*e,_+(w+(v+(bo(f)+v)*e+w)*e+_)*e]}if(3===t.length){const[[n,r],[o,i],[c,s]]=t,u=bo(n),f=bo(r),l=bo(o),a=bo(i),p=u+(l+u)*e,h=f+(a+f)*e;return[p+(l+(bo(c)+l)*e+p)*e,h+(a+(bo(s)+a)*e+h)*e]}if(2===t.length){const[[n,r],[o,i]]=t,c=bo(n),s=bo(r);return[c+(bo(o)+c)*e,s+(bo(i)+s)*e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}const wo=Math.abs,_o=[[0,0],[0,0]];const Io=Number.EPSILON/2,No=G(1);function Mo(t,n){return n[0]!==n[1]?4===t.length?function(t,n){const{ps:e,_ps:r}=T(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=e[3][0],u=9*Io*r[0][0],f=9*Io*r[1][0],l=9*Io*r[2][0],a=9*Io*r[3][0],p=e[0][1],h=e[1][1],d=e[2][1],v=e[3][1],g=9*Io*r[0][1],m=9*Io*r[1][1],b=9*Io*r[2][1],x=9*Io*r[3][1],w=Math.min(o-u,i-f,c-l,s-a),_=Math.max(o+u,i+f,c+l,s+a);return[[w,Math.min(p-g,h-m,d-b,v-x)],[_,Math.max(p+g,h+m,d+b,v+x)]]}(t,n):3===t.length?function(t,n){const{ps:e,_ps:r}=y(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=5*Io*r[0][0],u=5*Io*r[1][0],f=5*Io*r[2][0],l=e[0][1],a=e[1][1],p=e[2][1],h=5*Io*r[0][1],d=5*Io*r[1][1],v=5*Io*r[2][1],g=Math.min(o-s,i-u,c-f),m=Math.max(o+s,i+u,c+f);return[[g,Math.min(l-h,a-d,p-v)],[m,Math.max(l+h,a+d,p+v)]]}(t,n):function(t,n){const{ps:e,_ps:r}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:_o}:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[o,i],[n*(c-o)+o,n*(s-i)+i]],f=wo(n),l=wo(o),a=wo(c),p=wo(i);return{ps:u,_ps:[[0,0],[f*(a+l)+l,f*(wo(s)+p)+p]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[n*(c-o)+o,n*(s-i)+i],[c,s]],f=wo(n),l=wo(o),a=wo(c),p=wo(i);return{ps:u,_ps:[[f*(a+l)+l,f*(wo(s)+p)+p],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1],f=[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]],l=wo(n),a=wo(e),p=wo(i),h=wo(s),d=wo(c),v=wo(u);return{ps:f,_ps:[[l*(h+p)+p,l*(v+d)+d],[a*(h+p)+p,a*(v+d)+d]]}}(t,n,e)}(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=3*Io*r[0][0],s=3*Io*r[1][0],u=e[0][1],f=e[1][1],l=3*Io*r[0][1],a=3*Io*r[1][1],p=Math.min(o-c,i-s),h=Math.max(o+c,i+s);return[[p,Math.min(u-l,f-a)],[h,Math.max(u+l,f+a)]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n)return[e,e];if(1===n)return[r,r];const o=mo(t,n);let i;if(4===t.length)i=xo(t,[0,n]).map(t=>8*No*t);else if(3===t.length)i=xo(t,[0,n]).map(t=>5*No*t);else if(2===t.length)i=xo(t,[0,n]).map(t=>2*No*t);else if(1===t.length)return[o,o];return[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]]}(t,n[0])}function So(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}const Eo=ht,yo=dt,Oo=q,Co=k,To=Number.EPSILON;function Po(t){return[2*t[0],2*t[1]]}function Ao(t){return[4*t[0],4*t[1]]}const ko=P,Bo=b,Fo=Ir,zo=fr,Yo=Po,Vo=Ao,Lo=x;function $o(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=ko(c,d),m=ko(u,d),b=ko(l,d),x=ko(p,d),w=ko(s,v),_=ko(f,v),I=ko(a,v),N=ko(h,v),M=zo(g,g),S=Fo(6,zo(g,m)),E=Fo(6,zo(g,b)),y=Yo(zo(g,x)),O=Fo(9,zo(m,m)),C=Fo(18,zo(m,b)),T=Fo(6,zo(m,x)),P=Fo(9,zo(b,b)),A=Fo(6,zo(b,x)),k=zo(x,x),B=zo(w,w),F=Fo(6,zo(w,_)),z=Fo(6,zo(w,I)),Y=Yo(zo(w,N)),V=Fo(9,zo(_,_)),L=Fo(18,zo(_,I)),$=Fo(6,zo(_,N)),X=Fo(9,zo(I,I)),j=Fo(6,zo(I,N)),q=zo(N,N),W=Bo(T,P),H=Bo(y,C),D=Bo(E,O),Q=Bo($,X),R=Bo(Y,L),G=Bo(z,V);return[Fo(6,Bo(Bo(Bo(Bo(Lo(k,A),Lo(M,S)),W),Lo(D,H)),Bo(Bo(Bo(Lo(q,j),Lo(B,F)),Q),Lo(G,R)))),Fo(5,Bo(Lo(Bo(Bo(A,Fo(5,S)),Fo(3,H)),Yo(Bo(Bo(W,Yo(D)),Fo(3,M)))),Lo(Bo(Bo(j,Fo(5,F)),Fo(3,R)),Yo(Bo(Bo(Q,Yo(G)),Fo(3,B)))))),Vo(Bo(Lo(Lo(W,Fo(3,Lo(H,Yo(D)))),Fo(5,Lo(Yo(S),Fo(3,M)))),Lo(Lo(Q,Fo(3,Lo(R,Yo(G)))),Fo(5,Lo(Yo(F),Fo(3,B)))))),Fo(3,Bo(Lo(H,Yo(Lo(Yo(D),Fo(5,Lo(S,Yo(M)))))),Lo(R,Yo(Lo(Yo(G),Fo(5,Lo(F,Yo(B)))))))),Yo(Bo(Lo(D,Fo(5,Lo(S,Fo(3,M)))),Lo(G,Fo(5,Lo(F,Fo(3,B)))))),Bo(Lo(S,Fo(6,M)),Lo(F,Fo(6,B)))]}const Xo=P,jo=b,qo=Ir,Wo=fr,Ho=Po,Do=x,Qo=Ao;function Ro(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=Xo(e,u),a=Xo(o,u),p=Xo(c,u),h=Xo(r,f),d=Xo(i,f),v=Xo(s,f),g=Wo(l,l),m=Wo(l,a),b=Wo(l,p),x=Wo(a,a),w=Wo(a,p),_=Wo(p,p),I=Wo(h,h),N=Wo(h,d),M=Wo(h,v),S=Wo(d,d),E=Wo(d,v),y=Wo(v,v),O=jo(M,Ho(S)),C=jo(b,Ho(x));return[jo(Do(jo(jo(y,I),Ho(O)),Qo(jo(E,N))),Do(jo(jo(_,g),Ho(C)),Qo(jo(w,m)))),qo(3,jo(jo(Do(E,O),Do(qo(3,N),I)),jo(Do(w,C),Do(qo(3,m),g)))),jo(Do(O,qo(3,Do(Ho(N),I))),Do(C,qo(3,Do(Ho(m),g)))),jo(Do(N,I),Do(m,g))]}const Go=m,Uo=b,Zo=function(t){return[-2*t[0],-2*t[1]]},Jo=x;function Ko(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=Go(u,u),h=Go(u,f),d=Go(f,f),v=Go(l,l),g=Go(l,a),m=Go(a,a),b=Uo(h,g),x=Uo(v,p);return[Uo(Uo(d,m),Uo(x,Zo(b))),Jo(b,x)]}function ti(t){const n=[];for(let e=0;e<t.length;e++)n.push(2*t[e]);return n}function ni(t){const n=[];for(let e=0;e<t.length;e++)n.push(-2*t[e]);return n}const ei=dt,ri=q,oi=$,ii=ti,ci=ni,si=k,ui=Y,fi=dt,li=q,ai=$,pi=ti,hi=k,di=Y;function vi(t){const n=[];for(let e=0;e<t.length;e++)n.push(4*t[e]);return n}const gi=dt,mi=q,bi=ni,xi=k,wi=Y,_i=Math.abs;function Ii(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=_i(e[0]),s=_i(e[1]),u=_i(r[0]),f=_i(r[1]),l=_i(o[0]),a=_i(o[1]),p=_i(i[0]),h=_i(i[1]),d=_i(n[0]),v=_i(n[1]),g=c+d,m=u+d,b=l+d,x=p+d,w=s+v,_=f+v,I=a+v,N=h+v,M=g*g,S=6*g*m,E=6*b*x,y=w*w,O=6*w*_,C=6*I*N,T=6*m*x+9*b*b,P=2*g*x+18*m*b,A=6*g*b+9*m*m,k=6*_*N+9*I*I,B=2*w*N+18*_*I,F=6*w*I+9*_*_;return[6*(x*x+E+(M+S)+T+(A+P)+(N*N+C+(y+O)+k+(F+B))),5*(E+5*S+3*P+2*(T+2*A+3*M)+(C+5*O+3*B+2*(k+2*F+3*y))),4*(T+3*(P+2*A)+5*(2*S+3*M)+(k+3*(B+2*F)+5*(2*O+3*y))),3*(P+2*(2*A+5*(S+2*M))+(B+2*(2*F+5*(O+2*y)))),2*(A+5*(S+3*M)+(F+5*(O+3*y))),S+6*M+(O+6*y)]}function Ni(t,n){const e=t[0],r=t[1],o=t[2],i=_i(e[0]),c=_i(e[1]),s=_i(r[0]),u=_i(r[1]),f=_i(o[0]),l=_i(o[1]),a=_i(n[0]),p=_i(n[1]),h=i+a,d=s+a,v=f+a,g=c+p,m=u+p,b=l+p,x=h*h,w=h*d,_=d*v,I=g*g,N=g*m,M=m*b,S=g*b+m*m*2,E=h*v+d*d*2;return[b*b+I+2*S+4*(M+N)+(v*v+x+2*E+4*(_+w)),3*(M+S+(3*N+I)+(_+E+(3*w+x))),S+3*(2*N+I)+(E+3*(2*w+x)),N+I+(w+x)]}function Mi(t,n){const e=t[0],r=t[1],o=_i(e[0]),i=_i(e[1]),c=_i(r[0]),s=_i(r[1]),u=_i(n[0]),f=_i(n[1]),l=o+u,a=c+u,p=i+f,h=s+f,d=l*a+p*h,v=p*p+l*l;return[a*a+h*h+2*d+v,d+v]}const Si=U(6);function Ei(t,n){const e=t.length-1;if(3===e)return{polyDd:$o(t,n),polyE:Ii(t,n).map(t=>10*Si*t),getPolyExact:()=>function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=ei(c,d),m=ei(u,d),b=ei(l,d),x=ei(p,d),w=ei(s,v),_=ei(f,v),I=ei(a,v),N=ei(h,v),M=ri(g,g),S=oi(6,ri(g,m)),E=oi(6,ri(g,b)),y=ii(ri(g,x)),O=oi(9,ri(m,m)),C=oi(18,ri(m,b)),T=oi(6,ri(m,x)),P=oi(9,ri(b,b)),A=oi(6,ri(b,x)),k=ri(x,x),B=ri(w,w),F=oi(6,ri(w,_)),z=oi(6,ri(w,I)),Y=ii(ri(w,N)),V=oi(9,ri(_,_)),L=oi(18,ri(_,I)),$=oi(6,ri(_,N)),X=oi(9,ri(I,I)),j=oi(6,ri(I,N)),q=ri(N,N),W=si(T,P),H=si(y,C),D=si(E,O),Q=si($,X),R=si(Y,L),G=si(z,V),U=ui(si(si(k,M),si(W,D)),si(si(H,A),S)),Z=ui(si(si(q,B),si(Q,G)),si(si(R,j),F)),J=oi(6,si(U,Z)),K=si(ci(si(si(W,ii(D)),oi(3,M))),si(si(A,oi(3,H)),oi(5,S))),tt=si(ci(si(si(Q,ii(G)),oi(3,B))),si(si(j,oi(3,R)),oi(5,F))),nt=oi(5,si(K,tt)),et=si(si(W,oi(3,ui(ii(D),H))),oi(5,ui(oi(3,M),ii(S)))),rt=si(si(Q,oi(3,ui(ii(G),R))),oi(5,ui(oi(3,B),ii(F)))),ot=oi(4,si(et,rt)),it=ui(H,ii(ui(ii(D),oi(5,ui(S,ii(M)))))),ct=ui(R,ii(ui(ii(G),oi(5,ui(F,ii(B)))))),st=oi(3,si(it,ct)),ut=ui(D,oi(5,ui(S,oi(3,M)))),ft=ui(G,oi(5,ui(F,oi(3,B)))),lt=ii(si(ut,ft)),at=ui(S,oi(6,M)),pt=ui(F,oi(6,B));return[J,nt,ot,st,lt,si(at,pt)]}(t,n)};if(2===e)return{polyDd:Ro(t,n),polyE:Ni(t,n).map(t=>8*Si*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=fi(e,u),a=fi(o,u),p=fi(c,u),h=fi(r,f),d=fi(i,f),v=fi(s,f),g=li(l,l),m=li(l,a),b=li(l,p),x=li(a,a),w=li(a,p),_=li(p,p),I=li(h,h),N=li(h,d),M=li(h,v),S=li(d,d),E=li(d,v),y=li(v,v),O=hi(M,pi(S)),C=hi(b,pi(x)),T=hi(di(hi(_,pi(C)),vi(hi(w,m))),g),P=hi(di(hi(y,pi(O)),vi(hi(E,N))),I),A=hi(T,P),k=hi(di(w,C),di(ai(3,m),g)),B=hi(di(E,O),di(ai(3,N),I)),F=ai(3,hi(k,B)),z=di(O,ai(3,di(pi(N),I))),Y=di(C,ai(3,di(pi(m),g))),V=hi(z,Y),L=di(N,I),$=di(m,g);return[A,F,V,hi(L,$)]}(t,n)};if(1===e)return{polyDd:Ko(t,n),polyE:Mi(t,n).map(t=>6*Si*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=gi(e,c),f=gi(o,c),l=gi(r,s),a=gi(i,s),p=mi(u,u),h=mi(u,f),d=mi(f,f),v=mi(l,l),g=mi(l,a),m=mi(a,a),b=xi(h,g),x=xi(v,p);return[xi(xi(d,m),xi(bi(b),x)),wi(b,x)]}(t,n)};if(0===e)return{polyDd:[[0,1]],polyE:[0],getPolyExact:()=>[[1]]};throw new Error("The given bezier curve must be of order <= 3")}const{sqrt:yi}=Math;function Oi(t,n,e=0,r=1){const{polyDd:o,polyE:i,getPolyExact:c}=Ei(t,n),s=ho(o,e,r,i,c);s.push({tS:e,tE:e,multiplicity:1}),s.push({tS:r,tE:r,multiplicity:1});const u=s.map(e=>{const r=Mo(t,[e.tS,e.tE]),o=function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];let l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(const[t,n]of[[o,i],[o,s],[c,i],[c,s]]){const e=yo(t,u),r=yo(n,f),o=Co(Oo(e,e),Oo(r,r)),i=Eo(o),c=i*(1-To),s=i*(1+To);c<=l&&(l=c),s>=a&&(a=s)}return[l,a]}(r,n);return{p:So(r),t:go(e),d:(yi(o[0])+yi(o[1]))/2,dSquaredI:o,box:r,ri:e}});let f=Number.POSITIVE_INFINITY;for(let t=0;t<u.length;t++){const n=u[t].dSquaredI[1];n<f&&(f=n)}const l=[];for(let t=0;t<u.length;t++){const n=u[t];n.dSquaredI[0]<=f&&l.push(n)}return l}function Ci(t){const n=t.xs;if(4===n.length){let t=0,e=0;for(let r=0;r<n.length;r++)0===n[r].x.kind&&t++,4===n[r].x.kind&&e++;if(2===t&&2===e)return!0}return n.length<=2&&7!==n[0].x.kind}const Ti=vt;function Pi(t){const n=(t=Ti(t)).length;return 2===n?t:1===n?[0,t[0]]:[t[n-2],t[n-1]]}const Ai=q,ki=k,Bi=$,Fi=ho,zi=Pi,Yi=J,Vi=Number.EPSILON;function Li(t,n){const e=t.tS,r=t.tE-e;if(0===r)return[{tS:[0,e],tE:[0,e],multiplicity:t.multiplicity}];const o=function(t,n,e){const r=t.length-1;if(r<0)return[];const o=[];for(let t=0;t<r+1;t++)o.push(new Array(r+1).fill([0]));o[0][0]=[1];for(let t=1;t<=r;t++){o[0][t]=Bi(e,o[0][t-1]);for(let r=1;r<=t;r++)o[r][t]=ki(Bi(e,o[r][t-1]),Bi(n,o[r-1][t-1]))}const i=new Array(r+1).fill([0]);for(let n=0;n<=r;n++){i[r-n]=[0];for(let e=n;e<=r;e++){const c=Ai(o[n][e],t[r-e]);i[r-n]=ki(i[r-n],c)}}return i}(n,r,e),i=o.map(zi),c=i.map(t=>Vi*Vi*t[1]),s=Fi(i,0,1,c,()=>o),u=[];for(const t of s)u.push({tS:Yi(e,t.tS*r),tE:Yi(e,t.tE*r),multiplicity:t.multiplicity});return u}const{abs:$i}=Math;function Xi(t,n){const e=t.inOuts;e.sort(function(t){return(n,e)=>{let r=n.side-e.side;if(0!==r)return r;const o=n.sideX,i=e.sideX;r=o.ri.tS-i.ri.tS;const c=8*Number.EPSILON;return $i(r)>=c?r:(o.compensated||(o.compensated=1,o.riExp=Li(o.ri,o.getPExact())[0]),i.compensated||(i.compensated=1,i.riExp=Li(i.ri,i.getPExact())[0]),r=D(o.riExp.tS,i.riExp.tS),0!==r?r:(r=n.dir-e.dir,0!==r?t*r:1===n.dir?n.idx-e.idx:e.idx-n.idx))}}(n));let r=e[e.length-1];for(let t=0;t<e.length;t++){const n=e[t];n.prevAround=r,r.nextAround=n,r=n}}function ji(t,n,e,r){const o=function(t,n){return(e,r,o)=>{t.has(e)||(e.orientation=r,e.parent=o,e.windingNum=o.windingNum+e.orientation,n.push(e))}}(r,e);Xi(t.container,n.orientation);let i,c,s=1,u=t,f=n.orientation;for(;u=1===n.orientation?u.nextAround:u.prevAround,u!==t;){const t=s;s-=u.dir,1===s&&(f*=-1),-1!==u.dir&&(i?1===t&&0===s?o(u,n.orientation,n.parent):0===t&&-1===s&&o(u,-n.orientation,n.parent):0===s?i=u:1===s&&o(u,n.orientation,n))}return Ci(t.container)||(c=[t.p,i.p]),{inOutToUse:i,additionalBezier:c}}function qi(t,n){const e=t._x_,r=n._x_,o=e.curve,i=e.x.ri.tS,c=r.curve,s=r.x.ri.tS;let u=o,f=i;Ci(t.container)||(f=go(Oi(o.ps,t.p)[0].ri));const l=[];for(;;){if(u===c&&(f<s||f===s&&0!==l.length)){const t=u.ps,n=[f,s];return l.push({ps:t,ts:n}),l}{const t=u.ps,n=[f,1];l.push({ps:t,ts:n})}f=0,u=u.next}}function Wi(t,n){const e=n._x_,r=t._x_,o=r.curve,i=r.x.ri.tS,c=e.curve,s=e.x.ri.tS;let u=o,f=i;Ci(t.container)||(f=go(Oi(u.ps,t.p)[0].ri));const l=[];for(;;){const t=u.ps;if(u===c&&(f>s||f===s&&0!==l.length)){const n=[f,s];return l.push({ps:t,ts:n}),l}{const n=[f,0];l.push({ps:t,ts:n})}f=1,u=u.prev}}function Hi(t,n,e,r){const o=function(t,n,e){return(r,o,i,c)=>{n.has(r)||1!==r.dir||(r.loopsIdxs=new Set(c),r.orientation=o*t.orientation,r.parent=i.parent,r.windingNum=i.windingNum+r.orientation,e.unshift(r))}}(n,r,e);Xi(t.container,1);let i=t.nextAround,c=t;const s=[],u=new Set(n.loopsIdxs);for(;c=c.nextAround,c!==t;)o(c,n.dir,n,u),s.push(c.idx),-1===c.dir?u?.add(c._x_?.curve.loop.idx):u.delete(c._x_?.curve.loop.idx);let f;return Ci(t.container)||(f=[t.p,i.p]),{inOutToUse:i,additionalBezier:f}}function Di(t){const{ps:n,ts:e}=t;return Dn(n,e[0],e[1])}function Qi(t,n,e){const r=[],o=[];let i,c=n;const s=e?Hi:ji,u=[];do{t.add(c),u.push(c);const e=c.nextOrPrev;t.add(e);const f=1===c.dir?qi(c,e):Wi(c,e);o.push(...f);const l=s(e,n,r,t);if(({inOutToUse:c,additionalBezier:i}=l),void 0!==i){const t=Di(o[o.length-1]),n={ps:t,ts:[0,go(Oi(t,i[0])[0].ri)]};o.pop(),o.push(n),o.push({ps:i,ts:[0,1]})}}while(c!==n);return"undefined"!=typeof _debug_&&_debug_.verbose&&function(t){const n=[],e=[];for(let r of t)e.push(1===r.dir?"color: blue;":"color: red"),n.push(`%c${r.idx}`);console.log("Taken ios: "+n.join(" "),...e)}(u),{bezierPieces:o,additionalOutsToCheck:r}}function Ri(t,n,e,r){const o=[t];for(;o.length;){const t=o.pop();if(n.add(t._x_.curve.loop),e.has(t))continue;t.children=new Set;const{bezierPieces:i,additionalOutsToCheck:c}=Qi(e,t,r);t.bezierPieces=i,t.parent.children=t.parent.children||new Set,t.parent.children.add(t);for(let t=0;t<c.length;t++)o.push(c[t])}}function Gi(t){if(4===t.length)return Ui(t);if(3===t.length)return Zi(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n,n],[o-e,e]]}(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[n],[e]]}(t);throw new Error("The given bezier curve must be of order <= 3.")}function Ui(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[s-n+3*(r-i),3*(i+n-2*r),3*(r-n),n],[u-e+3*(o-c),3*(c+e-2*o),3*(o-e),e]]}function Zi(t){const[[n,e],[r,o],[i,c]]=t;return[[i+n-2*r,2*(r-n),n],[c+e-2*o,2*(o-e),e]]}function Ji(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY,r){return ho(t.map(t=>[0,t]),n,e,void 0,void 0,r)}function Ki(t){const n=t[0],e=t[t.length-1];let r,o;if(n[1]<e[1]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minY:r,maxY:o};const[,i]=jn(t),c=Ji(i,0,1);for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=Mo(t,i);s[0][1]<r.box[0][1]&&(r={ts:i,box:s}),s[1][1]>o.box[0][1]&&(o={ts:i,box:s})}return{minY:r,maxY:o}}function tc(t){const n=function(t){const n=t[0],e=t[t.length-1];let r,o;if(n[0]<e[0]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minX:r,maxX:o};const[i]=jn(t),c=Ji(i,0,1);for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=Mo(t,i);s[0][0]<r.box[0][0]&&(r={ts:i,box:s}),s[1][0]>o.box[0][0]&&(o={ts:i,box:s})}return{minX:r,maxX:o}}(t),e=Ki(t);return[[n.minX.box[0][0],e.minY.box[0][1]],[n.maxX.box[1][0],e.maxY.box[1][1]]]}function nc(t){const n=new WeakMap;return function(e){let r=n.get(e);return void 0!==r||(r=t(e),n.set(e,r)),r}}const ec=nc(tc);function rc(t){const n=jn(t),e=kn(n[0],0,1),r=kn(n[1],0,1);e.push(0,1),r.push(0,1);let o,i,c,s,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(let n=0;n<e.length;n++){const r=e[n],[c]=mo(t,r);c<u&&(u=c,o=r),c>f&&(f=c,i=r)}for(let n=0;n<r.length;n++){const e=r[n],[,o]=mo(t,e);o<l&&(l=o,c=e),o>a&&(a=o,s=e)}return{ts:[[o,c],[i,s]],box:[[u,l],[f,a]]}}const oc=nc(rc),{min:ic,max:cc}=Math;function sc(t){const n=t.map(oc);return{minX:ic(...n.map(t=>t.box[0][0])),maxX:cc(...n.map(t=>t.box[1][0])),minY:ic(...n.map(t=>t.box[0][1])),maxY:cc(...n.map(t=>t.box[1][1]))}}const uc=new Function("try {return this===window;}catch(e){ return false;}")()?function(t){const n=window.atob(t),e=n.length,r=new Uint8Array(e);for(let t=0;t<e;t++)r[t]=n.charCodeAt(t);return r.buffer}:function(t){return function(t){const n=new ArrayBuffer(t.length),e=new Uint8Array(n);for(let n=0;n<t.length;++n)e[n]=t[n];return n}(Buffer.from(t,"base64"))},fc=uc("AGFzbQEAAAABBgFgAX8BfAMDAgAABQMBAAAHHwMGbWVtb3J5AgAHc3F1YXJlcwAACHNxdWFyZXM0AAEKjgECPwECfiAArULHuuXf9tjQm2p+IgEgASABfnxCIIoiAiACfiABQse65d/22NCbanx8QiCKIgIgAn4gAXxCIIi6C0wBAn4gAK1Cx7rl3/bY0JtqfiIBQse65d/22NCbanwiAiABIAIgASABIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiLoL"),lc=new WebAssembly.Module(fc),ac=new WebAssembly.Instance(lc),pc=ac.exports.squares;ac.exports.squares4;const hc=1e-6;function dc(t,n){let e;const r=[t];for(;r.length;)o(r.pop());return e;function o(o){if(o===t||function(t,n){let e=0;do{e++;const o=pc(e)/4294967296,i=r(t,n,mo(t[pc(e+1e3)%t.length],o));if(void 0!==i)return i}while(e<100);return;function r(t,n,e){if(function(t,n){const e=sc(t),r=sc(n);return e.minX<r.minX||e.maxX>r.maxX||e.minY<r.minY||e.maxY>r.maxY}(t,n))return!1;const r=function(t,n){const[e,r]=n;let o=0;for(let i=0;i<t.length;i++){const c=t[i],[[s,u],[f,l]]=ec(c);let a=u>r||l<r||!1;if(a=a||s>e||!1,a)continue;const p=[];let h,d,v;const g=!0;h=t=>Gi(t)[1],d=[0,-r],v=0;const m=c.map(ce(d)),b=kn(h(m),0-hc,1+hc);for(let t=0;t<b.length;t++){const e=b[t];if(Math.abs(e)<hc||Math.abs(e-1)<hc)return;const r=mo(m,e);(g&&n[v]>=r[v]||!g&&n[v]<=r[v])&&p.push(e)}if(1===p.length||3===p.length)for(const t of p){const n=se(fe(c,t));if(Math.abs(n[1])<hc)return}o+=p.length}return o}(n,e);return void 0!==r?r%2!=0:void 0}}(n.beziers,o.bezierPieces.map(Di))){e=o;for(const t of o.children)r.push(t)}}}function vc(t,n){return gc(t)-gc(n)}function gc(t){let n=Number.POSITIVE_INFINITY;for(const e of t){const t=oc(e).box[0][1];t<n&&(n=t)}return n}const{abs:mc,sign:bc}=Math;function xc(t){let n=t.parent;for(;;){if(void 0===n)return!1;if(n.used)return!0;n=n.parent}}function wc(t,n,e){let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;o>c&&([o,c]=[c,o]),u>l&&([u,l]=[l,u]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]);const a=t||r===i&&s===f,p=t||o===c&&u===l;return(a?r<=f:r<f)&&(a?i>=s:i>s)&&(p?u<=c:u<c)&&(p?l>=o:l>o)}function _c(t,n){return wc(!0,t.box,n.box)}function Ic(t,n){for(let e=0;e<n.length;e++){const r=n[e];Nc(t,[r.a,r.b])}}function Nc(t,n){const[e,r]=n;let o=t.get(e);o||(o=[],t.set(e,o));let i=t.get(r);i||(i=[],t.set(r,i)),o.push(r),i.push(e)}function Mc(t,n,e,r){e.add(n),r.push(n);const o=t.get(n);for(let n=0;n<o.length;n++){const i=o[n];e.has(i)||Mc(t,i,e,r)}}function Sc(t){const n=[],e=new Set;for(const r of t){const o=r[0];e.has(o)||(n.push([]),Mc(t,o,e,n[n.length-1]))}return n}function Ec(t,n){const e=new Set;for(const t of n)for(const n of t)e.add(n);const r=[];for(let n=0;n<t.length;n++){const o=t[n];e.has(o)||r.push(o)}return r}function yc(t){const n=[];for(const e of t){let t=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;const c=[];for(const n of e){const[[e,s],[u,f]]=n.box;e<t&&(t=e),s<r&&(r=s),u>o&&(o=u),f>i&&(i=f),c.push(...n.xs)}const s={box:[[t,r],[o,i]],xs:c,inOuts:void 0};n.push(s)}return n}function Oc(t){return{tS:[0,t.tS],tE:[0,t.tE],multiplicity:t.multiplicity}}const Cc=P,Tc=Ir,Pc=b,Ac=lr,kc=Math.abs;function Bc(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Cc(s,n),l=Cc(r,i),a=3*(r-i),p=Tc(3,l),h=kc(a),d=Pc(f,p),v=h+kc(s-n+a),g=Cc(i,2*r),m=Ac(g,n),b=kc(i-2*r+n),x=Tc(3,m),w=6*b,_=Cc(r,n),I=Tc(3,_),N=kc(3*(r-n)),M=Cc(u,e),S=Cc(o,c),E=3*(o-c),y=Tc(3,S),O=kc(E),C=Pc(M,y),T=O+kc(u-e+E),P=Cc(c,2*o),A=Ac(P,e),k=kc(c-2*o+e),B=Tc(3,A),F=6*k,z=Cc(o,e);return{coeffs:[[d,x,I,[0,n]],[C,B,Tc(3,z),[0,e]]],errorBound:[[v,w,N,0],[T,F,kc(3*(o-e)),0]]}}function Fc(t){const[[n,e],[r,o],[i,c]]=t,s=i-2*r,u=Cc(i,2*r),f=Ac(u,n),l=kc(s+n),a=Cc(2*r,2*n),p=c-2*o,h=Cc(c,2*o),d=Ac(h,e),v=kc(p+e);return{coeffs:[[f,a,[0,n]],[d,Cc(2*o,2*e),[0,e]]],errorBound:[[l,0,0],[v,0,0]]}}function zc(t){const[[n,e],[r,o]]=t;return[[Cc(r,n),[0,n]],[Cc(o,e),[0,e]]]}const Yc=x,Vc=Ir,Lc=B,$c=Math.abs;function Xc(t){const[[n,[,e]],[r,[,o]]]=zc(t),i=Lc(r),c=n,s=Vc(o,n),u=$c(s[1]),f=Vc(e,r),l=$c(f[1]),a=Yc(f,s);return{coeffs:{vₓ:i,vᵧ:c,v:a},errorBound:{v_:u+l+$c(a[1])}}}const jc=b,qc=Ir,Wc=fr,Hc=Math.abs,Dc=U(3);function Qc(t){return[-t[0],-t[1]]}const Rc=Qc,Gc=Po,Uc=Ir,Zc=fr,Jc=x,Kc=Math.abs;function ts(t){const{coeffs:[[n,e,[,r]],[o,i,[,c]]],errorBound:[[s],[u]]}=Fc(t),f=n[1],l=e[1],a=o[1],p=i[1],h=Kc(r),d=Kc(l),v=Kc(f),g=Kc(c),m=Kc(p),b=Kc(a),x=Zc(n,i),w=s*m+2*Kc(f*p),_=Zc(e,o),I=d*u+2*Kc(l*a),N=Uc(c,n),M=g*s+Kc(c*f),S=Uc(r,o),E=h*u+Kc(r*a),y=Uc(c,e),O=Kc(c*l),C=Uc(r,i),T=Kc(r*p),P=Zc(n,n),A=2*(s*v+Kc(f*f)),k=Zc(n,o),B=s*b+v*u+2*Kc(f*a),F=Zc(o,o),z=2*(u*b+Kc(a*a)),Y=f*p-l*a,V=f*c-r*a,L=l*c-r*p,$=Jc(x,_),X=Kc(Y),j=w+I+Kc(Y),q=Jc(N,S),W=Kc(V),H=M+E+Kc(V),D=Jc(y,C),Q=Kc(L),R=O+T+Kc(L),G=Rc(F),U=z,Z=Gc(k),J=B,K=Rc(P),tt=A,nt=p*Y,et=Zc(i,$),rt=m*j+2*Kc(nt),ot=2*V*a,it=Gc(Zc(o,q)),ct=2*(u*W+b*H+2*Kc(ot)),st=nt-ot,ut=Jc(et,it),ft=rt+ct+Kc(st),lt=2*f*V,at=Gc(Zc(n,q)),pt=2*(s*W+v*H+2*Kc(lt)),ht=l*Y,dt=Zc(e,$),vt=d*j+2*Kc(ht),gt=lt-ht,mt=Jc(at,dt),bt=pt+vt+Kc(gt),xt=Y*L,wt=Zc($,D),_t=j*Q+X*R+2*Kc(xt),It=V*V,Nt=Zc(q,q),Mt=2*(H*W+Kc(It)),St=xt-It;return{coeffs:{vₓₓ:G,vₓᵧ:Z,vᵧᵧ:K,vₓ:ut,vᵧ:mt,v:Jc(wt,Nt)},errorBound:{vₓₓ_:U,vₓᵧ_:J,vᵧᵧ_:tt,vₓ_:ft,vᵧ_:bt,v_:_t+Mt+Kc(St)}}}const ns=m,es=Po,rs=Ir,os=fr,is=b,cs=Math.abs,ss=U(3),us=Math.abs,fs=Qc,ls=Po,as=Ir,ps=fr,hs=x,ds=b;function vs(t){const{coeffs:[[n,e,r,[,o]],[i,c,s,[,u]]],errorBound:[[f,l,a],[p,h,d]]}=Bc(t),v=r[1],g=e[1],m=n[1],b=s[1],x=c[1],w=i[1],_=us(o),I=us(v),N=us(g),M=us(m),S=us(u),E=us(b),y=us(x),O=us(w),C=ps(n,s),T=m*b,P=f*E+M*d+2*us(T),A=ps(r,i),k=v*w,B=a*O+I*p+2*us(k),F=ps(n,c),z=m*x,Y=f*y+M*h+2*us(z),V=ps(e,c),L=g*x,$=l*y+N*h+2*us(L),X=ps(e,i),j=g*w,q=l*O+N*p+2*us(j),W=ps(n,n),H=m*m,D=us(H),Q=f*M+M*f+2*us(H),R=ps(c,c),G=x*x,U=h*y+y*h+2*us(G),Z=ps(i,i),J=w*w,K=us(J),tt=p*O+O*p+2*us(J),nt=ps(r,n),et=v*m,rt=a*M+I*f+2*us(et),ot=ps(e,e),it=g*g,ct=l*N+N*l+2*us(it),st=ps(s,i),ut=b*w,ft=d*O+E*p+2*us(ut),lt=ps(c,i),at=us(x*w),pt=h*O+y*p+2*at,ht=ps(e,n),dt=us(g*m),vt=l*M+N*f+2*dt,gt=ps(n,i),mt=us(m*w),bt=f*O+M*p+2*mt,xt=as(u,n),wt=m*u,_t=f*S+us(wt),It=as(o,i),Nt=o*w,Mt=_*p+us(Nt),St=as(u,e),Et=g*u,yt=l*S+us(Et),Ot=as(o,c),Ct=o*x,Tt=_*h+us(Ct),Pt=ps(e,s),At=g*b,kt=l*E+N*d+2*us(At),Bt=ps(r,c),Ft=v*x,zt=a*y+I*h+2*us(Ft),Yt=as(u,r),Vt=v*u,Lt=a*S+us(Vt),$t=as(o,s),Xt=o*b,jt=_*d+us(Xt),qt=hs(xt,It),Wt=_t+Mt+us(wt-Nt),Ht=hs(C,A),Dt=P+B+us(T-k),Qt=hs(F,X),Rt=Y+q+us(z-j),Gt=hs(St,Ot),Ut=yt+Tt+us(Et-Ct),Zt=hs(Pt,Bt),Jt=kt+zt+us(At-Ft),Kt=hs(Yt,$t),tn=Lt+jt+us(Vt-Xt),nn=us(ut-G),en=hs(st,R),rn=ft+U+nn,on=us(et-it),cn=hs(nt,ot),sn=rt+ct+us(et-it),un=us(j+z),fn=ds(X,F),ln=q+Y+us(j+z),an=k+T,pn=us(an),hn=ds(A,C),dn=B+P+pn,vn=ls(Ht),gn=2*Dt,mn=wt-Nt,bn=T-k,xn=z-j,wn=Et-Ct,_n=At-Ft,In=Vt-Xt,Nn=us(mn),Mn=us(bn),Sn=us(xn),En=us(wn),yn=us(_n),On=us(In),Cn=2*Mn,Tn=ps(qt,qt),Pn=ps(qt,Ht),An=ps(qt,Qt),kn=ps(qt,Zt),Bn=ps(Ht,Ht),Fn=ps(vn,Gt),zn=ps(Qt,Gt),Yn=ps(Qt,Zt),Vn=ps(Qt,Kt),Ln=Wt*Nn+Nn*Wt+2*us(Tn[1]),$n=Wt*Mn+Nn*Dt+2*us(Pn[1]),Xn=Wt*Sn+Nn*Rt+2*us(An[1]),jn=Wt*yn+Nn*Jt+2*us(kn[1]),qn=Dt*Mn+Mn*Dt+2*us(Bn[1]),Wn=gn*En+Cn*Ut+2*us(Fn[1]),Hn=Rt*En+Sn*Ut+2*us(zn[1]),Dn=Rt*yn+Sn*Jt+2*us(Yn[1]),Qn=Rt*On+Sn*tn+2*us(zn[1]),Rn=ps(fs(i),Z),Gn=p*K+O*tt+2*us(Rn[1]),Un=3*M,Zn=as(3,n),Jn=3*f+Un,Kn=ps(Zn,Z),te=Jn*K+Un*tt+2*us(Kn[1]),ne=3*O,ee=as(-3,i),re=3*p+ne,oe=ps(ee,W),ie=re*D+ne*Q+2*us(oe[1]),ce=ps(n,W),se=f*D+M*Q+2*us(ce[1]),ue=-3*mn,fe=3*Nn,le=as(-3,qt),ae=3*Wt+fe,pe=hs(le,Zt),he=us(ue-_n),de=ae+Jt+he,ve=ps(pe,Z),ge=de*K+he*tt+2*us(ve[1]),me=ps(Qt,en),be=Rt*nn+Sn*rn+2*us(me[1]),xe=ds(ve,me),we=ge+be+us(xe[1]),_e=ps(vn,lt),Ie=gn*at+Cn*pt+2*us(_e[1]),Ne=ds(xe,_e),Me=we+Ie+us(Ne[1]),Se=ps(pe,W),Ee=de*D+he*Q+2*us(Se[1]),ye=ps(Qt,cn),Oe=Rt*on+Sn*sn+2*us(ye[1]),Ce=ds(Se,ye),Te=Ee+Oe+us(Ce[1]),Pe=ps(vn,ht),Ae=gn*dt+Cn*vt+2*us(Pe[1]),ke=ds(Ce,Pe),Be=Te+Ae+us(ke[1]),Fe=us(L-an/2),ze=hs(V,function(t){return[t[0]/2,t[1]/2]}(hn)),Ye=$+dn/2+us(ze[1]),Ve=ps(pe,gt),Le=de*mt+he*bt+2*us(Ve[1]),$e=ps(Ht,fn),Xe=Dt*un+Mn*ln+2*us($e[1]),je=ds(Ve,$e),qe=Le+Xe+us(je[1]),We=ps(Qt,ze),He=Rt*Fe+Sn*Ye+2*us(We[1]),De=ls(hs(We,je)),Qe=2*(He+qe)+us(De[1]),Re=as(-3,Tn),Ge=3*Ln+us(Re[1]),Ue=hs(Re,ls(kn)),Ze=Ge+2*jn+us(Ue[1]),Je=ds(Fn,Vn),Ke=Wn+Qn+us(Je[1]),tr=ds(Ue,Je),nr=us(tr[1]),er=Ze+Ke+nr,rr=ls(hs(Pn,zn)),or=us(rr[1]),ir=2*($n+Hn)+or,cr=hs(An,Bn),sr=Xn+qn+us(cr[1]),ur=ds(cr,Yn),fr=us(ur[1]),lr=sr+Dn+fr,ar=ps(i,tr),pr=p*nr+O*er+2*us(ar[1]),hr=ps(c,rr),dr=h*or+y*ir+2*us(hr[1]),vr=ps(s,ur),gr=d*fr+E*lr+2*us(vr[1]),mr=ds(hr,vr),br=dr+gr+us(mr[1]),xr=ds(ar,mr),wr=pr+br+us(xr[1]),_r=ps(n,tr),Ir=f*nr+M*er+2*us(_r[1]),Nr=ps(e,rr),Mr=l*or+N*ir+2*us(Nr[1]),Sr=ps(r,ur),Er=a*fr+I*lr+2*us(Sr[1]),yr=ds(Nr,Sr),Or=Mr+Er+us(yr[1]),Cr=fs(ds(_r,yr)),Tr=Ir+Or+us(Cr[1]),Pr=hs(Fn,Tn),Ar=hs(Pr,kn),kr=us(Ar[1]),Br=ps(ur,Kt),Fr=ps(zn,Gt),zr=hs(Br,Fr),Yr=lr*us(Kt[1])+2*us(Br[1])+Hn*us(Gt[1])+2*us(Fr[1])+us(zr[1]),Vr=ps(qt,Ar),Lr=Wt*kr+Nn*Wn+Ln+us(Pr[1])+jn+kr+2*us(Vr[1]),$r=ds(Vr,zr);return{coeffs:{vₓₓₓ:Rn,vₓₓᵧ:Kn,vₓᵧᵧ:oe,vᵧᵧᵧ:ce,vₓₓ:Ne,vₓᵧ:De,vᵧᵧ:ke,vₓ:xr,vᵧ:Cr,v:$r},errorBound:{vₓₓₓ_:Gn,vₓₓᵧ_:te,vₓᵧᵧ_:ie,vᵧᵧᵧ_:se,vₓₓ_:Me,vₓᵧ_:Qe,vᵧᵧ_:Be,vₓ_:wr,vᵧ_:Tr,v_:Lr+Yr+us($r[1])}}}const gs=m,ms=Po,bs=Ir,xs=fr,ws=b,_s=Math.abs,Is=U(3),Ns=b,Ms=Ir,Ss=fr,Es=Math.abs,ys=U(3),Os=m,Cs=Po,Ts=Ir,Ps=fr,As=b,ks=Math.abs,Bs=U(3),Fs=m,zs=Po,Ys=Ir,Vs=fr,Ls=b,$s=Math.abs,Xs=U(3),js=b,qs=Ir,Ws=fr,Hs=Math.abs,Ds=U(3),Qs=m,Rs=Po,Gs=Ir,Us=fr,Zs=b,Js=Math.abs,Ks=U(3),tu=m,nu=Po,eu=Ir,ru=fr,ou=b,iu=Math.abs,cu=U(3),su=$,uu=Y,fu=B,lu=H;function au(t){const[[n,[e]],[r,[o]]]=t;if(0!==lu(n)||0!==lu(r))return{vₓ:fu(r),vᵧ:n,v:uu(su(e,r),su(o,n))}}const pu=$,hu=q,du=k;function vu(t,n){const e=Ft(t),[[r,[o]],[i,[c]]]=Ft(n),{vₓ:s,vᵧ:u,v:f}=au(e),l=hu(r,s),a=hu(i,u),p=du(l,a),h=pu(o,s),d=pu(c,u),v=du(h,d);return[p,du(v,f)]}const gu=$,mu=ti,bu=Y,xu=q,wu=B;function _u(t){const[[n,e,[r]],[o,i,[c]]]=t;if(0===H(n)&&0===H(o))return au([[e,[r]],[i,[c]]]);const s=xu(n,i),u=xu(e,o),f=gu(c,n),l=gu(r,o),a=gu(c,e),p=gu(r,i),h=xu(n,n),d=xu(n,o),v=xu(o,o),g=bu(s,u),m=bu(f,l),b=bu(a,p),x=wu(v),w=mu(d),_=wu(h),I=xu(i,g),N=mu(xu(o,m)),M=bu(I,N),S=mu(xu(n,m)),E=xu(e,g),y=bu(S,E),O=xu(g,b),C=xu(m,m);return{vₓₓ:x,vₓᵧ:w,vᵧᵧ:_,vₓ:M,vᵧ:y,v:bu(O,C)}}const Iu=it,Nu=$,Mu=q,Su=k,Eu=ti,yu=H;function Ou(t,n){const e=Bt(t);if(0===yu(e[0][0])&&0===yu(e[1][0]))return vu([t[0],t[2]],n);const[[r,[o]],[i,[c]]]=Ft(n),{vₓₓ:s,vₓᵧ:u,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=_u(e),h=Iu(o,o),d=Nu(o,r),v=Iu(o,c),g=Nu(o,i),m=Mu(r,r),b=Nu(c,r),x=Mu(r,i),w=Iu(c,c),_=Nu(c,i),I=Mu(i,i),N=Mu(m,s),M=Mu(I,f),S=Mu(x,u),E=Su(N,M),y=Su(E,S),O=Mu(d,s),C=Mu(_,f),T=Su(g,b),P=Mu(T,u),A=Eu(Su(O,C)),k=Su(A,P),B=Mu(r,l),F=Mu(i,a),z=Su(B,F),Y=Su(k,z),V=Mu(h,s),L=Mu(v,u),$=Mu(w,f),X=Su(V,L),j=Su(X,$),q=Nu(o,l),W=Nu(c,a),H=Su(q,W),D=Su(j,H);return[y,Y,Su(D,p)]}const Cu=q,Tu=dt,Pu=Y,Au=H,ku=ht,Bu=L,Fu=J;function zu(t,n=!1){const[e,r,o,i]=t;if(!n){const[t,n]=e,[c,s]=r,[u,f]=o,[l,a]=i;return[e,[ku(Pu(Bu(Fu(c/4,u/4),3),Fu(t/4,l/4))),ku(Pu(Bu(Fu(s/4,f/4),3),Fu(n/4,a/4)))],i]}const c=function(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=Tu(o,e),a=Tu(i,r),p=Tu(u,c),h=Tu(f,s),d=Pu(Cu(p,a),Cu(h,l));if(0===Au(d))return;const v=Tu(c,e),g=Tu(s,r),m=Pu(Cu(g,l),Cu(v,a)),b=ku(m)/ku(d);return[c+b*ku(p),s+b*ku(h)]}([e,r],[i,o]);if(void 0!==c)return[e,c,i]}const Yu=$,Vu=q,Lu=k,$u=Y,Xu=B,ju=ti,qu=H;function Wu(t){const[[n,e,r,[o]],[i,c,s,[u]]]=t;if(0===qu(n)&&0===qu(i))return _u([[e,r,[o]],[c,s,[u]]]);const f=Vu(n,s),l=Vu(r,i),a=Vu(n,c),p=Vu(e,c),h=Vu(e,i),d=Vu(n,n),v=Vu(c,c),g=Vu(i,i),m=Vu(r,n),b=Vu(e,e),x=Vu(s,i),w=Vu(c,i),_=Vu(e,n),I=Vu(n,i),N=Yu(u,n),M=Yu(o,i),S=Yu(u,e),E=Yu(o,c),y=Vu(e,s),O=Vu(r,c),C=Yu(u,r),T=Yu(o,s),P=$u(N,M),A=$u(f,l),k=$u(a,h),B=$u(S,E),F=$u(y,O),z=$u(C,T),Y=$u(x,v),V=$u(m,b),L=Lu(h,a),$=Lu(l,f),X=ju(A),j=Vu(P,P),q=Vu(P,A),W=Vu(P,k),H=Vu(P,F),D=Vu(A,A),Q=Vu(X,B),R=Vu(k,B),G=Vu(k,F),U=Vu(k,z),Z=Vu(Xu(i),g),J=Vu(Yu(3,n),g),K=Vu(Yu(-3,i),d),tt=Vu(n,d),nt=$u(Yu(-3,P),F),et=Vu(nt,g),rt=Vu(k,Y),ot=Lu(et,rt),it=Vu(X,w),ct=Lu(ot,it),st=Vu(nt,d),ut=Vu(k,V),ft=Lu(st,ut),lt=Vu(X,_),at=Lu(ft,lt),pt=$u(p,function(t){const n=[];for(let e=0;e<t.length;e++)n.push(.5*t[e]);return n}($)),ht=Vu(nt,I),dt=Vu(A,L),vt=Lu(ht,dt),gt=Vu(k,pt),mt=ju($u(gt,vt)),bt=Yu(-3,j),xt=$u(bt,ju(H)),wt=Lu(Q,U),_t=Lu(xt,wt),It=ju($u(q,R)),Nt=$u(W,D),Mt=Lu(Nt,G),St=Vu(i,_t),Et=Vu(c,It),yt=Vu(s,Mt),Ot=Lu(Et,yt),Ct=Lu(St,Ot),Tt=Vu(n,_t),Pt=Vu(e,It),At=Vu(r,Mt),kt=Lu(Pt,At),Bt=Xu(Lu(Tt,kt)),Ft=$u(Q,j),zt=$u(Ft,H),Yt=Vu(Mt,z),Vt=Vu(R,B),Lt=$u(Yt,Vt),$t=Vu(P,zt);return{vₓₓₓ:Z,vₓₓᵧ:J,vₓᵧᵧ:K,vᵧᵧᵧ:tt,vₓₓ:ct,vₓᵧ:mt,vᵧᵧ:at,vₓ:Ct,vᵧ:Bt,v:Lu($t,Lt)}}const Hu=it,Du=$,Qu=q,Ru=k,Gu=ti,Uu=H;function Zu(t,n){const e=kt(t);if(0===Uu(e[0][0])&&0===Uu(e[1][0]))return Ou(zu(t),n);const[[r,[o]],[i,[c]]]=Ft(n),{vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=Wu(e),m=Hu(o,o),b=Du(o,r),x=Hu(o,c),w=Du(o,i),_=Qu(r,r),I=Du(c,r),N=Qu(r,i),M=Hu(c,c),S=Du(c,i),E=Qu(i,i),y=Du(o,s),O=Qu(Hu(3,o),s),C=Du(o,u),T=Du(c,u),P=Du(o,f),A=Du(c,f),k=Du(c,l),B=Qu(Hu(3,c),l),F=Qu(r,s),z=Qu(r,f),Y=Qu(i,u),V=Qu(i,l),L=Ru(F,Y),$=Ru(z,V),X=Qu(_,L),j=Qu(E,$),q=Ru(X,j),W=Ru(O,T),H=Gu(Ru(C,A)),D=Ru(P,B),Q=Ru(W,a),R=Ru(H,p),G=Ru(D,h),U=Qu(_,Q),Z=Qu(N,R),J=Qu(E,G),K=Ru(U,Z),tt=Ru(K,J),nt=Gu(Ru(T,a)),et=Gu(Ru(P,h)),rt=Ru(O,nt),ot=Ru(B,et),it=Ru(C,p),ct=Ru(A,p),st=Qu(b,rt),ut=Qu(S,ot),ft=Qu(w,it),lt=Qu(I,ct),at=Qu(r,d),pt=Qu(i,v),ht=Ru(st,ut),dt=Ru(ft,lt),vt=Ru(ht,dt),gt=Ru(at,pt),mt=Ru(vt,gt),bt=Ru(y,T),xt=Ru(k,P),wt=Ru(bt,a),_t=Ru(xt,h),It=Qu(m,wt),Nt=Qu(M,_t),Mt=Qu(x,p),St=Ru(It,Nt),Et=Ru(St,Mt),yt=Du(o,d),Ot=Du(c,v),Ct=Ru(yt,Ot),Tt=Ru(Et,Ct);return[q,tt,mt,Ru(Tt,g)]}const Ju=$,Ku=q,tf=k,nf=H;function ef(t,n){const e=Ft(t),[[r,o,[i]],[c,s,[u]]]=Bt(n);if(0===nf(r)&&0===nf(c))return vu(t,[n[0],n[2]]);const{vₓ:f,vᵧ:l,v:a}=au(e),p=Ku(r,f),h=Ku(c,l),d=tf(p,h),v=Ku(o,f),g=Ku(s,l),m=tf(v,g),b=Ju(i,f),x=Ju(u,l),w=tf(b,x);return[d,m,tf(w,a)]}const rf=it,of=$,cf=q,sf=k,uf=ti,ff=H;function lf(t,n){const e=Bt(t);if(0===ff(e[0][0])&&0===ff(e[1][0]))return ef([t[0],t[2]],n);const[[r,o,[i]],[c,s,[u]]]=Bt(n);if(0===ff(r)&&0===ff(c))return Ou(t,[n[0],n[2]]);const{vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d}=_u(e),v=rf(i,i),g=of(i,o),m=of(i,r),b=rf(i,u),x=of(i,s),w=of(i,c),_=cf(o,o),I=cf(o,r),N=of(u,o),M=cf(o,s),S=cf(o,c),E=cf(r,s),y=cf(r,r),O=of(u,r),C=cf(r,c),T=rf(u,u),P=of(u,s),A=of(u,c),k=cf(s,s),B=cf(s,c),F=cf(c,c),z=cf(y,f),Y=cf(C,l),V=cf(F,a),L=sf(z,Y),$=sf(L,V),X=cf(I,f),j=cf(B,a),q=sf(S,E),W=cf(q,l),H=uf(sf(X,j)),D=sf(H,W),Q=sf(uf(m),_),R=sf(uf(A),k),G=sf(w,M),U=sf(G,O),Z=cf(Q,f),J=cf(R,a),K=cf(U,l),tt=cf(r,p),nt=cf(c,h),et=sf(Z,J),rt=sf(et,K),ot=sf(tt,nt),it=sf(rt,ot),ct=cf(g,f),st=cf(P,a),ut=sf(x,N),ft=cf(ut,l),lt=uf(sf(ct,st)),at=cf(o,p),pt=cf(s,h),ht=sf(lt,ft),dt=sf(at,pt),vt=sf(ht,dt),gt=cf(v,f),mt=cf(b,l),bt=cf(T,a),xt=of(i,p),wt=of(u,h),_t=sf(gt,mt),It=sf(_t,bt),Nt=sf(xt,wt),Mt=sf(It,Nt);return[$,D,it,vt,sf(Mt,d)]}const af=it,pf=$,hf=q,df=k,vf=ti,gf=H;function mf(t,n){const e=kt(t);if(0===gf(e[0][0])&&0===gf(e[1][0]))return lf(zu(t),n);const[[r,o,[i]],[c,s,[u]]]=Bt(n);if(0===gf(r)&&0===gf(c))return Zu(t,[n[0],n[2]]);const{vₓₓₓ:f,vₓₓᵧ:l,vₓᵧᵧ:a,vᵧᵧᵧ:p,vₓₓ:h,vₓᵧ:d,vᵧᵧ:v,vₓ:g,vᵧ:m,v:b}=Wu(e),x=af(i,i),w=pf(i,o),_=pf(i,r),I=af(i,u),N=pf(i,s),M=pf(i,c),S=hf(o,o),E=hf(o,r),y=pf(u,o),O=hf(o,s),C=hf(o,c),T=hf(r,s),P=hf(r,r),A=pf(u,r),k=hf(r,c),B=af(u,u),F=pf(u,s),z=pf(u,c),Y=hf(s,s),V=hf(s,c),L=hf(c,c),$=hf(r,f),X=hf(r,a),j=hf(c,l),q=hf(c,p),W=df($,j),H=df(X,q),D=hf(P,W),Q=hf(L,H),R=df(D,Q),G=df(_,S),U=df(z,Y),Z=df(vf(_),S),J=df(vf(z),Y),K=df(vf(O),A),tt=df(vf(O),M),nt=df(vf(A),O),et=df(pf(6,_),S),rt=df(pf(6,z),Y),ot=df(C,T),it=df(M,A),ct=df(vf(y),N),st=df(vf(N),y),ut=df(M,O),ft=df(ut,A),lt=pf(3,P),at=pf(3,L),pt=hf(lt,f),ht=hf(P,l),dt=vf(hf(k,l)),vt=vf(hf(k,a)),gt=hf(L,a),mt=hf(at,p),bt=df(pt,dt),xt=df(ht,vt),wt=df(bt,gt),_t=df(xt,mt),It=hf(o,wt),Nt=hf(s,_t),Mt=df(It,Nt),St=hf(c,Z),Et=hf(c,tt),yt=hf(r,K),Ot=hf(r,J),Ct=hf(pf(3,r),G),Tt=hf(pf(3,c),U),Pt=df(St,yt),At=df(Et,Ot),Ft=hf(Ct,f),zt=hf(Tt,p),Yt=hf(Pt,l),Vt=hf(At,a),Lt=df(Ft,zt),$t=df(Yt,Vt),Xt=hf(P,h),jt=hf(L,v),qt=hf(k,d),Wt=df(Xt,jt),Ht=df(Lt,$t),Dt=df(Wt,qt),Qt=df(Ht,Dt),Rt=hf(o,et),Gt=hf(s,rt),Ut=pf(2*i,ot),Zt=hf(vf(s),it),Jt=hf(o,nt),Kt=hf(o,J),tn=df(Ut,Jt),nn=df(Zt,Kt),en=hf(V,v),rn=hf(E,h),on=hf(ot,d),cn=df(en,rn),sn=hf(Rt,f),un=hf(tn,l),fn=hf(Gt,p),ln=hf(nn,a),an=df(sn,fn),pn=df(un,ln),hn=df(an,pn),dn=df(vf(cn),on),vn=df(hn,dn),gn=hf(af(3,i),G),mn=hf(af(3,u),U),bn=pf(i,tt),xn=pf(i,J),wn=pf(u,Z),_n=pf(u,K),In=df(bn,wn),Nn=df(xn,_n),Mn=hf(gn,f),Sn=hf(mn,p),En=hf(In,l),yn=hf(Nn,a),On=hf(Z,h),Cn=hf(J,v),Tn=hf(ft,d),Pn=hf(r,g),An=hf(c,m),kn=df(Mn,Sn),Bn=df(En,yn),Fn=df(On,Cn),zn=df(kn,Bn),Yn=df(Fn,Tn),Vn=df(Pn,An),Ln=df(zn,Yn),$n=df(Ln,Vn),Xn=hf(af(3,i),w),jn=hf(af(3,u),F),qn=pf(i,ct),Wn=pf(u,st),Hn=hf(w,h),Dn=hf(F,v),Qn=hf(N,d),Rn=hf(y,d),Gn=vf(df(Hn,Dn)),Un=df(Qn,Rn),Zn=hf(o,g),Jn=hf(s,m),Kn=hf(Xn,f),te=hf(jn,p),ne=hf(qn,l),ee=hf(Wn,a),re=df(Kn,te),oe=df(ne,ee),ie=df(re,oe),ce=df(Gn,Un),se=df(Zn,Jn),ue=df(ie,ce),fe=df(ue,se),le=pf(i,f),ae=pf(i,a),pe=pf(u,l),he=pf(u,p),de=df(le,pe),ve=df(ae,he),ge=df(de,h),me=df(ve,v),be=hf(x,ge),xe=hf(B,me),we=hf(I,d),_e=pf(i,g),Ie=pf(u,m),Ne=df(be,xe),Me=df(Ne,we),Se=df(_e,Ie),Ee=df(Me,Se);return[R,Mt,Qt,vn,$n,fe,df(Ee,b)]}const bf=$,xf=q,wf=k,_f=H;function If(t,n){const e=Ft(t),[[r,o,i,[c]],[s,u,f,[l]]]=kt(n);if(0===_f(r)&&0===_f(s))return ef(t,zu(n));const{vₓ:a,vᵧ:p,v:h}=au(e),d=xf(r,a),v=xf(s,p),g=wf(d,v),m=xf(o,a),b=xf(u,p),x=wf(m,b),w=xf(i,a),_=xf(f,p),I=wf(w,_),N=bf(c,a),M=bf(l,p),S=wf(N,M);return[g,x,I,wf(S,h)]}const Nf=it,Mf=$,Sf=q,Ef=k,yf=ti,Of=H;function Cf(t,n){const e=Bt(t);if(0===Of(e[0][0])&&0===Of(e[1][0]))return If([t[0],t[2]],n);const[[r,o,i,[c]],[s,u,f,[l]]]=kt(n);if(0===Of(r)&&0===Of(s))return lf(t,zu(n));const{vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=_u(e),m=Nf(c,c),b=Mf(c,i),x=Mf(c,o),w=Mf(c,r),_=Nf(c,l),I=Mf(c,f),N=Mf(c,u),M=Mf(c,s),S=Sf(i,i),E=Sf(i,o),y=Sf(i,r),O=Mf(l,i),C=Sf(i,f),T=Sf(i,u),P=Sf(i,s),A=Sf(o,f),k=Sf(o,o),B=Sf(o,r),F=Mf(l,o),z=Sf(o,u),Y=Sf(o,s),V=Sf(r,r),L=Mf(l,r),$=Sf(r,f),X=Sf(r,u),j=Sf(r,s),q=Nf(l,l),W=Mf(l,f),H=Mf(l,u),D=Mf(l,s),Q=Sf(f,f),R=Sf(f,u),G=Sf(s,s),U=Sf(u,u),Z=Sf(u,s),J=Sf(f,s),K=Sf(V,a),tt=Sf(j,p),nt=Sf(G,h),et=Ef(K,tt),rt=Ef(et,nt),ot=Sf(B,a),it=Sf(Z,h),ct=Ef(ot,it),st=Ef(Y,X),ut=Sf(st,p),ft=Ef(yf(ct),ut),lt=Ef(yf(y),k),at=Ef(yf(J),U),pt=Ef(P,z),ht=Ef(pt,$),dt=Sf(lt,a),vt=Sf(at,h),gt=Ef(dt,vt),mt=Sf(ht,p),bt=Ef(gt,mt),xt=Ef(w,E),wt=Ef(D,R),_t=Ef(M,T),It=Ef(A,L),Nt=Ef(_t,It),Mt=Sf(xt,a),St=Sf(wt,h),Et=yf(Ef(Mt,St)),yt=Sf(Nt,p),Ot=Sf(r,d),Ct=Sf(s,v),Tt=Ef(Ot,Ct),Pt=Ef(Et,yt),At=Ef(Pt,Tt),Ft=Ef(yf(x),S),zt=Ef(yf(H),Q),Yt=Ef(N,C),Vt=Ef(Yt,F),Lt=Sf(Ft,a),$t=Sf(zt,h),Xt=Sf(Vt,p),jt=Ef(Lt,$t),qt=Ef(jt,Xt),Wt=Sf(o,d),Ht=Sf(u,v),Dt=Ef(Wt,Ht),Qt=Ef(qt,Dt),Rt=Sf(b,a),Gt=Sf(W,h),Ut=Ef(I,O),Zt=Sf(Ut,p),Jt=yf(Ef(Rt,Gt)),Kt=Ef(Jt,Zt),tn=Sf(i,d),nn=Sf(f,v),en=Ef(tn,nn),rn=Ef(Kt,en),on=Sf(m,a),cn=Sf(_,p),sn=Sf(q,h),un=Mf(c,d),fn=Mf(l,v),ln=Ef(on,cn),an=Ef(ln,sn),pn=Ef(un,fn),hn=Ef(an,pn);return[rt,ft,bt,At,Qt,rn,Ef(hn,g)]}const Tf=it,Pf=$,Af=q,kf=k,Bf=ti,Ff=H,zf=[[function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=Xc(t),[[c,[,s]],[u,[,f]]]=zc(n),l=c[1],a=u[1],p=e[1],h=r[1],d=o[1],v=l*p,g=2*Hc(v),m=Wc(c,e),b=a*h,x=2*Hc(b),w=Wc(u,r),_=v+b,I=jc(m,w),N=g+x+Hc(_),M=s*p,S=qc(s,e),E=Hc(M),y=f*h,O=qc(f,r),C=Hc(y),T=M+y,P=jc(S,O),A=E+C+Hc(T),k=jc(P,o),B=A+i+Hc(T+d);return{coeffs:[I,k],errBound:[Dc*N,Dc*B]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=Xc(t),{coeffs:[[c,s,[,u]],[f,l,[,a]]],errorBound:[[p],[h]]}=Fc(n),d=e[1],v=r[1],g=o[1],m=Es(d),b=Es(v),x=(Es(g),s[1]),w=c[1],_=l[1],I=f[1],N=w*d,M=Ss(c,e),S=p*m+2*Es(N),E=I*v,y=Ss(f,r),O=h*b+2*Es(E),C=N+E,T=Ns(M,y),P=S+O+Es(C),A=x*d,k=Ss(s,e),B=2*Es(A),F=_*v,z=Ss(l,r),Y=2*Es(F),V=A+F,L=Ns(k,z),$=B+Y+Es(V),X=Ms(u,e),j=u*d,q=Es(j),W=Ms(a,r),H=a*v,D=Es(H),Q=j+H,R=Ns(X,W),G=q+D+Es(Q),U=Q+g,Z=Ns(R,o),J=G+i+Es(U);return{coeffs:[T,L,Z],errBound:[ys*P,ys*$,ys*J]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=Xc(t),{coeffs:[[c,s,u,[,f]],[l,a,p,[,h]]],errorBound:[[d,v,g],[m,b,x]]}=Bc(n),w=Hs(e[1]),_=Hs(r[1]),I=Ws(c,e),N=d*w+2*Hs(I[1]),M=Ws(l,r),S=m*_+2*Hs(M[1]),E=js(I,M),y=N+S+Hs(E[1]),O=Ws(s,e),C=v*w+2*Hs(O[1]),T=Ws(a,r),P=b*_+2*Hs(T[1]),A=js(O,T),k=C+P+Hs(A[1]),B=Ws(u,e),F=g*w+2*Hs(B[1]),z=Ws(p,r),Y=x*_+2*Hs(z[1]),V=js(B,z),L=F+Y+Hs(V[1]),$=qs(f,e),X=Hs($[1]),j=qs(h,r),q=Hs(j[1]),W=js($,j),H=X+q+Hs(W[1]),D=js(W,o),Q=H+i+Hs(D[1]);return{coeffs:[E,A,V,D],errBound:[Ds*y,Ds*k,Ds*L,Ds*Q]}}],[function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=ts(t),[[d,[,v]],[g,[,m]]]=zc(n),b=e[1],x=r[1],w=o[1],_=i[1],I=c[1],N=s[1],M=cs(b),S=cs(x),E=cs(w),y=d[1],O=g[1],C=cs(v),T=cs(y),P=cs(m),A=cs(O),k=v*v,B=v*y,F=v*m,z=v*O,Y=y*y,V=y*m,L=y*O,$=m*m,X=m*O,j=O*O,q=ns(v,v),W=rs(v,d),H=cs(B),D=ns(v,m),Q=rs(v,g),R=cs(z),G=cs(Y),U=os(d,d),Z=2*G,J=rs(m,d),K=cs(V),tt=cs(L),nt=os(d,g),et=2*tt,rt=ns(m,m),ot=rs(m,g),it=cs(X),ct=cs(j),st=os(g,g),ut=2*ct,ft=Y*b,lt=os(U,e),at=Z*M*G*u+2*cs(ft),pt=j*w,ht=os(st,o),dt=ut*E*ct*l+2*cs(pt),vt=L*x,gt=os(nt,r),mt=et*S*tt*f+2*cs(vt),bt=ft+pt,xt=is(lt,ht),wt=at+dt+cs(bt),_t=bt+vt,It=is(xt,gt),Nt=wt+mt+cs(_t),Mt=B*b,St=os(W,e),Et=H*(M+u)+2*cs(Mt),yt=X*w,Ot=os(ot,o),Ct=it*(E+l)+2*cs(yt),Tt=z+V,Pt=is(Q,J),At=R+K+cs(Tt),kt=Tt*x,Bt=os(Pt,r),Ft=At*S+cs(Tt)*f+2*cs(kt),zt=2*(Mt+yt),Yt=es(is(St,Ot)),Vt=2*(Et+Ct)+cs(zt),Lt=zt+kt,$t=is(Yt,Bt),Xt=Vt+Ft+cs(Lt),jt=y*_,qt=os(d,i),Wt=T*a+2*cs(jt),Ht=O*I,Dt=os(g,c),Qt=A*p+2*cs(Ht),Rt=jt+Ht,Gt=is(qt,Dt),Ut=Wt+Qt+cs(Rt),Zt=Lt+Rt,Jt=is($t,Gt),Kt=Xt+Ut+cs(Zt),tn=k*b,nn=os(q,e),en=2*cs(tn),rn=F*x,on=os(D,r),cn=2*cs(rn),sn=$*w,un=os(rt,o),fn=2*cs(sn),ln=tn+rn,an=is(nn,on),pn=en+cn+cs(ln),hn=ln+sn,dn=is(an,un),vn=pn+fn+cs(hn),gn=v*_,mn=rs(v,i),bn=C*a+cs(gn),xn=m*I,wn=rs(m,c),_n=P*p+cs(xn),In=gn+xn,Nn=is(mn,wn),Mn=bn+_n+cs(In),Sn=hn+In,En=is(dn,Nn),yn=vn+Mn+cs(Sn),On=Sn+N,Cn=is(En,s),Tn=yn+h+cs(On);return{coeffs:[It,Jt,Cn],errBound:[ss*Nt,ss*Kt,ss*Tn]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=ts(t),{coeffs:[[d,v,[,g]],[m,b,[,x]]],errorBound:[[w],[_]]}=Fc(n),I=e[1],N=r[1],M=o[1],S=i[1],E=c[1],y=s[1],O=ks(I),C=ks(N),T=ks(M),P=ks(S),A=ks(E),k=v[1],B=d[1],F=b[1],z=m[1],Y=ks(g),V=ks(k),L=ks(B),$=ks(x),X=ks(F),j=ks(z),q=g*g,W=g*k,H=g*B,D=g*x,Q=g*F,R=g*z,G=k*k,U=k*B,Z=k*x,J=k*F,K=k*z,tt=B*F,nt=B*B,et=B*x,rt=B*z,ot=x*x,it=x*F,ct=x*z,st=F*F,ut=F*z,ft=z*z,lt=ks(q),at=ks(D),pt=ks(ot),ht=Os(g,g),dt=Ts(g,v),vt=ks(W),gt=Ts(g,d),mt=ks(H),bt=Os(g,x),xt=Ts(g,b),wt=ks(Q),_t=Ts(g,m),It=ks(R),Nt=Ps(v,v),Mt=2*ks(G),St=Ps(v,d),Et=ks(U),yt=V*w+2*Et,Ot=Ts(x,v),Ct=ks(Z),Tt=Ps(v,b),Pt=2*ks(J),At=Ps(v,m),kt=V*_+2*ks(K),Bt=Ps(d,b),Ft=w*X+2*ks(tt),zt=Ps(d,d),Yt=ks(nt),Vt=2*(w*L+Yt),Lt=Ts(x,d),$t=ks(et),Xt=Ps(d,m),jt=ks(rt),qt=w*j+L*_+2*jt,Wt=Os(x,x),Ht=Ts(x,b),Dt=ks(it),Qt=Ts(x,m),Rt=ks(ct),Gt=Ps(b,b),Ut=2*ks(st),Zt=Ps(b,m),Jt=ks(ut),Kt=X*_+2*Jt,tn=Ps(m,m),nn=ks(ft),en=2*(_*j+nn),rn=nt*I,on=Ps(zt,e),cn=Vt*O+Yt*u+2*ks(rn),sn=rt*N,un=Ps(Xt,r),fn=qt*C+jt*f+2*ks(sn),ln=ft*M,an=Ps(tn,o),pn=en*T+nn*l+2*ks(ln),hn=rn+sn,dn=As(on,un),vn=cn+fn+ks(hn),gn=hn+ln,mn=As(dn,an),bn=vn+pn+ks(gn),xn=U*I,wn=Ps(St,e),_n=yt*O+Et*u+2*ks(xn),In=ut*M,Nn=Ps(Zt,o),Mn=Kt*T+Jt*l+2*ks(In),Sn=K+tt,En=As(At,Bt),yn=ks(Sn),On=kt+Ft+yn,Cn=Sn*N,Tn=Ps(En,r),Pn=On*C+yn*f+2*ks(Cn),An=2*(xn+In),kn=Cs(As(wn,Nn)),Bn=2*(_n+Mn)+ks(An),Fn=An+Cn,zn=As(kn,Tn),Yn=Bn+Pn+ks(Fn),Vn=2*H+G,Ln=ks(Vn),$n=As(Cs(gt),Nt),Xn=2*mt+Mt+ks(Vn),jn=2*ct+st,qn=ks(jn),Wn=As(Cs(Qt),Gt),Hn=2*Rt+Ut+ks(jn),Dn=R+J,Qn=(ks(Dn),As(_t,Tt)),Rn=It+Pt+ks(Dn),Gn=Dn+et,Un=As(Qn,Lt),Zn=ks(Gn),Jn=Rn+$t+Zn,Kn=Vn*I,te=Ps($n,e),ne=Xn*O+Ln*u+2*ks(Kn),ee=jn*M,re=Ps(Wn,o),oe=Hn*T+qn*l+2*ks(ee),ie=Gn*N,ce=Ps(Un,r),se=Jn*C+Zn*f+2*ks(ie),ue=B*S,fe=Ps(d,i),le=w*P+L*a+ks(ue),ae=z*E,pe=Ps(m,c),he=_*A+j*p+ks(ae),de=Kn+ee,ve=As(te,re),ge=ne+oe+ks(de),me=de+ie,be=As(ve,ce),xe=ge+se+ks(me),we=ue+ae,_e=As(fe,pe),Ie=le+he+ks(we),Ne=me+we,Me=As(be,_e),Se=xe+Ie+ks(Ne),Ee=W*I,ye=Ps(dt,e),Oe=vt*(O+u)+2*ks(Ee),Ce=it*M,Te=Ps(Ht,o),Pe=Dt*(T+l)+2*ks(Ce),Ae=Q+Z,ke=As(xt,Ot),Be=ks(Ae),Fe=wt+Ct+Be,ze=Ae*N,Ye=Ps(ke,r),Ve=Fe*C+Be*f+2*ks(ze),Le=2*(Ee+Ce),$e=Cs(As(ye,Te)),Xe=2*(Oe+Pe)+ks(Le),je=k*S,qe=Ps(v,i),We=V*a+2*ks(je),He=F*E,De=Ps(b,c),Qe=X*p+2*ks(He),Re=Le+ze,Ge=As($e,Ye),Ue=Xe+Ve+ks(Re),Ze=je+He,Je=As(qe,De),Ke=We+Qe+ks(Ze),tr=Re+Ze,nr=As(Ge,Je),er=Ue+Ke+ks(tr),rr=q*I,or=Ps(ht,e),ir=lt*u+2*ks(rr),cr=D*N,sr=Ps(bt,r),ur=at*f+2*ks(cr),fr=ot*M,lr=Ps(Wt,o),ar=pt*l+2*ks(fr),pr=g*S,hr=Ts(g,i),dr=Y*a+ks(pr),vr=x*E,gr=Ts(x,c),mr=$*p+ks(vr),br=rr+cr,xr=As(or,sr),wr=ir+ur+ks(br),_r=br+fr,Ir=As(xr,lr),Nr=wr+ar+ks(_r),Mr=pr+vr,Sr=As(hr,gr),Er=dr+mr+ks(Mr),yr=_r+Mr,Or=As(Ir,Sr),Cr=Nr+Er+ks(yr),Tr=yr+y,Pr=As(Or,s),Ar=Cr+h+ks(Tr);return{coeffs:[mn,zn,Me,nr,Pr],errBound:[Bs*bn,Bs*Yn,Bs*Se,Bs*er,Bs*Ar]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=ts(t),{coeffs:[[d,v,g,[,m]],[b,x,w,[,_]]],errorBound:[[I,N,M],[S,E,y]]}=Bc(n),O=e[1],C=r[1],T=o[1],P=i[1],A=c[1],k=s[1],B=Js(O),F=Js(C),z=Js(T),Y=Js(P),V=Js(A),L=g[1],$=v[1],X=d[1],j=w[1],q=x[1],W=b[1],H=Js(m),D=Js(L),Q=Js($),R=Js(X),G=Js(_),U=Js(j),Z=Js(q),J=Js(W),K=m*m,tt=m*L,nt=m*$,et=m*X,rt=m*_,ot=m*j,it=m*q,ct=m*W,st=L*L,ut=L*$,ft=L*X,lt=L*_,at=L*j,pt=L*q,ht=L*W,dt=$*j,vt=$*$,gt=$*X,mt=$*_,bt=$*q,xt=$*W,wt=X*X,_t=X*_,It=X*j,Nt=X*q,Mt=X*W,St=_*_,Et=_*j,yt=_*q,Ot=_*W,Ct=j*j,Tt=j*q,Pt=W*W,At=q*q,kt=q*W,Bt=j*W,Ft=Qs(m,m),zt=Js(K),Yt=Gs(m,g),Vt=Js(tt),Lt=H*M+Vt,$t=Gs(m,v),Xt=H*N+Js(nt),jt=Gs(m,d),qt=H*I+Js(et),Wt=Qs(m,_),Ht=Js(rt),Dt=Gs(m,w),Qt=H*y+Js(ot),Rt=Gs(m,x),Gt=H*E+Js(it),Ut=Gs(m,b),Zt=H*S+Js(ct),Jt=Us(g,g),Kt=M*D+D*M+2*Js(st),tn=Us(g,v),nn=M*Q+D*N+2*Js(ut),en=Us(g,d),rn=M*R+D*I+2*Js(ft),on=Gs(_,g),cn=G*M+Js(lt),sn=Us(g,w),un=M*U+D*y+2*Js(at),fn=Us(g,x),ln=M*Z+D*E+2*Js(pt),an=Us(g,b),pn=M*J+D*S+2*Js(ht),hn=Us(v,w),dn=N*U+Q*y+2*Js(dt),vn=Us(v,v),gn=N*Q+Q*N+2*Js(vt),mn=Us(v,d),bn=Js(gt),xn=N*R+Q*I+2*bn,wn=Gs(_,v),_n=G*N+Js(mt),In=Us(v,x),Nn=N*Z+Q*E+2*Js(bt),Mn=Us(v,b),Sn=N*J+Q*S+2*Js(xt),En=Us(d,d),yn=Js(wt),On=I*R+R*I+2*yn,Cn=Gs(_,d),Tn=G*I+Js(_t),Pn=Us(d,w),An=I*U+R*y+2*Js(It),kn=Us(d,x),Bn=I*Z+R*E+2*Js(Nt),Fn=Us(d,b),zn=Js(Mt),Yn=I*J+R*S+2*zn,Vn=Qs(_,_),Ln=Js(St),$n=Gs(_,w),Xn=Js(Et),jn=G*y+Xn,qn=Gs(_,x),Wn=G*E+Js(yt),Hn=Gs(_,b),Dn=G*S+Js(Ot),Qn=Us(w,w),Rn=y*U+U*y+2*Js(Ct),Gn=Us(w,x),Un=y*Z+U*E+2*Js(Tt),Zn=Us(b,b),Jn=Js(Pt),Kn=S*J+J*S+2*Jn,te=Us(x,x),ne=E*Z+Z*E+2*Js(At),ee=Us(x,b),re=Js(kt),oe=E*J+Z*S+2*re,ie=Us(w,b),ce=y*J+U*S+2*Js(Bt),se=wt*O,ue=Us(En,e),fe=On*B+yn*u+2*Js(se),le=Mt*C,ae=Us(Fn,r),pe=Yn*F+zn*f+2*Js(le),he=Pt*T,de=Us(Zn,o),ve=Kn*z+Jn*l+2*Js(he),ge=se+le,me=Zs(ue,ae),be=fe+pe+Js(ge),xe=ge+he,we=Zs(me,de),_e=be+ve+Js(xe),Ie=gt*O,Ne=Us(mn,e),Me=xn*B+bn*u+2*Js(Ie),Se=kt*T,Ee=Us(ee,o),ye=oe*z+re*l+2*Js(Se),Oe=Ie+Se,Ce=Zs(Ne,Ee),Te=Me+ye+Js(Oe),Pe=xt+Nt,Ae=Zs(Mn,kn),ke=Js(Pe),Be=Sn+Bn+ke,Fe=Pe*C,ze=Us(Ae,r),Ye=Be*F+ke*f+2*Js(Fe),Ve=2*Oe+Fe,Le=Zs(Rs(Ce),ze),$e=2*Te+Ye+Js(Ve),Xe=2*ft+vt,je=Zs(Rs(en),vn),qe=Js(Xe),We=2*rn+gn+Js(Xe),He=2*Bt+At,De=Zs(Rs(ie),te),Qe=Js(He),Re=2*ce+ne+Js(He),Ge=ht+bt,Ue=Zs(an,In),Ze=pn+Nn+Js(Ge),Je=Ge+It,Ke=Zs(Ue,Pn),tr=Js(Je),nr=Ze+An+tr,er=Xe*O,rr=Us(je,e),or=We*B+qe*u+2*Js(er),ir=He*T,cr=Us(De,o),sr=Re*z+Qe*l+2*Js(ir),ur=er+ir,fr=Zs(rr,cr),lr=or+sr+Js(ur),ar=Je*C,pr=Us(Ke,r),hr=nr*F+tr*f+2*Js(ar),dr=ur+ar,vr=Zs(fr,pr),gr=lr+hr+Js(dr),mr=et+ut,br=Zs(jt,tn),xr=Js(mr),wr=qt+nn+xr,_r=Ot+Tt,Ir=Zs(Hn,Gn),Nr=Js(_r),Mr=Dn+Un+Nr,Sr=ct+pt,Er=Zs(Ut,fn),yr=Zt+ln+Js(Sr),Or=dt+_t,Cr=Zs(hn,Cn),Tr=dn+Tn+Js(Or),Pr=Sr+Or,Ar=Zs(Er,Cr),kr=Js(Pr),Br=yr+Tr+kr,Fr=mr*O,zr=Us(br,e),Yr=wr*B+xr*u+2*Js(Fr),Vr=_r*T,Lr=Us(Ir,o),$r=Mr*z+Nr*l+2*Js(Vr),Xr=2*(Fr+Vr),jr=Rs(Zs(zr,Lr)),qr=2*(Yr+$r)+Js(Xr),Wr=Pr*C,Hr=Us(Ar,r),Dr=Br*F+kr*f+2*Js(Wr),Qr=X*P,Rr=Us(d,i),Gr=I*Y+R*a+2*Js(Qr),Ur=W*A,Zr=Us(b,c),Jr=S*V+J*p+2*Js(Ur),Kr=Qr+Ur,to=Zs(Rr,Zr),no=Gr+Jr+Js(Kr),eo=Xr+Wr,ro=Zs(jr,Hr),oo=qr+Dr+Js(eo),io=eo+Kr,co=Zs(ro,to),so=oo+no+Js(io),uo=2*nt+st,fo=Zs(Rs($t),Jt),lo=Js(uo),ao=2*Xt+Kt+lo,po=2*yt+Ct,ho=Zs(Rs(qn),Qn),vo=Js(po),go=2*Wn+Rn+vo,mo=it+at,bo=Zs(Rt,sn),xo=Gt+un+Js(mo),wo=mo+mt,_o=Zs(bo,wn),Io=Js(wo),No=xo+_n+Io,Mo=uo*O,So=Us(fo,e),Eo=ao*B+lo*u+2*Js(Mo),yo=po*T,Oo=Us(ho,o),Co=go*z+vo*l+2*Js(yo),To=wo*C,Po=Us(_o,r),Ao=No*F+Io*f+2*Js(To),ko=Mo+yo,Bo=Zs(So,Oo),Fo=Eo+Co+Js(ko),zo=ko+To,Yo=Zs(Bo,Po),Vo=Fo+Ao+Js(zo),Lo=$*P,$o=Us(v,i),Xo=N*Y+Q*a+2*Js(Lo),jo=q*A,qo=Us(x,c),Wo=E*V+Z*p+2*Js(jo),Ho=Lo+jo,Do=Zs($o,qo),Qo=Xo+Wo+Js(Ho),Ro=zo+Ho,Go=Zs(Yo,Do),Uo=Vo+Qo+Js(Ro),Zo=tt*O,Jo=Us(Yt,e),Ko=Lt*B+Vt*u+2*Js(Zo),ti=Et*T,ni=Us($n,o),ei=jn*z+Xn*l+2*Js(ti),ri=ot+lt,oi=Zs(Dt,on),ii=Js(ri),ci=Qt+cn+ii,si=ri*C,ui=Us(oi,r),fi=ci*F+ii*f+2*Js(si),li=2*(Zo+ti),ai=Rs(Zs(Jo,ni)),pi=2*(Ko+ei)+Js(li),hi=li+si,di=Zs(ai,ui),vi=pi+fi+Js(hi),gi=L*P,mi=Us(g,i),bi=M*Y+D*a+2*Js(gi),xi=j*A,wi=Us(w,c),_i=y*V+U*p+2*Js(xi),Ii=gi+xi,Ni=Zs(mi,wi),Mi=bi+_i+Js(Ii),Si=hi+Ii,Ei=Zs(di,Ni),yi=vi+Mi+Js(Si),Oi=K*O,Ci=Us(Ft,e),Ti=zt*u+2*Js(Oi),Pi=rt*C,Ai=Us(Wt,r),ki=Ht*f+2*Js(Pi),Bi=St*T,Fi=Us(Vn,o),zi=Ln*l+2*Js(Bi),Yi=m*P,Vi=Gs(m,i),Li=H*a+Js(Yi),$i=_*A,Xi=Gs(_,c),ji=G*p+Js($i),qi=Oi+Pi,Wi=Zs(Ci,Ai),Hi=Ti+ki+Js(qi),Di=qi+Bi,Qi=Zs(Wi,Fi),Ri=Hi+zi+Js(Di),Gi=Yi+$i,Ui=Zs(Vi,Xi),Zi=Li+ji+Js(Gi),Ji=Di+Gi,Ki=Zs(Qi,Ui),tc=Ri+Zi+Js(Ji),nc=Ji+k,ec=Zs(Ki,s),rc=tc+h+Js(nc);return{coeffs:[we,Le,vr,co,Go,Ei,ec],errBound:[Ks*_e,Ks*$e,Ks*gr,Ks*so,Ks*Uo,Ks*yi,Ks*rc]}}],[function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:w,v_:_}}=vs(t),[[I,[,N]],[M,[,S]]]=zc(n),E=e[1],y=r[1],O=o[1],C=i[1],T=c[1],P=s[1],A=u[1],k=f[1],B=l[1],F=a[1],z=I[1],Y=M[1],V=_s(N),L=_s(z),$=_s(S),X=_s(Y),j=N*N,q=N*z,W=N*S,H=N*Y,D=z*z,Q=z*S,R=z*Y,G=S*S,U=S*Y,Z=Y*Y,J=gs(N,N),K=bs(N,I),tt=_s(q),nt=gs(N,S),et=bs(N,M),rt=_s(H),ot=xs(I,I),it=2*_s(D),ct=bs(S,I),st=_s(Q),ut=xs(I,M),ft=2*_s(R),lt=gs(S,S),at=bs(S,M),pt=_s(U),ht=xs(M,M),dt=2*_s(Z),vt=_s(j),gt=_s(q),mt=_s(W),bt=_s(H),xt=_s(D),wt=_s(Q),_t=_s(R),It=_s(G),Nt=_s(U),Mt=_s(Z),St=N*E,Et=bs(N,e),yt=V*p+_s(St),Ot=3*N,Ct=gs(3,N),Tt=_s(Ot),Pt=Ot*E,At=xs(Ct,e),kt=Tt*p+2*_s(Pt),Bt=N*y,Ft=bs(N,r),zt=V*h+_s(Bt),Yt=S*y,Vt=bs(S,r),Lt=$*h+_s(Yt),$t=N*O,Xt=bs(N,o),jt=V*d+_s($t),qt=S*O,Wt=bs(S,o),Ht=$*d+_s(qt),Dt=S*C,Qt=bs(S,i),Rt=$*v+_s(Dt),Gt=3*S,Ut=gs(3,S),Zt=_s(Gt),Jt=Gt*C,Kt=xs(Ut,i),tn=Zt*v+2*_s(Jt),nn=z*E,en=xs(I,e),rn=L*p+2*_s(nn),on=z*O,cn=xs(I,o),sn=L*d+2*_s(on),un=Y*y,fn=xs(M,r),ln=X*h+2*_s(un),an=Y*C,pn=xs(M,i),hn=X*v+2*_s(an),dn=nn+un,vn=ws(en,fn),gn=_s(dn),mn=rn+ln+gn,bn=on+an,xn=ws(cn,pn),wn=_s(bn),_n=sn+hn+wn,In=D*dn,Nn=xs(ot,vn),Mn=it*gn+xt*mn+2*_s(In),Sn=Z*bn,En=xs(ht,xn),yn=dt*wn+Mt*_n+2*_s(Sn),On=In+Sn,Cn=ws(Nn,En),Tn=Mn+yn+_s(On),Pn=Pt+Yt,An=ws(At,Vt),kn=kt+Lt+_s(Pn),Bn=2*(Bt+qt),Fn=ms(ws(Ft,Wt)),zn=2*(zt+Ht)+_s(Bn),Yn=$t+Jt,Vn=ws(Xt,Kt),Ln=jt+tn+_s(Yn),$n=Pn+T,Xn=ws(An,c),jn=_s($n),qn=kn+g+jn,Wn=Bn+P,Hn=ws(Fn,s),Dn=_s(Wn),Qn=zn+m+Dn,Rn=Yn+A,Gn=ws(Vn,u),Un=_s(Rn),Zn=Ln+b+Un,Jn=D*$n,Kn=xs(ot,Xn),te=it*jn+xt*qn+2*_s(Jn),ne=R*Wn,ee=xs(ut,Hn),re=ft*Dn+_t*Qn+2*_s(ne),oe=Z*Rn,ie=xs(ht,Gn),ce=dt*Un+Mt*Zn+2*_s(oe),se=Jn+ne,ue=ws(Kn,ee),fe=te+re+_s(se),le=se+oe,ae=ws(ue,ie),pe=fe+ce+_s(le),he=2*(Yt+T),de=ms(ws(Vt,c)),ve=2*(Lt+g)+_s(he),ge=2*($t+A),me=ms(ws(Xt,u)),be=2*(jt+b)+_s(ge),xe=Pt+he,we=ws(At,de),_e=_s(xe),Ie=kt+ve+_e,Ne=Jt+ge,Me=ws(Kt,me),Se=_s(Ne),Ee=tn+be+Se,ye=Bt+P,Oe=ws(Ft,s),Ce=_s(ye),Te=zt+m+Ce,Pe=qt+P,Ae=ws(Wt,s),ke=_s(Pe),Be=Ht+m+ke,Fe=q*xe,ze=xs(K,we),Ye=tt*_e+gt*Ie+2*_s(Fe),Ve=U*Ne,Le=xs(at,Me),$e=pt*Se+Nt*Ee+2*_s(Ve),Xe=H*ye,je=xs(et,Oe),qe=rt*Ce+bt*Te+2*_s(Xe),We=Q*Pe,He=xs(ct,Ae),De=st*ke+wt*Be+2*_s(We),Qe=z*k,Re=xs(I,f),Ge=L*x+2*_s(Qe),Ue=Y*B,Ze=xs(M,l),Je=X*w+2*_s(Ue),Ke=Fe+Ve,tr=ws(ze,Le),nr=Ye+$e+_s(Ke),er=Xe+We,rr=ws(je,He),or=qe+De+_s(er),ir=Ke+er,cr=ws(tr,rr),sr=nr+or+_s(ir),ur=Qe+Ue,fr=ws(Re,Ze),lr=Ge+Je+_s(ur),ar=ir+ur,pr=ws(cr,fr),hr=sr+lr+_s(ar),dr=St+Yt,vr=ws(Et,Vt),gr=yt+Lt+_s(dr),mr=Dt+$t,br=ws(Qt,Xt),xr=Rt+jt+_s(mr),wr=dr+T,_r=ws(vr,c),Ir=gr+g+_s(wr),Nr=mr+A,Mr=ws(br,u),Sr=xr+b+_s(Nr),Er=j*wr,yr=xs(J,_r),Or=vt*Ir+2*_s(Er),Cr=G*Nr,Tr=xs(lt,Mr),Pr=It*Sr+2*_s(Cr),Ar=W*P,kr=xs(nt,s),Br=mt*m+2*_s(Ar),Fr=Er+Cr,zr=ws(yr,Tr),Yr=Or+Pr+_s(Fr),Vr=Fr+Ar,Lr=ws(zr,kr),$r=Yr+Br+_s(Vr),Xr=N*k,jr=bs(N,f),qr=V*x+_s(Xr),Wr=S*B,Hr=bs(S,l),Dr=$*w+_s(Wr),Qr=Xr+Wr,Rr=ws(jr,Hr),Gr=qr+Dr+_s(Qr),Ur=Vr+Qr,Zr=ws(Lr,Rr),Jr=$r+Gr+_s(Ur),Kr=Ur+F,to=ws(Zr,a),no=Jr+_+_s(Kr);return{coeffs:[Cn,ae,pr,to],errBound:[Is*Tn,Is*pe,Is*hr,Is*no]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:w,v_:_}}=vs(t),{coeffs:[[I,N,[,M]],[S,E,[,y]]],errorBound:[[O],[C]]}=Fc(n),T=e[1],P=r[1],A=o[1],k=i[1],B=c[1],F=s[1],z=u[1],Y=f[1],V=l[1],L=a[1],$=$s(T),X=$s(P),j=$s(A),q=$s(k),W=$s(B),H=$s(z),D=$s(F),Q=$s(Y),R=$s(V),G=N[1],U=I[1],Z=E[1],J=S[1],K=$s(M),tt=$s(G),nt=$s(U),et=$s(y),rt=$s(Z),ot=$s(J),it=M*M,ct=M*G,st=M*U,ut=M*y,ft=M*Z,lt=M*J,at=G*G,pt=G*U,ht=G*y,dt=G*Z,vt=G*J,gt=U*Z,mt=U*U,bt=U*y,xt=U*J,wt=y*y,_t=y*Z,It=y*J,Nt=Z*Z,Mt=Z*J,St=J*J,Et=Fs(M,M),yt=Ys(M,N),Ot=$s(ct),Ct=Ys(M,I),Tt=K*O+$s(st),Pt=Fs(M,y),At=Ys(M,E),kt=$s(ft),Bt=Ys(M,S),Ft=K*C+$s(lt),zt=Vs(N,N),Yt=2*$s(at),Vt=Vs(N,I),Lt=tt*O+2*$s(pt),$t=Ys(y,N),Xt=$s(ht),jt=Vs(N,E),qt=2*$s(dt),Wt=Vs(N,S),Ht=tt*C+2*$s(vt),Dt=Vs(I,E),Qt=O*rt+2*$s(gt),Rt=Vs(I,I),Gt=2*(O*nt+$s(mt)),Ut=Ys(y,I),Zt=et*O+$s(bt),Jt=Vs(I,S),Kt=O*ot+nt*C+2*$s(xt),tn=Fs(y,y),nn=Ys(y,E),en=$s(_t),rn=Ys(y,S),on=et*C+$s(It),cn=Vs(E,E),sn=2*$s(Nt),un=Vs(E,S),fn=rt*C+2*$s(Mt),ln=Vs(S,S),an=2*(C*ot+$s(St)),pn=$s(it),hn=$s(ct),dn=$s(ut),vn=$s(ft),gn=$s(pt),mn=$s(mt),bn=$s(xt),xn=$s(ht),wn=$s(wt),_n=$s(_t),In=$s(Mt),Nn=$s(St),Mn=Vs(I,e),Sn=U*T,En=O*$+nt*p+2*$s(Sn),yn=Vs(I,o),On=U*A,Cn=O*j+nt*d+2*$s(On),Tn=Vs(S,r),Pn=J*P,An=C*X+ot*h+2*$s(Pn),kn=Vs(S,i),Bn=J*k,Fn=C*q+ot*v+2*$s(Bn),zn=Sn+Pn,Yn=Ls(Mn,Tn),Vn=$s(zn),Ln=En+An+Vn,$n=On+Bn,Xn=Ls(yn,kn),jn=$s($n),qn=Cn+Fn+jn,Wn=mt*zn,Hn=Vs(Rt,Yn),Dn=Gt*Vn+mn*Ln+2*$s(Wn),Qn=St*$n,Rn=Vs(ln,Xn),Gn=an*jn+Nn*qn+2*$s(Qn),Un=Wn+Qn,Zn=Ls(Hn,Rn),Jn=Dn+Gn+$s(Un),Kn=st+at,te=Ls(Ct,zt),ne=$s(Kn),ee=Tt+Yt+ne,re=It+Nt,oe=Ls(rn,cn),ie=$s(re),ce=on+sn+ie,se=2*st+at,ue=$s(se),fe=Ls(zs(Ct),zt),le=2*Tt+Yt+ue,ae=2*It+Nt,pe=Ls(zs(rn),cn),he=$s(ae),de=2*on+sn+he,ve=2*dt+bt,ge=Ls(zs(jt),Ut),me=$s(ve),be=2*qt+Zt+me,xe=2*dt+lt,we=Ls(zs(jt),Bt),_e=$s(xe),Ie=2*qt+Ft+_e,Ne=2*bt+dt,Me=Ls(zs(Ut),jt),Se=2*Zt+qt+$s(Ne),Ee=6*st+at,ye=6*st,Oe=Ys(6,Ct),Ce=6*Tt+$s(ye),Te=Ls(Oe,zt),Pe=Ce+Yt+$s(ye+at),Ae=6*It+Nt,ke=6*It,Be=Ys(6,rn),Fe=6*on+$s(ke),ze=Ls(Be,cn),Ye=Fe+sn+$s(ke+Nt),Ve=vt+gt,Le=Ls(Wt,Dt),$e=$s(Ve),Xe=Ht+Qt+$e,je=lt+bt,qe=Ls(Bt,Ut),We=Ft+Zt+$s(je),He=2*ht+ft,De=Ls(zs($t),At),Qe=2*Xt+kt+$s(He),Re=2*ft+ht,Ge=Ls(zs(At),$t),Ue=2*kt+Xt+$s(Re),Ze=lt+dt,Je=Ls(Bt,jt),Ke=Ft+qt+$s(Ze),tr=Ze+bt,nr=Ls(Je,Ut),er=$s(tr),rr=Ke+Zt+er,or=3*mt,ir=Ys(3,Rt),cr=3*Gt+$s(or),sr=$s(or),ur=3*St,fr=Ys(3,ln),lr=3*an+$s(ur),ar=$s(ur),pr=or*T,hr=Vs(ir,e),dr=cr*$+sr*p+2*$s(pr),vr=mt*P,gr=Vs(Rt,r),mr=Gt*X+mn*h+2*$s(vr),br=2*xt*P,xr=zs(Vs(Jt,r)),wr=2*(Kt*X+bn*h+$s(br)),_r=2*xt*A,Ir=zs(Vs(Jt,o)),Nr=2*(Kt*j+bn*d+$s(_r)),Mr=St*A,Sr=Vs(ln,o),Er=an*j+Nn*d+2*$s(Mr),yr=ur*k,Or=Vs(fr,i),Cr=lr*q+ar*v+2*$s(yr),Tr=pr+br,Pr=Ls(hr,xr),Ar=dr+wr+$s(Tr),kr=vr+_r,Br=Ls(gr,Ir),Fr=mr+Nr+$s(kr),zr=Tr+Mr,Yr=Ls(Pr,Sr),Vr=Ar+Er+$s(zr),Lr=kr+yr,$r=Ls(Br,Or),Xr=Fr+Cr+$s(Lr),jr=G*zr,qr=Vs(N,Yr),Wr=tt*Vr+$s(jr),Hr=Z*Lr,Dr=Vs(E,$r),Qr=rt*Xr+$s(Hr),Rr=jr+Hr,Gr=Ls(qr,Dr),Ur=Wr+Qr+$s(Rr),Zr=J*se,Jr=Vs(S,fe),Kr=C*ue+ot*le+2*$s(Zr),to=J*xe,no=Vs(S,we),eo=C*_e+ot*Ie+2*$s(to),ro=U*ve,oo=Vs(I,ge),io=O*me+nt*be+2*$s(ro),co=U*ae,so=Vs(I,pe),uo=O*he+nt*de+2*$s(co),fo=3*U,lo=Ys(3,I),ao=$s(fo),po=3*O+ao,ho=fo*Kn,vo=Vs(lo,te),go=$s(ho),mo=po*ne+ao*ee+go,bo=3*J,xo=Ys(3,S),wo=$s(bo),_o=3*C+wo,Io=bo*re,No=Vs(xo,oe),Mo=$s(Io),So=_o*ie+wo*ce+Mo,Eo=Zr+ro,yo=Ls(Jr,oo),Oo=$s(Eo),Co=Kr+io+Oo,To=to+co,Po=Ls(no,so),Ao=$s(To),ko=eo+uo+Ao,Bo=ho*T,Fo=Vs(vo,e),zo=mo*$+go*p+2*$s(Bo),Yo=Io*k,Vo=Vs(No,i),Lo=So*q+Mo*v+2*$s(Yo),$o=Eo*P,Xo=Vs(yo,r),jo=Co*X+Oo*h+2*$s($o),qo=To*A,Wo=Vs(Po,o),Ho=ko*j+Ao*d+2*$s(qo),Do=Bo+Yo,Qo=Ls(Fo,Vo),Ro=zo+Lo+$s(Do),Go=$o+qo,Uo=Ls(Xo,Wo),Zo=jo+Ho+$s(Go),Jo=mt*B,Ko=Vs(Rt,c),ti=Gt*W+mn*g+2*$s(Jo),ni=St*z,ei=Vs(ln,u),ri=an*H+Nn*b+2*$s(ni),oi=xt*F,ii=Vs(Jt,s),ci=Kt*D+bn*m+2*$s(oi),si=Jo+ni,ui=Ls(Ko,ei),fi=ti+ri+$s(si),li=Do+Go,ai=Ls(Qo,Uo),pi=Ro+Zo+$s(li),hi=si+oi,di=Ls(ui,ii),vi=fi+ci+$s(hi),gi=li+hi,mi=Ls(ai,di),bi=pi+vi+$s(gi),xi=G*Ee,wi=Vs(N,Te),_i=tt*Pe+2*$s(xi),Ii=2*_i,Ni=Z*Ae,Mi=Vs(E,ze),Si=rt*Ye+2*$s(Ni),Ei=2*Si,yi=2*M*Ve,Oi=Ys(2*M,Le),Ci=2*K*Xe+$s(yi),Ti=2*Z*je,Pi=Vs(zs(E),qe),Ai=2*rt*We+2*$s(Ti),ki=G*Ne,Bi=Vs(N,Me),Fi=tt*Se+2*$s(ki),zi=G*ae,Yi=Vs(N,pe),Vi=tt*de+2*$s(zi),Li=yi+ki,$i=Ls(Oi,Bi),Xi=Ci+Fi+$s(Li),ji=Ci+Fi+Xi,qi=Ti+zi,Wi=Ls(Pi,Yi),Hi=Ai+Vi+$s(qi),Di=Ai+Vi+Hi,Qi=Mt*z,Ri=Vs(un,u),Gi=fn*H+In*b+2*$s(Qi),Ui=pt*B,Zi=Vs(Vt,c),Ji=Lt*W+gn*g+2*$s(Ui),Ki=Ve*F,tc=Vs(Le,s),nc=Xe*D+$e*m+2*$s(Ki),ec=Qi+Ui,rc=Ls(Ri,Zi),oc=Gi+Ji+$s(ec),ic=xi*T,cc=Vs(wi,e),sc=Ii*$+_i*p+2*$s(ic),uc=Li*P,fc=Vs($i,r),lc=ji*X+Xi*h+2*$s(uc),ac=Ni*k,pc=Vs(Mi,i),hc=Ei*q+Si*v+2*$s(ac),dc=qi*A,vc=Vs(Wi,o),gc=Di*j+Hi*d+2*$s(dc),mc=ic+ac,bc=Ls(cc,pc),xc=sc+hc+$s(mc),wc=uc+dc,_c=Ls(fc,vc),Ic=lc+gc+$s(wc),Nc=mc+wc,Mc=Ls(bc,_c),Sc=xc+Ic+$s(Nc),Ec=2*ec+Ki,yc=Ls(zs(rc),tc),Oc=2*oc+nc+$s(Ec),Cc=Nc+Ec,Tc=Ls(Mc,yc),Pc=Sc+Oc+$s(Cc),Ac=3*M,kc=$s(Ac),Bc=Fs(3,M),zc=Ac*Kn,Yc=Vs(Bc,te),Vc=$s(zc),Lc=kc*ee+2*$s(zc),$c=3*y,Xc=$s($c),jc=Fs(3,y),qc=$c*re,Wc=Vs(jc,oe),Hc=$s(qc),Dc=Xc*ce+2*$s(qc),Qc=M*xe,Rc=Ys(M,we),Gc=K*Ie+$s(Qc),Uc=M*ae,Zc=Ys(M,pe),Jc=K*de+$s(Uc),Kc=y*se,ts=Ys(y,fe),ns=et*le+$s(Kc),es=y*ve,rs=Ys(y,ge),os=et*be+$s(es),is=Qc+Kc,cs=Ls(Rc,ts),ss=$s(is),us=Gc+ns+ss,fs=Uc+es,ls=Ls(Zc,rs),as=$s(fs),ps=Jc+os+as,hs=zc*T,ds=Vs(Yc,e),gs=Lc*$+Vc*p+2*$s(hs),ms=qc*k,bs=Vs(Wc,i),xs=Dc*q+Hc*v+2*$s(ms),ws=is*P,_s=Vs(cs,r),Is=us*X+ss*h+2*$s(ws),Ns=fs*A,Ms=Vs(ls,o),Ss=ps*j+as*d+2*$s(Ns),Es=se*B,ys=Vs(fe,c),Os=le*W+ue*g+2*$s(Es),Cs=ae*z,Ts=Vs(pe,u),Ps=de*H+he*b+2*$s(Cs),As=tr*F,ks=Vs(nr,s),Bs=rr*D+er*m+2*$s(As),js=U*Y,qs=Vs(I,f),Ws=O*Q+nt*x+2*$s(js),Hs=J*V,Ds=Vs(S,l),Qs=C*R+ot*w+2*$s(Hs),Rs=hs+ms,Gs=Ls(ds,bs),Us=gs+xs+$s(Rs),Zs=ws+Ns,Js=Ls(_s,Ms),Ks=Is+Ss+$s(Zs),tu=Es+Cs,nu=Ls(ys,Ts),eu=Os+Ps+$s(tu),ru=Rs+Zs,ou=Ls(Gs,Js),iu=Us+Ks+$s(ru),cu=tu+As,su=Ls(nu,ks),uu=eu+Bs+$s(cu),fu=js+Hs,lu=Ls(qs,Ds),au=Ws+Qs+$s(fu),pu=ru+cu,hu=Ls(ou,su),du=iu+uu+$s(pu),vu=pu+fu,gu=Ls(hu,lu),mu=du+au+$s(vu),bu=Ac*ct,xu=Vs(Bc,yt),wu=$s(bu),_u=kc*Ot+2*wu,Iu=$c*_t,Nu=Vs(jc,nn),Mu=$s(Iu),Su=Xc*en+2*Mu,Eu=M*He,yu=Ys(M,De),Ou=$s(Eu),Cu=K*Qe+$s(Eu),Tu=y*Re,Pu=Ys(y,Ge),Au=$s(Tu),ku=et*Ue+$s(Tu),Bu=ct*B,Fu=Vs(yt,c),zu=Ot*W+hn*g+2*$s(Bu),Yu=_t*z,Vu=Vs(nn,u),Lu=en*H+_n*b+2*$s(Yu),$u=ft*F,Xu=Vs(At,s),ju=kt*D+vn*m+2*$s($u),qu=ht*F,Wu=Vs($t,s),Hu=Xt*D+xn*m+2*$s(qu),Du=2*(Bu+Yu),Qu=zs(Ls(Fu,Vu)),Ru=2*(zu+Lu)+$s(Du),Gu=$u+qu,Uu=Ls(Xu,Wu),Zu=ju+Hu+$s(Gu),Ju=G*Y,Ku=Vs(N,f),tf=tt*x+2*$s(Ju),nf=Z*V,ef=Vs(E,l),rf=rt*w+2*$s(nf),of=bu*T,cf=Vs(xu,e),sf=_u*$+wu*p+2*$s(of),uf=Iu*k,ff=Vs(Nu,i),lf=Su*q+Mu*v+2*$s(uf),af=Eu*P,pf=Vs(yu,r),hf=Cu*X+Ou*h+2*$s(af),df=Tu*A,vf=Vs(Pu,o),gf=ku*j+Au*d+2*$s(df),mf=of+uf,bf=Ls(cf,ff),xf=sf+lf+$s(mf),wf=af+df,_f=Ls(pf,vf),If=hf+gf+$s(wf),Nf=mf+wf,Mf=Ls(bf,_f),Sf=xf+If+$s(Nf),Ef=Du+Gu,yf=Ls(Qu,Uu),Of=Ru+Zu+$s(Ef),Cf=Ju+nf,Tf=Ls(Ku,ef),Pf=tf+rf+$s(Cf),Af=Nf+Ef,kf=Ls(Mf,yf),Bf=Sf+Of+$s(Af),Ff=Af+Cf,zf=Ls(kf,Tf),Yf=Bf+Pf+$s(Ff),Vf=M*T,Lf=Ys(M,e),$f=K*p+$s(Vf),Xf=M*A,jf=Ys(M,o),qf=K*d+$s(Xf),Wf=y*P,Hf=Ys(y,r),Df=et*h+$s(Wf),Qf=y*k,Rf=Ys(y,i),Gf=et*v+$s(Qf),Uf=Vf+Wf,Zf=Ls(Lf,Hf),Jf=$f+Df+$s(Uf),Kf=Xf+Qf,tl=Ls(jf,Rf),nl=qf+Gf+$s(Kf),el=Uf+B,rl=Ls(Zf,c),ol=Jf+g+$s(el),il=Kf+z,cl=Ls(tl,u),sl=nl+b+$s(il),ul=it*el,fl=Vs(Et,rl),ll=pn*ol+2*$s(ul),al=wt*il,pl=Vs(tn,cl),hl=wn*sl+2*$s(al),dl=ut*F,vl=Vs(Pt,s),gl=dn*m+2*$s(dl),ml=M*Y,bl=Ys(M,f),xl=K*x+$s(ml),wl=y*V,_l=Ys(y,l),Il=et*w+$s(wl),Nl=ul+al,Ml=Ls(fl,pl),Sl=ll+hl+$s(Nl),El=Nl+dl,yl=Ls(Ml,vl),Ol=Sl+gl+$s(El),Cl=ml+wl,Tl=Ls(bl,_l),Pl=xl+Il+$s(Cl),Al=El+Cl,kl=Ls(yl,Tl),Bl=Ol+Pl+$s(Al),Fl=Al+L,zl=Ls(kl,a),Yl=Bl+_+$s(Fl);return{coeffs:[Zn,Gr,mi,Tc,gu,zf,zl],errBound:[Xs*Jn,Xs*Ur,Xs*bi,Xs*Pc,Xs*mu,Xs*Yf,Xs*Yl]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:w,v_:_}}=vs(t),{coeffs:[[I,N,M,[,S]],[E,y,O,[,C]]],errorBound:[[T,P,A],[k,B,F]]}=Bc(n),z=e[1],Y=r[1],V=o[1],L=i[1],$=c[1],X=s[1],j=u[1],q=f[1],W=l[1],H=a[1],D=iu(z),Q=iu(Y),R=iu(V),G=iu(L),U=iu($),Z=iu(X),J=iu(j),K=iu(q),tt=iu(W),nt=(iu(H),M[1]),et=N[1],rt=I[1],ot=O[1],it=y[1],ct=E[1],st=iu(S),ut=iu(nt),ft=iu(et),lt=iu(rt),at=iu(C),pt=iu(ot),ht=iu(it),dt=iu(ct),vt=S*S,gt=S*nt,mt=S*et,bt=S*rt,xt=S*C,wt=S*ot,_t=S*it,It=S*ct,Nt=nt*nt,Mt=nt*et,St=nt*rt,Et=nt*C,yt=nt*ot,Ot=nt*it,Ct=nt*ct,Tt=et*ot,Pt=et*et,At=et*rt,kt=et*C,Bt=et*it,Ft=et*ct,zt=rt*rt,Yt=rt*C,Vt=rt*ot,Lt=rt*it,$t=rt*ct,Xt=C*C,jt=C*ot,qt=C*it,Wt=C*ct,Ht=ot*ot,Dt=ot*it,Qt=ct*ct,Rt=it*it,Gt=it*ct,Ut=ot*ct,Zt=tu(S,S),Jt=eu(S,M),Kt=st*A+iu(gt),tn=eu(S,N),nn=st*P+iu(mt),en=eu(S,I),rn=st*T+iu(bt),on=tu(S,C),cn=eu(S,O),sn=st*F+iu(wt),un=eu(S,y),fn=st*B+iu(_t),ln=eu(S,E),an=st*k+iu(It),pn=ru(M,M),hn=iu(Nt),dn=2*(A*ut+hn),vn=ru(M,N),gn=A*ft+ut*P+2*iu(Mt),mn=ru(M,I),bn=A*lt+ut*T+2*iu(St),xn=eu(C,M),wn=at*A+iu(Et),_n=ru(M,O),In=A*pt+ut*F+2*iu(yt),Nn=ru(M,y),Mn=A*ht+ut*B+2*iu(Ot),Sn=ru(M,E),En=A*dt+ut*k+2*iu(Ct),yn=ru(N,O),On=P*pt+ft*F+2*iu(Tt),Cn=ru(N,N),Tn=iu(Pt),Pn=2*(P*ft+Tn),An=ru(N,I),kn=P*lt+ft*T+2*iu(At),Bn=eu(C,N),Fn=at*P+iu(kt),zn=ru(N,y),Yn=P*ht+ft*B+2*iu(Bt),Vn=ru(N,E),Ln=P*dt+ft*k+2*iu(Ft),$n=ru(I,I),Xn=2*(T*lt+iu(zt)),jn=eu(C,I),qn=at*T+iu(Yt),Wn=ru(I,O),Hn=T*pt+lt*F+2*iu(Vt),Dn=ru(I,y),Qn=iu(Lt),Rn=T*ht+lt*B+2*Qn,Gn=ru(I,E),Un=T*dt+lt*k+2*iu($t),Zn=tu(C,C),Jn=eu(C,O),Kn=at*F+iu(jt),te=eu(C,y),ne=at*B+iu(qt),ee=eu(C,E),re=at*k+iu(Wt),oe=ru(O,O),ie=iu(Ht),ce=2*(F*pt+ie),se=ru(O,y),ue=F*ht+pt*B+2*iu(Dt),fe=ru(E,E),le=2*(k*dt+iu(Qt)),ae=ru(y,y),pe=iu(Rt),he=2*(B*ht+pe),de=ru(y,E),ve=B*dt+ht*k+2*iu(Gt),ge=ru(O,E),me=iu(Ut),be=F*dt+pt*k+2*me,xe=iu(vt),we=iu(gt),_e=iu(At),Ie=iu(zt),Ne=iu($t),Me=iu(xt),Se=iu(Xt),Ee=iu(jt),ye=iu(Gt),Oe=iu(Qt),Ce=rt*zt,Te=ru(I,$n),Pe=lt*Ie,Ae=T*Ie+lt*Xn+2*Pe,ke=rt*Qt,Be=ru(I,fe),Fe=lt*Oe,ze=T*Oe+lt*le+2*Fe,Ye=ct*zt,Ve=ru(E,$n),Le=dt*Ie,$e=k*Ie+dt*Xn+2*Le,Xe=ct*Qt,je=ru(E,fe),qe=dt*Oe,We=k*Oe+dt*le+2*qe,He=Ce*z,De=ru(Te,e),Qe=Ae*D+Pe*p+2*iu(He),Re=ke*V,Ge=ru(Be,o),Ue=ze*R+Fe*d+2*iu(Re),Ze=Ye*Y,Je=ru(Ve,r),Ke=$e*Q+Le*h+2*iu(Ze),tr=Xe*L,nr=ru(je,i),er=We*G+qe*v+2*iu(tr),rr=He+Re,or=ou(De,Ge),ir=Qe+Ue+iu(rr),cr=Ze+tr,sr=ou(Je,nr),ur=Ke+er+iu(cr),fr=rr+cr,lr=ou(or,sr),ar=ir+ur+iu(fr),pr=2*Ft+Lt,hr=iu(pr),dr=ou(nu(Vn),Dn),vr=2*Ln+Rn+hr,gr=2*Lt+Ft,mr=iu(gr),br=ou(nu(Dn),Vn),xr=2*Rn+Ln+iu(gr),wr=rt*pr,_r=iu(wr),Ir=ru(I,dr),Nr=T*hr+lt*vr+2*_r,Mr=ct*gr,Sr=iu(Mr),Er=ru(E,br),yr=k*mr+dt*xr+2*Sr,Or=et*zt,Cr=iu(Or),Tr=ru(N,$n),Pr=P*Ie+ft*Xn+2*Cr,Ar=it*Qt,kr=iu(Ar),Br=ru(y,fe),Fr=B*Oe+ht*le+2*kr,zr=z*Or,Yr=ru(e,Tr),Vr=Pr*D+D*Pr+2*iu(zr),Lr=L*Ar,$r=ru(i,Br),Xr=Fr*G+G*Fr+2*iu(Lr),jr=Y*wr,qr=ru(r,Ir),Wr=Nr*Q+Q*Nr+2*iu(jr),Hr=V*Mr,Dr=ru(o,Er),Qr=yr*R+R*yr+2*iu(Hr),Rr=jr+Hr,Gr=ou(qr,Dr),Ur=Wr+Qr+iu(Rr),Zr=3*(zr+Lr),Jr=eu(3,ou(Yr,$r)),Kr=3*(Vr+Xr)+2*iu(Zr),to=Rr+Zr,no=ou(Gr,Jr),eo=Ur+Kr+iu(to),ro=nt*$t,oo=ru(M,Gn),io=A*Ne+ut*Un+2*iu(ro),co=ot*zt,so=ru(O,$n),uo=F*Ie+pt*Xn+2*iu(co),fo=et*Gt,lo=ru(N,de),ao=P*ye+ft*ve+2*iu(fo),po=nt*Qt,ho=ru(M,fe),vo=A*Oe+ut*le+2*iu(po),go=et*Lt,mo=ru(N,Dn),bo=P*Qn+ft*Rn+2*iu(go),xo=ct*Pt,wo=ru(E,Cn),_o=k*Tn+dt*Pn+2*iu(xo),Io=rt*Ut,No=ru(I,ge),Mo=T*me+lt*be+2*iu(Io),So=it*Lt,Eo=ru(y,Dn),yo=B*Qn+ht*Rn+2*iu(So),Oo=ro+go,Co=ou(oo,mo),To=io+bo+iu(Oo),Po=co+xo,Ao=ou(so,wo),ko=uo+_o+iu(Po),Bo=fo+Io,Fo=ou(lo,No),zo=ao+Mo+iu(Bo),Yo=po+So,Vo=ou(ho,Eo),Lo=vo+yo+iu(Yo),$o=St+Pt,Xo=ou(mn,Cn),jo=iu($o),qo=bn+Pn+jo,Wo=Ut+Rt,Ho=iu(Wo),Do=ou(ge,ae),Qo=be+he+Ho,Ro=2*Oo+Po,Go=ou(nu(Co),Ao),Uo=iu(Ro),Zo=2*To+ko+Uo,Jo=2*Bo+Yo,Ko=ou(nu(Fo),Vo),ti=iu(Jo),ni=2*zo+Lo+ti,ei=Y*Ro,ri=ru(r,Go),oi=h*Uo+Q*Zo+2*iu(ei),ii=V*Jo,ci=ru(o,Ko),si=d*ti+R*ni+2*iu(ii),ui=rt*$o,fi=ru(I,Xo),li=iu(ui),ai=T*jo+lt*qo+2*li,pi=ct*Wo,hi=ru(E,Do),di=iu(pi),vi=k*Ho+dt*Qo+2*di,gi=z*ui,mi=ru(e,fi),bi=p*li+D*ai+2*iu(gi),xi=L*pi,wi=ru(i,hi),_i=v*di+G*vi+2*iu(xi),Ii=ei+ii,Ni=ou(ri,ci),Mi=oi+si+iu(Ii),Si=3*(gi+xi),Ei=eu(3,ou(mi,wi)),yi=3*(bi+_i)+2*iu(Si),Oi=Ii+Si,Ci=ou(Ni,Ei),Ti=Mi+yi+iu(Oi),Pi=Ft+Lt,Ai=ou(Vn,Dn),ki=iu(Pi),Bi=Ln+Rn+ki,Fi=it*Pt,zi=ru(y,Cn),Yi=B*Tn+ht*Pn+2*iu(Fi),Vi=2*nt*Pi,Li=nu(ru(M,Ai)),$i=2*(A*ki+ut*Bi+2*iu(Vi)),Xi=Fi+Vi,ji=ou(zi,Li),qi=Yi+$i+iu(Xi),Wi=2*(It+Tt),Hi=nu(ou(ln,yn)),Di=2*(an+On)+iu(Wi),Qi=Wi+Yt,Ri=iu(Qi),Gi=ou(Hi,jn),Ui=Di+qn+Ri,Zi=rt*Qi,Ji=ru(I,Gi),Ki=T*Ri+lt*Ui+2*iu(Zi),tc=Xi+Zi,nc=ou(ji,Ji),ec=iu(tc),rc=qi+Ki+ec,oc=et*Rt,ic=ru(N,ae),cc=P*pe+ft*he+2*iu(oc),sc=2*ot*Pi,uc=nu(ru(O,Ai)),fc=2*(F*ki+pt*Bi+iu(sc)),lc=oc+sc,ac=ou(ic,uc),pc=cc+fc+iu(lc),hc=2*(Ot+Yt),dc=nu(ou(Nn,jn)),vc=2*(Mn+qn)+iu(hc),gc=hc+It,mc=ou(dc,ln),bc=iu(gc),xc=vc+an+bc,wc=ct*gc,_c=ru(E,mc),Ic=k*bc+dt*xc+2*iu(wc),Nc=lc+wc,Mc=ou(ac,_c),Sc=iu(Nc),Ec=pc+Ic+Sc,yc=et*Pt,Oc=ru(N,Cn),Cc=P*Tn+ft*Pn+2*iu(yc),Tc=2*Mt+bt,Pc=ou(nu(vn),en),Ac=iu(Tc),kc=2*gn+rn+Ac,Fc=3*rt,zc=eu(3,I),Yc=iu(Fc),Vc=3*T+Yc,Lc=Fc*Tc,$c=ru(zc,Pc),Xc=Vc*Ac+Yc*kc+2*iu(Lc),jc=yc+Lc,qc=ou(Oc,$c),Wc=iu(jc),Hc=Cc+Xc+Wc,Dc=it*Rt,Qc=ru(y,ae),Rc=B*pe+ht*he+2*iu(Dc),Gc=2*Dt+Wt,Uc=ou(nu(se),ee),Zc=iu(Gc),Jc=2*ue+re+Zc,Kc=3*ct,ts=eu(3,E),ns=iu(Kc),es=3*k+ns,rs=Kc*Gc,os=ru(ts,Uc),is=es*Zc+ns*Jc+2*iu(rs),cs=Dc+rs,ss=ou(Qc,os),us=iu(cs),fs=Rc+is+us,ls=Y*tc,as=ru(r,nc),ps=h*ec+Q*rc+2*iu(ls),hs=V*Nc,ds=ru(o,Mc),gs=d*Sc+R*Ec+2*iu(hs),ms=ls+hs,bs=ou(as,ds),xs=ps+gs+iu(ms),ws=z*jc,_s=ru(e,qc),Is=p*Wc+D*Hc+2*iu(ws),Ns=L*cs,Ms=ru(i,ss),Ss=v*us+G*fs+2*iu(Ns),Es=ws+Ns,ys=ou(_s,Ms),Os=Is+Ss+iu(Es),Cs=$*zt,Ts=ru($n,c),Ps=Xn*U+Ie*g+2*iu(Cs),As=j*Qt,ks=ru(fe,u),Bs=le*J+Oe*b+2*iu(As),Fs=Cs+As,zs=ou(Ts,ks),Ys=Ps+Bs+iu(Fs),Vs=X*$t,Ls=ru(Gn,s),$s=Un*Z+Ne*m+2*iu(Vs),Xs=ms+Es,js=ou(bs,ys),qs=xs+Os+iu(Xs),Ws=Fs+Vs,Hs=ou(zs,Ls),Ds=Ys+$s+iu(Ws),Qs=Xs+Ws,Rs=ou(js,Hs),Gs=qs+Ds+iu(Qs),Us=Bt+Vt,Zs=ou(zn,Wn),Js=iu(Us),Ks=Yn+Hn+Js,su=Ct+Bt,uu=ou(Sn,zn),fu=iu(su),lu=En+Yn+fu,au=S*Pi,pu=eu(S,Ai),hu=st*Bi+iu(au),du=C*Pi,vu=eu(C,Ai),gu=at*Bi+iu(du),mu=nt*Us,bu=ru(M,Zs),xu=A*Js+ut*Ks+2*iu(mu),wu=ot*su,_u=ru(O,uu),Iu=F*fu+pt*lu+2*iu(wu),Nu=2*Yt+Tt,Mu=ou(nu(jn),yn),Su=iu(Nu),Eu=2*qn+On+Su,yu=2*It+Ot,Ou=ou(nu(ln),Nn),Cu=iu(yu),Tu=2*an+Mn+Cu,Pu=ct*Nt,Au=ru(E,pn),ku=k*hn+dt*dn+2*iu(Pu),Bu=rt*Ht,Fu=ru(I,oe),zu=T*ie+lt*ce+2*iu(Bu),Yu=et*Nu,Vu=ru(N,Mu),Lu=P*Su+ft*Eu+2*iu(Yu),$u=it*yu,Xu=ru(y,Ou),ju=B*Cu+ht*Tu+2*iu($u),qu=2*(au+mu),Wu=nu(ou(pu,bu)),Hu=2*(hu+xu)+iu(qu),Du=2*(du+wu),Qu=nu(ou(vu,_u)),Ru=2*(gu+Iu)+iu(Du),Gu=2*S*At,Uu=nu(eu(S,An)),Zu=2*st*kn+iu(Gu),Ju=2*C*Gt,Ku=nu(eu(C,de)),tf=2*at*ve+iu(Ju),nf=nt*$o,ef=ru(M,Xo),rf=A*jo+ut*qo+2*iu(nf),of=ot*Wo,cf=ru(O,Do),sf=F*Ho+pt*Qo+2*iu(of),uf=$*At,ff=ru(An,c),lf=kn*U+_e*g+2*iu(uf),af=j*Gt,pf=ru(de,u),hf=ve*J+ye*b+2*iu(af),df=qu+Pu,vf=ou(Wu,Au),gf=iu(df),mf=Hu+ku+gf,bf=Du+Bu,xf=ou(Qu,Fu),wf=iu(bf),_f=Ru+zu+wf,If=df+Yu,Nf=ou(vf,Vu),Mf=iu(If),Sf=mf+Lu+Mf,Ef=bf+$u,yf=ou(xf,Xu),Of=iu(Ef),Cf=_f+ju+Of,Tf=Gu+nf,Pf=ou(Uu,ef),Af=iu(Tf),kf=Zu+rf+Af,Bf=Ju+of,Ff=ou(Ku,cf),zf=iu(Bf),Yf=tf+sf+zf,Vf=2*(uf+af),Lf=nu(ou(ff,pf)),$f=2*(lf+hf)+iu(Vf),Xf=Y*If,jf=ru(r,Nf),qf=h*Mf+Q*Sf+2*iu(Xf),Wf=V*Ef,Hf=ru(o,yf),Df=d*Of+R*Cf+2*iu(Wf),Qf=z*Tf,Rf=ru(e,Pf),Gf=p*Af+D*kf+2*iu(Qf),Uf=L*Bf,Zf=ru(i,Ff),Jf=v*zf+G*Yf+2*iu(Uf),Kf=Xf+Wf,tl=ou(jf,Hf),nl=qf+Df+iu(Kf),el=3*(Qf+Uf),rl=eu(3,ou(Rf,Zf)),ol=3*(Gf+Jf)+2*iu(el),il=X*Pi,cl=ru(s,Ai),sl=m*ki+Z*Bi+2*iu(il),ul=Kf+el,fl=ou(tl,rl),ll=nl+ol+iu(ul),al=il+Vf,pl=ou(cl,Lf),hl=sl+$f+iu(al),dl=ul+al,vl=ou(fl,pl),gl=ll+hl+iu(dl),ml=Ct+Us,bl=ou(Sn,Zs),xl=iu(ml),wl=En+Ks+xl,_l=2*St+Pt,Il=ou(nu(mn),Cn),Nl=iu(_l),Ml=2*bn+Pn+Nl,Sl=2*Ut+Rt,El=ou(nu(ge),ae),yl=iu(Sl),Ol=2*be+he+yl,Cl=2*S*ml,Tl=eu(2*S,bl),Pl=2*st*wl+iu(Cl),Al=2*C*ml,kl=eu(2*C,bl),Bl=2*at*wl+iu(Al),Fl=Ot+2*Tt,zl=ou(Nn,nu(yn)),Yl=iu(Fl),Vl=Mn+2*On+Yl,Ll=Tt+2*Ot,$l=ou(yn,nu(Nn)),Xl=iu(Ll),jl=On+2*Mn+Xl,ql=C*_l,Wl=eu(C,Il),Hl=at*Ml+iu(ql),Dl=S*Sl,Ql=eu(S,El),Rl=st*Ol+iu(Dl),Gl=nt*Fl,Ul=ru(M,zl),Zl=A*Yl+ut*Vl+2*iu(Gl),Jl=ot*Ll,Kl=ru(O,$l),ta=F*Xl+pt*jl+2*iu(Jl),na=S*_l,ea=eu(S,Il),ra=st*Ml+iu(na),oa=C*Sl,ia=eu(C,El),ca=at*Ol+iu(oa),sa=et*Nt,ua=ru(N,pn),fa=P*hn+ft*dn+2*iu(sa),la=it*Ht,aa=ru(y,oe),pa=B*ie+ht*ce+2*iu(la),ha=Cl+ql,da=ou(Tl,Wl),va=Pl+Hl+iu(ha),ga=Al+Dl,ma=ou(kl,Ql),ba=Bl+Rl+iu(ga),xa=ha+Gl,wa=ou(da,Ul),_a=iu(xa),Ia=va+Zl+_a,Na=ga+Jl,Ma=ou(ma,Kl),Sa=iu(Na),Ea=ba+ta+Sa,ya=na+sa,Oa=ou(ea,ua),Ca=iu(ya),Ta=ra+fa+Ca,Pa=oa+la,Aa=ou(ia,aa),ka=iu(Pa),Ba=ca+pa+ka,Fa=Y*xa,za=ru(r,wa),Ya=h*_a+Q*Ia+2*iu(Fa),Va=V*Na,La=ru(o,Ma),$a=d*Sa+R*Ea+2*iu(Va),Xa=z*ya,ja=ru(e,Oa),qa=p*Ca+D*Ta+2*iu(Xa),Wa=L*Pa,Ha=ru(i,Aa),Da=v*ka+G*Ba+2*iu(Wa),Qa=Xa+Wa,Ra=iu(Qa),Ga=ou(ja,Ha),Ua=qa+Da+Ra,Za=Fa+Va,Ja=ou(za,La),Ka=Ya+$a+iu(Za),tp=Za+3*Qa,np=ou(Ja,eu(3,Ga)),ep=Ka+3*(Ua+Ra)+iu(tp),rp=X*ml,op=ru(s,bl),ip=m*xl+Z*wl+2*iu(rp),cp=$*_l,sp=ru(c,Il),up=g*Nl+U*Ml+2*iu(cp),fp=rp+cp,lp=ou(op,sp),ap=ip+up+iu(fp),pp=j*Sl,hp=ru(u,El),dp=b*yl+J*Ol+2*iu(pp),vp=fp+pp,gp=ou(lp,hp),mp=ap+dp+iu(vp),bp=tp+vp,xp=ou(np,gp),wp=ep+mp+iu(bp),_p=Ot+Tt,Ip=ou(Nn,yn),Np=Mn+On+iu(_p),Mp=Yt+It,Sp=ou(jn,ln),Ep=qn+an+iu(Mp),yp=Mt+bt,Op=ou(vn,en),Cp=gn+rn+iu(yp),Tp=iu(yp),Pp=Dt+Wt,Ap=ou(se,ee),kp=ue+re+iu(Pp),Bp=iu(Pp),Fp=2*_p+Yt,zp=ou(nu(Ip),jn),Yp=2*Np+qn+iu(Fp),Vp=2*_p+It,Lp=ou(nu(Ip),ln),$p=2*Np+an+iu(Vp),Xp=2*kt+yt,jp=ou(nu(Bn),_n),qp=iu(Xp),Wp=2*Fn+In+qp,Hp=2*_t+yt,Dp=ou(nu(un),_n),Qp=iu(Hp),Rp=2*fn+In+Qp,Gp=yp+Mt,Up=ou(Op,vn),Zp=Cp+gn+iu(Gp),Jp=Pp+Dt,Kp=ou(Ap,se),th=kp+ue+iu(Jp),nh=3*S,eh=tu(3,S),rh=nh*Gp,oh=ru(eh,Up),ih=iu(nh)*Zp+2*iu(rh),ch=3*C,sh=tu(3,C),uh=ch*Jp,fh=ru(sh,Kp),lh=iu(ch)*th+2*iu(uh),ah=nt*Nt,ph=ru(M,pn),hh=A*hn+ut*dn+2*iu(ah),dh=ot*Ht,vh=ru(O,oe),gh=F*ie+pt*ce+2*iu(dh),mh=$*yp,bh=ru(c,Op),xh=g*Tp+U*Cp+iu(mh),wh=j*Pp,_h=ru(u,Ap),Ih=b*Bp+J*kp+iu(wh),Nh=Fp+Mp,Mh=ou(zp,Sp),Sh=Yp+Ep+iu(Nh),Eh=Vp+Mp,yh=ou(Lp,Sp),Oh=$p+Ep+iu(Eh),Ch=S*Nh,Th=eu(S,Mh),Ph=st*Sh+iu(Ch),Ah=C*Eh,kh=eu(C,yh),Bh=at*Oh+iu(Ah),Fh=nt*Xp,zh=ru(M,jp),Yh=A*qp+ut*Wp+2*iu(Fh),Vh=ot*Hp,Lh=ru(O,Dp),$h=F*Qp+pt*Rp+2*iu(Vh),Xh=rt*q,jh=ru(I,f),qh=T*K+lt*x+2*iu(Xh),Wh=ct*W,Hh=ru(E,l),Dh=k*tt+dt*w+2*iu(Wh),Qh=Ch+Fh,Rh=ou(Th,zh),Gh=iu(Qh),Uh=Ph+Yh+Gh,Zh=Ah+Vh,Jh=ou(kh,Lh),Kh=iu(Zh),td=Bh+$h+Kh,nd=rh+ah,ed=ou(oh,ph),rd=iu(nd),od=ih+hh+rd,id=uh+dh,cd=ou(fh,vh),sd=iu(id),ud=lh+gh+sd,fd=Mp+_p,ld=ou(Sp,Ip),ad=iu(fd),pd=Ep+Np+ad,hd=2*(mh+wh),dd=nu(ou(bh,_h)),vd=2*(xh+Ih)+iu(hd),gd=Y*Qh,md=ru(r,Rh),bd=h*Gh+Q*Uh+2*iu(gd),xd=V*Zh,wd=ru(o,Jh),_d=d*Kh+R*td+2*iu(xd),Id=z*nd,Nd=ru(e,ed),Md=p*rd+D*od+2*iu(Id),Sd=L*id,Ed=ru(i,cd),yd=v*sd+G*ud+2*iu(Sd),Od=X*fd,Cd=ru(s,ld),Td=m*ad+Z*pd+2*iu(Od),Pd=gd+xd,Ad=ou(md,wd),kd=bd+_d+iu(Pd),Bd=Id+Sd,Fd=ou(Nd,Ed),zd=Md+yd+iu(Bd),Yd=Od+hd,Vd=ou(Cd,dd),Ld=Td+vd+iu(Yd),$d=Xh+Wh,Xd=ou(jh,Hh),jd=qh+Dh+iu($d),qd=Pd+Bd,Wd=ou(Ad,Fd),Hd=kd+zd+iu(qd),Dd=Yd+$d,Qd=ou(Vd,Xd),Rd=Ld+jd+iu(Dd),Gd=qd+Dd,Ud=ou(Wd,Qd),Zd=Hd+Rd+iu(Gd),Jd=yt+kt,Kd=ou(_n,Bn),tv=In+Fn+iu(Jd),nv=yt+_t,ev=ou(_n,un),rv=In+fn+iu(nv),ov=2*Jd+_t,iv=ou(nu(Kd),un),cv=2*tv+fn+iu(ov),sv=2*nv+kt,uv=ou(nu(ev),Bn),fv=2*rv+Fn+iu(sv),lv=S*ov,av=eu(S,iv),pv=st*cv+iu(lv),hv=C*Nt,dv=eu(C,pn),vv=at*dn+iu(hv),gv=C*sv,mv=eu(C,uv),bv=at*fv+iu(gv),xv=S*Ht,wv=eu(S,oe),_v=st*ce+iu(xv),Iv=S*Nt,Nv=eu(S,pn),Mv=st*dn+iu(Iv),Sv=et*vt,Ev=ru(N,Zt),yv=P*xe+2*iu(Sv),Ov=C*Ht,Cv=eu(C,oe),Tv=at*ce+iu(Ov),Pv=it*Xt,Av=ru(y,Zn),kv=B*Se+2*iu(Pv),Bv=lv+hv,Fv=ou(av,dv),zv=pv+vv+iu(Bv),Yv=pv+vv+zv,Vv=gv+xv,Lv=ou(mv,wv),$v=bv+_v+iu(Vv),Xv=bv+_v+$v,jv=Iv+Sv,qv=ou(Nv,Ev),Wv=iu(jv),Hv=Mv+yv+Wv,Dv=Ov+Pv,Qv=ou(Cv,Av),Rv=iu(Dv),Gv=Tv+kv+Rv,Uv=z*jv,Zv=ru(e,qv),Jv=p*Wv+D*Hv+2*iu(Uv),Kv=L*Dv,tg=ru(i,Qv),ng=v*Rv+G*Gv+2*iu(Kv),eg=3*(Uv+Kv),rg=eu(3,ou(Zv,tg)),og=3*(Jv+ng)+2*iu(eg),ig=Jd+_t,cg=ou(Kd,un),sg=iu(ig),ug=tv+fn+sg,fg=2*mt+Nt,lg=ou(nu(tn),pn),ag=iu(fg),pg=2*nn+dn+ag,hg=2*qt+Ht,dg=ou(nu(te),oe),vg=iu(hg),gg=2*ne+ce+vg,mg=Y*Bv,bg=ru(r,Fv),xg=h*zv+Q*Yv+2*iu(mg),wg=V*Vv,_g=ru(o,Lv),Ig=d*$v+R*Xv+2*iu(wg),Ng=X*ig,Mg=ru(s,cg),Sg=m*sg+Z*ug+2*iu(Ng),Eg=$*fg,yg=ru(c,lg),Og=g*ag+U*pg+2*iu(Eg),Cg=j*hg,Tg=ru(u,dg),Pg=b*vg+J*gg+2*iu(Cg),Ag=et*q,kg=ru(N,f),Bg=P*K+ft*x+iu(Ag),Fg=it*W,zg=ru(y,l),Yg=B*tt+ht*w+iu(Fg),Vg=Ag+Fg,Lg=ou(kg,zg),$g=Bg+Yg+iu(Vg),Xg=mg+wg,jg=ou(bg,_g),qg=xg+Ig+iu(Xg),Wg=eg+Ng,Hg=ou(rg,Mg),Dg=og+Sg+iu(Wg),Qg=Eg+Cg,Rg=ou(yg,Tg),Gg=Og+Pg+iu(Qg),Ug=Xg+Wg,Zg=ou(jg,Hg),Jg=qg+Dg+iu(Ug),Kg=Qg+Vg,tm=ou(Rg,Lg),nm=Gg+$g+iu(Kg),em=Ug+Kg,rm=ou(Zg,tm),om=Jg+nm+iu(em),im=Et+wt,cm=ou(xn,cn),sm=iu(im),um=wn+sn+sm,fm=S*Y,lm=eu(S,r),am=iu(fm),pm=st*h+am,hm=C*V,dm=eu(C,o),vm=iu(hm),gm=at*d+vm,mm=im+Et,bm=ou(cm,xn),xm=iu(mm),wm=um+wn+xm,_m=im+wt,Im=ou(cm,cn),Nm=iu(_m),Mm=um+sn+Nm,Sm=nt*vt,Em=ru(M,Zt),ym=iu(Sm),Om=A*xe+2*ym,Cm=Sm*z,Tm=ru(Em,e),Pm=Om*D+ym*p+2*iu(Cm),Am=ot*Xt,km=ru(O,Zn),Bm=iu(Am),Fm=F*Se+2*Bm,zm=Am*L,Ym=ru(km,i),Vm=Fm*G+Bm*v+2*iu(zm),Lm=X*im,$m=ru(s,cm),Xm=m*sm+Z*um+2*iu(Lm),jm=gt*$,qm=ru(Jt,c),Wm=Kt*U+we*g+2*iu(jm),Hm=jt*j,Dm=ru(Jn,u),Qm=Kn*J+Ee*b+2*iu(Hm),Rm=jm+Hm,Gm=ou(qm,Dm),Um=Wm+Qm+iu(Rm),Zm=nt*q,Jm=ru(M,f),Km=A*K+ut*x+iu(Zm),tb=ot*W,nb=ru(O,l),eb=F*tt+pt*w+iu(tb),rb=Zm+tb,ob=ou(Jm,nb),ib=Km+eb+iu(rb),cb=fm*mm,sb=ru(lm,bm),ub=pm*xm+am*wm+2*iu(cb),fb=hm*_m,lb=ru(dm,Im),ab=gm*Nm+vm*Mm+2*iu(fb),pb=cb+fb,hb=ou(sb,lb),db=ub+ab+iu(pb),vb=3*(Cm+zm),gb=eu(3,ou(Tm,Ym)),mb=3*(Pm+Vm)+2*iu(vb),bb=Lm+2*Rm,xb=ou($m,nu(Gm)),wb=Xm+2*Um+iu(bb),_b=pb+vb,Ib=ou(hb,gb),Nb=db+mb+iu(_b),Mb=bb+rb,Sb=ou(xb,ob),Eb=wb+ib+iu(Mb),yb=_b+Mb,Ob=ou(Ib,Sb),Cb=Nb+Eb+iu(yb),Tb=S*z,Pb=eu(S,e),Ab=st*p+iu(Tb),kb=C*Y,Bb=eu(C,r),Fb=at*h+iu(kb),zb=Tb+kb,Yb=ou(Pb,Bb),Vb=Ab+Fb+iu(zb),Lb=S*V,$b=eu(S,o),Xb=st*d+iu(Lb),jb=C*L,qb=eu(C,i),Wb=at*v+iu(jb),Hb=Lb+jb,Db=ou($b,qb),Qb=Xb+Wb+iu(Hb),Rb=zb+$,Gb=ou(Yb,c),Ub=Vb+g+iu(Rb),Zb=Hb+j,Jb=ou(Db,u),Kb=Qb+b+iu(Zb),tx=vt*Rb,nx=ru(Zt,Gb),ex=xe*Ub+2*iu(tx),rx=Xt*Zb,ox=ru(Zn,Jb),ix=Se*Kb+2*iu(rx),cx=tx+rx,sx=ou(nx,ox),ux=ex+ix+iu(cx),fx=xt*X,lx=ru(on,s),ax=Me*m+iu(fx),px=cx+fx,hx=ou(sx,lx),dx=ux+ax+iu(px),vx=S*q,gx=eu(S,f),mx=st*x+iu(vx),bx=C*W,xx=eu(C,l),wx=at*w+iu(bx),_x=vx+bx,Ix=ou(gx,xx),Nx=mx+wx+iu(_x),Mx=px+_x,Sx=ou(hx,Ix),Ex=dx+Nx+iu(Mx),yx=Mx+H,Ox=ou(Sx,a),Cx=Ex+_+iu(yx);return{coeffs:[lr,no,Ci,Rs,vl,xp,Ud,rm,Ob,Ox],errBound:[cu*ar,cu*eo,cu*Ti,cu*Gs,cu*gl,cu*wp,cu*Zd,cu*om,cu*Cb,cu*Cx]}}]],Yf=[[vu,ef,If],[Ou,lf,Cf],[Zu,mf,function(t,n){const e=kt(t);if(0===Ff(e[0][0])&&0===Ff(e[1][0]))return Cf(zu(t),n);const[[r,o,i,[c]],[s,u,f,[l]]]=kt(n);if(0===Ff(r)&&0===Ff(s))return mf(t,zu(n));const{vₓₓₓ:a,vₓₓᵧ:p,vₓᵧᵧ:h,vᵧᵧᵧ:d,vₓₓ:v,vₓᵧ:g,vᵧᵧ:m,vₓ:b,vᵧ:x,v:w}=Wu(e),_=Tf(c,c),I=Pf(c,i),N=Pf(c,o),M=Pf(c,r),S=Tf(c,l),E=Pf(c,f),y=Pf(c,u),O=Pf(c,s),C=Af(i,i),T=Af(i,o),P=Af(i,r),A=Pf(l,i),k=Af(i,f),B=Af(i,u),F=Af(i,s),z=Af(o,f),Y=Af(o,o),V=Af(o,r),L=Pf(l,o),$=Af(o,u),X=Af(o,s),j=Af(r,r),q=Pf(l,r),W=Af(r,f),H=Af(r,u),D=Af(r,s),Q=Tf(l,l),R=Pf(l,f),G=Pf(l,u),U=Pf(l,s),Z=Af(f,f),J=Af(f,u),K=Af(s,s),tt=Af(u,u),nt=Af(u,s),et=Af(f,s),rt=Af(r,j),ot=Af(r,K),it=Af(s,j),ct=Af(s,K),st=Af(rt,a),ut=Af(ot,h),ft=Af(it,p),lt=Af(ct,d),at=kf(st,ut),pt=kf(ft,lt),ht=kf(at,pt),dt=kf(Bf(X),H),vt=kf(Bf(H),X),gt=Af(r,dt),mt=Af(s,vt),bt=Af(o,j),xt=Af(u,K),wt=Af(a,bt),_t=Af(d,xt),It=Af(p,gt),Nt=Af(h,mt),Mt=kf(It,Nt),St=Pf(3,kf(wt,_t)),Et=kf(Mt,St),yt=Af(i,D),Ot=Af(f,j),Ct=Af(o,nt),Tt=Af(i,K),Pt=Af(o,H),At=Af(s,Y),Bt=Af(r,et),Ft=Af(u,H),zt=kf(yt,Pt),Yt=kf(Ot,At),Vt=kf(Ct,Bt),Lt=kf(Tt,Ft),$t=kf(P,Y),Xt=kf(et,tt),jt=kf(Bf(zt),Yt),qt=kf(Bf(Vt),Lt),Wt=Af(p,jt),Ht=Af(h,qt),Dt=Af(r,$t),Qt=Af(s,Xt),Rt=Af(a,Dt),Gt=Af(d,Qt),Ut=kf(Wt,Ht),Zt=Pf(3,kf(Rt,Gt)),Jt=kf(Ut,Zt),Kt=kf(X,H),tn=Af(u,Y),nn=Bf(Af(i,Kt)),en=kf(tn,nn),rn=Bf(kf(O,z)),on=kf(rn,q),cn=Af(r,on),sn=kf(en,cn),un=Af(o,tt),fn=Bf(Af(f,Kt)),ln=kf(un,fn),an=Bf(kf(B,q)),pn=kf(an,O),hn=Af(s,pn),dn=kf(ln,hn),vn=Af(o,Y),gn=kf(Bf(T),M),mn=Af(Pf(3,r),gn),bn=kf(vn,mn),xn=Af(u,tt),wn=kf(Bf(J),U),_n=Af(Pf(3,s),wn),In=kf(xn,_n),Nn=Af(p,sn),Mn=Af(h,dn),Sn=kf(Nn,Mn),En=Af(a,bn),yn=Af(d,In),On=kf(En,yn),Cn=Af(j,v),Tn=Af(K,m),Pn=kf(Cn,Tn),An=Af(D,g),kn=kf(Sn,On),Bn=kf(Pn,An),Fn=kf(kn,Bn),zn=kf($,W),Yn=kf(F,$),Vn=Pf(c,Kt),Ln=Pf(l,Kt),$n=Af(i,zn),Xn=Af(f,Yn),jn=kf(Bf(q),z),qn=kf(Bf(O),B),Wn=Af(s,C),Hn=Af(r,Z),Dn=Af(o,jn),Qn=Af(u,qn),Rn=Bf(kf(Vn,$n)),Gn=Bf(kf(Ln,Xn)),Un=Bf(Pf(c,V)),Zn=Bf(Pf(l,nt)),Jn=Af(i,$t),Kn=Af(f,Xt),te=Af(V,v),ne=Af(nt,m),ee=kf(Rn,Wn),re=kf(Gn,Hn),oe=kf(ee,Dn),ie=kf(re,Qn),ce=kf(Un,Jn),se=kf(Zn,Kn),ue=Bf(kf(te,ne)),fe=Af(p,oe),le=Af(h,ie),ae=Af(a,ce),pe=Af(d,se),he=kf(fe,le),de=Pf(3,kf(ae,pe)),ve=Af(g,Kt),ge=kf(he,de),me=kf(ve,ue),be=kf(ge,me),xe=kf(F,zn),we=kf(Bf(P),Y),_e=kf(Bf(et),tt),Ie=Pf(2*c,xe),Ne=Pf(2*l,xe),Me=kf(B,Bf(z)),Se=kf(z,Bf(B)),Ee=Pf(l,we),ye=Pf(c,_e),Oe=Af(i,Me),Ce=Af(f,Se),Te=Pf(c,we),Pe=Pf(l,_e),Ae=Af(o,C),ke=Af(u,Z),Be=kf(Ie,Ee),Fe=kf(Ne,ye),ze=kf(Be,Oe),Ye=kf(Fe,Ce),Ve=kf(Te,Ae),Le=kf(Pe,ke),$e=Af(p,ze),Xe=Af(h,Ye),je=Af(a,Ve),qe=Af(d,Le),We=kf(je,qe),He=kf($e,Xe),De=kf(He,Pf(3,We)),Qe=Af(g,xe),Re=Af(v,we),Ge=kf(Qe,Re),Ue=Af(m,_e),Ze=kf(Ge,Ue),Je=kf(De,Ze),Ke=kf(B,z),tr=kf(q,O),nr=kf(T,M),er=kf(J,U),rr=kf(Bf(Ke),q),or=kf(Bf(Ke),O),ir=kf(Bf(L),k),cr=kf(Bf(y),k),sr=kf(nr,T),ur=kf(er,J),fr=Af(Tf(3,c),sr),lr=Af(Tf(3,l),ur),ar=Af(i,C),pr=Af(f,Z),hr=Af(v,nr),dr=Af(m,er),vr=kf(rr,tr),gr=kf(or,tr),mr=Pf(c,vr),br=Pf(l,gr),xr=Af(i,ir),wr=Af(f,cr),_r=Af(r,b),Ir=Af(s,x),Nr=kf(mr,xr),Mr=kf(br,wr),Sr=kf(fr,ar),Er=kf(lr,pr),yr=kf(tr,Ke),Or=Bf(kf(hr,dr)),Cr=Af(p,Nr),Tr=Af(h,Mr),Pr=Af(a,Sr),Ar=Af(d,Er),kr=Af(g,yr),Br=kf(Cr,Tr),Fr=kf(Pr,Ar),zr=kf(kr,Or),Yr=kf(_r,Ir),Vr=kf(Br,Fr),Lr=kf(zr,Yr),$r=kf(Vr,Lr),Xr=kf(k,L),jr=kf(k,y),qr=kf(Bf(Xr),y),Wr=kf(Bf(jr),L),Hr=Pf(c,qr),Dr=Pf(l,C),Qr=Pf(l,Wr),Rr=Pf(c,Z),Gr=Pf(c,C),Ur=Af(o,_),Zr=Pf(l,Z),Jr=Af(u,Q),Kr=kf(Hr,Dr),to=kf(Qr,Rr),no=kf(Gr,Ur),eo=kf(Zr,Jr),ro=Af(a,no),oo=Af(d,eo),io=Pf(3,kf(ro,oo)),co=kf(Xr,y),so=kf(Bf(N),C),uo=kf(Bf(G),Z),fo=Af(p,Kr),lo=Af(h,to),ao=Af(g,co),po=Af(v,so),ho=Af(m,uo),vo=Af(o,b),go=Af(u,x),mo=kf(vo,go),bo=kf(fo,lo),xo=kf(io,ao),wo=kf(po,ho),_o=kf(bo,xo),Io=kf(wo,mo),No=kf(_o,Io),Mo=kf(A,E),So=Pf(c,p),Eo=Pf(l,h),yo=kf(Mo,A),Oo=kf(Mo,E),Co=Af(i,_),To=Af(Co,a),Po=Af(f,Q),Ao=Af(Po,d),ko=Af(g,Mo),Bo=Af(I,v),Fo=Af(R,m),zo=kf(Bo,Fo),Yo=Af(i,b),Vo=Af(f,x),Lo=kf(Yo,Vo),$o=Af(So,yo),Xo=Af(Eo,Oo),jo=kf($o,Xo),qo=Pf(3,kf(To,Ao)),Wo=kf(ko,Bf(zo)),Ho=kf(jo,qo),Do=kf(Wo,Lo),Qo=kf(Ho,Do),Ro=Pf(c,a),Go=Pf(l,p),Uo=kf(Ro,Go),Zo=Pf(c,h),Jo=Pf(l,d),Ko=kf(Zo,Jo),ti=kf(Uo,v),ni=kf(Ko,m),ei=Af(_,ti),ri=Af(Q,ni),oi=kf(ei,ri),ii=Af(S,g),ci=kf(oi,ii),si=Pf(c,b),ui=Pf(l,x),fi=kf(si,ui),li=kf(ci,fi);return[ht,Et,Jt,Fn,be,Je,$r,No,Qo,kf(li,w)]}]];function Vf(t,n){const{coeffs:e,errBound:r}=zf[t.length-2][n.length-2](t,n);return{coeffs:e,errBound:r,getPExact:()=>Yf[t.length-2][n.length-2](t,n)}}const Lf=134217729;function $f(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r/i,s=i*c,u=Lf*i,f=u-(u-i),l=i-f,a=Lf*c,p=a-(a-c),h=c-p,d=o*c,v=s+d,g=d-(v-s)+(l*h-(s-f*p-l*p-f*h)),m=v+g,b=(r-m+(e-(g-(m-v))))/i,x=c+b;return[b-(x-c),x]}const Xf=$f,jf=Number.EPSILON/2,qf=jf*jf,Wf=x,Hf=x,Df=x,Qf=lr,Rf=fr,Gf=Ir,Uf=b,Zf=Po,Jf=Number.EPSILON/2,Kf=Jf*Jf,tl=Math.abs,nl=Df,el=[0,1],rl=Qf,ol=Uf,il=Rf,cl=Gf,sl=Zf,ul=function(t,n,e,r){const o=t[0],i=t[1],c=n[0],s=n[1],u=Xf(t,n),f=Math.abs(o+i),l=Math.abs(c+s),a=l-jf*l-r;return a<=0?{est:u,err:Number.POSITIVE_INFINITY}:{est:u,err:(l*e+f*r)/a**2+9*qf*Math.abs(f/l)}},fl=function(t,n){return Wf(t,n)[1]>0?n:t},ll=function(t,n){return Hf(t,n)[1]>0?t:n},al=U(3);function pl(t,n){return n[0][0]!==n[1][0]||n[0][1]!==n[1][1]?4===t.length?function([[t,n],[e,r],[o,i],[c,s]],[u,f]){const l=nl(f,u),a=3*Kf*tl(l[1]),p=nl(el,u),h=3*Kf*tl(p[1]),d=ul(l,p,a,h);f=rl(d.est,d.err);const v=nl(el,u),g=il(u,u),m=il(u,v),b=il(v,v),x=il(g,u),w=il(g,v),_=il(b,u),I=il(b,v),N=nl(el,f),M=il(f,f),S=il(f,N),E=il(N,N),y=il(M,f),O=il(M,N),C=il(E,f),T=il(E,N),P=tl(u[1]),A=tl(v[1]),k=tl(g[1]),B=tl(m[1]),F=tl(b[1]),z=tl(x[1]),Y=tl(w[1]),V=tl(_[1]),L=tl(I[1]),$=tl(f[1]),X=tl(N[1]),j=tl(M[1]),q=tl(S[1]),W=tl(E[1]),H=tl(y[1]),D=tl(O[1]),Q=tl(C[1]),R=tl(T[1]);let G=tl(t),U=tl(n),Z=tl(e),J=tl(r),K=tl(o),tt=tl(i),nt=tl(c),et=tl(s);const rt=ol(cl(c,u),cl(o,v)),ot=ol(ol(cl(c,g),cl(2*o,m)),cl(e,b)),it=ol(ol(cl(c,x),cl(t,I)),cl(3,ol(cl(o,w),cl(e,_)))),ct=ol(il(ot,f),il(it,N)),st=ol(ol(il(rt,M),il(it,E)),il(sl(ot),S)),ut=ol(ol(cl(c,y),il(it,T)),cl(3,ol(il(rt,O),il(ot,C)))),ft=tl(it[1]),lt=nt*P+K*A,at=nt*k+2*K*B+Z*F;G=nt*z+G*L+3*(K*Y+Z*V),Z=at*$+ft*X,K=lt*j+ft*W+2*at*q,nt=nt*H+ft*R+3*(lt*D+at*Q),G*=11*Kf,Z*=15*Kf,K*=20*Kf,nt*=22*Kf;const pt=ol(cl(s,u),cl(i,v)),ht=ol(ol(cl(s,g),cl(2*i,m)),cl(r,b)),dt=ol(ol(cl(s,x),cl(n,I)),cl(3,ol(cl(i,w),cl(r,_)))),vt=ol(il(ht,f),il(dt,N)),gt=ol(ol(il(pt,M),il(dt,E)),il(sl(ht),S)),mt=ol(ol(cl(s,y),il(dt,T)),cl(3,ol(il(pt,O),il(ht,C)))),bt=tl(dt[1]),xt=et*P+tt*A,wt=et*k+2*tt*B+J*F;U=et*z+U*L+3*(tt*Y+J*V),J=wt*$+bt*X,tt=xt*j+bt*W+2*wt*q,et=et*H+bt*R+3*(xt*D+wt*Q),U*=11*Kf,J*=15*Kf,tt*=20*Kf,et*=22*Kf;const _t=fl(fl(rl(it,-G),rl(ct,-Z)),fl(rl(st,-K),rl(ut,-nt))),It=ll(ll(rl(it,+G),rl(ct,+Z)),ll(rl(st,+K),rl(ut,+nt)));return[[_t,fl(fl(rl(dt,-U),rl(vt,-J)),fl(rl(gt,-tt),rl(mt,-et)))],[It,ll(ll(rl(dt,+U),rl(vt,+J)),ll(rl(gt,+tt),rl(mt,+et)))]]}(t,n):3===t.length?function([[t,n],[e,r],[o,i]],[c,s]){const u=nl(s,c),f=3*Kf*tl(u[1]),l=nl(el,c),a=3*Kf*tl(l[1]),p=ul(u,l,f,a);s=rl(p.est,p.err);const h=nl(el,c),d=il(c,c),v=il(c,h),g=il(h,h),m=nl(el,s),b=il(s,s),x=il(s,m),w=il(m,m),_=tl(c[1]),I=tl(h[1]),N=tl(d[1]),M=tl(v[1]),S=tl(g[1]),E=tl(s[1]),y=tl(m[1]),O=tl(b[1]),C=tl(x[1]),T=tl(w[1]);let P=tl(t),A=tl(n),k=tl(e),B=tl(r),F=tl(o),z=tl(i);const Y=ol(ol(cl(o,d),cl(2*e,v)),cl(t,g)),V=ol(cl(o,c),cl(e,h)),L=Y,$=ol(il(s,V),il(m,Y)),X=ol(ol(cl(o,b),il(sl(x),V)),il(w,Y)),j=F*N+2*k*M+P*S,q=F*_+k*I;P=j,k=E*q+y*j,F=O*o+2*C*q+T*j,P*=7*Kf,k*=11*Kf,F*=14*Kf;const W=ol(ol(cl(i,d),cl(2*r,v)),cl(n,g)),H=ol(cl(i,c),cl(r,h)),D=W,Q=ol(il(s,H),il(m,W)),R=ol(ol(cl(i,b),il(sl(x),H)),il(w,W)),G=z*N+2*B*M+A*S,U=z*_+B*I;A=G,B=E*U+y*G,z=O*i+2*C*U+T*G,A*=7*Kf,B*=11*Kf,z*=14*Kf;const Z=fl(fl(rl(L,-P),rl($,-k)),rl(X,-F)),J=ll(ll(rl(L,+P),rl($,+k)),rl(X,+F));return[[Z,fl(fl(rl(D,-A),rl(Q,-B)),rl(R,-z))],[J,ll(ll(rl(D,+A),rl(Q,+B)),rl(R,+z))]]}(t,n):function([[t,n],[e,r]],[o,i]){const c=nl(i,o),s=3*Kf*tl(c[1]),u=nl(el,o),f=3*Kf*tl(u[1]),l=ul(c,u,s,f);i=rl(l.est,l.err);const a=nl(el,o),p=nl(el,i),h=tl(o[1]),d=tl(a[1]),v=tl(i[1]),g=tl(p[1]);let m=tl(t),b=tl(n),x=tl(e),w=tl(r);const _=ol(cl(e,o),cl(t,a)),I=ol(cl(e,i),il(_,p));m=x*h+m*d,x=x*v+m*g,m*=3*Jf,x*=7*Jf;const N=ol(cl(r,o),cl(n,a)),M=ol(cl(r,i),il(N,p));b=w*h+b*d,w=w*v+b*g,b*=3*Jf,w*=7*Jf;const S=fl(rl(_,-m),rl(I,-x)),E=ll(rl(_,+m),rl(I,+x));return[[S,fl(rl(N,-b),rl(M,-w))],[E,ll(rl(N,+b),rl(M,+w))]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n[0]&&0===n[1]){const t=[0,e[0]],n=[0,e[1]];return[[t,n],[t,n]]}if(0===n[0]&&1===n[1]){const t=[0,r[0]],n=[0,r[1]];return[[t,n],[t,n]]}const o=gr(t,n);let i;if(4===t.length)i=xo(t,n).map(t=>16*al*t);else if(3===t.length)i=xo(t,n).map(t=>10*al*t);else if(2===t.length)i=xo(t,n).map(t=>4*al*t);else if(1===t.length)return[o,o];return[[rl(o[0],-i[0]),rl(o[1],-i[1])],[rl(o[0],+i[0]),rl(o[1],+i[1])]]}(t,n[0])}function hl(t){return(n,e)=>{let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;return(o[1]>c[1]||o[1]===c[1]&&o[0]>c[0])&&([o,c]=[c,o]),(u[1]>l[1]||u[1]===l[1]&&u[0]>l[0])&&([u,l]=[l,u]),(r[1]>i[1]||r[1]===i[1]&&r[0]>i[0])&&([r,i]=[i,r]),(s[1]>f[1]||s[1]===f[1]&&s[0]>f[0])&&([s,f]=[f,s]),t?(r[1]<f[1]||r[1]===f[1]&&r[0]<=f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>=s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<=c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>=o[0]):(r[1]<f[1]||r[1]===f[1]&&r[0]<f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>o[0])}}function dl(t){return[((n=t.x.box)[0][0]+n[1][0])/2,(n[0][1]+n[1][1])/2];var n}function vl(t,n){const e=Vf(t,n);if(void 0===e)return;const{coeffs:r,errBound:o,getPExact:i}=e,c=ho(r,0,1,o,i);return 0!==c.length?{ris:c.map(Oc),getPExact:i}:void 0}function gl(t){return{tS:ht(t.tS),tE:ht(t.tE),multiplicity:t.multiplicity}}function ml(t,n){const e=vl(t,n);if(void 0===e)return[];const{getPExact:r}=e;let o,{ris:i}=e;const c=()=>(o=o||r(),o),s=vl(n,t);if(void 0===s)return[];let{ris:u}=s;const{getPExact:f}=s;let l;const a=()=>(l=l||f(),l);let p;p=1;let h,d=0;t:for(;d<p;){h=u.map(n=>pl(t,[n.tS,n.tE]));for(let t=0;t<u.length;t++){const n=h[t];for(let e=t+1;e<u.length;e++){const t=h[e];if(hl(!0)(n,t)){const t=[];for(const n of u)t.push(...Li({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},a()));u=t,d++;continue t}}}break t}p=1;let v,g=0;t:for(;g<p;){v=i.map(t=>pl(n,[t.tS,t.tE]));for(let t=0;t<i.length;t++){const n=v[t];for(let e=t+1;e<i.length;e++){const t=v[e];if(hl(!0)(n,t)){const t=[];for(const n of i)t.push(...Li({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},c()));i=t,g++;continue t}}}break t}const m=[];for(let t=0;t<u.length;t++){const n=h[t];for(let e=0;e<i.length;e++){const o=v[e];if(hl(!0)(n,o)){const c={compensated:d,ri:gl(u[t]),riExp:d?u[t]:void 0,getPExact:d?void 0:f,kind:1,box:bl(n)},s={compensated:g,ri:gl(i[e]),riExp:g?i[e]:void 0,getPExact:g?void 0:r,kind:1,box:bl(o)};m.push({psX:c,sideX:s})}}}return m}function bl(t){return t.map(t=>t.map(ht))}function xl(t,n){return function(t,n){const e=t.xs,r=[],o=new Map;for(const t of e){const n=t.curve,e=o.get(n);e?e.push(t):o.set(n,[t])}const i=function(t){const[[n,e],[r,o]]=t.box,i=[[[r,e],[n,e]],[[n,e],[n,o]],[[n,o],[r,o]],[[r,o],[r,e]]];return(n,e,r)=>{const o=n.ps,c=e.slice();for(let t=0;t<i.length;t++){const n=ml(o,i[t]);for(const{psX:e,sideX:r}of n)c.push({x:e,side:t,sideX:r,curve:void 0})}c.sort((t,n)=>t.x.ri.tS-n.x.ri.tS);const s=[],u=[];let f,l;for(const n of c)void 0!==n.side?(!0===l&&(u.push({idx:++r,dir:1,p:dl(n),_x_:f,container:t,side:n.side,sideX:n.sideX,loopsIdxs:new Set,children:new Set,windingNum:0,orientation:0}),f.out=u[u.length-1]),l=!1):(!1===l&&(s.push({idx:++r,dir:-1,p:dl(f),_x_:n,container:t,side:f.side,sideX:f.sideX,loopsIdxs:new Set,children:new Set,windingNum:0,orientation:0}),n.in_=s[s.length-1]),l=!0),f=n;return{ins:s,outs:u,ioIdx:r}}}(t);for(const t of o){const[e,o]=t;let c,s;({ins:c,outs:s,ioIdx:n}=i(e,o,n)),r.push(...c),r.push(...s)}return{inOuts:r,ioIdx:n}}(t,n)}function wl(t,n,e,r){const o=[];for(const r of t)o.push({type:-1,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(_l);const i=new Set,c=[];for(const t of o){const{item:n,type:e}=t;if(-1===e){for(const t of i){const e=r(n,t);e&&c.push({a:n,b:t,u:e})}i.add(n)}else 1===e&&i.delete(n)}return c}function _l(t,n){const e=t.x-n.x;return 0!==e?e:t.type}function Il(t,n){const e=n[0]-t[0],r=n[1]-t[1];return e*e+r*r}function Nl(t,n,e){const r=n[0]-t[0],o=n[1]-t[1];return r*(e[0]-n[0])+o*(e[1]-n[1])}const Ml=function(t,n){if(0===t.length)return;const e=t.slice(),r=function(t){let n,e=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY];for(let r=0;r<t.length;r++){const o=t[r][1];(o<e[1]||o===e[1]&&t[r][0]<e[0])&&(n=r,e=t[r])}return n}(e),[o]=e.splice(r,1);e.sort((t,n)=>{let e=-gt(o,t,n);return 0!==e?e:(e=t[1]-n[1],0!==e?e:t[0]-n[0])}),e.unshift(o);const i=function(t){const n=[t[0]],e=t.length;for(let r=1;r<t.length;r++){const o=t[(r+e-1)%e],i=t[r];o[0]===i[0]&&o[1]===i[1]||n.push(i)}return n}(e),c=[];for(const t of i){for(;c.length>=2&&gt(c[c.length-2],c[c.length-1],t)<0;)c.pop();c.push(t)}if(n||c.length<3)return c;const s=[];{const t=c.length;for(let n=0;n<t;n++){const e=(n+1)%t,r=c[(n+t-1)%t],o=c[n],i=c[e];(0!==gt(r,o,i)||Nl(r,o,i)<0)&&s.push(o)}}return s},Sl=b,El=q,yl=k,Ol=H,Cl=ht,Tl=fr,Pl=Pi,Al=Math.abs,kl=U(3);const Bl=Math.abs;const Fl=Math.abs,zl=fr,Yl=b,Vl=q,Ll=k,$l=H,Xl=ht,jl=Pi,ql=Math.abs,Wl=G(1),Hl=U(3);function Dl(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓ:n,vₓᵧ:e,vᵧᵧ:r,vₓ:o,vᵧ:i,v:f}=function(t){const[[n,e,r],[o,i,c]]=Zi(t),s=n*i-e*o,u=n*c-r*o;return{vₓₓ:-o*o,vₓᵧ:2*n*o,vᵧᵧ:-n*n,vₓ:i*s-2*o*u,vᵧ:2*n*u-e*s,v:s*(e*c-r*i)-u*u}}(t),{vₓₓ_:l,vₓᵧ_:a,vᵧᵧ_:p,vₓ_:h,vᵧ_:d,v_:v}=function(t){const[n,e]=t[0],[[r,o],[i,c]]=function(t){const[[n,e],[r,o],[i,c]]=t,s=Bl(n),u=Bl(r),f=Bl(i),l=Bl(e),a=Bl(o);return[[f+s+2*u,2*(u+s),0],[Bl(c)+l+2*a,2*(a+l),0]]}(t),s=Fl(n),u=Fl(e),f=r*c+o*i,l=r*u+s*i;return{vₓₓ_:i*i,vₓᵧ_:2*r*i,vᵧᵧ_:r*r,vₓ_:c*f+2*i*l,vᵧ_:2*r*l+o*f,v_:f*(o*u+s*c)+l*l}}(t),g=u?0:1,m=ql(c),b=ql(s);if((g+12)*Wl*(l*(m*m)+a*(m*b)+p*(b*b)+(h*m+d*b)+v)<ql(n*c*c+e*c*s+r*s*s+(o*c+i*s)+f))return!1}{const{coeffs:{vₓₓ:n,vₓᵧ:o,vᵧᵧ:i,vₓ:u,vᵧ:f,v:l},errorBound:{vₓₓ_:a,vₓᵧ_:p,vᵧᵧ_:h,vₓ_:d,vᵧ_:v,v_:g}}=ts(t),m=jl(e),b=jl(r),x=ql(c),w=ql(s),_=x/3,I=w/3,N=zl(m,m),M=N[1],S=2*(x*_+M),E=zl(b,b),y=E[1],O=2*(w*I+y),C=zl(m,b),T=ql(C[1]),P=x*I+_*w+2*T,A=zl(n,N),k=ql(n[1])*S+a*M+2*ql(A[1]),B=zl(o,C),F=ql(o[1])*P+p*T+2*ql(B[1]),z=zl(i,E),Y=ql(i[1])*O+h*y+2*ql(z[1]),V=zl(m,u),L=ql(u[1])*_+d*x+2*ql(V[1]),$=zl(b,f),X=ql(f[1])*I+v*w+2*ql($[1]),j=Yl(A,B),q=k+F+ql(j[1]),W=Yl(j,z),H=q+Y+ql(W[1]),D=Yl(V,$),Q=L+X+ql(D[1]),R=Yl(W,D),G=H+Q+ql(R[1]),U=Yl(R,l),Z=G+g+ql(U[1]);if(Hl*Z<ql(Xl(U)))return!1}{const n=function(t){return _u(Bt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓ:o,vₓᵧ:i,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=n,h=Ll(Ll(Ll(Vl(o,Vl(e,e)),Vl(i,Vl(e,r))),Vl(f,Vl(r,r))),Ll(Ll(Vl(e,l),Vl(r,a)),p));return 0===$l(h)}}const Ql=Math.abs,Rl=fr,Gl=b,Ul=q,Zl=k,Jl=H,Kl=ht,ta=Pi,na=Math.abs,ea=G(1),ra=U(3);function oa(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓₓ:n,vₓₓᵧ:e,vₓᵧᵧ:r,vᵧᵧᵧ:o,vₓₓ:i,vₓᵧ:f,vᵧᵧ:l,vₓ:a,vᵧ:p,v:h}=function(t){const[[n,e,r,o],[i,c,s,u]]=Ui(t),f=n*s,l=r*i,a=n*c,p=e*i,h=n*n,d=i*i,v=n*u-o*i,g=f-l,m=a-p,b=e*u-o*c,x=e*s-r*c,w=r*u-o*s,_=2*g,I=v*v,N=v*x,M=_*b,S=m*b,E=-3*v-x,y=-3*I-2*N+(M+m*w),O=2*(v*g-S),C=v*m-g*g+m*x;return{vₓₓₓ:-i*d,vₓₓᵧ:3*n*d,vₓᵧᵧ:-3*i*h,vᵧᵧᵧ:n*h,vₓₓ:E*d+m*(s*i-c*c)+_*c*i,vₓᵧ:2*(m*(e*c-(l+f)/2)-(E*n*i+g*(p+a))),vᵧᵧ:E*h+m*(r*n-e*e)+_*e*n,vₓ:i*y+(c*O+s*C),vᵧ:-n*y-(e*O+r*C),v:v*(M-I-N)+(C*w-S*b)}}(t),{vₓₓₓ_:d,vₓₓᵧ_:v,vₓᵧᵧ_:g,vᵧᵧᵧ_:m,vₓₓ_:b,vₓᵧ_:x,vᵧᵧ_:w,vₓ_:_,vᵧ_:I,v_:N}=function(t){const[n,e]=t[0],[[r,o,i],[c,s,u]]=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Bl(n),l=Bl(r),a=Bl(i),p=Bl(s),h=Bl(e),d=Bl(o),v=Bl(c);return[[p+f+3*(l+a),3*(a+f+2*l),3*(l+f),0],[Bl(u)+h+3*(d+v),3*(v+h+2*d),3*(d+h),0]]}(t),f=Ql(n),l=Ql(e),a=r*u,p=i*c,h=r*s,d=o*c,v=r*r,g=c*c,m=r*l+f*c,b=a+p,x=h+d,w=o*l+f*s,_=o*u+i*s,I=i*l+f*u,N=2*b,M=m*m,S=m*_,E=N*w,y=x*w,O=3*m+_,C=3*M+2*S+(E+x*I),T=2*(m*b+y),P=m*x+b*b+x*_;return{vₓₓₓ_:c*g,vₓₓᵧ_:3*r*g,vₓᵧᵧ_:3*c*v,vᵧᵧᵧ_:r*v,vₓₓ_:O*g+x*(u*c+s*s)+N*s*c,vₓᵧ_:2*(x*(o*s+(p+a)/2)+(O*r*c+b*(d+h))),vᵧᵧ_:O*v+x*(i*r+o*o)+N*o*r,vₓ_:c*C+(s*T+u*P),vᵧ_:r*C+(o*T+i*P),v_:m*(E+M+S)+(P*I+y*w)}}(t),M=c*c,S=s*s,E=n*(M*c)+e*(M*s)+(r*(c*S)+o*(S*s))+(i*M+f*(c*s)+l*S)+(a*c+p*s+h),y=u?0:1,O=na(c),C=na(s),T=O*O,P=C*C;if((y+26)*ea*(d*(T*O)+v*(T*C)+(g*(O*P)+m*(P*C))+(b*T+x*(O*C)+w*P)+(_*O+I*C+N))<na(E))return!1}{const{coeffs:{vₓₓₓ:n,vₓₓᵧ:o,vₓᵧᵧ:i,vᵧᵧᵧ:u,vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d},errorBound:{vₓₓₓ_:v,vₓₓᵧ_:g,vₓᵧᵧ_:m,vᵧᵧᵧ_:b,vₓₓ_:x,vₓᵧ_:w,vᵧᵧ_:_,vₓ_:I,vᵧ_:N,v_:M}}=vs(t),S=na(n[1]),E=na(o[1]),y=na(i[1]),O=na(u[1]),C=ta(e),T=ta(r),P=na(c),A=na(s),k=P/3,B=A/3,F=Rl(C,C),z=F[1],Y=2*(P*k+z),V=Rl(C,F),L=na(V[1]),$=P*Y+k*z+2*L,X=Rl(T,T),j=X[1],q=2*(A*B+j),W=Rl(T,X),H=na(W[1]),D=A*q+B*j+2*H,Q=Rl(T,F),R=na(Q[1]),G=A*Y+B*z+2*R,U=Rl(C,X),Z=na(U[1]),J=P*q+k*j+2*Z,K=Rl(C,T),tt=na(K[1]),nt=P*B+k*A+2*tt,et=Rl(n,V),rt=S*$+v*L+2*na(et[1]),ot=Rl(o,Q),it=E*G+g*R+2*na(ot[1]),ct=Rl(i,U),st=y*J+m*Z+2*na(ct[1]),ut=Rl(u,W),ft=O*D+b*H+2*na(ut[1]),lt=Rl(f,F),at=na(f[1])*Y+x*z+2*na(lt[1]),pt=Rl(l,K),ht=na(l[1])*nt+w*tt+2*na(pt[1]),dt=Rl(a,X),vt=na(a[1])*q+_*j+2*na(dt[1]),gt=Rl(C,p),mt=na(p[1])*k+I*P+2*na(gt[1]),bt=Rl(T,h),xt=na(h[1])*B+N*A+2*na(bt[1]),wt=Gl(et,ot),_t=rt+it+na(wt[1]),It=Gl(ct,ut),Nt=st+ft+na(It[1]),Mt=Gl(wt,It),St=_t+Nt+na(Mt[1]),Et=Gl(lt,pt),yt=at+ht+na(Et[1]),Ot=Gl(Et,dt),Ct=yt+vt+na(Ot[1]),Tt=Gl(Mt,Ot),Pt=St+Ct+na(Tt[1]),At=Gl(gt,bt),kt=mt+xt+na(At[1]),Bt=Gl(At,d),Ft=kt+M+na(Bt[1]),zt=Gl(Tt,Bt),Yt=Pt+Ft+na(zt[1]);if(ra*Yt<na(Kl(zt)))return!1}{const n=function(t){return Wu(kt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓₓ")||(n.vₓₓₓ=[0],n.vₓₓᵧ=[0],n.vₓᵧᵧ=[0],n.vᵧᵧᵧ=[0]),n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓₓ:o,vₓₓᵧ:i,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=n,m=Ul(e,e),b=Ul(e,m),x=Ul(r,r),w=Ul(r,x),_=Ul(r,m),I=Ul(e,x),N=Ul(e,r),M=Ul(o,b),S=Ul(i,_),E=Ul(f,I),y=Ul(l,w),O=Ul(a,m),C=Ul(p,N),T=Ul(h,x),P=Ul(e,d),A=Ul(r,v),k=Zl(M,S),B=Zl(E,y),F=Zl(k,B),z=Zl(O,C),Y=Zl(z,T),V=Zl(F,Y),L=Zl(P,A),$=Zl(L,g),X=Zl(V,$);return 0===Jl(X)}}function ia(t,n){const{coeffs:e,errBound:r,getPExact:o}=Vf(t,n);return ho(e,0,1,r,o,!0)}const ca=Math.min,sa=Math.max;function ua(t,n){let[[e,r],[o,i]]=t,[[c,s],[u,f]]=n;if(e>o&&([e,o]=[o,e]),c>u&&([c,u]=[u,c]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]),e<=u&&o>=c&&s<=i&&f>=r)return[[sa(e,c),sa(r,s)],[ca(o,u),ca(i,f)]]}function fa(t,n,e){if(void 0===e)return;if(0===e.length)return[];const r=ia(n,t);if(void 0===r)return;if(0===r.length)return[];const o=r.map(n=>Mo(t,[n.tS,n.tE])),i=e.map(t=>Mo(n,[t.tS,t.tE])),c=[];for(let t=0;t<r.length;t++){const n=o[t];for(let o=0;o<e.length;o++){const s=ua(n,i[o]);if(void 0!==s){const n={ri:r[t],box:s,kind:1},i={ri:e[o],box:s,kind:1};c.push([n,i])}}}return c}function la(t,n,e){for(const r of[t,n]){const o=r.length;for(let i=1;i<o+1;i++){const c=r[i-1],s=r[i%o],u=[s[1]-c[1],c[0]-s[0]];let f=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let n=0;n<t.length;n++){const e=u[0]*t[n][0]+u[1]*t[n][1];e<f&&(f=e),e>l&&(l=e)}let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(let t=0;t<n.length;t++){const e=u[0]*n[t][0]+u[1]*n[t][1];e<a&&(a=e),e>p&&(p=e)}if(e&&(l<a||p<f))return!1;if(!e&&(l<=a||p<=f))return!1}}return!0}function aa(t){return 4===t.length&&pt(t)&&(t=zu(t)),3===t.length&&rt(t)&&(t=[t[0],t[2]]),2===t.length&&Z(t)&&(t=[t[0]]),t}const pa=Number.EPSILON,ha=pa/2;function da(t,n){return n<0?t<1?t:1-ha:0===n?1:t>1?t:1+pa}function va(t){const n=function(t){const n=new ArrayBuffer(8);return new DataView(n).setFloat64(0,t,!1),Array.from(new Uint8Array(n))}(t),e=n[0],r=n[1],o=e>>7,i=((127&e)<<4)+((240&r)>>4),c=0===i?0:16,s=0===i?i-1022:i-1023,u=n.slice(1);return u[0]=(15&r)+c,{sign:o,exponent:s,significand:u}}function ga(t){return va(t).significand}function ma(t){return Math.log2(t&-t)}function ba(t){if(0===t||!Number.isFinite(t))return NaN;const n=ga(t),e=n.length;for(let t=e-1;t>=0;t--){if(0===n[t])continue;const r=ma(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function xa(t){return t>=128?7:t>=64?6:t>=32?5:t>=16?4:t>=8?3:t>=4?2:t>=2?1:t>=1?0:NaN}function wa(t){if(0===t||!Number.isFinite(t))return NaN;const n=ga(t),e=n.length;for(let t=0;t<e;t++){const r=xa(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function _a(t){return va(t).exponent}function Ia(t){if(0===t||!Number.isFinite(t))return NaN;const n=_a(t);return wa(t)-52+n}function Na(t,n){const e=(2**(53-n)+1)*t;return e-(e-t)}const Ma=H,Sa=vt;function Ea(t){return 0===t?0:wa(t)-ba(t)+1}const ya=q,Oa=function(t,n){if(t=Sa(t),0===Ma(t))return[0];const e=Ia(t[t.length-1]);let r=e,o=t.length-1;for(;o>0;){const i=Ia(t[o-1]);if(e-i>n)break;r=i,o--}const i=Math.min(n-(e-r),53);let c=t[o];c=Na(c,i);const s=t.slice(o);return s[0]=c,s},Ca=function(t){const n=vt(t);if(0===H(n))return 0;const e=n[n.length-1],r=n[0];return _a(e)-_a(r)+(53-ba(r))},Ta=Y,Pa=ht;function Aa(t){return ht(function(t,n,e){let r=n,o=t,i=!1,c=0;e||(c=Ca(o)-Ca(r)+1,e=c/53+1,i=!0);let s=[1/Pa(r)],u=1;for(;;){if(o=ya(o,s),u>e)return i?(o=Oa(o,c),o):o.slice(o.length-e,o.length);r=ya(r,s),s=Ta([2],r),u*=2}}(t[0],t[1],2))}function ka(t){return H(t[0])*H(t[1])}function Ba(t){return(n,e)=>{const r=At(n),o=At(e),i=At(n.slice().reverse()),c=At(e.slice().reverse()),s=t(r,o),u=t(i,o),f=t(r,c),l=t(i,c),a=-ka(u),p=-ka(l),h=Aa(s),d=Aa(f);return[da(h,a),da(d,p)]}}const Fa=Ba(function(t,n){const e=0===H(t[0][0])?1:0;return function(t,n){const[e,r]=t,[,o]=n;return[Y(o,r),e]}(t[e],n[e])});function za(t,n){return D(q(t[0],n[1]),q(t[1],n[0]))*H(t[1])*H(n[1])}const Ya=_a,Va=Ea;function La(t){let n=-1024;for(let e=0;e<t.length;e++){const r=t[e];for(let t=0;t<r.length;t++){const e=r[t];if(0===e)continue;const o=-Ya(e)+Va(e)-1;o>n&&(n=o)}}return 0===n?t.map(t=>t.map(t=>BigInt(t))):n>0?t.map(t=>t.map(t=>{if(0===t)return 0n;const e=-Ya(t)+Va(t)-1;return BigInt(t*2**e)*2n**BigInt(n-e)})):t.map(t=>t.map(t=>BigInt(t*2**n)))}function $a(t,n){if(n=n<0n?-n:n,0n===(t=t<0n?-t:t))return n;if(0n===n)return t;for(;0n!==n;){const e=n;n=t%n,t=e}return t}const Xa=BigInt(2**53);function ja(t){if(0n===t)return[0];const n=[];let e=0,r=t;for(;0n!==r;){r=t/Xa;const o=t%Xa;n.push(Number(o)*2**(53*e)),t=r,e++}return vt(n)}const{round:qa,sqrt:Wa}=Math;function Ha(t){if(t<=1n){if(t<0n)throw new Error("square root of negative numbers are not allowed");return t}let n=BigInt(qa(Wa(Number(t))));for(;;){const e=n+t/n>>1n;if(e===n)return n;n=e}}function Da(t){return t<0n?-t:t}function Qa(t){let n=0n;for(let e=0;e<t.length;e++)n+=t[e];return n}function Ra(t,n){const[e,r]=Ga(t[0],n[0]),[o,i]=Ga(t[1],n[1]);if(0===za(e,o)||0===za(e,i))return e;if(0===za(r,o)||0===za(r,i))return r;throw new Error("An unexpected error occured.")}function Ga(t,n){const[e,r]=t,[o,i]=n,[c,s]=function(t){const[n,e]=La(t).map(Qa),r=$a(n,e);return[ja(Ha(Da(n/r))),ja(Ha(Da(e/r)))]}([o,e]);return[[Y(q(i,s),q(r,c)),q(c,ti(e))],[Y(q(i,B(s)),q(r,c)),q(c,ti(e))]].sort(za)}function Ua(t,n){const e=At(t),r=0===H(e[0][0])?0:0===H(e[1][0])?1:-1;if(-1!==r){const e=t[0][r],o=t[2][r],i=n[0][r],c=n[2][r];return Fa([[e,e],[o,o]],[[i,i],[c,c]])}return Ba(Ra)(t,n)}const{round:Za,cbrt:Ja}=Math;function Ka(t){const n=(e=t)>0n?1n:e<0n?-1n:0n;var e;if((t=Da(t))<=1n)return n*t;let r=BigInt(Za(Ja(Number(t))));for(;;){const e=(2n*r+t/(r*r))/3n;if(e===r)return n*r;r=e}}function tp(t){return q(t,t)}const np=Ba(function(t,n){const e=0===H(t[0][0])?1:0;return function(t,n){const[e,r]=t,[o,i]=n,c=function(t){const[n,e]=La(t).map(Qa),r=$a(n,e);return[ja(Ka(n/r)),ja(Ka(e/r))]}([o,e]),s=tp(c[0]);return[Y(q(i,tp(c[1])),q(r,s)),q($(3,e),s)]}(t[e],n[e])}),{EPSILON:ep}=Number,rp=ep/2+ep**2/2;function op(t){return t>0?t-t*rp:t+t*rp}const{EPSILON:ip}=Number,cp=ip/2+ip**2/2;function sp(t){return t>0?t+t*cp:t-t*cp}function up(t){if(0===t||1===t)return[t,t];const n=op(op(t)),e=function(t){return sp(sp(t))}(t);return[n,e]}function fp(t,n,e,r){const o=t.ps,i=n.ps,c=[];let s=ia(o,i);if(void 0===s){const r=2**(e-47),s=function(t,n,e=!1){e||(t=aa(t),n=aa(n));const r=[,,Fa,Ua,np],[o,i]=r[t.length](t,n),[c,s]=r[t.length](n,t),u=[{tA:o,tB:0,bez:"B",start:!0},{tA:i,tB:1,bez:"B",start:!1},{tA:0,tB:c,bez:"A",start:!0},{tA:1,tB:s,bez:"A",start:!1}].sort((t,n)=>t.tA-n.tA);if(u[1].tA===u[2].tA){const n=u[1],e=n.tA,r=n.tB,o=Mo(t,[e,e]);return[{p:o[0],kind:4,box:o,t1:e,ri1:{tS:e,tE:e,multiplicity:1},t2:r,ri2:{tS:r,tE:r,multiplicity:1}}]}if(u[0].bez===u[1].bez)return[];const f=u[1],l=u[2],[a,p]=up(f.tA),[h,d]=up(f.tB),[v,g]=up(l.tA),[m,b]=up(l.tB),x=Mo(t,[a,p]),w=Mo(n,[h,d]),_=Mo(t,[v,g]),I=Mo(n,[m,b]),N=ua(x,w),M=ua(_,I),S={tS:a,tE:p,multiplicity:1},E={tS:h,tE:d,multiplicity:1},y={tS:v,tE:g,multiplicity:1},O={tS:m,tE:b,multiplicity:1};return[{p:So(N),kind:5,box:N,t1:go(S),ri1:S,t2:go(E),ri2:E},{p:So(M),kind:5,box:M,t1:go(y),ri1:y,t2:go(O),ri2:O}]}(o,i);for(const e of s){const i=mo(o,e.ri1.tS),s=[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]],u={x:{ri:e.ri1,kind:5,box:s},curve:t},f={x:{ri:e.ri2,kind:5,box:s},curve:n};c.push([u,f])}return c}if(r&&(s=s.filter(t=>t.tS>0)),0===s.length)return[];const u=fa(o,i,s);if(void 0===u||0===u.length)return[];for(const e of u){const r={x:e[0],curve:t},o={x:e[1],curve:n};c.push([r,o])}return c}const lp=mo,ap=xo,pp=G(1);function hp(t,n,e){const r=n.ps;if(0===t)return r[0],{x:{ri:{tS:t,tE:t,multiplicity:1},box:[r[0],r[0]],kind:e},curve:n};if(1===t){const o=r[r.length-1];return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[o,o],kind:e},curve:n}}const{p:o,pE:i}=function(t,n){const e=lp(t,n),r=ap(t,[0,n]);if(4===t.length)return{p:e,pE:r.map(t=>9*pp*t)};if(3===t.length)return{p:e,pE:r.map(t=>6*pp*t)};if(2===t.length)return{p:e,pE:r.map(t=>3*pp*t)};if(1===t.length)return{p:t[0],pE:[0,0]};throw new Error("The given bezier curve must be of order <= 3.")}(r,t);return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]],kind:e},curve:n}}function dp(t,n){if(n.next===t){if(t.next===n)return;[t,n]=[n,t]}const e=t.ps,r=n.ps;if(function(t,n){if(4===t.length)return oa(t,n);if(3===t.length)return Dl(t,n);if(2===t.length)return function(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{coeffs:{vₓ:n,vᵧ:o,v:i},errorBound:{v_:u}}=Xc(t),f=Pl(e),l=Pl(r),a=Al(c),p=Al(s),h=Al(n[1]),d=Al(o[1]),v=a/3,g=p/3,m=n[1]*c,b=Tl(f,n),x=h*v+2*Al(m),w=o[1]*s,_=Tl(l,o),I=d*g+2*Al(w),N=Sl(b,_),M=x+I+Al(N[1]),S=Sl(N,i),E=M+u+Al(S[1]);if(kl*E<Al(Cl(S)))return!1}{const n=function(t){return au(Ft(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];const{vₓ:o,vᵧ:i,v:f}=n,l=El(e,o),a=El(r,i),p=yl(yl(l,a),f);return 0===Ol(p)}}(t,n);if(1===t.length){const e=vt(n[0]),r=vt(n[1]);return 1===e.length&&1===r.length&&e[0]===t[0][0]&&r[0]===t[0][1]}throw new Error("The given bezier curve must be of order <= 3")}(e,r[r.length-1].map(t=>[t]))){const i=fa(e,r,[(o=1,{tS:o,tE:o,multiplicity:1})]);if(void 0===i||0===i.length)return;return[[{x:i[0][0],curve:t},hp(1,n,1)]]}var o}const vp=B;function gp(t){return t[t.length-1]<0?vp(t):t}Number.EPSILON;const mp=Number.EPSILON/2;function bp(t,n,e,r){const o=t/n,i=Math.abs(t),c=Math.abs(n),s=c-r;return s<=0?{est:o,err:Number.POSITIVE_INFINITY}:{est:o,err:(c*e+i*r)/s**2+mp*Math.abs(i/c)}}const xp=Y,wp=q,_p=$,Ip=P,Np=A,Mp=Qc,Sp=b,Ep=Po,yp=$f,Op=k,Cp=W,Tp=2*Number.EPSILON,Pp=Math.abs,Ap=G(1);function kp(t,n=!0){if(t.length<4)return[];const{coeffs:[e,r,o],errBound:[i,c,s]}=Et(t);if(Pp(e)<=i){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Op(Ip(s,n),_p(3,Ip(r,i))),l=Cp(Np(i,n),-2*r),a=Op(Ip(u,e),_p(3,Ip(o,c))),p=Cp(Np(c,e),-2*o);if(0===D(wp(l,a),wp(f,p)))return[]}const u=r*r,f=4*e*o,l=u-f,a=2*c*Pp(r)+Ap*u+(4*(i*Pp(o)+Pp(e)*s)+Ap*Pp(f))+Ap*Pp(l);if(l<-a)return[];if(l>a){const{est:t,err:u}=function(t,n){if(t-n<=0){const e=t>0?Math.sqrt(t):0;return{est:e,err:Math.max(Math.sqrt(t+n)-e,e)}}const e=Math.sqrt(t),r=Math.sqrt(t-n),o=Math.sqrt(t+n);return{est:e,err:Math.max(Math.abs(r-e),Math.abs(o-e))}}(l,a);let f;f=r>=0?-r-t:-r+t;const p=c+u+Ap*Pp(f),{est:h,err:d}=bp(f,2*e,p,2*i),{est:v,err:g}=bp(2*o,f,2*s,p);if(n){if(h+d<0||h-d>1||v+g<0||v-g>1)return[]}else if((h+d<0||h-d>1)&&(v+g<0||v-g>1))return[]}let[p,h,d]=Lt(t);const v=xp(wp(h,h),_p(4,wp(p,d))),g=H(v);if(g<0)return[];if(g>0){const t=function(t){const n=t[0],e=t[1];if(0===e)return[0,0];const r=Math.sqrt(e),o=r*r,i=134217729*r,c=i-(i-r),s=r-c,u=.5*(e-o-(s*s-(o-c*c-c*s*2))+n)/r;return[u-(r+u-r),r+u]}(Pi(v));let e;p=Pi(p),h=Pi(h),d=Pi(d),e=H(h)>=0?Mp(Sp(h,t)):Sp(Mp(h),t);let r=ht(yp(e,Ep(p))),o=ht(yp(Ep(d),e));if(n){if(r<-Tp||r>1+Tp||o<-Tp||o>1+Tp)return[]}else if((r<-Tp||r>1+Tp)&&(o<-Tp||o>1+Tp))return[];return[r,o]=r<o?[r,o]:[o,r],r>=0-Tp&&r<=1+Tp?o>=0-Tp&&o<=1+Tp?[r,o]:[r]:o>=0-Tp&&o<=1+Tp?[o]:[]}const m=ni(p);if(H(h)*H(m)<0)return[];if(D(gp(h),gp(m))>0)return[];const b=Pi(h),x=Pi(m),w=yp(b,x),_=w[1]+w[0];return[_,_]}const Bp=Number.EPSILON;function Fp(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i)),6*(i+n-2*r)],[6*(u-e+3*(o-c)),6*(c+e-2*o)]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[2*(i-2*r+n)],[2*(c-2*o+e)]]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}function zp(t){if(bt(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&pt(t)&&(t=zu(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=i-r,u=s-(r-n),f=c-o,l=f-(o-e);return[u*u+l*l,-(n*(u-r)-r*(s-r)+e*(l-o)-o*(f-o))]}(t);return{minima:[],maxima:kn(n,0,1),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=jn(t),[[s,u],[f,l]]=Fp(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i))],[6*(u-e+3*(o-c))]]}if(t.length<=3)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=a*i,d=p*e,v=u*c,g=u*i,m=f*f,b=s*c,x=l*r,w=l*e,_=f*r,I=r*e,N=r*n,M=r*o,S=e*e,E=e*n,y=e*i,O=n*c,C=n*o,T=n*n,P=c*i,A=c*o,k=i*i,B=i*o,F=o*o,z=a*c-p*r,Y=u*r+l*c,V=v-x,L=r*r+c*c,$=y+O,X=A+k,j=N+S,q=e*o+n*i,W=T-F,H=E-B,D=I-P,Q=r*i+e*c,R=A+X,G=N+j,U=M+$,Z=y+$,J=G-R,K=$+O,tt=M+y+O,nt=2*w+_;return{inflectionPoly:[s*o-f*n,u*o+s*i-l*n-f*e,g+b-w-_,v-x],otherExtremaPoly:[T*(h-3*d)+F*(3*h-d)+2*(C*(a*e-p*i+3*(l*f-u*s))+3*s*f*H)+3*(q*(m-s*s)+W*(u*f+l*s)),a*(o*(G+3*X)+n*Z)-p*(r*(3*T+F)+e*(3*E+2*B)+n*R)+3*(u*(l*W-u*C+2*(f*H-s*q))+s*(2*l*H+f*(2*(N-A)+(S-k))-s*tt)+l*(l*C+2*f*q)+m*U),a*(2*r*q+e*K+i*(4*A+R))-p*(2*r*(3*E+B)+e*(S+2*A)+i*K)+3*(u*(2*(l*H-s*tt)+f*J-u*q)+s*(2*f*D-s*Q)+l*(l*q+2*f*U+s*J)+m*Q),a*(r*(M+2*$)+c*(S+3*X))-p*(r*(3*j+R)+c*Z)+3*(u*(l*J-u*U+2*(f*D-s*Q))+s*(r*(nt-s*c)-c*(2*l*i+f*c))+l*(l*$+r*(2*f*i+l*o))+f*c*nt),L*(h-d)+2*(I+P)*z-3*(Y*(g+b-w-_)+(u*e+s*r+l*i+f*c)*V),z*L-3*Y*V]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=kn(r,0,1),i=dn(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=o[t],r=vn(i,n);vn(e,n)*r>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:kn(e,0,1)}}function Yp(t,n){const[e,r]=jn(t),[o,i]=Fp(t),c=vn(e,n),s=vn(r,n),u=vn(o,n);return(c*vn(i,n)-s*u)/Math.sqrt((c*c+s*s)**3)}const{abs:Vp}=Math,Lp=nc(function(t){const{curves:n}=t;let e=Ki(n[0].ps).minY,r=n[0];for(let t=1;t<n.length;t++){const o=Ki(n[t].ps).minY,i=o.box[0][1],c=e.box[0][1];(i<c||i===c&&o.ts[0]>e.ts[0])&&(e=o,r=n[t])}return{curve:r,y:e}});function $p(t){const{curve:n,y:e}=Lp(t),r=e.ts;return r[0]<=0?[hp(0,n,0),hp(1,n.prev,0)]:r[1]>=1?[hp(1,n,0),hp(0,n.next,0)]:[{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n},{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n}]}function Xp(t,n,e){const r=e-(n-Math.floor(Math.log2(Math.abs(t))))+1;return r<=0?0:e>=53?t:Na(t,r)}function jp(t,n,e){const r=function(t,n){const e=[];for(const n of t)for(const t of n.curves)e.push(t);const r=wl(e,t=>ec(t.ps)[0][0],t=>ec(t.ps)[1][0],function(t){return(n,e)=>{const r=n.ps,o=e.ps;if(2===r.length&&2===o.length)return function(t,n,e){let r=t.ps,o=n.ps;const i=ec(r),c=ec(o);if(t.next!==n&&n.next!==t){if(wc(!0,i,c)){const r=fp(t,n,e,!1);return r.length?r:void 0}return}if(n.next===t&&([t,n]=[n,t],[r,o]=[o,r]),0!==gt(r[0],r[1],o[1]))return;if(!wc(!1,i,c))return;let s;return s=Il(r[0],r[1])>Il(o[0],o[1])?[go(Oi(r,o[1])[0].ri),1]:[0,go(Oi(o,r[0])[0].ri)],[[hp(1,t,5),hp(0,n,5)],[hp(s[0],t,5),hp(s[1],n,5)]]}(n,e,t);if(n.next===e||e.next===n)return wc(!1,ec(r),ec(o))&&la(Ml(r,!1),Ml(o,!1),!1)?e.next===n?fp(e,n,t,!0):fp(n,e,t,!0):dp(n,e);let i=wc(!0,ec(r),ec(o));return i?(i=la(Ml(r,!1),Ml(o,!1),!0),i?fp(n,e,t,!1):void 0):void 0}}(n)),o=[];for(const t of r)for(const n of t.u)o.push(n);return o}(t,e),o=function(t){const n=[];for(const e of t)for(const t of e.curves){const e=t.ps,r=kp(e);if(0===r.length)continue;const o=r[0]===r[1]?3:2,i=r[0]-Bp,c=r[0]+Bp,s=r[1]-Bp,u=r[1]+Bp,f=Mo(e,[i,c]),l=Mo(e,[s,u]);n.push([{x:{ri:{tS:i,tE:c,multiplicity:1},box:f,kind:o},curve:t},{x:{ri:{tS:s,tE:u,multiplicity:1},box:l,kind:o},curve:t}])}return n}(t),i=function(t){const n=[];for(const e of t)for(const t of e.curves)n.push([hp(1,t,4),hp(0,t.next,4)]);return n}(t),{extremes:c,xs:s}=function(t){const n=new Map,e=[];for(const r of t){const t=$p(r);e.push(t),n.set(r,t)}return{extremes:n,xs:e}}(t),u=function(t,n){const e=[];for(const r of n)for(const n of r.curves){const r=n.ps,o=zp(r),{minima:i,maxima:c}=o,s=[0,1,...i,...c];for(let o of s)Vp(Yp(r,o))>1e7*2**-t&&e.push([hp(o,n,7),hp(o,n,7)])}return e}(e,t);let f=[...r,...o,...i,...s,...u];if("undefined"!=typeof _debug_){for(const t of r)_debug_.generated.elems.intersection.push(...t);for(const t of o)_debug_.generated.elems.intersection.push(...t);for(const t of i)_debug_.generated.elems.intersection.push(...t);for(const t of s)_debug_.generated.elems.intersection.push(...t);for(const t of u)_debug_.generated.elems.intersection.push(...t)}let l=f.map(t=>({xs:t,box:[[t[0].x.box[0][0]-n,t[0].x.box[0][1]-n],[t[0].x.box[1][0]+n,t[0].x.box[1][1]+n]],inOuts:void 0}));for(;;){const t=wl(l,qp,Wp,_c);if(!t.length)break;const n=new Map;Ic(n,t);const e=Sc(n),r=Ec(l,e);l=[...yc(e),...r]}l=function(t){return t.filter(t=>{const n=t.xs;if(2===t.xs.length){const t=n[0];if(1===t.x.kind&&t.x.ri.multiplicity%2==0)return!1}for(const n of t.xs)if(4!==n.x.kind)return!0;return!1})}(l),l=function(t,n,e){const r=Math.log2(e)-3;return t.map(t=>{const e=t.box.map(t=>t.map(t=>Xp(t,n,n-r)));return{...t,box:e}})}(l,e,n),"undefined"!=typeof _debug_&&(_debug_.generated.elems.container=l);let a=0;for(const t of l){for(const n of t.xs)n.container=t;let n;({inOuts:n,ioIdx:a}=xl(t,a)),t.inOuts=n}f=f.filter(t=>void 0!==t[0].container),function(t){const n=new Map;for(const e of t)for(const t of e){const e=t.curve.loop,r=n.get(e)||[];r.length||n.set(e,r),r.push(t)}for(const t of n){const n=t[1];if(!n||!n.length)continue;n.sort((t,n)=>{let e=t.curve.idx-n.curve.idx;return 0!==e?e:(e=t.x.ri.tS-n.x.ri.tS,0!==e?e:void 0!==t.in_?-1:1)});const e=n.length;for(let t=0;t<e;t++)n[t].next=n[(t+1)%e],n[t].prev=n[(t-1+e)%e]}}(f);for(const t of l)for(const n of t.inOuts){if(-1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.next,void 0===e.in_;);t.nextOrPrev=e.in_,t.idx=t.nextOrPrev.idx}for(const t of l)for(const n of t.inOuts){if(1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.prev,void 0===e.out;);t.nextOrPrev=e.out,t.idx=t.nextOrPrev.idx}return{extremes:c,containers:l}}function qp(t){return t.box[0][0]}function Wp(t){return t.box[1][0]}function Hp(t,n,e){Xi(t,1);const r=t.inOuts,o=r[0],i=r[r.length-1],c=1===o.dir?o:i,s=i.dir,u=0===n.idx?new Set:1===n.orientation?n.loopsIdxs:new Set;return o.orientation=s,o.parent=n,o.windingNum=n.windingNum+s,o.loopsIdxs=new Set(u),o.children=new Set,1===s&&o.loopsIdxs?.add(e.idx),i.orientation=s,i.parent=n,i.windingNum=n.windingNum+s,i.loopsIdxs=new Set(u),i.children=new Set,1===s&&i.loopsIdxs?.add(e.idx),c}function Dp(t){if(!bt(t))return!1;const n=t.map(t=>t[0]),e=t.map(t=>t[1]);return!(Qp(n)&&Qp(e))}function Qp(t){return function(t){for(let n=1;n<t.length;n++)if(t[n-1]>t[n])return!1;return!0}(t)||function(t){for(let n=1;n<t.length;n++)if(t[n-1]<t[n])return!1;return!0}(t)}function Rp(t,n){const e=n/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[e*t[0],e*t[1]]}function Gp(t){for(let n=0;n<t.length-1;n++)for(let e=n+1;e<t.length;e++)if(t[n][0]===t[e][0]&&t[n][1]===t[e][1])return!1;return!0}const{abs:Up}=Math;function Zp(t,n,e){if(void 0!==t&&!Z(t)){if(2===t.length)return t;if(3===t.length){if(Gp(t))return bt(t)?[t[0],t[2]]:t;if(Kp(t[0],t[2]))return;return[t[0],t[2]]}if(Gp(t)){const r=Jp(t);if(void 0===r)return;return function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e][0]!==n[e][0]||t[e][1]!==n[e][1])return!1;return!0}(r,t)?t:Zp(r,n,e)}if(Kp(t[0],t[3])){if(bt(t))return;return t}if(bt(t))return[t[0],t[3]];if(Kp(t[0],t[1])&&Kp(t[1],t[2])||Kp(t[1],t[2])&&Kp(t[2],t[3])||Kp(t[0],t[1])&&Kp(t[2],t[3]))return Zp([t[0],t[t.length-1]],n,e);if(Kp(t[0],t[2])||Kp(t[1],t[3])||Kp(t[1],t[2]))return t;if(Kp(t[0],t[1])){if(Il(t[1],t[2])<4*n)return[t[0],t[2],t[2],t[3]];{const r=Rp(ne(t[1],t[2]),2*n),o=ce(t[1],r);return Jp([t[0],e(o),t[2],t[3]])}}if(Kp(t[2],t[3])){if(Il(t[2],t[1])<4*n)return[t[0],t[1],t[1],t[3]];{const r=Rp(ne(t[2],t[1]),2*n),o=ce(t[2],r);return Jp([t[0],t[1],e(o),t[3]])}}}}function Jp(t){return bt(t)?[t[0],t[3]]:pt(t)?zu(t):t}function Kp(t,n){return t[0]===n[0]&&t[1]===n[1]}function th(t){return t}function nh(t,n,e,r=!1,o=!0){const i=function(t,n,e=!0){const r=2**t*2**-n,o=e?function(t,n){return e=>{const r=Xp(e[0],t,n),o=Xp(e[1],t,n);return r===e[0]&&o===e[1]?e:[r,o]}}(t,n):th;return t=>{const n=[];for(let e=0;e<t.length;e++){let i=t[e].slice();const c=n[n.length-1],s=c?c[c.length-1]:o(t[0][0]);i[0]=s,i=i.map(t=>o(t)),Dp(i)&&(i=[i[0],i[i.length-1]]),i=Zp(i,r,o),void 0!==i&&n.push(i)}const e=n.length;if(!e)return[];const i=n[e-1];return i[i.length-1]=n[0][0],n}}(e,n,o);let c=t.slice();return c=r?function(t,n,e,r=.02){const o=[];for(const i of t){const t=[];for(const o of i){const i=o.map(t=>t.map(t=>{let o,i=0,c=0,s=0;for(;!(++c>10);){i=(t+Math.random())*(1+(Math.random()-.7)*r),i=Xp(i,e,n);const c=Ea(i);c>s&&(s=c,o=i)}return o}));t.push(i)}o.push(t)}return o}(c,n,e,1):c,c=c.map(i),c=c.filter(t=>t.length>0),c}const eh=nc(t=>{let n=0;for(const e of t)for(const t of e)for(const e of t)for(const t of e){const e=Math.abs(t);e>n&&(n=e)}return n}),rh=En;function oh(t,n){const e=t.length-1,r=n.length-1;if(e<0||r<0)return[];const o=e+r,i=new Array(o+1).fill(0);for(let c=0;c<e+1;c++)for(let s=0;s<r+1;s++)i[o-(c+s)]+=t[e-c]*n[r-s];return rh(i)}function ih(t,n){const e=[],r=t.length-1;for(let n=0;n<r+1;n++)e.push(t[n]/(r+1-n));return e.push(n),e}const ch=En;function sh(t,n){const e=t.length-1,r=n.length-1,o=e-r,i=o<0?+o:0,c=o>0?-o:0,s=Math.max(e,r),u=[];for(let e=0;e<s+1;e++){const r=t[e+i]||0,o=n[e+c]||0;u.push(r+o)}return ch(u)}function uh(t){let n=0;for(const e of t){const[t,r]=Gi(e),[o,i]=jn(e);n+=vn(ih(sh(oh(t,i),wn(oh(r,o))),0),1)}return n/2}function fh(t){let n=0;for(let e=0;e<t.length-1;e++)n+=Vn(t[e],t[e+1]);return n}function lh(t){const[n,e]=t[0],[r,o]=t[t.length-1];let i,c;const s=fh(t);if(256*Il(t[0],t[t.length-1])<s*s){const[r,o]=mo(t,.5),s=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/s,c=(r-n)/s}else{const t=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/t,c=(r-n)/t}const u=function(t,n,e){const r=ce(t[0].map(t=>-t));return tc(t.map(t=>ue(-n,e,r(t))))}(t,i,c),[[f,l],[a,p]]=u,h=[u[0],[a,l],u[1],[f,p]],d=ue(i,c);return h.map(n=>ce(t[0],d(n)))}function ah(t){return{ps:t,ts:[0,1]}}const{round:ph,PI:hh}=Math;const{abs:dh,max:vh}=Math;function gh(t,e,r={}){let o;"undefined"!=typeof _debug_&&(o=performance.now()),e=e||eh(t);const i=Math.ceil(Math.log2(e)),{inclMicroCorners:c=!0,minLoopArea:s=(2**i*2**-12)**2,booleanOp:u="OR",containerSizeMultiplier:f=16}=r,l=2**i*2**-46*f;(function(t){if("undefined"!=typeof _debug_)for(const n of t){_debug_.generated.elems.loopPre.push(...t),_debug_.generated.elems.loopsPre.push(t);for(const t of n){const n=ec(t),e=lh(t),r=Ml(t,!1);_debug_.generated.elems.bezier_.push(t),_debug_.generated.elems.looseBoundingBox_.push(n),_debug_.generated.elems.tightBoundingBox_.push(e),_debug_.generated.elems.boundingHull_.push(r)}}})(t=nh(t,46,i,!1,!0)),t.sort(vc);const a=t.map((t,e)=>n(t,e)),{extremes:p,containers:h}=jp(a,l,i),d={dir:void 0,idx:0,parent:void 0,children:new Set,windingNum:0,p:void 0,_x_:void 0,container:void 0,loopsIdxs:new Set,orientation:-1},v=new Set,g=new Set;for(const t of a){if(v.has(t))continue;v.add(t);const n=dc(d,t),e=p.get(t)[0].container;if(0===e.inOuts.length)continue;const r=Hp(e,n,t),o=2===e.inOuts.length&&2===e.xs.length;if(o&&e.inOuts[0].nextOrPrev===e.inOuts[1])r.bezierPieces=t.beziers.map(ah),r.parent.children=r.parent.children||new Set,r.parent.children.add(r);else if(Ri(r,v,g,!1),o&&void 0!==r.bezierPieces){const{bezierPieces:t}=r,n=t[t.length-1],e=t[0];if(n.ps===e.ps){const r={ps:n.ps,ts:[n.ts[0],e.ts[1]]};t.shift(),t.pop(),t.unshift(r)}}}"undefined"!=typeof _debug_&&_debug_.verbose;const m=function(t){const n=[],e=[t];for(;e.length;){const t=e.pop();0===t.windingNum&&n.push(...t.children),e.push(...t.children),0===t.windingNum&&(t.children=new Set)}return n}(d);"undefined"!=typeof _debug_&&_debug_.verbose;const b=function(t){return n=>{const e="OR"===t||"XOR"===t?[n]:[];n.used="OR"===t||"XOR"===t;const r=Array.from(n.children);for(;r.length;){const n=r.pop();if("OR"===t&&0===n.windingNum&&e.push(n),"AND"===t){const t=xc(n);(0===n.windingNum&&t||mc(n.windingNum)>=2&&!t)&&(e.push(n),n.used=!0)}if("XOR"===t){const t=xc(n);(0===n.windingNum&&t||mc(n.windingNum)>=2&&t)&&(e.push(n),n.used=!0)}for(const t of n.children)r.push(t)}return e}}(u),x=m.map(b).filter(t=>0!==t.length).map(t=>{const e=t[0].orientation;return t.map((t,r)=>function(t,e,r){const o=t.bezierPieces?.map(Di);if(void 0===o)return n([],r);const i=t.orientation;return n(0===r||e*i<0?o:o.map(t=>t.toReversed()).toReversed(),r)}(t,e,r))}),w=[];for(let t=0;t<x.length;t++){const n=x[t].filter(t=>Math.abs(uh(t.beziers))>s);n.length&&(n.sort((t,n)=>vc(t.beziers,n.beziers)),w.push(n))}"undefined"!=typeof _debug_&&(_debug_.generated.timing.simplifyPaths=performance.now()-o);const _=c?w:w.map(t=>t.map(t=>{const{beziers:e}=t,r=function(t,n){!function(t){ph(function(t){const n=t.length;let e=0;for(let r=0;r<n;r++){const o=t[(r-1+n)%n],i=t[r];e+=Yn(i,[0,1])+M(fe(o,1),fe(i,0))}return e}(t)/(2*hh))}(t);const e=t.map(t=>t.map(t=>[t[0],t[1]])).filter(t=>fh(t)>n),r=e.length;for(let t=0;t<r;t++){const n=e[t],o=e[(t+1)%r],i=n[n.length-1],c=o[0];c[0]===i[0]&&c[1]===i[1]||(i[0]=c[0],i[1]=c[1])}return e}(e,vh(...h.map(t=>dh(t.box[0][0]-t.box[1][0])),...h.map(t=>dh(t.box[0][1]-t.box[1][1]))));return n(r,t.idx)}));return function(t){if("undefined"!=typeof _debug_)for(const n of t)_debug_.generated.elems.loop.push(...n),_debug_.generated.elems.loops.push(n)}(_),_}const mh=Math.max,bh=Math.abs;function xh(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=n[0],v=n[1],g=c-d,m=u-d,b=l-d,x=p-d,w=s-v,_=f-v,I=a-v,N=h-v,M=g*g,S=6*g*m,E=6*b*x,y=w*w,O=6*w*_,C=6*I*N,T=6*m*x+9*b*b,P=2*g*x+18*m*b,A=6*g*b+9*m*m,k=6*_*N+9*I*I,B=2*w*N+18*_*I,F=6*w*I+9*_*_;return[6*(x*x-E+(M-S)+T+(A-P)+(N*N-C+(y-O)+k+(F-B))),5*(E+5*S+3*P-2*(T+2*A+3*M)+(C+5*O+3*B-2*(k+2*F+3*y))),4*(T-3*(P-2*A)-5*(2*S-3*M)+(k-3*(B-2*F)-5*(2*O-3*y))),3*(P-2*(2*A-5*(S-2*M))+(B-2*(2*F-5*(O-2*y)))),2*(A-5*(S-3*M)+(F-5*(O-3*y))),S-6*M+(O-6*y)]}function wh(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n[0],p=n[1],h=i-a,d=s-a,v=f-a,g=c-p,m=u-p,b=l-p,x=h*h,w=h*d,_=d*v,I=g*g,N=g*m,M=m*b,S=g*b+m*m*2,E=h*v+d*d*2;return[b*b+I+2*S-4*(M+N)+(v*v+x+2*E-4*(_+w)),3*(M-S+(3*N-I)+(_-E+(3*w-x))),S-3*(2*N-I)+(E-3*(2*w-x)),N-I+(w-x)]}function _h(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=u*f+l*a,h=l*l+u*u;return[f*f+a*a+(h-2*p),p-h]}const Ih=Math.sqrt;function Nh(t,n,e=!0){let r;if(4===t.length)r=xh(t,n);else if(3===t.length)r=wh(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:Vn(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}r=_h(t,n)}const o=kn(r,0,1);e&&(o.push(0),o.push(1));let i,c=Number.POSITIVE_INFINITY;for(const e of o){const r=mo(t,e),o=Il(r,n);o<c&&(c=o,i={p:r,t:e,d:Ih(o)})}return i}const Mh=Math.sqrt;function Sh(t){let n=Number.NEGATIVE_INFINITY;for(let e=0;e<t.length;e++){const r=t[e],o=Math.abs(r[0]),i=Math.abs(r[1]);o>n&&(n=o),i>n&&(n=i)}return n}function Eh(t){return Math.max(t.hL+t.hEL,t.hR+t.hER)}function yh(t,n){const e=Eh(t)-Eh(n);return 0!==e?e:t.tS-n.tS}class Oh{compare;heap=[];constructor(t){this.compare=t}insert(t){const n=this.heap;n.push(t);let e=n.length-1;for(;;){const r=(e-1-(e+1)%2)/2;if(-1===r)return;const o=n[r];if(this.compare(t,o)<0)break;n[r]=t,n[e]=o,e=r}}popMax(){const t=this.heap,n=t[0];return t[0]=t[t.length-1],t.length--,this.swimDown(),n}swimDown(){const t=this.heap,n=t.length;let e=0;for(;;){const r=2*e+1;if(r>=n)break;const o=2*e+2,i=o>=n||this.compare(t[r],t[o])>0?r:o,c=t[i],s=t[e];if(this.compare(s,c)>0)break;t[i]=s,t[e]=c,e=i}}swapMinOrMax(t){this.heap[0]=t,this.swimDown()}static getParentIdx(t){return(t-1-(t+1)%2)/2}static getLeftChild(t){return 2*t+1}static getRightChild(t){return 2*t+2}}const Ch=Math.max;function Th(t,n,e,r=50){if(1===t.length)return Nh(n,t[0]).d;if(1===n.length)return function(t,n){let e;if(4===t.length)e=xh(t,n);else if(3===t.length)e=wh(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:Vn(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}e=_h(t,n)}const r=kn(e,0,1);r.push(0),r.push(1);let o,i=Number.NEGATIVE_INFINITY;for(const e of r){const r=mo(t,e),c=Il(r,n);c>i&&(i=c,o={p:r,t:e,d:Mh(c)})}return o}(t,n[0]).d;if(2===t.length&&2===n.length){const e=Nh(n,t[0]).d,r=Nh(n,t[t.length-1]).d;return e>r?e:r}const o=Ch(Sh(t),Sh(n));e=e||o/1e6;const[i,c]=Ph(t,0,1),s={tS:0,tE:1,hL:Nh(n,t[0]).d,hR:Nh(n,t[t.length-1]).d,hEL:i,hER:c},u=new Oh(yh);u.insert(s);let f=0,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(;;){const o=u.heap[0],{tS:i,tE:c,hL:s,hR:p}=o,h=(i+c)/2,[d,v]=Ph(t,i,h),[g,m]=Ph(t,h,c),b=mo(t,h),x=Vn(b,Nh(n,b).p),w=Ch(s,x,p);if(w>a&&(a=w),l=Eh(o),l-a<e)return a;if(f++>r)return a;const _={tS:i,tE:h,hL:s,hR:x,hEL:d,hER:v},I={tS:h,tE:c,hL:x,hR:p,hEL:g,hER:m};u.swapMinOrMax(_),u.insert(I)}}function Ph(t,n,e){const r=(e+n)/2,o=Dn(t,n,r),i=Dn(t,r,e);return[fh(o),fh(i)]}function Ah(t,n=!1){const e=t;let r=e;const o=[];do{n&&r===e||Be(r)||o.push(r),r=r.nextOnCircle}while(r!==e);return o}function kh(t){const n=[],e=[t],r=new Set;for(;e.length>0;){const t=rr(e.pop());if(0===t.length)continue;n.push(t);const o=t[0],i=t[t.length-1].next.prevOnCircle;r.add(o),r.add(i);const c=Ah(o,!0),s=Ah(i,!0),u=c.filter(t=>!r.has(t)),f=s.filter(t=>!r.has(t));for(const t of u)r.add(t);for(const t of f)r.add(t);e.push(...u,...f)}return n}const Bh=-1;class Fh{datum;color=0;parent;extras;"-1";1;constructor(t){this.datum=t}}function zh(t){return!!t&&0===t.color}class Yh{compare;duplicatesAllowed;root;nodeCount;valueCount;constructor(t,n=!0,e){if(this.compare=t,this.duplicatesAllowed=n,this.root=void 0,this.nodeCount=0,this.valueCount=0,e)for(const t of e)this.insert(t)}isEmpty(){return!this.root}find(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return e;e=e[r>0?1:Bh]}}toArrayInOrder(){const t=[];return function n(e){e&&(n(e[-1]),t.push(e.datum),void 0!==e.extras&&t.push(...e.extras),n(e[1]))}(this.root),t}insertMulti(t){const n=this;for(const e of t)n.insert(e)}insert(t){const n=this;n.root=function t(e,r){if(void 0===e)return n.valueCount++,n.nodeCount++,new Fh(r);const o=n.compare(r,e.datum);if(0===o&&(n.duplicatesAllowed?(n.valueCount++,void 0===e.extras?e.extras=[r]:e.extras.push(r)):e.datum=r),0!==o){const n=o>0?1:Bh;e[n]=t(e[n],r),e[n].parent=e}return zh(e[1])&&!zh(e[-1])&&(e=Vh(Bh,e)),zh(e[-1])&&zh(e[-1][-1])&&(e=Vh(1,e)),zh(e[-1])&&zh(e[1])&&$h(e),e}(n.root,t),n.root.color=1,n.root.parent=void 0}remove(t,n=!1,e){const r=this;if(void 0===r.root)return;let o;const i=function t(i,c){const s=r.duplicatesAllowed&&void 0!==i.extras;let u=r.compare(c,i.datum);if(u<0&&!i[-1]||u>0&&!i[1])return i;if(u<0){zh(i[-1])||zh(i[-1][-1])||(i=Xh(i));const n=t(i[-1],c);return null===n?null:(i[-1]=n,i[-1]&&(i[-1].parent=i),jh(i))}if(zh(i[-1])&&(i=Vh(1,i),u=r.compare(c,i.datum)),0===u&&!i[1]){if(s&&!n){if(void 0===e||!0===e(c,i.datum))return o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0),i;{const t=i.extras;for(let n=0;n<t.length;n++)if(!0===e(c,t[n]))return o=t.splice(n,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),i;return null}}return void 0===e||!0===e(c,i.datum)?(o=i.datum,r.valueCount-=1+(s?i.extras.length:0),void r.nodeCount--):null}if(zh(i[1])||zh(i[1][-1])||(i=function(t){return $h(t),zh(t[-1][-1])&&$h(t=Vh(1,t)),t}(i),u=r.compare(c,i.datum)),0===u)if(s&&!n)if(void 0===e||!0===e(c,i.datum))o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0);else{const t=i.extras;let n=!1;for(let s=0;s<t.length;s++)if(!0===e(c,t[s])){o=t.splice(s,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),n=!0;break}if(!n)return null}else{if(void 0!==e&&!0!==e(c,i.datum))return null;{r.valueCount-=1+(s?i.extras.length:0),o=i.datum;const t=r.getMinNode(i[1]);i.datum=t?.datum,r.duplicatesAllowed&&(i.extras=t?.extras),i[1]=Lh(i[1]),r.nodeCount--}}else{const n=t(i[1],c);if(null===n)return null;i[1]=n}return i[1]&&(i[1].parent=i),jh(i)}(r.root,t);return null!==i?(r.root=i,void 0!==r.root&&(r.root.color=1,r.root.parent=void 0),o):void 0}findBounds(t){const n=this;let e=n.root;const r=[void 0,void 0];if(void 0===e)return r;for(;e;){const o=n.compare(t,e.datum);o>=0?r[0]=e:r[1]=e,e=e[o>=0?1:Bh]}return r}findBoundsExcl(t){const n=this,e=n.root,r=[void 0,void 0];return void 0===e||function e(o){for(;o;){const i=n.compare(t,o.datum);if(0===i)return e(o[-1]),void e(o[1]);i>0?r[0]=o:i<0&&(r[1]=o),o=o[i>0?1:Bh]}}(e),r}findAll(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return[e.datum,...e.extras?e.extras:[]];e=e[r>0?1:Bh]}return[]}getMinOrMaxNode(t){return n=>{if(void 0===n&&(n=this.root),n){for(;n[t];)n=n[t];return n}}}getMinNode=this.getMinOrMaxNode(Bh);getMaxNode=this.getMinOrMaxNode(1);min(t){void 0===t&&(t=this.root);const n=this.getMinNode(t);if(void 0!==n)return n.datum}max(t){void 0===t&&(t=this.root);const n=this.getMaxNode(t);if(void 0!==n)return n.datum}}function Vh(t,n){const e=n[-t];return n[-t]=e[t],e[t]&&(e[t].parent=n),e[t]=n,n.parent=e,e.color=n.color,n.color=0,e}function Lh(t){if(t[-1])return zh(t[-1])||zh(t[-1][-1])||(t=Xh(t)),t[-1]=Lh(t[-1]),t[-1]&&(t[-1].parent=t),jh(t)}function $h(t){t.color=(t.color+1)%2,t[-1].color=(t[-1].color+1)%2,t[1].color=(t[1].color+1)%2}function Xh(t){if($h(t),zh(t[1][-1])){const n=Vh(1,t[1]);t[1]=n,n.parent=t,$h(t=Vh(Bh,t))}return t}function jh(t){return zh(t[1])&&(t=Vh(Bh,t)),zh(t[-1])&&zh(t[-1][-1])&&(t=Vh(1,t)),zh(t[-1])&&zh(t[1])&&$h(t),t}const{cpNodeComparator:qh,getAllOnLoop:Wh}=ir;function Hh(t){const n=new Map;return Wh(t).forEach(function(t){const e=t.cp.pointOnShape.curve.loop;let r=n.get(e);r||(r=new Yh(qh,!1),n.set(e,r)),r.insert(t)}),n}function Dh(t,n=.125,e=50){let r=Ze(t.cpNode);for(;!Be(r);)r=r.next;const o=kh(r),i=new Set;for(let t=0;t<o.length;t++){const r=o[t];let c=0;for(;c<r.length;){const t=c;for(;(c++,c!==r.length)&&!(Qh(t,c,r,e)>n);)i.add(r[c])}}r=function(t,n){const e=n;if(t(e))return e;let r=n.next;for(;r!==e;){if(t(r))return r;r=r.next}}(t=>Be(t)?t:void 0,r);for(const n of i)cr(t=>2!==We(t)&&!t.isHoleClosing)(n)||nr(n,t.meta.cpTrees);return{cpNode:r,meta:{...t.meta,cpTrees:Hh(r)}}}function Qh(t,n,e,r){const o=[],i=Te(e[t],e[n].next);for(;t<n+1;t++)o.push(Th(Pe(e[t]),i,r));return Math.max(...o)}const{getAllOnLoop:Rh}=ir;function Gh(t){const n=[],e=Rh(t);for(const t of e)Xe(t)&&!t.isHoleClosing&&n.push(t);return n}const Uh=function(t,n,e){const r=t.get(n);return void 0!==r&&r.has(e)},Zh=function(t,n,e){let r=t.get(n);void 0===r&&(r=new Set,t.set(n,r)),r.add(e)},{isOnSameCircle:Jh}=ir;function Kh(t){let n=t,e=t.prevOnCircle;for(;Be(e);)e=e.prevOnCircle;const r=[];do{Be(n)||r.push(n),n=n.nextOnCircle}while(n!==e);return r}function td(t,n){const e=new Map,r=new Map;return Qe(t,function(t){const o=r.get(t)||n*t.cp.circle.radius,i=t.next,c=function(t,n,e=.4,r=16){if(4===n.length)return Gn(t,n,e,r);if(3===n.length)return Rn(t,n,e,r);if(2===n.length)return Ln(t,n);if(1===n.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}([0,1],Pe(t)),s=i.cp.circle.radius;if(o-c>n*s)for(const t of ke(i))if(r.set(t,o-c),!i.isHoleClosing){const{center:t}=i.cp.circle;Zh(e,t[0],t[1])}}),e}function nd(t,n){let e=0;"undefined"!=typeof _debug_&&(e=performance.now());const r=function(t){const n=v(t);return n.reduce(function(t,n){return t.cp.circle.radius>=n.cp.circle.radius?t:n},n[0])}(Ze(t.cpNode));!function(t,n){const e=Gh(n);for(;e.length;){const r=e.pop(),{center:o}=r.cp.circle;if(!Uh(t,o[0],o[1])||r.isIntersection)continue;let i=r.prevOnCircle,c=!1;for(;!c;){i=i.next;const{center:e}=i.cp.circle;if(Uh(t,e[0],e[1]))if(Jh(i,n))c=!0;else{if(1===Kh(i).length)continue;c=!0}else{for(;Be(i.prevOnCircle);)i=i.prevOnCircle;c=!0}}if(c){const t=i.prevOnCircle;t.next=i,i.prev=t,t.nextOnCircle=i,i.prevOnCircle=t}}}(td(r,n),r);const o={cpNode:r,meta:{...t.meta,cpTrees:Hh(r)}};return function(t){"undefined"!=typeof _debug_&&(_debug_.generated.timing.sats=performance.now()-t)}(e),o}const ed={maxCurviness:.05,maxLength:40,applySat:!0,satScale:2,simplify:!0,simplifyTolerance:2**-4,minBezLength:2**-6,angleIncrement:15},rd={maxCurviness:{range:[.01,3]},maxLength:{range:[1,1024],scaleByMaxRadius:!0},angleIncrement:{range:[.1,360]},satScale:{range:[1,Number.POSITIVE_INFINITY]},simplifyTolerance:{range:[2**-10,1024],scaleByMaxCoordinate:!0},minBezLength:{range:[2**-20,2],scaleByMaxCoordinate:!0}};function od(t){return[t[1],-t[0]]}function id(t,n){return Ee(n)&&Se(n).isDull?-ee(od(Se(n).tangents[0]),se(ne(n.p,t.center))):0}function cd(t){return t[0]*t[0]+t[1]*t[1]}function sd(t,n,e){return t[0]*(n[1]*e[2]-n[2]*e[1])-t[1]*(n[0]*e[2]-n[2]*e[0])+t[2]*(n[0]*e[1]-n[1]*e[0])}function ud(t){const n=t[0],e=t[1],r=t[2],o=cd,i=.5*sd([o(n),n[1],1],[o(e),e[1],1],[o(r),r[1],1]),c=.5*sd([n[0],o(n),1],[e[0],o(e),1],[r[0],o(r),1]),s=sd([n[0],n[1],1],[e[0],e[1],1],[r[0],r[1],1]);return[i/s,c/s]}function fd(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}const ld=Number.EPSILON/2,ad=ld*ld;function pd(t){const n=t*ad;return n/(1-n)}const hd=Ir,dd=b,{abs:vd}=Math,gd=pd(3);function md(t,n,e){const r=t.length-1,o=[t[0]];let i=n[0];const c=[i];for(let s=1;s<r;s++){const r=o[s-1],u=e*r[1],f=vd(e)*i+vd(u),l=t[s];i=n[s]+f+vd(l[1]+u);const a=dd(l,hd(e,r));o.push(a),c.push(i)}return{coeffs:o,errBound:c.map(t=>gd*t)}}const bd=$,xd=k;function wd(t,n){const e=t.length-1,r=[t[0]];for(let o=1;o<e;o++)r.push(xd(t[o],bd(n,r[o-1])));return r}const _d=dt,Id=fr,Nd=b,Md=Number.EPSILON,Sd=pd(3),{sqrt:Ed}=Math;function yd(t,n,e,r=[0,1],o=void 0,i=void 0,c=!1,s=0){const[u,f]=r,l=n.ps,a=0===s&&n===o;let{polyDd:p,polyE:h,getPolyExact:d}=Ei(l,e);const v=a?md(p,h.map(t=>t/Sd),i):void 0,g=c&&a?md(v.coeffs,v.errBound.map(t=>t/Sd),i):void 0,m=c&&a?md(g.coeffs,g.errBound.map(t=>t/Sd),i):void 0,{polyDd:b,polyE:x,getPolyExact:w}=void 0!==m?{polyDd:m.coeffs,polyE:m.errBound,getPolyExact:()=>wd(wd(wd(d(),i),i),i)}:void 0!==v?{polyDd:v.coeffs,polyE:v.errBound,getPolyExact:()=>wd(d(),i)}:{polyDd:p,polyE:h,getPolyExact:d},_=ho(b,u,f,x,w),I=1===i&&n===o.next||0===i&&n===o,N=0===i&&n===o.prev||1===i&&n===o;0===u?I||_.push({tS:0,tE:0,multiplicity:1}):1===u?N||_.push({tS:1,tE:1,multiplicity:1}):_.push({tS:u,tE:u,multiplicity:1}),0===f?I||_.push({tS:0,tE:0,multiplicity:1}):1===f?N||_.push({tS:1,tE:1,multiplicity:1}):_.push({tS:f,tE:f,multiplicity:1});const M=_.map(r=>{const{tS:o,tE:i}=r;if(i<u||o>f)return;const c=(o+i)/2,s=c<0?0:c>1?1:c,a=Mo(l,[o,i]),p=function(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}(a),h=function(t,n,e){const r=n[0],o=n[1],i=r[0],c=r[1],s=o[0],u=o[1],f=e[0],l=e[1];let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(const[n,e]of[[i,c],[i,u],[s,c],[s,u]]){const r=_d(n,f),o=_d(e,l),i=Nd(Id(r,r),Id(o,o))[1],c=i*(1-2**t*Md),s=i*(1+2**t*Md);c<=a&&(a=c),s>=p&&(p=s)}return[a,p]}(t,a,e),d=0===s?1:s;return{curve:0===s?n.prev:n,p,t:d,d:(Ed(h[0])+Ed(h[1]))/2,dSquaredI:h,box:a}});return M.filter(t=>void 0!==t)}const Od=Il;function Cd(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];return u<o?f<i?Od(t[0],n):f>s?Od([o,s],n):(o-u)**2:u>c?f<i?Od([c,i],n):f>s?Od(t[1],n):(u-c)**2:f<i?(i-f)**2:f>s?(f-s)**2:0}const Td=Kn(tc);function Pd(t,n){const e=[0,1,2,3].map(e=>function(t,n){const e=Il,r=n[0],o=n[1],i=e(r,o);if(0==i)return e(t,r);let c=((t[0]-r[0])*(o[0]-r[0])+(t[1]-r[1])*(o[1]-r[1]))/i;return c=Math.max(0,Math.min(1,c)),e(t,[r[0]+c*(o[0]-r[0]),r[1]+c*(o[1]-r[1])])}(n,[t[e],t[(e+1)%4]])),r=Il(t[0],t[1]),o=Il(t[0],t[3]);return e[0]<=o&&e[2]<=o&&e[1]<=r&&e[3]<=r?0:Math.min(...e)}const Ad=Kn(lh);function kd(t,n,e,r=void 0,o=void 0,i=!1,c=0){n=function(t,n){const e=function(t,n){let e=Number.POSITIVE_INFINITY;for(let r=0;r<t.length;r++){const o=t[r],i=o.curve.ps,c=mo(i,o.ts[0]),s=mo(i,o.ts[1]),u=Math.min(Il(n,c),Il(n,s));u<e&&(e=u)}return(1+2**-10)*e}(t,n);return t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;Cd(Td(c),n)<=e&&r.push(i)}return r}(t,n,e),t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;Pd(Ad(c),n)<=e&&r.push(i)}return r}(t,n,e),t}(n,e);const s=[];for(let u=0;u<n.length;u++){const f=n[u],l=yd(t,f.curve,e,f.ts,r,o,i,c);s.push(...l)}let u=Number.POSITIVE_INFINITY;for(let t=0;t<s.length;t++){const n=s[t].dSquaredI[1];n<u&&(u=n)}const f=[];for(let t=0;t<s.length;t++){const n=s[t];n.dSquaredI[0]<=u&&f.push(n)}return f.map(t=>mr(t.curve,t.t,!1))}const{max:Bd,ceil:Fd,log2:zd}=Math;function Yd(t,n){return n.map(n=>kd(5,n,t)[0])}function Vd(t,n){return[n*t[0],n*t[1]]}function Ld(t,n,e){const r=fd(e);let o,i,c,s,u=1,f=0;do{i=ce(Vd(e,u),n),c=Yd(i,t),s=fd(ne(i,ud(c.map(t=>t.p)))),o=s<r,u/=2,f++}while(!o&&f<3);return{newX:i,newV:s,newPoss:c}}const{isSharp:$d}=ir,Xd=ne;function jd(t,n,e,r,o){const i=2**-32*o,c=[t[0],t[n],t[t.length-1]],s=[r[0],r[n],r[t.length-1]],u=[[c[0],c[1],c[2]],[c[1],c[2],c[0]],[c[2],c[0],c[1]]][e],f=[[s[0],s[1],s[2]],[s[1],s[2],s[0]],[s[2],s[0],s[1]]][e];if($d(u[0][0]))return;let l,a,p=0,h=function(t,n,e){const r=n[0][0].cp.circle,o=r.center,i=kd(Bd(0,Fd(zd(t/r.radius)))+1,e[1],o)[0];return ud([n[0][0].cp.pointOnShape.p,i.p,n[2][1].cp.pointOnShape.p])}(o,u,f),d=Number.POSITIVE_INFINITY;for(;d>i&&p<10;){if(p++,l=Yd(h,f),!Number.isFinite(h[0])||!Number.isFinite(h[1]))return;a=ud(l.map(t=>t.p));const t=Xd(h,a);if(!Number.isFinite(t[0])||!Number.isFinite(t[1]))return;const n=Ld(f,h,t);h=n.newX,l=n.newPoss;const e=fd(t);d=Math.abs(e-n.newV)}const v=(Vn(h,l[0].p)+Vn(h,l[1].p)+Vn(h,l[2].p))/3,g={center:h,radius:v};let m=0;for(let t=0;t<3;t++){const n=l[t],e=se(ne(n.p,h)),r=re(e);if(Ee(n)&&Se(n).isDull){const t=Me(n.curve.ps,n.curve.next.ps).tangents.map(re),r=Math.asin(oe(t[0],e)),o=Math.asin(oe(e,t[1]));let i=0;r>0&&(i+=r),o>0&&(i+=o),m+=i}else{const t=se(fe(n.curve.ps,n.t));m+=Math.abs(Math.asin(oe(r,t)))}}const b=[];for(let t=0;t<r.length;t++){const n=kd(5,r[t],h)[0];b.push(Vn(n.p,h))}const x=Math.min(...b);return{poss:l,circle:g,error:1*Math.abs(v-x)+1*m,δ3s:u}}const qd=Kn(t=>!!Ee(t)&&Se(t).isQuiteSharp);function Wd(t){let n=t[0];const e=t[1],r=[];let o=!0;do{if(!o){o=!0,n=n.prevOnCircle;continue}o=!1;const t=n.cp.pointOnShape,e=n.next.cp.pointOnShape;e.curve===t.curve&&qd(t)&&qd(e)||(e.curve===t.curve&&d(n.next.cp,n.cp)>0?r.push({curve:t.curve,ts:[t.t,e.t]}):(r.push({curve:t.curve,ts:[t.t,1]}),t.curve.loop===e.curve.loop&&Hd(r,t.curve,e.curve,e.t))),n=n.next}while(n!==e);return r}function Hd(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push({curve:o,ts:[0,n]})}while(o!==e)}function Dd(t,n,e,r){const o={pointOnShape:n,order:e,order2:r},i=t.findBounds({cp:o});if(void 0!==i[0]||void 0!==i[1])return void 0===i[0]||void 0===i[1]?t.max(t.root):i[0].datum}function Qd(t,n,e,r,o,i){if(void 0!==i&&!function(t,n,e){const r=d(n,e.cp);if(r<0)return!0;if(0===r)return!0;const o=t.getMinNode();if(void 0===o)return!0;const i=o.datum;return d(t.getMaxNode().datum.cp,n)<0&&i===e}(r,o,i.next)&&!t)return;const c={cp:o,isHoleClosing:n,isIntersection:e},s=void 0===i?c:i,u=void 0===i?c:s.next;return u.prev=c,s.next=c,c.prev=s,c.next=u,r.insert(c),c}function Rd(t,n,e,r,o,i,c){let s=!1;const u=i.map((i,u)=>{const f=r[u],l=o.get(i.curve.loop),a={pointOnShape:i,circle:e,order:f,order2:0},p=void 0===c?Dd(l,i,f,0):c[u],h=Qd(t,n,!1,l,a,p);return void 0===h&&(s=!0),h});return s||function(t,n){n=n.slice().sort(function(t){const n=t.center;return function(t,e){let r=t.cp.pointOnShape.p,o=e.cp.pointOnShape.p;r=[r[0]-n[0],r[1]-n[1]],o=[o[0]-n[0],o[1]-n[1]];const i=Math.atan2(r[1],r[0]);return Math.atan2(o[1],o[0])-i}}(t));const e=n.length;for(let t=0;t<e;t++)n[t].nextOnCircle=n[(t+1)%e],n[t].prevOnCircle=n[(t-1+e)%e]}(e,u),{anyFailed:s,cpNodes:u}}const Gd=Math.cos(Math.PI/180*1);function Ud(t,n,e,r,o,i){const{cpTrees:c,maxCoordinate:s}=t,u=2e-14*s,f=.02*u,l=Dd(c.get(n.curve.loop),n,r,o);if(!l)return;const a=[l,l.next],{p,t:h}=n;for(const t of a){const n=t.cp.pointOnShape.p,r=Vn(p,n);if(!(r>u)&&(ee(se(ne(n,t.cp.circle.center)),se(ne(p,e.center)))>Gd||r<f&&0!==h&&1!==h))return t}}function Zd(t,n){const e=[];for(const t of n)e.push([t,t.next]);const r=function(t,n){const e=t.map(Wd);let r,o=Number.POSITIVE_INFINITY;for(let i=1;i<t.length-1;i++)for(let c=0;c<3;c++){const s=jd(t,i,c,e,n);if(!s)continue;const{circle:u,poss:f,error:l,δ3s:a}=s;l<o&&(o=l,r={circle:u,poss:f,δ3s:a})}return r}(e,t.maxCoordinate),{circle:o,poss:i,δ3s:c}=r,s=[];for(let t=0;t<3;t++)s.push(id(o,i[t]));const u=[];for(let n=0;n<i.length;n++){const e=Ud(t,i[n],o,s[n],0);void 0!==e&&We(e)<=2&&!e.isHoleClosing&&u.push(e)}return{closeBysFor3Prong:u,cpNodes:0===u.length?Rd(!0,!1,o,s,t.cpTrees,i,c.map(t=>t[0])).cpNodes:[]}}let Jd=0;function Kd(t,n){if(ye(n.cp.pointOnShape))return{closeBysFor3Prong:void 0,addedCpNodes:[]};const e=[];for(;;){if(void 0===n)continue;const r=De(n);if(r.length<=2)break;const{closeBysFor3Prong:o,cpNodes:i}=Zd(t,r);if(e.push(i),o.length>0)return{closeBysFor3Prong:o,addedCpNodes:e};if("undefined"!=typeof _debug_&&++Jd===_debug_.directives.stopAfterThreeProngsNum)return}return{closeBysFor3Prong:void 0,addedCpNodes:e}}function tv(t){for(const n of t)return n}function nv(t,n,e,r){for(const o of[n[0]])ke(o).forEach(t=>{e.delete(t),r.delete(t)}),nr(o,t)}const{cpNodeComparator:ev}=ir;function rv(t,n,e){let r;for(let o=0;o<e.length;o++){const i=e[o],c=new Yh(ev,!1);let s,u;for(const t of i){const n={center:t.p,radius:0},e={pointOnShape:t,circle:n,order:1,order2:0};s=Qd(!0,!1,!1,c,{pointOnShape:t,circle:n,order:-1,order2:0},u),u=Qd(!0,!1,!1,c,e,s),s.prevOnCircle=u,u.prevOnCircle=s,s.nextOnCircle=u,u.nextOnCircle=s}r||(r=s);const f=t[o];n.set(f,c)}return r}const ov=function(t,n,e,r,o){let i=t.get(n);void 0===i&&(i=new Map,t.set(n,i));let c=i.get(e);void 0===c&&(c=new Map,i.set(e,c)),c.set(r,o)};let iv;function cv(t,n,e,r){iv=performance.now();const o=new Map,i=[],c=[],s=[],u=[],f=[];for(const t of e){const n=r.get(t).toArrayInOrder();for(const e of n){const{p:n,t:r}=e.cp.pointOnShape;ov(o,t,n[0],n[1],e)}for(let n of t.curves){const t=n.ps,e=Ml(t,!0);s.push(e);const r=Td(t);i.push(r);const o=lh(t);c.push(o);const l=Me(n.ps,n.next.ps);l.isQuiteSharp?u.push(n):l.isQuiteDull&&f.push(n)}}return{maxCoordinate:t,squaredDiagonalLength:n,looseBoundingBoxes:i,tightBoundingBoxes:c,boundingHulls:s,sharpCorners:u,dullCorners:f,loops:e,cpTrees:r,pointToCpNode:o}}function sv(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];fh(o.ps)<t||Me(o.ps,o.next.ps).isQuiteSharp&&e.push(mr(o,1,!0))}return e}}const uv=b,fv=Ir;function lv(t,n){let e=[0,0];for(let r=0;r<t.length;r++)e=uv(t[r],fv(n,e));return e}const av=A,pv=P,hv=Ir,dv=b,vv=lr;function gv(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[hv(3,dv(pv(s,n),hv(3,pv(r,i)))),hv(6,vv(av(i,n),-2*r)),hv(3,pv(r,n))],[hv(3,dv(pv(u,e),hv(3,pv(o,c)))),hv(6,vv(av(c,e),-2*o)),hv(3,pv(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[vv(av(2*i,2*n),-4*r),pv(2*r,2*n)],[vv(av(2*c,2*e),-4*o),pv(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[pv(r,n)],[pv(o,e)]]}(t);if(1===t.length)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const mv=P,bv=b,xv=Ir,wv=lr;function _v(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[xv(6,bv(mv(s,n),xv(3,mv(r,i)))),xv(6,wv(mv(i,2*r),n))],[xv(6,bv(mv(u,e),xv(3,mv(o,c)))),xv(6,wv(mv(c,2*o),e))]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[wv(mv(2*i,4*r),2*n)],[wv(mv(2*c,4*o),2*e)]]}if(t.length<=2)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const Iv=fr,Nv=b,Mv=x,Sv=dt,Ev=J,yv=$,Ov=k,Cv=W;function Tv(t,n,e=!1){const r=n.curve.ps,{p:o,t:i}=n;let c=-function(t,n){const[e,r]=gv(t),[o,i]=_v(t),c=lv(e,n),s=lv(r,n),u=lv(o,n),f=lv(i,n),l=Mv(Iv(c,f),Iv(s,u)),a=Nv(Iv(c,c),Iv(s,s)),p=Iv(a,Iv(a,a)),h=Math.sqrt(p[1]);return l[1]/h}(r,i);(c<t||e)&&(c=t);const s=function(t,n){const[e,r]=function(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[yv(3,Ov(Sv(s,n),yv(3,Sv(r,i)))),yv(6,Cv(Ev(i,n),-2*r)),yv(3,Sv(r,n))],[yv(3,Ov(Sv(u,e),yv(3,Sv(o,c)))),yv(6,Cv(Ev(c,e),-2*o)),yv(3,Sv(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[Cv(Ev(2*i,2*n),-4*r),Sv(2*r,2*n)],[Cv(Ev(2*c,2*e),-4*o),Sv(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[Sv(r,n)],[Sv(o,e)]]}(t);if(1===t.length)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t);return[Xr(e,n),Xr(r,n)]}(r,i).map(t=>t[t.length-1]),u=[-s[1],s[0]],f=Math.sqrt(u[0]**2+u[1]**2);return{center:[o[0]-u[0]/(c*f),o[1]-u[1]/(c*f)],radius:1/c}}const{abs:Pv}=Math,Av=P,kv=m;function Bv(t,n,e){const r=Pv(t[1]-n[1])>Pv(t[0]-n[0]);let o,i,c,s,u,f;r?(o=t[1],i=t[0],c=n[1],s=n[0],u=e[1],f=e[0]):(o=t[0],i=t[1],c=n[0],s=n[1],u=e[0],f=e[1]);const l=$f(Av(i,s),Av(o,c)),a=x([0,s],_r(c,l)),p=$f(b(x(b(kv(c,c),kv(s,s)),b(kv(u,u),kv(f,f))),Po(fr(a,Av(f,s)))),Po(b(Av(c,u),fr(l,Av(s,f))))),h=b(fr(l,p),a);return r?[h[1],p[1]]:[p[1],h[1]]}function Fv(t,n,e,r){const o=(2**-14*t)**2;if(Il(n,r)<o)return;const i=[(n[0]+r[0])/2,(n[1]+r[1])/2],c=[r[0]-n[0],r[1]-n[1]],s=[-c[1],c[0]],u=te([n,e],[i,[i[0]+s[0],i[1]+s[1]]]);return u?ee([u[0]-n[0],u[1]-n[1]],[e[0]-n[0],e[1]-n[1]])<0?void 0:u:void 0}function zv(t,n){const[e,r]=t,[o,i]=n,c=P(e,o),s=P(r,i);return b(fr(c,c),fr(s,s))[1]}function Yv(t,n,e){if(t.length<=1)return t;const r=[];for(const o of t){const t=o.curve.ps;Cd(Td(t),n)<=1.0009765625*e&&r.push(o)}return r}function Vv(t,n,e,r){if(Ee(r)&&Se(r).isDull)return;const o={radius:n,center:e};if(Ud(t,r,o,id(o,r),0))return;const{anyFailed:i,cpNodes:c}=Rd(!1,!1,o,[-.5,.5],t.cpTrees,[r,r])}const Lv=m,$v=b,Xv=x,jv=_r,{asin:qv,acos:Wv,cos:Hv,sqrt:Dv,PI:Qv}=Math,Rv=1e3*2**-46;function Gv(t,n,e){if(n+e>=t)return Number.POSITIVE_INFINITY;const r=P(t,n),o=jv(n,r),i=t-n,c=n*i,s=(c-n*e-e*e/2)/(c+i*e),u=$f(Xv(Xv(o,Lv(n,e)),Lv(e,e/2)),$v(o,jv(e,r)))[1];return Wv(s),n*Wv(u)}Gv(699,698,Rv),function(t,n,e){const r=698+e;const o=t*t-r*r-1,i=2*r*1,c=$f(Xv(Xv(Lv(t,t),Lv(r,r)),Lv(1,1)),Lv(-2*r,1))[1];Wv(-o/i),Wv(c)}(699,0,Rv),function(t,n,e){const r=698+e,o=699,i=Dv((1-(r*r+o*o-2*r*o))/(4*r*o));qv(i)}(0,0,Rv);const{ceil:Uv,log2:Zv,max:Jv,sqrt:Kv,abs:tg,sin:ng,cos:eg}=Math;function rg(t,n,e,r,o){const{loops:i,maxCoordinate:c,squaredDiagonalLength:s,cpTrees:u}=t,f=o.curve.loop,l=(2**-21*c)**2,a=2**-46*c,p=Kv(s),h=1/p,d=2**-16*c,[v,g]=function(t,n,e,r,o){let i;const c=o.p;let s;if(n)i=[c[0],c[1]-e],s=e;else if(0===t)({center:i,radius:s}=Tv(r,o));else{({center:i,radius:s}=Tv(r,o,!0));const n=ne(o.p,i),e=ue(ng(t),eg(t))(n);i=ce(o.p)(e)}return[i,s]}(r,n,p,h,o),m=o.p;let b=function(t,n,e,r,o,i,c){if(n)return r.filter(t=>t!==e).flatMap(t=>t.curves.map(t=>({curve:t,ts:[0,1]})));const s=Ee(i)&&Se(i).isDull?1===i.t&&0===t?-1:0===i.t?1:id(c,i):0,u=Dd(o.get(e),i,s,0);return u&&u!==u.next.next?Wd([u,u]):e.curves.map(t=>({curve:t,ts:[0,1]}))}(r,n,f,i,u,o,{center:v,radius:g}),x=v;const w=Kv(function(t,n,e,r){let o=Number.POSITIVE_INFINITY;for(let i=0;i<n.length;i++){const c=n[i],s=c.curve.ps,u=2;for(let n=0;n<u+1;n++){const i=Fv(t,e,r,mo(s,c.ts[n/u]));if(i){let t=Il(e,i);t<o&&(o=t)}}}return(1+2**-10)*o}(c,b,m,v));let _,I;g>w&&(x=ie(m,v,w/g));let N=0;for(;N<25;){const i=zv(x,o.p);N<2&&(b=Yv(b,x,i));const s=kd(Jv(0,Uv(Zv(c/i)))+1,b,x,o.curve,o.t,e&&0==N&&g!==1/h,r).map(t=>mr(t.curve,t.t,!1));let u,f=Number.NEGATIVE_INFINITY;_=[];for(const t of s){if(void 0===t)continue;const n=zv(o.p,t.p);n>f&&(f=n,u=t),0!==n&&_.push(t)}const p=f;if(I=u,void 0===I||0===p)return;const m=zv(x,I.p);if(0===N&&g<(1-d)*Kv(m))return void Vv(t,g,v,o);if(!n&&p<=Jv(Gv(g,Kv(m),4*a),l))return;if(x=Bv(x,o.p,I.p),tg(Kv(i)-Kv(m))<a)break;if(N++,25===N)return}return{circle:{center:x,radius:Vn(x,I.p)},zs:[I]}}function og(t,n,e,r){const{cpTrees:o}=t;e[0]=0===e[0].t?mr(e[0].curve.prev,1,!0):e[0];const i=e.map(t=>id(n,t));for(let r=0;r<e.length;r++)if(Ud(t,e[r],n,i[r],0))return;const{anyFailed:c,cpNodes:s}=Rd(r,r,n,i,o,e);if(!c)return r&&function(t,n){const[e,r]=n,o=r.cp,i=Qd(!0,!0,!1,t.get(o.pointOnShape.curve.loop),{...o,order2:1},r),c=Qd(!0,!0,!1,t.get(e.cp.pointOnShape.curve.loop),{...e.cp,order2:-1},e.prev);c.prevOnCircle=i,c.nextOnCircle=i,i.prevOnCircle=c,i.nextOnCircle=c,r.next=e,e.prev=r,c.next=i,i.prev=c}(o,s),s[0];s.forEach(t=>{void 0!==t&&tr(t,o)})}const{PI:ig,atan2:cg}=Math;function sg(t,n,e,r){let o;const i=n*ig/180;for(let n=0;n<e.length;n++){const c=[0],s=e[n];if(1===s.t){const{curve:t}=s,n=Me(t.ps,t.next.ps);if(n.isQuiteDull){const t=od(n.tangents[0]),e=od(n.tangents[1]),r=(cg(t[1],t[0])+2*ig)%(2*ig),o=((cg(e[1],e[0])+2*ig)%(2*ig)-r+2*ig)%(2*ig);let s=i;for(;s<=o-i/2;)c.push(s),s+=i}}for(let e of c){const i=rg(t,!1,r,e,s);if(i){const{circle:n,zs:e}=i,r=og(t,n,[s,...e],!1);o=o||r}if("undefined"!=typeof _debug_&&n+1===_debug_.directives.stopAfterTwoProngsNum)return}}return o}function ug(t,n,e,r){let o;for(let i=0;i<e.length;i++){const c=sg(t,n,e[i],r);o=void 0===o?c:o}return o}function fg(t,n=.4,e=10,r=2**-16){const o=[0],i=[1];for(;;){const c=o[o.length-1],s=i[i.length-1],u=Dn(t,c,s),f=fh(u),l=Hn(u);if(f<=e&&l<=n||s-c<=r){if(o.push(i.pop()),1===s)return o;continue}const a=(c+s)/2;i.push(a)}}function lg(t,n,e){return function(r){const o=[],i=r.curves;for(let r=0;r<i.length;r++){const c=i[r],s=c.ps;if(fh(s)<t)continue;let u=fg(s,n,e);u=2===u.length?[.5]:u,u.push(...Bn(s)),u=u.filter(t=>0!==t&&1!==t);const f=u.map(t=>mr(c,t,!0));o.push(...f)}return o}}const ag=Ir,pg=P,hg=b,dg=Ir,vg=Po,gg=Ao,mg=Ir,bg=fr,xg=b,wg=x;const _g=P,Ig=Ir,Ng=fr,Mg=b,Sg=x;function Eg(t){if(bt(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&pt(t)&&(t=zu(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=_g(r,n),u=_g(i,r),f=Sg(u,s),l=_g(o,e),a=_g(c,o),p=Sg(a,l),h=Mg(Sg(Ig(n,Sg(f,[0,r])),Ig(r,Sg(u,[0,r]))),Sg(Ig(e,Sg(p,[0,o])),Ig(o,Sg(a,[0,o]))));return[Mg(Ng(f,f),Ng(p,p)),Qc(h)]}(t);return{minima:[],maxima:ho(n,0,1).map(t=>(t.tS+t.tE)/2),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=gv(t),[[s,u],[f,l]]=_v(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[dg(6,hg(pg(s,n),dg(3,pg(r,i))))],[dg(6,hg(pg(u,e),dg(3,pg(o,c))))]]}if(t.length<=3)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=bg(a,i),d=bg(p,e),v=bg(u,c),g=bg(u,i),m=bg(f,f),b=bg(s,c),x=bg(l,r),w=bg(l,e),_=bg(f,r),I=bg(r,e),N=bg(r,n),M=bg(r,o),S=bg(e,e),E=bg(e,n),y=bg(e,i),O=bg(n,c),C=bg(n,o),T=bg(n,n),P=bg(c,i),A=bg(c,o),k=bg(i,i),B=bg(i,o),F=bg(o,o),z=wg(bg(a,c),bg(p,r)),Y=wg(h,d),V=xg(bg(u,r),bg(l,c)),L=xg(xg(bg(u,e),bg(s,r)),xg(bg(l,i),bg(f,c))),$=wg(v,x),X=wg(xg(g,b),xg(w,_)),j=xg(bg(r,r),bg(c,c)),q=xg(I,P),W=xg(y,O),H=xg(A,k),D=xg(N,S),Q=xg(bg(e,o),bg(n,i)),R=wg(T,F),G=wg(E,B),U=xg(M,y),Z=wg(I,P),J=xg(bg(r,i),bg(e,c)),K=xg(A,H),tt=xg(N,D),nt=xg(M,W),et=xg(y,W),rt=wg(tt,K),ot=xg(W,O),it=xg(U,O),ct=xg(Po(w),_),st=bg(T,wg(h,mg(3,d))),ut=bg(F,wg(mg(3,h),d)),ft=Po(xg(bg(C,xg(wg(bg(a,e),bg(p,i)),mg(3,wg(bg(l,f),bg(u,s))))),mg(3,bg(bg(s,f),G)))),lt=mg(3,xg(bg(Q,wg(m,bg(s,s))),bg(R,xg(bg(u,f),bg(l,s))))),at=xg(xg(st,ut),xg(ft,lt)),pt=bg(a,xg(bg(o,xg(tt,mg(3,H))),bg(n,et))),ht=bg(p,xg(xg(bg(r,xg(mg(3,T),F)),bg(e,xg(mg(3,E),vg(B)))),bg(n,K))),dt=mg(3,xg(xg(bg(u,xg(wg(bg(l,R),bg(u,C)),vg(wg(bg(f,G),bg(s,Q))))),bg(s,wg(xg(vg(bg(l,G)),bg(f,xg(vg(wg(N,A)),wg(S,k)))),bg(s,it)))),xg(bg(l,xg(bg(l,C),vg(bg(f,Q)))),bg(m,nt)))),vt=xg(wg(pt,ht),dt),gt=bg(a,xg(xg(vg(bg(r,Q)),bg(e,ot)),bg(i,xg(gg(A),K)))),mt=bg(p,xg(xg(vg(bg(r,xg(mg(3,E),B))),bg(e,xg(S,vg(A)))),bg(i,ot))),bt=mg(3,xg(xg(bg(u,wg(xg(vg(wg(bg(l,G),bg(s,it))),bg(f,rt)),bg(u,Q))),bg(s,wg(vg(bg(f,Z)),bg(s,J)))),xg(bg(l,xg(xg(bg(l,Q),vg(bg(f,nt))),bg(s,rt))),bg(m,J)))),xt=xg(wg(gt,mt),bt),wt=bg(a,xg(bg(r,xg(M,vg(W))),bg(c,xg(S,mg(3,H))))),_t=bg(p,xg(bg(r,xg(mg(3,D),K)),bg(c,et))),It=mg(3,xg(xg(bg(u,xg(wg(bg(l,rt),bg(u,nt)),vg(wg(bg(f,Z),bg(s,J))))),bg(s,wg(bg(r,wg(ct,bg(s,c))),bg(c,xg(vg(bg(l,i)),bg(f,c)))))),xg(bg(l,xg(bg(l,W),bg(r,xg(vg(bg(f,i)),bg(l,o))))),bg(f,bg(c,ct))))),Nt=xg(wg(wt,_t),It),Mt=wg(xg(bg(j,Y),vg(bg(q,z))),mg(3,xg(bg(V,X),bg(L,$)))),St=wg(bg(z,j),mg(3,bg(V,$)));return{inflectionPoly:[wg(bg(s,o),bg(f,n)),wg(xg(bg(u,o),bg(s,i)),xg(bg(l,n),bg(f,e))),wg(xg(g,b),xg(w,_)),wg(v,x)],otherExtremaPoly:[at,vt,xt,Nt,Mt,St]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=ho(r,0,1),i=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(ag(e-r,t[r]));return n}(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=(o[t].tS+o[t].tE)/2,r=Xr(i,n);H(q(Xr(e,n),r))>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:ho(e,0,1).map(t=>(t.tS+t.tE)/2)}}const yg=Number.POSITIVE_INFINITY,Og=Kn(function(t){const n=[[{bezier:void 0,t:void 0,val:yg},{bezier:void 0,t:void 0,val:yg}],[{bezier:void 0,t:void 0,val:-yg},{bezier:void 0,t:void 0,val:-yg}]];return t.curves.forEach(function(t){const e=rc(t.ps);{const r=e.box[0][0],o=n[0][0].val;(r<o||r===o&&e.ts[0][0]>n[0][0].t)&&(n[0][0]={bezier:t,t:e.ts[0][0],val:r})}{const r=e.box[0][1],o=n[0][1].val;(r<o||r===o&&e.ts[0][1]>n[0][1].t)&&(n[0][1]={bezier:t,t:e.ts[0][1],val:r})}{const r=e.box[1][0],o=n[1][0].val;(r>o||r===o&&e.ts[1][0]>n[1][0].t)&&(n[1][0]={bezier:t,t:e.ts[1][0],val:r})}{const r=e.box[1][1],o=n[1][1].val;(r>o||r===o&&e.ts[1][1]>n[1][1].t)&&(n[1][1]={bezier:t,t:e.ts[1][1],val:r})}}),{minY:mr(n[0][1].bezier,n[0][1].t,!0),minX:mr(n[0][0].bezier,n[0][0].t,!0),maxX:mr(n[1][0].bezier,n[1][0].t,!0),maxY:mr(n[1][1].bezier,n[1][1].t,!0)}});function Cg(t){return Og(t).minY}function Tg(t){const{loops:n}=t,e=n.map(Cg);let r;for(let n=1;n<e.length;n++){const o=e[n],i=rg(t,!0,!1,0,o);if(!i)throw new Error("Unable to find hole-closing 2-prong");const{circle:c,zs:s}=i,u=og(t,c,[o,s[0]],!0);r=void 0===r?u:r}return r}const Pg=Kn(function(t){let n,e,r,o,i=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(const f of t){const t=Og(f);t.minX.p[0]<i&&(n=t.minX,i=t.minX.p[0]),t.maxX.p[0]>c&&(e=t.maxX,c=t.maxX.p[0]),t.minY.p[1]<s&&(r=t.minY,s=t.minY.p[1]),t.maxY.p[1]>u&&(o=t.maxY,u=t.maxY.p[1])}return{minX:n,minY:r,maxX:e,maxY:o}});function Ag(t,n,e){const{minBezLength:r,maxCurviness:o,maxLength:i,angleIncrement:c}=e,s=sv(r),u=function(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];fh(o.ps)<t||Me(o.ps,o.next.ps).isQuiteDull&&(e.push(mr(o,1,!0)),e.push(mr(o.next,0,!0)))}return e}}(r),f=lg(r,o,i),l=function(t){return function(n){const e=[],r=function(t){return function(n){const e={minima:[],maxima:[]};for(let r=0;r<n.curves.length;r++){const o=n.curves[r];if(fh(o.ps)<t)continue;const{minima:i,maxima:c}=Eg(o.ps);e.minima.push(...i.map(t=>mr(o,t,!0))),e.maxima.push(...c.map(t=>mr(o,t,!0)))}return e}}(t)(n);return e.push(...r.minima,...r.maxima),e}}(r),a=t.map(s),p=new Map;rv(t,p,a);const h=Pg(t),d=cv(n,(h.maxX.p[0]-h.minX.p[0])**2+(h.maxY.p[1]-h.minY.p[1])**2,t,p);let g;if(g=Tg(d),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterHoleClosers)return{cpNode:g,meta:d};if(function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.holeClosers+=n-iv,iv=n}(),g=ug(d,c,t.map(u),!1)||g,g=ug(d,c,t.map(l),!0)||g,g=ug(d,c,t.map(f),!1)||g,function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.oneAnd2Prongs+=n-iv,iv=n}(),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterTwoProngs)return{cpNode:g,meta:d};if(g=function(t,n){if(void 0===n)return;const e=new Set;let r=!0;for(;r;){r=!1;const o=new Set(v(n));for(const n of o){const{closeBysFor3Prong:i,addedCpNodes:c}=Kd(t,n);c.length>0&&(r=!0),void 0===i?e.add(n):(r=!0,nv(t.cpTrees,i,o,e)),c.forEach(t=>t.forEach(t=>e.add(t)))}n=tv(e)}return tv(e)}(d,g),void 0===g)return;if("undefined"!=typeof _debug_&&_debug_.directives.stopAfterThreeProngs)return{cpNode:g,meta:d};const m={cpNode:g,meta:d};return"undefined"!=typeof _debug_&&(_debug_.generated.timing.threeProngs+=performance.now()-iv),m}function kg(t,n){const{maxCoordinate:e,maxRadius:r}=function(t){let n=0,e=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const c of t)for(const t of c)for(const c of t){const t=c[0],s=c[1],u=mh(bh(t),bh(s));u>n&&(n=u),t<e&&(e=t),t>r&&(r=t),s<o&&(o=s),s>i&&(i=s)}return{maxCoordinate:n,maxRadius:mh(r-e,i-o)}}(t),o=function(t,n,e){const r=Math.ceil(Math.log2(t)),o=Math.ceil(Math.log2(n)),i={...e};for(const t in rd){let n=i[t];const e=rd[t],{range:c,scaleByMaxCoordinate:s,scaleByMaxRadius:u}=e;n<c[0]&&(n=c[0]),n>c[1]&&(n=c[1]),s?n*=2**r*2**-10:u&&(n*=2**o*2**-10),i[t]=n}return i}(e,r,{...ed,...n||{}}),{applySat:i,simplify:c,satScale:s,simplifyTolerance:u}=o,f=gh(t),l=[];for(const t of f){let n=Ag(t,e,o);void 0!==n&&(i&&(n=nd(n,s)),c&&(n=Dh(n,u,50)),l.push(n))}return l}const{getProngCount:Bg,isOnSameCircle:Fg,isTerminating:zg}=ir;function Yg(t){const n=function(t){let n=t;const e=Gh(t);for(;e.length;){const r=e.pop();if(r.isHoleClosing||r.isIntersection)continue;let o=r.next;for(;;){o=o.next;let e=!1;const r=o.prevOnCircle;if(Bg(o)>2){const n=o.nextOnCircle;Fg(o,t)?e=!0:o.next===n?o=n:n.next!==r&&(e=!0)}else if(zg(o)&&!o.isIntersection)return void(n=o);if(e){r.next=o,o.prev=r,n=o;break}}}return n}(Ze(t.cpNode));if(n)return{cpNode:n,meta:{...t.meta,cpTrees:Hh(n)}}}let Vg=0;function Lg(t){return t.map(t=>{return(n=t.cp.pointOnShape).p[0]+", "+n.p[1]+" | bz: "+n.curve.idx+" | t: "+n.t;var n})}function $g(t,n=3){return t[0].toFixed(n)+", "+t[1].toFixed(n)}const Xg={δToString:Lg,δsToString:function(t){return t.map(Lg)},pointToStr:$g,pointsToStr:function(t,n=3){return t.map(t=>$g(t,n))},nameObj:function(t,n=""){t.name=""+n+Vg++}},jg="red thin10 nofill ",qg="http://www.w3.org/2000/svg";function Wg(t,n,e=jg,r){const o=n.center,i=n.radius,c=document.createElementNS(qg,"circle");return c.setAttributeNS(null,"cx",o[0].toString()),c.setAttributeNS(null,"cy",o[1].toString()),c.setAttributeNS(null,"r",i.toString()),c.setAttributeNS(null,"class",e),t.appendChild(c),r&&setTimeout(()=>c.remove(),r),[c]}function Hg(t,n,e=3,r="red",o){const[i]=Wg(t,{center:n,radius:e},"dot "+r,o);return o&&setTimeout(()=>i.remove(),o),[i]}function Dg(t,n,e=jg,r=0,o=void 0,i=0){const c=document.createElementNS(qg,"line");c.setAttributeNS(null,"x1",n[0][0].toString()),c.setAttributeNS(null,"y1",n[0][1].toString()),c.setAttributeNS(null,"x2",n[1][0].toString()),c.setAttributeNS(null,"y2",n[1][1].toString()),c.setAttributeNS(null,"class",e),t.appendChild(c);let s=[];if(void 0!==o)for(const e of n)s.push(...Hg(t,e,i,o,r));for(const n of s)t.appendChild(n);const u=[c,...s];return r&&setTimeout(()=>{for(const t of u)t.remove()},r),u}function Qg(t,n,e=jg,r=3,o){const i=Wg(t,{center:n,radius:r},e),c=[[n[0]-r,n[1]],[n[0]+r,n[1]]],s=[[n[0],n[1]-r],[n[0],n[1]+r]],u=Dg(t,c,e),f=Dg(t,s,e);return o&&setTimeout(()=>{i.forEach(t=>t.remove()),u.forEach(t=>t.remove()),f.forEach(t=>t.remove())},o),[...i,...u,...f]}function Rg(t){return 2===t?"L":3===t?"Q":4===t?"C":void 0}function Gg(t,n,e=jg,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p]]=n,h=document.createElementNS(qg,"path");h.setAttributeNS(null,"d",`M${s} ${u} Q${f} ${l} ${a} ${p}`),e&&h.setAttributeNS(null,"class",e);let d=[];if(void 0!==o)for(const e of n)d.push(...Hg(t,e,i,o,r));let v=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)v.push(...Dg(t,[n[e],n[e+1]],c,r));const g=[h,...d,...v];for(const n of g)t.appendChild(n);return r&&setTimeout(()=>{for(const t of g)t.remove()},r),g}function Ug(t,n,e=jg,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p],[h,d]]=n;if(s===h&&f===h&&a===h&&u===d&&l===d&&p===d)return Qg(t,[s,u],e,.2,r);const v=document.createElementNS(qg,"path");v.setAttributeNS(null,"d",`M${s} ${u} C${f} ${l} ${a} ${p} ${h} ${d}`),v.setAttributeNS(null,"class",e);let g=[];if(void 0!==o)for(const e of n)g.push(...Hg(t,e,i,o,r));let m=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)m.push(...Dg(t,[n[e],n[e+1]],c,r));const b=[v,...g,...m];for(const n of b)t.appendChild(n);return r&&setTimeout(()=>{for(const t of b)t.remove()},r),b}function Zg(t,n,e=jg,r=0,o=void 0,i=0,c=void 0){return 2===n.length?Dg(t,n,e,r,o,i):3===n.length?Gg(t,n,e,r,o,i,c):4===n.length?Ug(t,n,e,r,o,i,c):[]}const Jg=["red","green","cyan","blue"];function Kg(t,n){const e=1-n;if(4===t.length){const[[r,o],[i,c],[s,u],[f,l]]=t;return[r*e**3+3*i*e**2*n+3*s*e*n**2+f*n**3,o*e**3+3*c*e**2*n+3*u*e*n**2+l*n**3]}if(3===t.length){const[[r,o],[i,c],[s,u]]=t;return[r*e**2+2*i*e*n+s*n**2,o*e**2+2*c*e*n+u*n**2]}if(2===t.length){const[[r,o],[i,c]]=t;return[r*e+i*n,o*e+c*n]}return[NaN,NaN]}function tm(t,n){return 2===t.length?function(t,n){const[[e,r],[o,i]]=t,c=1-n,s=[c*e+n*o,c*r+n*i];return[[[e,r],s],[s,[o,i]]]}(t,n):3===t.length?function(t,n){const[[e,r],[o,i],[c,s]]=t,u=1-n,f=[u*u*e+2*u*n*o+n*n*c,u*u*r+2*u*n*i+n*n*s];return[[[e,r],[u*e+n*o,u*r+n*i],f],[f,[u*o+n*c,u*i+n*s],[c,s]]]}(t,n):4===t.length?function(t,n){const[[e,r],[o,i],[c,s],[u,f]]=t,l=1-n,a=n*n,p=a*n,h=l*l,d=h*l,v=[p*u+3*l*a*c+3*h*n*o+d*e,p*f+3*l*a*s+3*h*n*i+d*r];return[[[e,r],[n*o+l*e,n*i+l*r],[a*c+2*l*n*o+h*e,a*s+2*l*n*i+h*r],v],[v,[a*u+2*n*l*c+h*o,a*f+2*n*l*s+h*i],[n*u+l*c,n*f+l*s],[u,f]]]}(t,n):[]}const nm={circle:Wg,crossHair:Qg,dot:Hg,line:Dg,rect:function(t,n,e=jg,r){const[[o,i],[c,s]]=n,u=o<c?o:c,f=i<s?i:s,l=Math.abs(o-c),a=Math.abs(i-s),p=document.createElementNS(qg,"rect");return p.setAttributeNS(null,"x",u.toString()),p.setAttributeNS(null,"y",f.toString()),p.setAttributeNS(null,"width",l.toString()),p.setAttributeNS(null,"height",a.toString()),e&&p.setAttributeNS(null,"class",e),t.appendChild(p),r&&setTimeout(()=>p.remove(),r),[p]},beziers:function(t,n,e,r){const o=void 0===e,i=[];for(let r=0;r<n.length;r++){const c=n[r],s=o?"thin5 nofill "+Jg[r%Jg.length]:e;i.push(...Zg(t,c,s))}return r&&setTimeout(()=>i.forEach(t=>t.remove()),r),i},bezier:Zg,bezierPiece:function(t,n,e,r=jg,o){const i=e[0]===e[1]?Qg(t,Kg(n,e[0]),r,1.5):Zg(t,function(t,n){if(0===n[0]&&1===n[1])return t;if(n[0]===n[1]){const e=Kg(t,n[0]);return[e,e,e,e]}return 0===n[0]?tm(t,n[1])[0]:1===n[1]?tm(t,n[0])[1]:tm(tm(t,n[0])[1],(n[1]-n[0])/(1-n[0]))[0]}(n,e),r);return o&&setTimeout(()=>i.forEach(t=>t.remove()),o),i},quadBezier:Gg,cubicBezier:Ug,polygon:function(t,n,e=jg,r){const o=document.createElementNS(qg,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},loop:function(t,n,e=jg,r){if(!n.length)return[];const o=document.createElementNS(qg,"path");let i=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];i+=`${Rg(e.length)} `;for(let t=1;t<e.length;t++)i+=`${e[t][0]} ${e[t][1]} `}return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},polyline:function(t,n,e=jg,r){if(n.length<2)return[];const o=document.createElementNS(qg,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},text:function(t,n,e,r,o=jg,i){const c=document.createElementNS(qg,"text");return c.setAttributeNS(null,"x",n[0].toString()),c.setAttributeNS(null,"y",n[1].toString()),c.setAttributeNS(null,"font-size",r.toString()),c.setAttributeNS(null,"class",o),c.textContent=e,t.appendChild(c),i&&setTimeout(()=>c.remove(),i),[c]}};function em(t,n){return(n,e,r,o=0,i=1)=>{let c,s;switch(e.isHoleClosing){case!1:c="red ",s="2";break;case!0:c="cyan ",s="10"}const u=e.cp,{circle:f,pointOnShape:l}=u,{center:a,radius:p}=f,{isSource:h,p:d}=l,v=e.nextOnCircle.cp.pointOnShape.p,g=h?d:v,m=h?v:d,{line:b,dot:x,circle:w,crossHair:_}=nm,I=x(n,f.center,.02*i,"yellow",o);return[...w(n,f,c+"thin"+s+" nofill",o),...x(n,g,.005*i,c,o),...x(n,m,.01*i,c,o),...t?_(n,f.center,"red thin2 nofill",.002*i,o):[],...I]}}function rm(t,n){return{center:t.center,radius:n*t.radius}}const{getAllOnCircle:om}=ir,{isTerminating:im}=ir,cm=["thin10 blue nofill","thin10 red nofill"];function sm(t,n,e,r=0,o=1){let i=n.cpNode;if(!i)return[];for(;!im(i);)i=i.next;const c=[];let s=0;return Qe(i,n=>{if(im(n))return;const e=Pe(n);e&&(c.push(...nm.bezier(t,e,cm[s%2],r)),s++)}),c}function um(t,n,e,r){const o=document.createElementNS("http://www.w3.org/2000/svg","circle");return o.setAttributeNS(null,"cx",n[0].toString()),o.setAttributeNS(null,"cy",n[1].toString()),o.setAttributeNS(null,"r",e.toString()+"%"),o.setAttributeNS(null,"class",r),t.appendChild(o),o}function fm(t,n,e="thin5 purple nofill",r=0,o=1){const i=[],c=[];for(const t of n){if(Be(t))continue;const n=Pe(t);n&&c.push(n)}return i.push(...p(t,c,e,r)),i}const lm={oneProng:function(t,n,e,r=0,o=1){const i=n[0].cp,{circle:c,pointOnShape:s}=i;return[...nm.dot(t,s.p,.02*o,"deeppink",r),...nm.dot(t,c.center,.05*o,"deeppink",r),...nm.circle(t,c,"deeppink thin5 nofill",r)]},twoProng:em(!1),threeProng:function(t,n,e,r=0,o=1){const i=rm(n.cp.circle,1),{center:c,radius:s}=i,u=ir.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=nm,p=l(t,i,"blue thin2 nofill",r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...nm.line(t,[e,c],"thin5 red",r))}const v=a(t,i.center,"red thin2 nofill",.02*o,r);return[...h,...d,...p,...v]},boundingHull:function(t,n,e="thin5 black nofill",r=0,o=1){return nm.polygon(t,n,e,r)},looseBoundingBox:function(t,n,e="thin5 brown nofill",r=0,o=1){const[[i,c],[s,u]]=n;return n=[[i,c],[s,c],[s,u],[i,u]],nm.polygon(t,n,e,r)},tightBoundingBox:function(t,n,e="thin5 pinker nofill",r=0,o=1){return nm.polygon(t,n,"thin5 pinker nofill",r)},vertex:function(t,n,e,r=0,o=1){const i=n.cp.circle;let c=[];return c=[...nm.dot(t,i.center,.01*o,"darkgreen",r)],c},mat:sm,maxVertex:function(t,n){const e=n.cp.circle;return nm.circle(t,e,"brown thin10 nofill")},leaves:function(t,n,e="thin10 deeppink nofill",r=0,o=1){const i=[],{line:c,dot:s,circle:u}=nm;for(const f of n){const n=f.cp,{circle:l}=n,{center:a,radius:p}=l,h=[um(t,a,.5,"pinker thin5 nofill")],d=ir.getAllOnCircle(f).map(t=>t.cp.pointOnShape),v=[],g=[];for(let n=0;n<d.length;n++){const e=d[n].p;g.push(...s(t,e,.01*(n+1)*o,"pinker",r)),v.push(...c(t,[e,a],"thin5 red",r))}const m=u(t,l,e,r);i.push(...m,...g,...v,...h)}return i},cull:function(t,n,e="thin10 cyan nofill",r=0,o=1){const i=[];return i.push(...nm.crossHair(t,n,e,.1*o,r)),i},cpNode:function(t,n,e="blue thin2 nofill",r=0,o=1){const i=rm(n.cp.circle,1),{center:c,radius:s}=i,u=ir.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=nm,p=l(t,i,e,r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...nm.line(t,[e,c],"thin5 red",r))}const v=a(t,c,"orange thin10 nofill",2*o,r);return[...h,...d,...p,...v]},branch:fm,holeCloser:em(!1),speed:function(t,n,e,r=0,o=1){const i=[],c=je(0)(n);if(void 0===c)return[];const s=n.cp.pointOnShape,{p:u,t:f}=s,l=c*o/8,a=Rp(function(t,n){const[e,r]=jn(t);return[-vn(r,n),vn(e,n)]}(s.curve.ps,f),l);return i.push(...nm.line(t,[u,ce(u,a)],"red thin5",r)),i}},am={...lm,twoProng:em(!0)};function pm(t){if(!t)return void(window._debug_=void 0);let n=window._debug_;n={...n,generated:{...n&&n.generated?n.generated:{},elems:{...n&&n.generated&&n.generated.elems?n.generated.elems:{},oneProng:[],twoProng:[],looseBoundingBox:[],tightBoundingBox:[],vertex:[],threeProng:[],boundingHull:[],mat:[],cpNode:[],maxVertex:[],leaves:[]},timing:{...n&&n.generated&&n.generated.timing?n.generated.timing:{},holeClosers:0,oneAnd2Prongs:0,threeProngs:0,sats:0,simplifyMat:0}},fs:{...n&&n.fs?n.fs:{},drawElem:{...n&&n.fs&&n.fs.drawElem?n.fs.drawElem:{},...lm},...Xg},directives:{...n&&n.directives?n.directives:{},stopAfterHoleClosers:!1,stopAfterHoleClosersNum:void 0,stopAfterTwoProngs:!1,stopAfterTwoProngsNum:void 0,stopAfterThreeProngs:!1,stopAfterThreeProngsNum:void 0}},window._debug_=n}const hm={oneProng:[],twoProng:[],threeProng:[],looseBoundingBox:[],tightBoundingBox:[],boundingHull:[],vertex:[],mat:[],maxVertex:[],leaves:[],cull:[],cpNode:[],branch:[],holeCloser:[],speed:[]},dm=Object.keys(hm);function vm(t,n,e,r){const o=[];for(const r of t)o.push({type:0,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(gm);const i=new Set,c=[];for(const t of o){const{item:n}=t;if(0===t.type){for(const t of i.values())r(n,t)&&c.push([n,t]);i.add(n)}else 1===t.type&&i.delete(t.item)}return c}function gm(t,n){const e=t.x-n.x;return 0!==e?e:0===t.type?-1:1}function mm(t){return t}function bm(t,n){const e=rg(t,!1,!1,0,n);if(void 0===e)return;const{circle:r,zs:o}=e;return og(t,r,[n,...o],!1)}const xm=1e-4;function wm(t,n){const e=t.cp.pointOnShape,r=n.cp.pointOnShape;let{curve:o,p:i,t:c}=e,{curve:s,p:u,t:f}=r;if(i[0]===u[0]&&i[1]===u[1])return[i];1===c&&(c=0,o=o.next),0===f&&(f=1,s=s.prev);const{ps:l}=o,{ps:a}=s,p=[i,ce(i)(se(fe(l,c)))],h=[u,ce(u)(se(fe(a,f)))],d=te(p,h),v=ne(i,u);let g;if(d){const t=ne(i,d),n=ne(u,d);g=ee(t,v)<0||ee(n,v)>0}else g=!0;if(!g)return[i,d,u];const m=ne(p[0],p[1]),b=ne(h[0],h[1]),x=Math.abs(oe(v,m))/9,w=Math.abs(oe(v,b))/9;return x>.01||w>.01||x>xm||w>xm?void 0:[i,u]}const _m=Kn(function(t){return Un(Pe(t))});function Im(t,n){const e=function(t){const n=new Map;for(let e of t)for(let r of t){const t=e.cp.circle.center,o=r.cp.circle.center,i=e.cp.pointOnShape.p,c=r.cp.pointOnShape.p;r!==e&&t[0]===o[0]&&t[1]===o[1]&&i[0]===c[0]&&i[1]===c[1]&&n.set(e,r)}return n}(n),r=t.length,o=[];for(let n=0;n<r;n++){const i=t[n],c=[];for(let o=0;o<r;o++){const r=t[o];if(n===o){c.push(0);continue}let s=Number.POSITIVE_INFINITY;for(const t of ke(i)){let n=_m(t),o=t.next;for(;!er(o,r);)if(o.isHoleClosing)o=Nm(e,o);else{if(sr(o)){n=Number.POSITIVE_INFINITY;break}n+=_m(o),o=o.next}n<s&&(s=n)}c.push(s)}o.push(c)}return o}function Nm(t,n){return t.get(n).next}export{ir as CpNodeFs,r as beziersToSvgPathStr,mm as connectHoleClosers,rv as createInitialCpTree,mr as createPos,dm as debugElemNames,p as drawBeziersAsSinglePath,fm as drawBranch,lm as drawElemFs,am as drawElemFsDetailed,sm as drawMat,hm as emptyDebugElems,pm as enableDebugForMat,rg as find2Prong,bm as findAndAdd2Prong,Tg as findAndAddHoleClosing2Prongs,kg as findMats,h as floydWarshall,Ke as getBoundaryBeziersToNext,Wd as getBoundaryPieceBeziers,kh as getBranches,kd as getCloseBoundaryPointsCertified,Cd as getClosestSquareDistanceToRect,lg as getFor2ProngsOnLoop,Im as getGraph,wm as getImpliedBoundaryBezierBetween,cv as getMeta,a as getPathsFromStr,yd as getPotentialClosestPointsOnCurveCertified,td as getSatCulls,Pg as getShapeBounds,sv as getSharpCornersOnLoop,sr as isVertexSpecial,n as loopFromBeziers,Dh as simplifyMat,vm as sweepLine,nd as toScaleAxis,Yg as trimMat};
1
+ var t={};function n(t=[],n){const r=[],o={beziers:t,curves:r,idx:n};if(0===t.length)return o;let i,c=0;for(let n=0;n<t.length;n++){if(e(t[n]))continue;const s={loop:o,ps:t[n],prev:i,next:void 0,idx:c};i&&(i.next=s),i=s,r.push(s),c++}const s=r[r.length-1];return r[0].prev=s,s.next=r[0],s.ps[s.ps.length-1]=r[0].ps[0],o}function e(t){return 2===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]:3===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]:t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]&&t[2][1]===t[3][1]&&t[2][1]===t[3][1]}function r(t){const n=[];for(let e=0;e<t.length;e++){const r=t[e];0===e&&n.push("M "+r[0][0].toString()+" "+r[0][1].toString()),4===r.length?n.push("C "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "+r[3][0].toString()+" "+r[3][1].toString()+" "):3===r.length?n.push("Q "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "):2===r.length&&n.push("L "+r[1][0].toString()+" "+r[1][1].toString()+" ")}return n.push(" z"),n.join("\n")}t.d=(n,e)=>{for(var r in e)t.o(e,r)&&!t.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:e[r]})},t.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n);class o{initialPoint=void 0;p;vals=void 0;prev2ndCubicControlPoint=void 0;prev2ndQuadraticControlPoint=void 0;constructor(){this.p=[0,0]}}function i(t){const n=[t.p,t.initialPoint];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n}function c(t){t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0;const n=(e=t.p,t.vals[0],t.vals[1],t.vals[2],t.vals[3],t.vals[4],[[e,[t.vals[5],t.vals[6]]]]);var e;const r=n[n.length-1];return t.p=r[r.length-1],n}const s={c:function(t){const n=[t.p,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]],[t.vals[4],t.vals[5]]];return t.prev2ndCubicControlPoint=n[2],t.prev2ndQuadraticControlPoint=void 0,n},h:function(t){const n=[t.p,[t.vals[0],t.p[1]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},l:function(t){const n=[t.p,t.vals];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},q:function(t){const n=[t.vals[0],t.vals[1]],e=[t.vals[2],t.vals[3]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},s:function(t){const n=t.prev2ndCubicControlPoint?[t.p[0]-t.prev2ndCubicControlPoint[0]+t.p[0],t.p[1]-t.prev2ndCubicControlPoint[1]+t.p[1]]:t.p,e=[t.p,n,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]]];return t.prev2ndCubicControlPoint=e[2],t.prev2ndQuadraticControlPoint=void 0,e},t:function(t){const n=t.prev2ndQuadraticControlPoint?[t.p[0]-t.prev2ndQuadraticControlPoint[0]+t.p[0],t.p[1]-t.prev2ndQuadraticControlPoint[1]+t.p[1]]:t.p,e=[t.vals[0],t.vals[1]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},v:function(t){const n=[t.p,[t.p[0],t.vals[0]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},z:i};function u(t){let n=0,e=0,r=1,o=0,i=1,c=1;const s=t._currentIndex;t._skipOptionalSpaces();let u=t._currentIndex;u<t._endIndex&&"+"===t._string[u]?(t._currentIndex+=1,u+=1):u<t._endIndex&&"-"===t._string[u]&&(t._currentIndex+=1,u+=1,i=-1);const f=t._string[u];if(u===t._endIndex||(f<"0"||f>"9")&&"."!==f)throw new Error(`The first character of a number must be one of [0-9+-.]. Found '${f}' at index ${u}.`);const l=t._currentIndex;for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)t._currentIndex+=1,u+=1;if(u!==l){let n=u-1,r=1;for(;n>=l;)e+=r*(Number(t._string[n])-0),n-=1,r*=10}if(u<t._endIndex&&"."===t._string[u]){if(t._currentIndex+=1,u+=1,u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be a least one digit following the .");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)r*=10,o+=Number(t._string.charAt(u))/r,t._currentIndex+=1,u+=1}if(u!==s&&u+1<t._endIndex&&("e"===t._string[u]||"E"===t._string[u])&&"x"!==t._string[u+1]&&"m"!==t._string[u+1]){if(t._currentIndex+=1,u+=1,"+"===t._string[u]?(t._currentIndex+=1,u+=1):"-"===t._string[u]&&(t._currentIndex+=1,u+=1,c=-1),u>=t._endIndex||t._string[u]<"0"||t._string[u]>"9")throw new Error("There must be an exponent.");for(;u<t._endIndex&&t._string[u]>="0"&&t._string[u]<="9";)n*=10,n+=Number(t._string[u]),t._currentIndex+=1,u+=1}let a=e+o;if(a*=i,n&&(a*=Math.pow(10,c*n)),s===u)throw new Error("Internal error: startIndex === source._currentIndex");return t._skipOptionalSpacesOrDelimiter(),a}const f={Z:"Z",M:"M",L:"L",C:"C",Q:"Q",A:"A",H:"H",V:"V",S:"S",T:"T",z:"Z",m:"m",l:"l",c:"c",q:"q",a:"a",h:"h",v:"v",s:"s",t:"t"};class l{_string;_currentIndex;_endIndex;_prevCommand;constructor(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._prevCommand=void 0,this._skipOptionalSpaces()}parseSegment(){const t=this._string[this._currentIndex];let n,e=f[t];if(void 0===e){if(void 0===this._prevCommand)throw new Error("Implicit command not allowed for first commands.");if(!("+"===t||"-"===t||"."===t||t>="0"&&t<="9")||"Z"===this._prevCommand)throw new Error("Remaining coordinates not found for implicit command");e="M"===this._prevCommand?"L":"m"===this._prevCommand?"l":this._prevCommand}else this._currentIndex+=1;this._prevCommand=e;const r=e.toUpperCase();if("H"===r||"V"===r?n=[u(this)]:"M"===r||"L"===r||"T"===r?n=[u(this),u(this)]:"S"===r||"Q"===r?n=[u(this),u(this),u(this),u(this)]:"C"===r?n=[u(this),u(this),u(this),u(this),u(this),u(this)]:"A"===r?n=[u(this),u(this),u(this),this._parseArcFlag(),this._parseArcFlag(),u(this),u(this)]:"Z"===r&&(this._skipOptionalSpaces(),n=[]),void 0===n)throw new Error("Unknown command");return{type:e,values:n}}hasMoreData(){return this._currentIndex<this._endIndex}initialCommandIsMoveTo(){if(!this.hasMoreData())return!0;const t=f[this._string[this._currentIndex]];return"M"===t||"m"===t}_isCurrentSpace(){const t=this._string[this._currentIndex];return t<=" "&&(" "===t||"\n"===t||"\t"===t||"\r"===t||"\f"===t)}_skipOptionalSpaces(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex+=1;return this._currentIndex<this._endIndex}_skipOptionalSpacesOrDelimiter(){return!(this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&","!==this._string[this._currentIndex])&&(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&","===this._string[this._currentIndex]&&(this._currentIndex+=1,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)}_parseArcFlag(){if(this._currentIndex>=this._endIndex)throw new Error("Unable to parse arc flag");let t;const n=this._string[this._currentIndex];if(this._currentIndex+=1,"0"===n)t=0;else{if("1"!==n)throw new Error("Unable to parse arc flag - arc flag must be 0 or 1");t=1}return this._skipOptionalSpacesOrDelimiter(),t}}function a(t){return function(t){if(0===t.length)return[];if("m"!==t[0].type.toLowerCase())throw new Error("Invalid SVG - every new path must start with an M or m.");const n=new o,e=[];let r,u=[];for(let o=0;o<t.length;o++){const f=t[o],l=f.type.toLowerCase();if(n.vals=f.values,f.type===l)if("v"===l)n.vals[0]+=n.p[1];else if("a"===l)n.vals[5]+=n.p[0],n.vals[6]+=n.p[1];else for(let t=0;t<n.vals.length;t++)n.vals[t]+=n.p[t%2];if("m"!==l){if("a"===l)u.push(...c(n));else{const t=s[l];if(!t)throw new Error("Invalid SVG - command not recognized.");const e=t(n);n.p=e[e.length-1],u.push(e)}r=l}else u.length&&("z"!==r&&u.push(i(n)),e.push(u),u=[]),n.initialPoint=n.p=n.vals,r=l}return u.length>0&&("z"!==r&&u.push(i(n)),e.push(u)),e}(function(t){if(!t.length)return[];const n=new l(t),e=[];if(!n.initialCommandIsMoveTo())throw new Error("Path must start with m or M");for(;n.hasMoreData();)e.push(n.parseSegment());return e}(t))}function p(t,n,e="thin10 red nofill",r=0){if(0===n.length)return[];let o=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];if(e.length<=1)continue;const[,r,i,c]=e;o+=2===e.length?`L ${r[0]} ${r[1]} `:3===e.length?`Q ${r[0]} ${r[1]} ${i[0]} ${i[1]} `:`C ${r[0]} ${r[1]} ${i[0]} ${i[1]} ${c[0]} ${c[1]} `}const i=document.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttributeNS(null,"d",o),i.setAttributeNS(null,"class",e),t.appendChild(i),[i]}function h(t){const n=t.length,e=Array.from(Array(n),()=>new Array(n).fill(0));for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][o]=t[r][o];for(let t=0;t<n;t++)for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][t]+e[t][o]<e[r][o]&&(e[r][o]=e[r][t]+e[t][o]);return e}function d(t,n){let e=function(t,n){let e;return e=t.curve.idx-n.curve.idx,0!==e||(e=t.t-n.t),e}(t.pointOnShape,n.pointOnShape);return 0!==e?e:(e=t.order-n.order,0!==e?e:t.order2-n.order2)}function v(t){const n=t,e=[n];let r=t.next;for(;r!==n;)e.push(r),r=r.next;return e}const g=134217729;function m(t,n){const e=t*n,r=g*t,o=r-(r-t),i=t-o,c=g*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}function b(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r+i,s=c-r,u=e+o,f=u-e,l=r-(c-s)+(i-s)+u,a=c+l,p=e-(u-f)+(o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}function x(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r-i,s=c-r,u=e-o,f=u-e,l=r-(c-s)+(-i-s)+u,a=c+l,p=e-(u-f)+(-o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}const w=m,_=b,I=x,{atan2:N}=Math;function M(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=I(w(i,e),w(o,r))[1],s=_(w(o,e),w(i,r))[1];return N(c,s)}const S=Math.abs,E=[[0,0],[0,0],[0,0]];function y(t,n,e){return 0===n?1===e?{ps:t,_ps:E}:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=c-u,d=[[i,c],[-n*p+i,-n*h+c],[a*(p+(f-s))-(2*n*p-i),a*(h+(l-u))-(2*n*h-c)]],v=S(n),g=S(i),m=S(s),b=S(f),x=g+m,w=S(c),_=S(u),I=w+_;return{ps:d,_ps:[[0,0],[v*x+g,v*I+w],[a*(x+(b+m))+(2*v*x+g),a*(I+(S(l)+_))+(2*v*I+w)]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=f-s,d=c-u,v=l-u,g=[[a*(p+h)-(2*n*p-i),a*(d+v)-(2*n*d-c)],[n*h+s,n*v+u],[f,l]],m=S(n),b=S(i),x=S(s),w=b+x,_=S(f)+x,I=S(c),N=S(u),M=I+N;return{ps:g,_ps:[[a*(w+_)+(2*m*w+b),a*(M+(S(l)+N))+(2*m*M+I)],[m*_+x,0],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=i[0],a=i[1],p=n*n,h=e*e,d=n*e,v=c-u,g=v+(l-u),m=s-f,b=m+(a-f),x=p*g-(2*n*v-c),w=d*g-(v*(e+n)-c),_=h*g-(2*e*v-c),I=p*b-(2*n*m-s),N=d*b-(m*(e+n)-s),M=h*b-(2*e*m-s),E=S(n),y=S(e),O=S(d),C=S(c),T=S(u),P=C+T,A=P+S(l)+T,k=S(s),B=S(f),F=k+B,z=F+S(a)+B;return{ps:[[x,I],[w,N],[_,M]],_ps:[[p*A+(2*E*P+C),p*z+(2*E*F+k)],[O*A+(P*(y+E)+C),O*b+(F*(y+E)+k)],[h*A+(2*y*P+C),h*z+(2*y*F+k)]]}}(t,n,e)}const O=Math.abs,C=[[0,0],[0,0],[0,0],[0,0]];function T(t,n,e){return 0===n?1===e?{ps:t,_ps:C}:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=d-n*(d-v),m=g-n*(g-(v-n*(v-(l-n*(l-p))))),b=s-n*(s-f),x=f-n*(f-a),w=b-n*(b-x),_=w-n*(w-(x-n*(x-(a-n*(a-h))))),I=O(n),N=O(c),M=O(u),S=O(l),E=O(p),y=O(s),C=O(f),T=O(a),P=N+I*(N+M),A=M+I*(M+S),k=P+I*(P+A),B=y+I*(y+C),F=C+I*(C+T),z=B+I*(B+F);return{ps:[[c,s],[d,b],[g,w],[m,_]],_ps:[[0,0],[P,B],[k,z],[k+I*(k+(A+I*(A+(S+I*(S+E))))),z+I*(z+(F+I*(F+(T+I*(T+O(h))))))]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=l-n*(l-p),m=d-n*(d-v),b=v-n*(v-g),x=m-n*(m-b),w=s-n*(s-f),_=f-n*(f-a),I=a-n*(a-h),N=w-n*(w-_),M=_-n*(_-I),S=N-n*(N-M),E=O(n),y=O(c),C=O(u),T=O(l),P=O(p),A=O(s),k=O(f),B=O(a),F=y+E*(y+C),z=C+E*(C+T),Y=T+E*(T+P),V=F+E*(F+z),L=z+E*(z+Y),$=A+E*(A+k),X=k+E*(k+B),j=B+E*(B+O(h)),q=$+E*($+X),W=X+E*(X+j);return{ps:[[x,S],[b,M],[g,I],[p,h]],_ps:[[V+E*(V+L),q+E*(q+W)],[L,W],[Y,j],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,b=s-f,x=a-f,w=c[0]-s,_=b+x,I=n*b,N=e*b,M=w-3*x,S=u-l,E=p-l,y=c[1]-u,C=S+E,T=n*S,P=e*S,A=y-3*E,k=d*M+(3*n*(n*_-b)+s),B=m*(n*M+2*_)+(h*_+s-(N+2*I)),F=m*(e*M+2*_)+(v*_+s-(2*N+I)),z=g*M+(3*e*(e*_-b)+s),Y=d*A+(3*n*(n*C-S)+u),V=m*(n*A+2*C)+(h*C+u-(P+2*T)),L=m*(e*A+2*C)+(v*C+u-(2*P+T)),$=g*A+(3*e*(e*C-S)+u),X=O(n),j=O(e),q=O(m),W=O(d),H=O(g),D=O(s),Q=O(f),R=D+Q,G=O(a)+Q,U=R+G,Z=X*R,J=j*R,K=O(w)+3*G,tt=O(u),nt=O(l),et=tt+nt,rt=O(p)+nt,ot=et+rt,it=X*et,ct=j*et,st=O(y)+3*rt;return{ps:[[k,Y],[B,V],[F,L],[z,$]],_ps:[[W*K+(3*X*(X*U+R)+D),W*st+(3*X*(X*ot+et)+tt)],[q*(X*K+2*U)+(h*U+D+(J+2*Z)),q*(X*st+2*ot)+(h*ot+tt+(ct+2*it))],[q*(j*K+2*U)+(v*U+D+(2*J+Z)),q*(j*st+2*ot)+(v*ot+tt+(2*ct+it))],[H*K+(3*j*(j*U+R)+D),H*st+(3*j*(j*ot+et)+tt)]]}}(t,n,e)}function P(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function A(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}function k(t,n){const e=t.length,r=n.length;let o=0,i=0;const c=[];for(;o<e&&i<r;)0!==t[o]?0!==n[i]?Math.abs(t[o])<=Math.abs(n[i])?(c.push(t[o]),o++):(c.push(n[i]),i++):i++:o++;for(;o<e;)c.push(t[o]),o++;for(;i<r;)c.push(n[i]),i++;if(0===c.length)return[0];const s=c.length;if(1===s)return c;const u=[],f=c[1],l=c[0];let a=f+l;const p=l-(a-f);0!==p&&u.push(p),i=0;for(let t=2;t<s;t++){const n=c[t],e=a+n,r=e-a,o=a-(e-r)+(n-r);0!==o&&u.push(o),a=e}return 0===a&&0!==u.length||u.push(a),u}function B(t){const n=t.length,e=new Array(n);for(let r=0;r<n;r++)e[r]=-t[r];return e}const F=B,z=k;function Y(t,n){const e=F(n);return z(t,e)}const V=134217729;function L(t,n){const e=t.length;let r;const o=t[0];let i=o*n;const c=V*o,s=c-(c-o),u=o-s,f=V*n,l=f-(f-n),a=n-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=t[o],c=e*n,s=V*e,u=s-(s-e),f=e-u,l=V*n,a=l-(l-n),h=n-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const b=c+r,x=r-(b-c);0!==x&&p.push(x),i=b}return 0===i&&0!==p.length||p.push(i),p}function $(t,n){const e=n.length;let r;const o=n[0];let i=o*t;const c=V*o,s=c-(c-o),u=o-s,f=V*t,l=f-(f-t),a=t-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=n[o],c=e*t,s=V*e,u=s-(s-e),f=e-u,l=V*t,a=l-(l-t),h=t-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const b=c+r,x=r-(b-c);0!==x&&p.push(x),i=b}return 0===i&&0!==p.length||p.push(i),p}const X=L,j=k;function q(t,n){let e=[0];for(let r=0;r<t.length;r++)e=j(e,X(n,t[r]));return e}function W(t,n){const e=t.length;let r=n;const o=[];for(let n=0;n<e;n++){const e=t[n],i=r+e,c=i-r,s=r-(i-c)+(e-c);0!==s&&o.push(s),r=i}return 0===r&&0!==o.length||o.push(r),o}function H(t){return t[t.length-1]}function D(t,n){return H(Y(t,n))}const Q=Number.EPSILON/2,R=Q*Q;function G(t){const n=t*Q;return n/(1-n)}function U(t){const n=t*R;return n/(1-n)}function Z(t){const n=t[0][0],e=t[0][1];for(let r=1;r<t.length;r++)if(n!==t[r][0]||e!==t[r][1])return!1;return!0}function J(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}G(1),U(3);const K=Y,tt=H,nt=J,{abs:et}=Math;function rt(t){const[[n,e],[r,o],[i,c]]=t,s=n+i,u=s-2*r,f=et(s)+et(u);if(et(u)-f>0)return!1;const l=e+c,a=l-2*o,p=et(l)+et(a);return!(et(a)-p>0)&&0===tt(K(nt(n,i),[2*r]))&&0===tt(K(nt(e,c),[2*o]))}const ot=134217729;function it(t,n){const e=t*n,r=ot*t,o=r-(r-t),i=t-o,c=ot*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}const ct=it,st=k,ut=H,ft=Y,lt=Number.EPSILON/2,at=Math.abs;function pt(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s+3*r,l=n+3*i,a=f-l,p=at(3*r)+at(f)+(at(3*i)+at(l))+at(a);if(at(a)-lt*p>0)return!1;const h=u+3*o,d=e+3*c,v=h-d,g=at(3*o)+at(h)+(at(3*c)+at(d))+at(v);return!(at(v)-lt*g>0)&&0===ut(ft(st([s],ct(3,r)),st([n],ct(3,i))))&&0===ut(ft(st([u],ct(3,o)),st([e],ct(3,c))))}function ht(t){let n=t[0];for(let e=1;e<t.length;e++)n+=t[e];return n}function dt(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function vt(t){const n=t.slice(),e=n.length;if(1===e)return n;let r=n[e-1],o=e;for(let t=e-2;t>=0;--t){const e=r,i=n[t];r=e+i;const c=i-(r-e);c&&(n[--o]=r,r=c)}let i=0;for(let t=o;t<e;++t){const e=n[t],o=r;r=e+o;const c=o-(r-e);c&&(n[i++]=c)}return n[i++]=r,n.length=i,n}function gt(t,n,e){const r=(t[0]-e[0])*(n[1]-e[1]),o=(t[1]-e[1])*(n[0]-e[0]),i=r-o;let c;if(r>0){if(o<=0)return i;c=r+o}else{if(!(r<0))return i;if(o>=0)return i;c=-r-o}return Math.abs(i)>=3330669073875472e-31*c?i:function(t,n,e,r){const o=t[0]-e[0],i=n[0]-e[0],c=t[1]-e[1],s=n[1]-e[1],u=Y(it(o,s),it(c,i));let f=ht(u);if(Math.abs(f)>=2220446049250315e-31*r)return f;const l=dt(t[0],e[0])[0],a=dt(n[0],e[0])[0],p=dt(t[1],e[1])[0],h=dt(n[1],e[1])[0];if(0===l&&0===p&&0===a&&0===h)return f;const d=1109335647967049e-46*r+3330669073875471e-31*Math.abs(f);if(f+=o*h+s*l-(c*a+i*p),Math.abs(f)>=d)return f;const v=k(u,Y(it(l,s),it(p,i))),g=k(v,Y(it(o,h),it(c,a)));let m=k(g,Y(it(l,h),it(p,a)));return m=vt(m),m[m.length-1]}(t,n,e,c)}const mt=gt;function bt(t){if(4===t.length)return 0===mt(t[0],t[1],t[2])&&0===mt(t[1],t[2],t[3])&&0===mt(t[0],t[2],t[3]);if(3===t.length)return 0===mt(t[0],t[1],t[2]);if(t.length<=2)return!0;throw new Error("The given bezier curve must be of order <= 3.")}const xt=L,wt=Y,_t=J,It=H,Nt=Math.abs;const Mt=Math.abs,St=G(1);function Et(t){const{coeffs:[[n,e,r],[o,i,c]],errorBound:[[s,u],[f,l]]}=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s-n,l=r-i,a=f+3*l,p=i+n,h=p-2*r,d=r-n,v=u-e,g=o-c,m=v+3*g,b=c+e,x=b-2*o,w=o-e;return{coeffs:[[a,3*h,3*d,n],[m,3*x,3*w,e]],errorBound:[[Nt(f)+6*Nt(l)+Nt(a),6*(Nt(p)+Nt(h)),6*Nt(d),0],[Nt(v)+6*Nt(g)+Nt(m),6*(Nt(b)+Nt(x)),6*Nt(w),0]]}}(t),a=Mt(n),p=Mt(e),h=Mt(r),d=Mt(o),v=Mt(i),g=Mt(c),m=e*o,b=n*i,x=n*c,w=r*o,_=e*c,I=r*i,N=u*d+p*f+Mt(m),M=s*v+a*l+Mt(b),S=s*g+Mt(x),E=h*f+Mt(w),y=u*g+Mt(_),O=h*l+Mt(I),C=m-b,T=Mt(C),P=N+M+T,A=w-x,k=Mt(A),B=E+S+k,F=_-I,z=Mt(F),Y=y+O+z,V=C*C,L=C*A,$=F*C,X=A*A,j=$+X;return{coeffs:[V,L,j],errBound:[2*P*T+Mt(V),P*k+T*B+Mt(L),Y*T+z*P+Mt($)+(2*k*B+Mt(X))+Mt(j)].map(t=>St*t)}}const yt=dt,Ot=J,Ct=$,Tt=W,Pt=k;function At(t){if(4===t.length)return kt(t);if(3===t.length)return Bt(t);if(2===t.length)return Ft(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[n]],[[e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}function kt(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Pt(yt(s,n),Ct(3,yt(r,i))),Ct(3,Tt(Ot(i,n),-2*r)),Ct(3,yt(r,n)),[n]],[Pt(yt(u,e),Ct(3,yt(o,c))),Ct(3,Tt(Ot(c,e),-2*o)),Ct(3,yt(o,e)),[e]]]}function Bt(t){const[[n,e],[r,o],[i,c]]=t;return[[Tt(Ot(i,n),-2*r),yt(2*r,2*n),[n]],[Tt(Ot(c,e),-2*o),yt(2*o,2*e),[e]]]}function Ft(t){const[[n,e],[r,o]]=t;return[[yt(r,n),[n]],[yt(o,e),[e]]]}const zt=q,Yt=k,Vt=Y;function Lt(t){const[[n,e,r],[o,i,c]]=kt(t),s=zt(e,o),u=zt(n,i),f=zt(n,c),l=zt(r,o),a=zt(e,c),p=zt(r,i),h=Vt(s,u),d=Vt(l,f),v=Vt(a,p),g=zt(h,h),m=zt(h,d),b=zt(h,v),x=zt(d,d);return[g,m,Yt(b,x)]}const $t=H,Xt=D,jt=Y,qt=q,Wt=$,Ht=P,Dt=A,Qt=k,Rt=W,Gt=Math.abs,Ut=G(1),Zt={order:0,realOrder:0,collinear:!0,nodeType:"n/a"},Jt={order:1,realOrder:1,collinear:!0,nodeType:"n/a"},Kt={order:1,realOrder:0,collinear:!0,nodeType:"n/a"},tn={order:2,realOrder:2,collinear:!1,nodeType:"n/a"},nn={order:2,realOrder:2,collinear:!0,nodeType:"n/a"},en={order:2,realOrder:1,collinear:!0,nodeType:"n/a"},rn={order:2,realOrder:0,collinear:!0,nodeType:"n/a"},on={order:3,realOrder:3,collinear:!1,nodeType:"crunode"},cn={order:3,realOrder:3,collinear:!1,nodeType:"acnode"},sn={order:3,realOrder:3,collinear:!1,nodeType:"cusp"},un={order:3,realOrder:3,collinear:!1,nodeType:"explicit"},fn={order:3,realOrder:3,collinear:!0,nodeType:"n/a"},ln={order:3,realOrder:2,collinear:!1,nodeType:"n/a"},an={order:3,realOrder:2,collinear:!0,nodeType:"n/a"},pn={order:3,realOrder:1,collinear:!0,nodeType:"n/a"},hn={order:3,realOrder:0,collinear:!0,nodeType:"n/a"};function dn(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push((e-r)*t[r]);return n}function vn(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+t[r];return e}const gn=vn,mn=Number.EPSILON/2,bn=Math.abs,xn=Math.max;function wn(t){const n=[];for(let e=0;e<t.length;e++)n.push(-t[e]);return n}const _n=wn,In=function(t){return n=>1/t(function(t){return t.slice().reverse()}(n))};function Nn(t){const n=t.length-1;if(n<1)return 0;t[0]<0&&(t=_n(t));const e=[];for(let t=0;t<n;t++)e.push(1);let r=0;for(let o=0;o<=n;o++){if(t[o]>=0)continue;let n=Number.POSITIVE_INFINITY,i=!1;for(let r=0;r<o;r++){if(t[r]<=0)continue;const c=(-t[o]/(t[r]/2**e[r]))**(1/(o-r));e[r]++,n>c&&(n=c),i=!0}i&&r<n&&(r=n)}return r}In(Nn);const Mn=(Sn=Nn,t=>-Sn(function(t){const n=t.length-1;if(n<0)return[];const e=t.slice();for(let t=0;t<n+1;t++)t%2==(n-1)%2&&(e[t]=-e[t]);return e}(t)));var Sn;function En(t){let n=0;for(let e=0;e<=t.length-1&&0===t[e];e++)n++;return 0!==n&&(t=t.slice(n)),t}In(Mn);const yn=dn,On=vn,Cn=function(t,n,e,r=gn(t,n),o=gn(t,e)){let i=n,c=e,s=i,u=r,f=c-i,l=f;for(;;){bn(u)<bn(o)&&(i=c,c=s,s=i,r=o,o=u,u=r);const n=2*mn*xn(1,bn(i),bn(c)),e=.5*(s-c);if(bn(e)<=n)return c;if(bn(f)<n||bn(r)<=bn(o))f=e,l=f;else{let t,a,p=o/r;if(i===s)t=2*e*p,a=1-p;else{a=r/u;const n=o/u;t=p*(2*e*a*(a-n)-(c-i)*(n-1)),a=(a-1)*(n-1)*(p-1)}0<t?a=-a:t=-t,p=f,f=l,2*t<3*e*a-bn(n*a)&&t<bn(.5*p*a)?l=t/a:(f=e,l=f)}if(i=c,r=o,n<bn(l)?c+=l:0<e?c+=n:c-=n,0===(o=gn(t,c)))return c;o*u>0&&(s=i,u=r,f=c-i,l=f)}},Tn=Mn,Pn=Nn,An=En;function kn(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY){t=An(t);let r=0;for(;0===t[t.length-1];)t=t.slice(0,-1),r++;if(t.length<=1){const t=[];for(let n=0;n<r;n++)t.push(0);return t}n===Number.NEGATIVE_INFINITY&&(n=Tn(t)),e===Number.POSITIVE_INFINITY&&(e=Pn(t));const o=[t];for(let n=1;n<=t.length-1;n++)o.push(yn(o[n-1]));let i=[];for(let r=t.length-2;r>=0;r--){const t=o[r],c=[];let s=n,u=On(t,s);0===u&&0===r&&c.push(n);for(let n=0;n<i.length;n++){const e=i[n],r=On(t,e);0===r?c.push(e):u*r<0&&c.push(Cn(t,s,e,u,r)),s=e,u=r}const f=On(t,e);u*f<0&&c.push(Cn(t,s,e,u,f)),0===f&&0===r&&c.push(e),i=c}if(r>0&&n<=0&&e>=0){const t=[];let n=!1;for(let e=0;e<i.length;e++){if(!n&&i[e]>=0){for(let n=0;n<r;n++)t.push(0);n=!0}t.push(i[e])}if(!n)for(let n=0;n<r;n++)t.push(0);return t}return i}function Bn(t){if(t.length<4)return[];const[[n,e],[r,o],[i,c],[s,u]]=t,f=r-n,l=o-e,a=i-r-f,p=c-o-l,h=s-i-f-2*a,d=u-c-l-2*p;return kn([a*d-p*h,f*d-l*h,f*p-l*a],0,1)}const{abs:Fn,PI:zn}=Math;function Yn(t,n=[0,1]){if(t.length<=2)return 0;const[e,r]=n;if(e===r)return 0;if(3===t.length){const n=y(t,e,r).ps,[[o,i],[c,s],[u,f]]=n;return M([c-o,s-i],[u-c,f-s])}if(4===t.length){const n=T(t,e,r).ps,o=function(t){if(4===t.length)return pt(t)?function(t){if(!bt(t))return!1;const[n,e,r,o]=t,[i,c]=n,[s,u]=e,[f,l]=r,[a,p]=o,h=wt(xt(_t(s/4,f/4),3),_t(i/4,a/4)),d=wt(xt(_t(u/4,l/4),3),_t(c/4,p/4));return 0===It(wt(_t(i/2,a/2),h))&&0===It(wt(_t(c/2,p/2),d))}(t)?Z(t)?hn:pn:bt(t)?an:ln:bt(t)?fn:function(t){const{coeffs:[n,e,r],errBound:[o,i,c]}=Et(t);if(Gt(n)<=o){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Qt(Ht(s,n),Wt(3,Ht(r,i))),l=Rt(Dt(i,n),-2*r),a=Qt(Ht(u,e),Wt(3,Ht(o,c))),p=Rt(Dt(c,e),-2*o),h=qt(l,a),d=qt(f,p);if(0===Xt(h,d))return un}const s=e*e,u=4*n*r,f=s-u,l=2*i*Gt(e)+Ut*s+(4*(o*Gt(r)+Gt(n)*c)+Ut*Gt(u))+Ut*Gt(f);if(f<-l)return cn;if(f>l)return on;const[a,p,h]=Lt(t),d=jt(qt(p,p),Wt(4,qt(a,h))),v=$t(d);return v<0?cn:v>0?on:sn}(t);if(3===t.length)return bt(t)?rt(t)?Z(t)?rn:en:nn:tn;if(2===t.length)return Z(t)?Kt:Jt;if(1===t.length)return Zt;throw new Error("The given bezier curve must be of order <= 3")}(n),[[i,c],[s,u],[f,l],[a,p]]=n,h=[s-i,u-c],d=[f-s,l-u],v=[a-f,p-l];if(0===d[0]&&0===d[1]||o.realOrder<=2)return M(h,v);const g=M(h,d)+M(d,v);return"acnode"===o.nodeType||"cusp"===o.nodeType?g<=-zn?g+2*zn:g>=+zn?g-2*zn:g:g}throw new Error("The given bezier curve must be of order <= 3.")}function Vn(t,n){const e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}function Ln(t,n){const[e,r]=t,[[o,i],[c,s]]=n;return Vn([o+e*(c-o),i+e*(s-i)],[o+r*(c-o),i+r*(s-i)])}function $n(t,n,e=16){if(n[0]===n[1])return 0;const{weights:r,abscissas:o}=Xn[e],[i,c]=n;let s=0;const u=(c-i)/2,f=(c+i)/2;for(let n=0;n<=e-1;n++)s+=r[n]*t(u*o[n]+f);return u*s}const Xn={2:{weights:[1,1],abscissas:[-.5773502691896257,.5773502691896257]},4:{weights:[.6521451548625461,.6521451548625461,.3478548451374538,.3478548451374538],abscissas:[-.3399810435848563,.3399810435848563,-.8611363115940526,.8611363115940526]},8:{weights:[.362683783378362,.362683783378362,.3137066458778873,.3137066458778873,.2223810344533745,.2223810344533745,.1012285362903763,.1012285362903763],abscissas:[-.1834346424956498,.1834346424956498,-.525532409916329,.525532409916329,-.7966664774136267,.7966664774136267,-.9602898564975363,.9602898564975363]},16:{weights:[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685,.1894506104550685,.18260341504492358,.16915651939500254,.14959598881657674,.12462897125553388,.09515851168249279,.062253523938647894,.027152459411754096],abscissas:[-.9894009349916499,-.9445750230732326,-.8656312023878318,-.755404408355003,-.6178762444026438,-.45801677765722737,-.2816035507792589,-.09501250983763744,.09501250983763744,.2816035507792589,.45801677765722737,.6178762444026438,.755404408355003,.8656312023878318,.9445750230732326,.9894009349916499]},64:{weights:[.048690957009139724,.048690957009139724,.04857546744150343,.04857546744150343,.048344762234802954,.048344762234802954,.04799938859645831,.04799938859645831,.04754016571483031,.04754016571483031,.04696818281621002,.04696818281621002,.046284796581314416,.046284796581314416,.04549162792741814,.04549162792741814,.044590558163756566,.044590558163756566,.04358372452932345,.04358372452932345,.04247351512365359,.04247351512365359,.04126256324262353,.04126256324262353,.03995374113272034,.03995374113272034,.038550153178615626,.038550153178615626,.03705512854024005,.03705512854024005,.035472213256882386,.035472213256882386,.033805161837141606,.033805161837141606,.03205792835485155,.03205792835485155,.030234657072402478,.030234657072402478,.028339672614259483,.028339672614259483,.02637746971505466,.02637746971505466,.024352702568710874,.024352702568710874,.022270173808383253,.022270173808383253,.02013482315353021,.02013482315353021,.017951715775697343,.017951715775697343,.015726030476024718,.015726030476024718,.013463047896718643,.013463047896718643,.011168139460131128,.011168139460131128,.008846759826363947,.008846759826363947,.006504457968978363,.006504457968978363,.004147033260562468,.004147033260562468,.001783280721696433,.001783280721696433],abscissas:[-.024350292663424433,.024350292663424433,-.07299312178779904,.07299312178779904,-.12146281929612056,.12146281929612056,-.16964442042399283,.16964442042399283,-.21742364374000708,.21742364374000708,-.2646871622087674,.2646871622087674,-.31132287199021097,.31132287199021097,-.3572201583376681,.3572201583376681,-.4022701579639916,.4022701579639916,-.4463660172534641,.4463660172534641,-.48940314570705296,.48940314570705296,-.5312794640198946,.5312794640198946,-.571895646202634,.571895646202634,-.6111553551723933,.6111553551723933,-.6489654712546573,.6489654712546573,-.6852363130542333,.6852363130542333,-.7198818501716109,.7198818501716109,-.7528199072605319,.7528199072605319,-.7839723589433414,.7839723589433414,-.8132653151227975,.8132653151227975,-.8406292962525803,.8406292962525803,-.8659993981540928,.8659993981540928,-.8893154459951141,.8893154459951141,-.9105221370785028,.9105221370785028,-.9295691721319396,.9295691721319396,-.9464113748584028,.9464113748584028,-.9610087996520538,.9610087996520538,-.973326827789911,.973326827789911,-.983336253884626,.983336253884626,-.9910133714767443,.9910133714767443,-.9963401167719553,.9963401167719553,-.9993050417357722,.9993050417357722]}};function jn(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[3*(s-n+3*(r-i)),6*(i+n-2*r),3*(r-n)],[3*(u-e+3*(o-c)),6*(c+e-2*o),3*(o-e)]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[2*(i+n-2*r),2*(r-n)],[2*(c+e-2*o),2*(o-e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n],[o-e]]}(t);if(1===t.length)return[[0],[0]];throw new Error("The bezier curve must be of order <= 3.")}function qn(t){const[n,e]=jn(t);return function(t){const r=vn(n,t),o=vn(e,t);return Math.sqrt(r*r+o*o)}}const{abs:Wn}=Math;function Hn(t){const n=[];for(let e=0;e<t.length-1;e++){const r=[t[e+1][0]-t[e][0],t[e+1][1]-t[e][1]];0!==(0!==r[0]||r[1])&&n.push(r)}const e=n.length;let r=0;for(let t=0;t<e-1;t++)r+=Wn(M(n[t],n[t+1]));return r}function Dn(t,n,e){if(4===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=p-n*(p-h),v=s-n*(s-f),g=f-n*(f-a),m=v-n*(v-g);return[e,[p,v],[d,m],[d-n*(d-(h-n*(h-(l-n*(l-i[0]))))),m-n*(m-(g-n*(g-(a-n*(a-i[1])))))]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=l-n*(l-i[0]),v=p-n*(p-h),g=h-n*(h-d),m=s-n*(s-f),b=f-n*(f-a),x=a-n*(a-i[1]),w=m-n*(m-b),_=b-n*(b-x);return[[v-n*(v-g),w-n*(w-_)],[g,_],[d,x],i]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,b=s-f,x=a-f,w=b+x,_=n*b,I=e*b,N=c[0]-s-3*x,M=u-l,S=p-l,E=M+S,y=n*M,O=e*M,C=c[1]-u-3*S;return[[d*N+(3*n*(n*w-b)+s),d*C+(3*n*(n*E-M)+u)],[m*(n*N+2*w)+(h*w+s-(I+2*_)),m*(n*C+2*E)+(h*E+u-(O+2*y))],[m*(e*N+2*w)+(v*w+s-(2*I+_)),m*(e*C+2*E)+(v*E+u-(2*O+y))],[g*N+(3*e*(e*w-b)+s),g*C+(3*e*(e*E-M)+u)]]}(t,n,e)}(t,n,e);if(3===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=c-u;return[e,[-n*l+i,-n*a+c],[f*(l+(o[0]-s))-(2*n*l-i),f*(a+(o[1]-u))-(2*n*a-c)]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=o[0]-s,p=c-u,h=o[1]-u;return[[f*(l+a)-(2*n*l-i),f*(p+h)-(2*n*p-c)],[n*a+s,n*h+u],o]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=n*n,a=e*e,p=n*e,h=c-u,d=h+(i[0]-u),v=s-f,g=v+(i[1]-f);return[[l*d-(2*n*h-c),l*g-(2*n*v-s)],[p*d-(h*(e+n)-c),p*g-(v*(e+n)-s)],[a*d-(2*e*h-c),a*g-(2*e*v-s)]]}(t,n,e)}(t,n,e);if(2===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[e,[n*(r[0]-o)+o,n*(r[1]-i)+i]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[[n*(r[0]-o)+o,n*(r[1]-i)+i],r]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1];return[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]]}(t,n,e)}(t,n,e);if(1===t.length)return t;throw new Error("The given bezier curve must be of order <= 3.")}function Qn(t,n=.4,e=2**-16){const r=[0],o=[1];for(;;){const i=r[r.length-1],c=o[o.length-1];if(Hn(Dn(t,i,c))<=n||c-i<=e){if(r.push(o.pop()),1===c)return r;continue}const s=(i+c)/2;o.push(s)}}function Rn(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a]]=n;if(c===u&&u===l&&s===f&&f===a)return 0;const p=y(n,o,i).ps,h=Qn(p,e);let d=0;for(let t=0;t<h.length-1;t++){const n=h[t],e=h[t+1];d+=$n(qn(p),[n,e],r)}return d}function Gn(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a],[p,h]]=n;if(c===u&&u===l&&l===p&&s===f&&f===a&&a===h)return 0;const d=T(n,o,i).ps,v=Qn(d,e);let g=0;for(let t=0;t<v.length-1;t++){const n=v[t],e=v[t+1];g+=$n(qn(d),[n,e],r)}return g}function Un(t,n=.4,e=16){if(4===t.length)return Gn([0,1],t,n,e);if(3===t.length)return Rn([0,1],t,n,e);if(2===t.length)return Ln([0,1],t);if(1===t.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}function Zn(t,n,e){if(void 0===t.size||void 0===e)return;const r=e[n];if(t.size>r&&void 0!==r)for(const[n]of t){t.delete(n);break}}const Jn=[function(t,n){let e,r=!1;return function(){return r||(e=t(),r=!0),e}},function(t,n,e=!1){const r=new WeakMap,o=new Map;function i(t){return"object"!=typeof t&&"function"!=typeof t||null===t?o:r}const c=function(r){let c;const s=i(r);return s.has(r)?(e&&console.log("cache hit"),c=s.get(r)):(e&&console.log("cache miss"),c=t(r),s.set(r,c),Zn(o,0,n)),c};return c.mapS=o,c.weakMapS=r,c.clearCache=function(){o.clear()},c.addToCache=function(t,e){const r=i(e);r.set(e,t),Zn(r,1,n)},c},function(t,n){const e=new WeakMap,r=new Map;function o(t,o){const i=("object"==typeof o||"function"==typeof o)&&null!==o;let c="object"!=typeof t&&"function"!=typeof t||null===t?r:e,s=c.get(t);return void 0===s&&(s={weakMap:new WeakMap,map:new Map},c.set(t,s),Zn(c,0,n)),i?s.weakMap:s.map}function i(e,r){const i=o(e,r);let c;return i.has(r)?c=i.get(r):(c=t(e,r),i.set(r,c),Zn(i,1,n)),c}return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r){const i=o(e,r);i.set(r,t),Zn(i,1,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i){const c=("object"==typeof o||"function"==typeof o)&&null!==o,s=("object"==typeof i||"function"==typeof i)&&null!==i;let u="object"!=typeof t&&"function"!=typeof t||null===t?r:e,f=u.get(t);void 0===f&&(f={weakMap:new WeakMap,map:new Map},u.set(t,f),Zn(u,0,n));const l=c?f.weakMap:f.map;let a=l.get(o);return void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(o,a),Zn(l,1,n)),s?a.weakMap:a.map}const i=function(e,r,i){const c=o(e,r,i);let s;return c.has(i)?s=c.get(i):(s=t(e,r,i),c.set(i,s),Zn(c,2,n)),s};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i){const c=o(e,r,i);c.set(i,t),Zn(c,2,n)},i},function(t,n,e=!1){const r=new WeakMap,o=new Map;function i(t,e,i,c){const s=("object"==typeof e||"function"==typeof e)&&null!==e,u=("object"==typeof i||"function"==typeof i)&&null!==i,f=("object"==typeof c||"function"==typeof c)&&null!==c;let l="object"!=typeof t&&"function"!=typeof t||null===t?o:r,a=l.get(t);void 0===a&&(a={weakMap:new WeakMap,map:new Map},l.set(t,a),Zn(l,0,n));const p=s?a.weakMap:a.map;let h=p.get(e);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(e,h),Zn(p,1,n));const d=u?h.weakMap:h.map;let v=d.get(i);return void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(i,v),Zn(d,2,n)),f?v.weakMap:v.map}const c=function(r,o,c,s){const u=i(r,o,c,s);let f;return u.has(s)?(e&&console.log("cache hit"),f=u.get(s)):(e&&console.log("cache miss"),f=t(r,o,c,s),u.set(s,f),Zn(u,3,n)),f};return c.mapS=o,c.weakMapS=r,c.clearCache=function(){o.clear()},c.addToCache=function(t,e,r,o,c){const s=i(e,r,o,c);s.set(c,t),Zn(s,3,n)},c},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s){const u=("object"==typeof o||"function"==typeof o)&&null!==o,f=("object"==typeof i||"function"==typeof i)&&null!==i,l=("object"==typeof c||"function"==typeof c)&&null!==c,a=("object"==typeof s||"function"==typeof s)&&null!==s;let p="object"!=typeof t&&"function"!=typeof t||null===t?r:e,h=p.get(t);void 0===h&&(h={weakMap:new WeakMap,map:new Map},p.set(t,h),Zn(p,0,n));const d=u?h.weakMap:h.map;let v=d.get(o);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(o,v),Zn(d,1,n));const g=f?v.weakMap:v.map;let m=g.get(i);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(i,m),Zn(g,2,n));const b=l?m.weakMap:m.map;let x=b.get(c);return void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(c,x),Zn(b,3,n)),a?x.weakMap:x.map}const i=function(e,r,i,c,s){const u=o(e,r,i,c,s);let f;return u.has(s)?f=u.get(s):(f=t(e,r,i,c,s),u.set(s,f),Zn(u,4,n)),f};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s){const u=o(e,r,i,c,s);u.set(s,t),Zn(u,4,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u){const f=("object"==typeof o||"function"==typeof o)&&null!==o,l=("object"==typeof i||"function"==typeof i)&&null!==i,a=("object"==typeof c||"function"==typeof c)&&null!==c,p=("object"==typeof s||"function"==typeof s)&&null!==s,h=("object"==typeof u||"function"==typeof u)&&null!==u;let d="object"!=typeof t&&"function"!=typeof t||null===t?r:e,v=d.get(t);void 0===v&&(v={weakMap:new WeakMap,map:new Map},d.set(t,v),Zn(d,0,n));const g=f?v.weakMap:v.map;let m=g.get(o);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(o,m),Zn(g,1,n));const b=l?m.weakMap:m.map;let x=b.get(i);void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(i,x),Zn(b,2,n));const w=a?x.weakMap:x.map;let _=w.get(c);void 0===_&&(_={weakMap:new WeakMap,map:new Map},w.set(c,_),Zn(w,3,n));const I=p?_.weakMap:_.map;let N=I.get(s);return void 0===N&&(N={weakMap:new WeakMap,map:new Map},I.set(s,N),Zn(I,4,n)),h?N.weakMap:N.map}const i=function(e,r,i,c,s,u){const f=o(e,r,i,c,s,u);let l;return f.has(u)?l=f.get(u):(l=t(e,r,i,c,s,u),f.set(u,l),Zn(f,5,n)),l};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u){const f=o(e,r,i,c,s,u);f.set(u,t),Zn(f,5,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u,f){const l=("object"==typeof o||"function"==typeof o)&&null!==o,a=("object"==typeof i||"function"==typeof i)&&null!==i,p=("object"==typeof c||"function"==typeof c)&&null!==c,h=("object"==typeof s||"function"==typeof s)&&null!==s,d=("object"==typeof u||"function"==typeof u)&&null!==u,v=("object"==typeof f||"function"==typeof f)&&null!==f;let g="object"!=typeof t&&"function"!=typeof t||null===t?r:e,m=g.get(t);void 0===m&&(m={weakMap:new WeakMap,map:new Map},g.set(t,m),Zn(g,0,n));const b=l?m.weakMap:m.map;let x=b.get(o);void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(o,x),Zn(b,1,n));const w=a?x.weakMap:x.map;let _=w.get(i);void 0===_&&(_={weakMap:new WeakMap,map:new Map},w.set(i,_),Zn(w,2,n));const I=p?_.weakMap:_.map;let N=I.get(c);void 0===N&&(N={weakMap:new WeakMap,map:new Map},I.set(c,N),Zn(I,3,n));const M=h?N.weakMap:N.map;let S=M.get(s);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(s,S),Zn(M,4,n));const E=d?S.weakMap:S.map;let y=E.get(u);return void 0===y&&(y={weakMap:new WeakMap,map:new Map},E.set(u,y),Zn(E,5,n)),v?y.weakMap:y.map}const i=function(e,r,i,c,s,u,f){const l=o(e,r,i,c,s,u,f);let a;return l.has(f)?a=l.get(f):(a=t(e,r,i,c,s,u,f),l.set(f,a),Zn(l,6,n)),a};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u,f){const l=o(e,r,i,c,s,u,f);l.set(f,t),Zn(l,6,n)},i},function(t,n){const e=new WeakMap,r=new Map;function o(t,o,i,c,s,u,f,l){const a=("object"==typeof o||"function"==typeof o)&&null!==o,p=("object"==typeof i||"function"==typeof i)&&null!==i,h=("object"==typeof c||"function"==typeof c)&&null!==c,d=("object"==typeof s||"function"==typeof s)&&null!==s,v=("object"==typeof u||"function"==typeof u)&&null!==u,g=("object"==typeof f||"function"==typeof f)&&null!==f,m=("object"==typeof l||"function"==typeof l)&&null!==l;let b="object"!=typeof t&&"function"!=typeof t||null===t?r:e,x=b.get(t);void 0===x&&(x={weakMap:new WeakMap,map:new Map},b.set(t,x),Zn(b,0,n));const w=a?x.weakMap:x.map;let _=w.get(o);void 0===_&&(_={weakMap:new WeakMap,map:new Map},w.set(o,_),Zn(w,1,n));const I=p?_.weakMap:_.map;let N=I.get(i);void 0===N&&(N={weakMap:new WeakMap,map:new Map},I.set(i,N),Zn(I,2,n));const M=h?N.weakMap:N.map;let S=M.get(c);void 0===S&&(S={weakMap:new WeakMap,map:new Map},M.set(c,S),Zn(M,3,n));const E=d?S.weakMap:S.map;let y=E.get(s);void 0===y&&(y={weakMap:new WeakMap,map:new Map},E.set(s,y),Zn(E,4,n));const O=v?y.weakMap:y.map;let C=O.get(u);void 0===C&&(C={weakMap:new WeakMap,map:new Map},O.set(u,C),Zn(O,5,n));const T=g?C.weakMap:C.map;let P=T.get(f);return void 0===P&&(P={weakMap:new WeakMap,map:new Map},T.set(f,P),Zn(T,6,n)),m?P.weakMap:P.map}const i=function(e,r,i,c,s,u,f,l){const a=o(e,r,i,c,s,u,f,l);let p;return a.has(l)?p=a.get(l):(p=t(e,r,i,c,s,u,f,l),a.set(l,p),Zn(a,7,n)),p};return i.mapS=r,i.weakMapS=e,i.clearCache=function(){r.clear()},i.addToCache=function(t,e,r,i,c,s,u,f,l){const a=o(e,r,i,c,s,u,f,l);a.set(l,t),Zn(a,7,n)},i}];function Kn(t,n,e=!1){const r=t.length;if(r>8)throw new Error("A maximum of 8 formal parameters are supported");return(0,Jn[r])(t,n,e)}function te(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=o-e,a=i-r,p=u-c,h=f-s,d=p*a-h*l;if(0===d)return;const v=((s-r)*l-(c-e)*a)/d;return[c+v*p,s+v*h]}function ne(t,n){return[n[0]-t[0],n[1]-t[1]]}function ee(t,n){return t[0]*n[0]+t[1]*n[1]}function re(t){return[-t[1],t[0]]}function oe(t,n){return t[0]*n[1]-t[1]*n[0]}function ie(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e]}function ce(t,n){function e(n){return[t[0]+n[0],t[1]+n[1]]}return void 0===n?e:e(n)}function se(t){const n=1/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]*n,t[1]*n]}function ue(t,n,e){function r(e){return[e[0]*n-e[1]*t,e[0]*t+e[1]*n]}return void 0===e?r:r(e)}function fe(t,n){const[e,r]=jn(t);return[vn(e,n),vn(r,n)]}const le=dt,ae=$;function pe(t){if(4===t.length){const[[n,e],[r,o]]=t;return[ae(3,le(r,n)),ae(3,le(o,e))]}if(3===t.length){const[[n,e],[r,o]]=t;return[le(2*r,2*n),le(2*o,2*e)]}if(2===t.length){const[[n,e],[r,o]]=t;return[le(r,n),le(o,e)]}if(1===t.length)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}const he=J,de=$,ve=W;function ge(t){if(4===t.length){const[[n,e],[r,o],[i,c]]=t;return[de(6,ve(he(i,n),-2*r)),de(6,ve(he(c,e),-2*o))]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[ve(he(2*i,2*n),-4*r),ve(he(2*c,2*e),-4*o)]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3")}const me=dt,be=$,xe=k;function we(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[be(6,xe(me(s,n),be(3,me(r,i))))],[be(6,xe(me(u,e),be(3,me(o,c))))]]}if(t.length<=3)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}const{sign:_e}=Math;function Ie(t,n){const[e,r]=pe(t),[o,i]=ge(t),[c,s]=pe(n),[u,f]=ge(n),l=Y(q(e,i),q(r,o)),a=Y(q(c,f),q(s,u)),p=H(l),h=H(a);if(_e(p)!==_e(h))return p-h;const d=k(q(c,c),q(s,s)),v=k(q(e,e),q(r,r)),g=q(d,d),m=q(g,d),b=q(v,v),x=q(b,v);if(0!==p||0!==h){const t=q(l,l),n=q(a,a),e=H(Y(q(t,m),q(n,x)));if(0!==e)return p>0?e:-e}const[[w],[_]]=we(t),[[I],[N]]=we(n),M=Y(q(e,_),q(r,w)),S=k(q(e,o),q(r,i)),E=Y(q(c,N),q(s,I)),y=k(q(c,u),q(s,f)),O=Y(q(v,M),L(q(l,S),3)),C=Y(q(d,E),L(q(a,y),3)),T=H(O),P=H(C);if(T!==P)return T-P;if(0===T&&0===P)return 0;const A=q(O,O),B=q(g,m),F=q(C,C),z=q(b,x),V=H(Y(q(A,B),q(F,z)));return T>0?V:-V}function Ne(t,n){return t[0]===n[0]&&t[1]===n[1]}function Me(t,n){const{ccw:e,tangentI:r,tangentO:o,dotTangents:i}=function(t,n){const e=t.length;let r=t[e-2],o=n[0],i=n[1];Ne(r,o)&&(r=t[e-3]),Ne(o,i)&&(i=n[2]);const c=function(t,n,e){const r=dt(t[0],e[0]),o=dt(n[1],e[1]),i=dt(t[1],e[1]),c=dt(n[0],e[0]);return ht(k(q(r,o),B(q(i,c))))}(r,o,i),s=[dt(o[0],r[0]),dt(o[1],r[1])],u=[dt(i[0],o[0]),dt(i[1],o[1])],f=function(t,n){return ht(k(q(t[0],n[0]),q(t[1],n[1])))}(s,u);return 0!==c||f>0?{ccw:c,tangentI:s,tangentO:u,dotTangents:f}:{ccw:Ie(t.slice().reverse(),n),tangentI:s,tangentO:u,dotTangents:f}}(t,n),c=e<0,s=e>0,u=[se(r.map(t=>t[1])),se(o.map(t=>t[1]))],f=oe(u[0],u[1]);let l,a;return i>0?(l=f<-.0698,a=f>.0698):(l=c,a=s),{tangents:u,isSharp:c,isDull:s,isQuiteSharp:l,isQuiteDull:a}}function Se(t){return Me(1===t.t?t.curve.ps:t.curve.prev.ps,1===t.t?t.curve.next.ps:t.curve.ps)}function Ee(t){return 0===t.t||1===t.t}const ye=Kn(t=>!!Ee(t)&&Se(t).isSharp);function Oe(t){const n=t.cp.circle.center,e=t,r=t.nextOnCircle,o=e.cp.pointOnShape,i=r.cp.pointOnShape,c=o.p,s=i.p;let u;if(ye(o)){let t,n;0===o.t?(t=o.curve,n=o.curve.prev):1===o.t&&(t=o.curve.next,n=o.curve);const e=se(fe(t.ps,0)),r=[-(f=se(fe(n.ps,1)))[0],-f[1]],i=ee(e,r),c=Math.sqrt((1+i)/2);u=ue(Math.sqrt((1-i)/2),c,r)}else u=c[0]===s[0]&&c[1]===s[1]?ne(c,n):re(ne(c,s));var f;return[n,ce(se(u),n)]}const Ce=1e-4;function Te(t,n){const e=t.cp.circle.center,r=Oe(t),o=n.cp.circle.center,i=Oe(n.prevOnCircle),c=te(r,i),s=ne(e,o);let u;if(c){const t=ne(e,c),n=ne(o,c);u=ee(t,s)<0||ee(n,s)>0}else u=!0;if(!u)return[e,c,o];const f=re(s),l=ne(r[0],r[1]),a=ne(i[0],i[1]),p=Math.abs(oe(s,l))/9,h=Math.abs(oe(s,a))/9;if(p>.01||h>.01)return[e,o];if(p>Ce||h>Ce){const t=ie(e,o,1/3),n=ie(e,o,2/3),c=ce(f,t),s=[n,ce(f,n)];return[e,te(r,[t,c]),te(i,s),o]}return[e,o]}function Pe(t){return Te(t,t.next)}const Ae=Kn(Pe);function ke(t,n=!1){const e=t;let r=e;const o=[];do{n&&r===e||o.push(r),r=r.nextOnCircle}while(r!==e);return o}function Be(t){return t===t.next.prevOnCircle}function Fe(t){return ke(t).filter(t=>!Be(t)).length}const{min:ze,abs:Ye}=Math;function Ve(t){if(2!==Fe(t))return 0;const{radius:n}=t.cp.circle,e=Pe(t),r=function(t,n=[0,1]){if(t.length<=3)return Fn(Yn(t,n));if(4===t.length){const[e,r]=n;if(e===r)return 0;const o=T(t,e,r).ps,i=[0,...Bn(o),1];let c=0;for(let t=0;t<i.length-1;t++)c+=Fn(Yn(o,[i[t],i[t+1]]));return c}throw new Error("The given bezier curve must be of order <= 3.")}(e,[0,1]);return 0!==Un(e)?r*n:void 0}Kn(Ve);const Le=Kn(Yn),$e=Kn(Un);function Xe(t){return ke(t.prevOnCircle,!0).every(Be)}const je=function(){const t=new Map;return function(n){let e=t.get(n);return void 0!==e||(r=n,e=Kn(function(t){let n=t,e=0,o=0,i=n.prev,c=n,s=0,u=0,f=0,l=0;for(;l<r/2/40&&c!==n.prev&&!Xe(c)&&Fe(c)<=2;){const{radius:t}=c.cp.circle,n=Ae(c),e=Le(n);let r=0;const i=$e(Ae(c));u+=t*(e+r),o+=i,l+=i/t,c=c.next}for(;f<r/2/40&&i!==n&&!Xe(i)&&Fe(i)<=2;){const{radius:t}=i.cp.circle,n=Ae(i),r=Le(n);let o=0;const c=$e(Ae(i));s+=t*(r+o),e+=c,f+=c/t,i=i.prev}const a=e+o;if(0!==a)return-(s+u)/a}),t.set(n,e)),e;var r}}();function qe(t){const n=t.cp,e=n.pointOnShape;return{idx:e.curve.idx,t:e.t,order:n.order,order2:n.order2}}function We(t){const n=t;let e=n,r=0;do{r++,e=e.nextOnCircle}while(e!==n);return r}function He(t){return 0===t.cp.circle.radius}function De(t){let n=t;if(Be(n))return[n];const e=[];do{e.push(n);const t=n.next.prevOnCircle;n=n=n===t?n.next.next:t}while(n!==t);return e}function Qe(t,n){const e=v(t),r=new Set;for(t of e)Be(t)||r.has(t.next.prevOnCircle)||n(t),r.add(t)}function Re(t){const n=[],e=t;let r=e;for(;r!==e.prevOnCircle;)Be(r)||n.push(r.next),r=r.nextOnCircle;return n}function Ge(t,n){n(t);const e=ke(t).filter(t=>!Be(t)).map(t=>t.next);for(const t of e){const e=[t];for(;e.length;){const t=e.pop();n(t),e.push(...Re(t))}}}const Ue=["prev","next","prevOnCircle","nextOnCircle"];function Ze(t){const n=new Map,e=Je(t);n.set(t,e);const r=[{cpNode:t,newCpNode:e}];for(;r.length;){const{cpNode:t,newCpNode:e}=r.pop();for(const o of Ue){const i=t[o];let c=n.get(i);c||(c=Je(i),n.set(i,c),r.push({cpNode:i,newCpNode:c})),e[o]=c}}return e}function Je(t){return{...t,prev:void 0,next:void 0,prevOnCircle:void 0,nextOnCircle:void 0}}function Ke(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,c=o.curve;if(i.loop!==c.loop)return[];const s=[];return c===i?s.push(Dn(r.curve.ps,r.t,o.t)):(s.push(Dn(r.curve.ps,r.t,1)),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push(Dn(o.ps,0,n))}while(o!==e)}(s,r.curve,o.curve,o.t)),s}function tr(t,n){const e=t.prev,r=t.next;e.next=r,r.prev=e,n.get(t.cp.pointOnShape.curve.loop).remove(t,!1)}function nr(t,n){const e=We(t);if(2!==e)throw new Error(`Cannot delete \`CpNode\` on ${e}-prong`);ke(t).forEach(t=>tr(t,n))}function er(t,n){return ke(t).indexOf(n)>=0}function rr(t){if(function(t){return ke(t).every(Be)}(t))return[];for(;Be(t);)t=t.nextOnCircle;for(t=t.next;2===Fe(t);)t=t.next;t=t.prevOnCircle;const n=[];do{n.push(t),t=t.next}while(!Xe(t)&&2===Fe(t));return n}function or(t,n,e=!0){const r=function(t,n,e=!0){if(!e&&t===n)return{cpNodes:[],hasHoleCloser:!1};const r=t,o=[r];let i=t.next,c=r.isHoleClosing;for(;i!==n&&i!==r;)i.isHoleClosing&&(c=!0),o.push(i),i=i.next;return{cpNodes:o,hasHoleCloser:c}}(t,n,e);return{pss:(o=r.cpNodes,o.flatMap(Ke)),hasHoleCloser:r.hasHoleCloser};var o}const ir={getChildren:function(t){const n=[],e=t.next;let r=e;do{n.push(r),r=r.nextOnCircle}while(r.nextOnCircle!==e);return n},getVertexForwardChildren:Re,getAllOnLoop:v,getAllOnCircle:ke,isOnSameCircle:er,isTerminating:Be,isFullyTerminating:Xe,getFirstExit:function(t){const n=t;let e=n;for(;e.next===e.prevOnCircle;)if(e=e.next,e===n)return;return e},isSharp:He,isOneProng:function(t){const n=t;if(0===n.cp.circle.radius)return!0;const e=n.nextOnCircle,r=n.cp.pointOnShape.p,o=e.cp.pointOnShape.p;return r[0]===o[0]&&r[1]===o[1]},getProngCount:We,getRealProngCount:Fe,cpNodeComparator:(t,n)=>d(t.cp,n.cp),enhanceCpNode:function(t){const n=t.cp.pointOnShape.curve;return{...t,pos:t.cp.pointOnShape,p:t.cp.pointOnShape.p,t:t.cp.pointOnShape.t,isTerminating:Be(t),isFullyTerminating:Xe(t),isSharp:He(t),prongCount:We(t),getRealProngCount:Fe(t),ordering:qe(t),curve:n,loop:n.loop}},traverseCp:De,traverseEdges:Qe,traverseVertices:Ge,clone:Ze,getBoundaryBezierPartsToNext:function(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,c=o.curve;if(i.loop!==c.loop)return;const s=[];return c===i?s.push({ps:r.curve.ps,ts:[r.t,o.t]}):(s.push({ps:r.curve.ps,ts:[r.t,1]}),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?{ps:o.ps,ts:[0,r]}:{ps:o.ps,ts:[0,1]};t.push(n)}while(o!==e)}(s,r.curve,o.curve,o.t)),s},getBoundaryBeziersToNext:Ke,removeVertex:nr,getMatCurveToNext:Pe,isTwoProng:function(t){return 2===Fe(t)},getBranch:rr,getBranchBeziers:function(t){return rr(t).map(t=>Pe(t))},getSalience:function(t){const n=t,e=t.nextOnCircle,r=Vn(n.cp.pointOnShape.p,e.cp.pointOnShape.p),{pss:o,hasHoleCloser:i}=or(n,e),c=function(t){let n=0;for(let e of t)n+=e;return n}(o.map(t=>Un(t)));return i?Number.POSITIVE_INFINITY:c/r},getMatCurveBetween:Te,getEdgeDirection:Oe,getBoundaryBeziersBetween:or,getMatCurvesBetween:function(t,n){let e=t;const r=[];for(;e!==n;){const t=Te(e,e.next);r.push(t),e=e.next}return r},getHoleClosers:function(t){return v(t).filter(t=>t.isHoleClosing)},getSpeed:Ve,getSmoothedSpeed$:je,getInitialDegAngleBetweenMatCurves:function(t,n){const e=oe(se(fe(Pe(t),0)),se(fe(Pe(n),0)));return Math.abs(Math.asin(e)*(180/Math.PI))},getAllVertices:function(t){const n=[];return Ge(t,t=>{n.push(t)}),n}};function cr(t){return n=>ke(n).some(t)}const sr=cr(function(t){return 2!==Fe(t)&&!t.isHoleClosing}),ur=2**27+1;function fr(t,n){const e=t[1],r=n[1],o=e*r,i=ur*e,c=i-(i-e),s=e-c,u=ur*r,f=u-(u-r),l=r-f,a=s*l-(o-c*f-s*f-c*l)+(e*n[0]+t[0]*r),p=o+a;return[a-(p-o),p]}function lr(t,n){const e=t[0],r=t[1],o=r+n,i=o-r,c=e+(r-(o-i)+(n-i)),s=o+c;return[c-(s-o),s]}const ar=fr,pr=b,hr=x,dr=P,vr=lr;function gr(t,n){if(0===n[0]&&0===n[1])return t[0].map(t=>[0,t]);if(0===n[0]&&1===n[1])return t[t.length-1].map(t=>[0,t]);if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=vr(ar(dr(o,e),n),e),a=vr(ar(dr(c,o),n),o),p=vr(ar(dr(u,c),n),c),h=pr(l,ar(hr(a,l),n)),d=pr(a,ar(hr(p,a),n)),v=pr(h,ar(hr(d,h),n)),g=vr(ar(dr(i,r),n),r),m=vr(ar(dr(s,i),n),i),b=vr(ar(dr(f,s),n),s),x=pr(g,ar(hr(m,g),n)),w=pr(m,ar(hr(b,m),n));return[v,pr(x,ar(hr(w,x),n))]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=pr([0,e],ar(dr(o,e),n)),f=pr([0,o],ar(dr(c,o),n)),l=pr(u,ar(hr(f,u),n)),a=pr([0,r],ar(dr(i,r),n)),p=pr([0,i],ar(dr(s,i),n));return[l,pr(a,ar(hr(p,a),n))]}if(2===t.length){const[[e,r],[o,i]]=t;return[vr(ar(dr(o,e),n),e),vr(ar(dr(i,r),n),r)]}if(1===t.length){const[n,e]=t[0];return[[0,n],[0,e]]}throw new Error("The given bezier curve must be of order <= 3.")}function mr(t,n,e){return{curve:t,t:n,p:gr(t.ps,[0,n]).map(t=>t[1]),isSource:void 0!==e&&e}}const br=Number.EPSILON/2,xr=br*br,wr=134217729;function _r(t,n){const e=n[0],r=n[1],o=r*t,i=wr*r,c=i-(i-r),s=r-c,u=wr*t,f=u-(u-t),l=t-f,a=e*t,p=o+a,h=a-(p-o)+(s*l-(o-c*f-s*f-c*l)),d=p+h;return[h-(d-p),d]}function Ir(t,n){const e=n[0],r=n[1],o=r*t,i=wr*r,c=i-(i-r),s=r-c,u=wr*t,f=u-(u-t),l=t-f,a=s*l-(o-c*f-s*f-c*l)+e*t,p=o+a;return[a-(p-o),p]}const Nr=Ir,Mr=ht,Sr=function(){const t=3*xr;return t/(1-t)}(),Er=L,yr=J,Or=it,Cr=Math.abs,Tr=Number.EPSILON/2;function Pr(t,n){let e=t[0],r=.5*Cr(e);for(let o=1;o<t.length;o++)e=e*n+t[o],r=r*Cr(n)+Cr(e);return r=Tr*(2*r-Cr(e)),[e,r]}const Ar=Math.abs,kr=function(t){const n=t*br;return n/(1-n)},Br=Pr,Fr=vn,zr=kr(1),Yr=kr(2);function Vr(t,n,e=void 0,r=1){const o=Math.abs(n),i=t[0],[c,s]=Br(i,n),u=Yr*function(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+Ar(t[r]);return e}(i,o),f=void 0!==e?Fr(e,o):0;if((s+u+f)*r<Math.abs(c))return c;const l=function(t,n){const e=[],r=[];let o,i=t[0];for(let c=1;c<t.length;c++){const[s,u]=Or(i,n);[o,i]=yr(u,t[c]),e.push(s),r.push(o)}return{r̂:i,pπ:e,pσ:r}}(i,n),{pπ:a,pσ:p}=l;let{r̂:h}=l;const[d,v]=Br(a,n),[g,m]=Br(p,n),[b,x]=Br(t[1],n);let w=v+m+x+f;return h=d+g+b+h,w+=zr*h,w*r<Math.abs(h)?h:0}const Lr=k,$r=L;function Xr(t,n){let e=[0];for(let r=0;r<t.length;r++)e=Lr(t[r],$r(e,n));return e}const jr=Vr,qr=Xr,Wr=ht,Hr=Vr,Dr=Xr,Qr=ht,Rr=Number.EPSILON,Gr=Math.abs,Ur=Math.max,Zr=function(t){const{p:n,pE:e}=t,r=[],o=[],i=n.length-1;for(let t=0;t<i;t++){const c=i-t,s=Nr(c,n[t]);r.push(s);const u=c&c-1?Sr:0,f=Mr(s);o.push(c*e[t]+Math.abs(f)*u)}return{p:r,pE:o}},Jr=Vr,Kr=Xr,to=function(t){const n=t[0].length,e=[];for(let r=0;r<n;r++){const o=[];for(let e=0;e<t.length;e++)o.push(t[e][n-(r+1)]);e.push(o)}return e},no=function(t,n,e,r){const o=jr(t,e,n,4);return 0!==o?o:Wr(qr(r(),e))},eo=function(t,n,e,r,o,i,c,s){let u=e,f=r,l=u,a=o,p=f-u,h=p;for(;;){let d;Gr(a)<Gr(i)&&(u=f,f=l,l=u,o=i,i=a,a=o);const v=Ur(Gr(u),Gr(f));d=v<=1?Rr:Rr*2**Math.ceil(Math.log2(v));const g=.5*(l-f);if(Gr(g)<=d)return f<l?[f,l]:[l,f];if(Gr(p)<d||Gr(o)<=Gr(i))p=g,h=p;else{let t,n,e=i/o;if(u===l)t=2*g*e,n=1-e;else{n=o/a;const r=i/a;t=e*(2*g*n*(n-r)-(f-u)*(r-1)),n=(n-1)*(r-1)*(e-1)}0<t?n=-n:t=-t,e=p,p=h,2*t<3*g*n-Gr(d*n)&&t<Gr(.5*e*n)?h=t/n:(p=g,h=p)}if(u=f,o=i,d<Gr(h)?f+=h:0<g?f+=d:f-=d,0===(i=s?Qr(Dr(c(),f)):Hr(t,f,n))){if(s)return[f,f];const o=Math.max(e,f-d),u=Math.min(r,f+d);if(Hr(t,o,n)*Hr(t,u,n)!==0)return[o,u];if(s=!0,0===(i=Qr(Dr(c(),f))))return[f,f]}(0<i&&0<a||i<=0&&a<=0)&&(l=u,a=o,p=f-u,h=p)}},ro=Mn,oo=Nn,io=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(Er(t[r],e-r));return n},co=ht,so=Pr,uo=H,fo=Math.max,lo=Math.min,ao=Math.abs,po=1+Number.EPSILON;function ho(t,n=0,e=1,r,o,i){o||(o=()=>t),r=r||new Array(t.length).fill(0);let c,s,u=0;for(;t.length>0&&ao(t[0][1])<=r[0]&&(s=s||o(),0===uo(s[0]));)(t=t.slice()).shift(),(r=r.slice()).shift(),s.shift();if(0===t.length)return i?void 0:[];if(1===t.length)return[];if(n===Number.NEGATIVE_INFINITY||e===Number.POSITIVE_INFINITY){const r=t.map(t=>t[1]);n===Number.NEGATIVE_INFINITY&&(n=ro(r)),e===Number.POSITIVE_INFINITY&&(e=oo(r))}const f=to(t);let l,a;const p=t.length-1;let h,d;l=0,a=!1;do{if(h=a?co(Kr(w(),n)):Jr(f,n,r),0===h){if(l++,l>=3&&!a){a=!0;continue}n-=2*Number.EPSILON*fo(1,ao(n))}}while(0===h);l=0,a=!1;do{if(d=a?co(Kr(w(),e)):Jr(f,e,r),0===d){if(l++,l>=3&&!a){a=!0;continue}e+=2*Number.EPSILON*fo(1,ao(e))}}while(0===d);const v=[{p:t,pE:r}],g=[to(t)];for(let t=1;t<=p;t++){const n=Zr(v[t-1]);v.push(n),g.push(to(n.p))}let m,b,x=[];for(u=p-1;u>=0;u--)m=v[u].pE,b=g[u],x=_();function w(){if(void 0!==c)return c[u];let t=s||o();for(c=[t];t.length>1;)t=io(t),c.push(t);return c[u]}return x;function _(){const t=[],r=no(b,m,n,w);if(!x.length){const t=no(b,m,e,w);if(r*t>=0)return[];const[o,i]=eo(b,m,n,e,r,t,w);return[{tS:o,tE:i,multiplicity:1}]}let o=x[0].tS,i=no(b,m,o,w);if(r*i>0);else if(r*i<0){const[e,c]=eo(b,m,n,o,r,i,w);t.push({tS:e,tE:c,multiplicity:1})}let c,s=n,f=r,l=o,a=i;for(let n=0;n<x.length;n++){const r=x[n+1];c=x[n],o=l,s=x[n].tE,l=r?r.tS:e;const u=f;if(i=a,f=no(b,m,s,w),a=no(b,m,l,w),i*f>0)if(f*a>0)s!==o&&c.multiplicity%2==1&&h();else if(f*a<0){s!==o&&c.multiplicity%2==1&&h();const[n,e]=eo(b,m,s,l,f,a,w);t.push({tS:n,tE:e,multiplicity:1})}else s!==o&&c.multiplicity%2==1&&h();else if(i*f<0){if(t.push({tS:c.tS,tE:c.tE,multiplicity:3}),f*a<0){const[n,e]=eo(b,m,s,l,f,a,w);t.push({tS:n,tE:e,multiplicity:1})}}else if(0===f)0===i?t.push({tS:c.tS,tE:c.tE,multiplicity:c.multiplicity+1}):i*a>0?t.push({tS:c.tS,tE:c.tE,multiplicity:2}):t.push({tS:c.tS,tE:c.tE,multiplicity:3});else{if(f*a<0){const[n,e]=eo(b,m,s,l,f,a,w);t.push({tS:n,tE:e,multiplicity:1})}u*f>0?t.push({tS:c.tS,tE:c.tE,multiplicity:2}):t.push({tS:c.tS,tE:c.tE,multiplicity:3})}}for(let n=0;n<t.length-1;n++){const e=t[n],r=t[n+1];if(e.tE>=r.tS)return vo(t)}return t;function h(){const n=(s-o)*po;let e=1,r=0;for(let t=u+2;t<=p;t++){const i=g[t][0],c=so(i,o);r+=(ao(c[0])+c[1])*e,e*=n*po}const l=f>0?lo(i,f):fo(i,f),a=2*Number.EPSILON*fo(1,ao(s)),h=r*(2*a);(l+(f>0?2*-h*a:2*h*a))*f<0&&t.push({tS:c.tS,tE:c.tE,multiplicity:2})}}}function vo(t){const n=[],e=t[0];let r={tS:e.tS,tE:e.tE,multiplicity:e.multiplicity};for(let e=0;e<t.length-1;e++){const o=t[e],i=t[e+1];o.tE<i.tS?(n.push(r),r={tS:i.tS,tE:i.tE,multiplicity:i.multiplicity}):(r.tE=i.tE,r.multiplicity=o.multiplicity+i.multiplicity)}return n.push(r),n}function go(t){return(t.tS+t.tE)/2}function mo(t,n){if(0===n)return t[0];if(1===n)return t[t.length-1];if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=e+(o-e)*n,a=o+(c-o)*n,p=l+(a-l)*n,h=r+(i-r)*n,d=i+(s-i)*n,v=h+(d-h)*n;return[p+(a+(c+(u-c)*n-a)*n-p)*n,v+(d+(s+(f-s)*n-d)*n-v)*n]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=e+(o-e)*n,f=r+(i-r)*n;return[u+(o+(c-o)*n-u)*n,f+(i+(s-i)*n-f)*n]}if(2===t.length){const[[e,r],[o,i]]=t;return[e+(o-e)*n,r+(i-r)*n]}if(1===t.length)return t[0];throw new Error("The given bezier curve must be of order <= 3.")}const bo=Math.abs;function xo(t,n){if(0===n[0]&&0===n[1])return[0,0];if(0===n[0]&&1===n[1])return[0,0];const e=bo(n[1]);if(4===t.length){const[[n,r],[o,i],[c,s],[u,f]]=t,l=bo(n),a=bo(r),p=bo(o),h=bo(i),d=bo(c),v=bo(s),g=l+(p+l)*e,m=p+(d+p)*e,b=g+(m+g)*e,x=a+(h+a)*e,w=h+(v+h)*e,_=x+(w+x)*e;return[b+(m+(d+(bo(u)+d)*e+m)*e+b)*e,_+(w+(v+(bo(f)+v)*e+w)*e+_)*e]}if(3===t.length){const[[n,r],[o,i],[c,s]]=t,u=bo(n),f=bo(r),l=bo(o),a=bo(i),p=u+(l+u)*e,h=f+(a+f)*e;return[p+(l+(bo(c)+l)*e+p)*e,h+(a+(bo(s)+a)*e+h)*e]}if(2===t.length){const[[n,r],[o,i]]=t,c=bo(n),s=bo(r);return[c+(bo(o)+c)*e,s+(bo(i)+s)*e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}const wo=Math.abs,_o=[[0,0],[0,0]];const Io=Number.EPSILON/2,No=G(1);function Mo(t,n){return n[0]!==n[1]?4===t.length?function(t,n){const{ps:e,_ps:r}=T(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=e[3][0],u=9*Io*r[0][0],f=9*Io*r[1][0],l=9*Io*r[2][0],a=9*Io*r[3][0],p=e[0][1],h=e[1][1],d=e[2][1],v=e[3][1],g=9*Io*r[0][1],m=9*Io*r[1][1],b=9*Io*r[2][1],x=9*Io*r[3][1],w=Math.min(o-u,i-f,c-l,s-a),_=Math.max(o+u,i+f,c+l,s+a);return[[w,Math.min(p-g,h-m,d-b,v-x)],[_,Math.max(p+g,h+m,d+b,v+x)]]}(t,n):3===t.length?function(t,n){const{ps:e,_ps:r}=y(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=5*Io*r[0][0],u=5*Io*r[1][0],f=5*Io*r[2][0],l=e[0][1],a=e[1][1],p=e[2][1],h=5*Io*r[0][1],d=5*Io*r[1][1],v=5*Io*r[2][1],g=Math.min(o-s,i-u,c-f),m=Math.max(o+s,i+u,c+f);return[[g,Math.min(l-h,a-d,p-v)],[m,Math.max(l+h,a+d,p+v)]]}(t,n):function(t,n){const{ps:e,_ps:r}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:_o}:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[o,i],[n*(c-o)+o,n*(s-i)+i]],f=wo(n),l=wo(o),a=wo(c),p=wo(i);return{ps:u,_ps:[[0,0],[f*(a+l)+l,f*(wo(s)+p)+p]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[n*(c-o)+o,n*(s-i)+i],[c,s]],f=wo(n),l=wo(o),a=wo(c),p=wo(i);return{ps:u,_ps:[[f*(a+l)+l,f*(wo(s)+p)+p],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1],f=[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]],l=wo(n),a=wo(e),p=wo(i),h=wo(s),d=wo(c),v=wo(u);return{ps:f,_ps:[[l*(h+p)+p,l*(v+d)+d],[a*(h+p)+p,a*(v+d)+d]]}}(t,n,e)}(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=3*Io*r[0][0],s=3*Io*r[1][0],u=e[0][1],f=e[1][1],l=3*Io*r[0][1],a=3*Io*r[1][1],p=Math.min(o-c,i-s),h=Math.max(o+c,i+s);return[[p,Math.min(u-l,f-a)],[h,Math.max(u+l,f+a)]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n)return[e,e];if(1===n)return[r,r];const o=mo(t,n);let i;if(4===t.length)i=xo(t,[0,n]).map(t=>8*No*t);else if(3===t.length)i=xo(t,[0,n]).map(t=>5*No*t);else if(2===t.length)i=xo(t,[0,n]).map(t=>2*No*t);else if(1===t.length)return[o,o];return[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]]}(t,n[0])}function So(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}const Eo=ht,yo=dt,Oo=q,Co=k,To=Number.EPSILON;function Po(t){return[2*t[0],2*t[1]]}function Ao(t){return[4*t[0],4*t[1]]}const ko=P,Bo=b,Fo=Ir,zo=fr,Yo=Po,Vo=Ao,Lo=x;function $o(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=ko(c,d),m=ko(u,d),b=ko(l,d),x=ko(p,d),w=ko(s,v),_=ko(f,v),I=ko(a,v),N=ko(h,v),M=zo(g,g),S=Fo(6,zo(g,m)),E=Fo(6,zo(g,b)),y=Yo(zo(g,x)),O=Fo(9,zo(m,m)),C=Fo(18,zo(m,b)),T=Fo(6,zo(m,x)),P=Fo(9,zo(b,b)),A=Fo(6,zo(b,x)),k=zo(x,x),B=zo(w,w),F=Fo(6,zo(w,_)),z=Fo(6,zo(w,I)),Y=Yo(zo(w,N)),V=Fo(9,zo(_,_)),L=Fo(18,zo(_,I)),$=Fo(6,zo(_,N)),X=Fo(9,zo(I,I)),j=Fo(6,zo(I,N)),q=zo(N,N),W=Bo(T,P),H=Bo(y,C),D=Bo(E,O),Q=Bo($,X),R=Bo(Y,L),G=Bo(z,V);return[Fo(6,Bo(Bo(Bo(Bo(Lo(k,A),Lo(M,S)),W),Lo(D,H)),Bo(Bo(Bo(Lo(q,j),Lo(B,F)),Q),Lo(G,R)))),Fo(5,Bo(Lo(Bo(Bo(A,Fo(5,S)),Fo(3,H)),Yo(Bo(Bo(W,Yo(D)),Fo(3,M)))),Lo(Bo(Bo(j,Fo(5,F)),Fo(3,R)),Yo(Bo(Bo(Q,Yo(G)),Fo(3,B)))))),Vo(Bo(Lo(Lo(W,Fo(3,Lo(H,Yo(D)))),Fo(5,Lo(Yo(S),Fo(3,M)))),Lo(Lo(Q,Fo(3,Lo(R,Yo(G)))),Fo(5,Lo(Yo(F),Fo(3,B)))))),Fo(3,Bo(Lo(H,Yo(Lo(Yo(D),Fo(5,Lo(S,Yo(M)))))),Lo(R,Yo(Lo(Yo(G),Fo(5,Lo(F,Yo(B)))))))),Yo(Bo(Lo(D,Fo(5,Lo(S,Fo(3,M)))),Lo(G,Fo(5,Lo(F,Fo(3,B)))))),Bo(Lo(S,Fo(6,M)),Lo(F,Fo(6,B)))]}const Xo=P,jo=b,qo=Ir,Wo=fr,Ho=Po,Do=x,Qo=Ao;function Ro(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=Xo(e,u),a=Xo(o,u),p=Xo(c,u),h=Xo(r,f),d=Xo(i,f),v=Xo(s,f),g=Wo(l,l),m=Wo(l,a),b=Wo(l,p),x=Wo(a,a),w=Wo(a,p),_=Wo(p,p),I=Wo(h,h),N=Wo(h,d),M=Wo(h,v),S=Wo(d,d),E=Wo(d,v),y=Wo(v,v),O=jo(M,Ho(S)),C=jo(b,Ho(x));return[jo(Do(jo(jo(y,I),Ho(O)),Qo(jo(E,N))),Do(jo(jo(_,g),Ho(C)),Qo(jo(w,m)))),qo(3,jo(jo(Do(E,O),Do(qo(3,N),I)),jo(Do(w,C),Do(qo(3,m),g)))),jo(Do(O,qo(3,Do(Ho(N),I))),Do(C,qo(3,Do(Ho(m),g)))),jo(Do(N,I),Do(m,g))]}const Go=m,Uo=b,Zo=function(t){return[-2*t[0],-2*t[1]]},Jo=x;function Ko(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=Go(u,u),h=Go(u,f),d=Go(f,f),v=Go(l,l),g=Go(l,a),m=Go(a,a),b=Uo(h,g),x=Uo(v,p);return[Uo(Uo(d,m),Uo(x,Zo(b))),Jo(b,x)]}function ti(t){const n=[];for(let e=0;e<t.length;e++)n.push(2*t[e]);return n}function ni(t){const n=[];for(let e=0;e<t.length;e++)n.push(-2*t[e]);return n}const ei=dt,ri=q,oi=$,ii=ti,ci=ni,si=k,ui=Y,fi=dt,li=q,ai=$,pi=ti,hi=k,di=Y;function vi(t){const n=[];for(let e=0;e<t.length;e++)n.push(4*t[e]);return n}const gi=dt,mi=q,bi=ni,xi=k,wi=Y,_i=Math.abs;function Ii(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=_i(e[0]),s=_i(e[1]),u=_i(r[0]),f=_i(r[1]),l=_i(o[0]),a=_i(o[1]),p=_i(i[0]),h=_i(i[1]),d=_i(n[0]),v=_i(n[1]),g=c+d,m=u+d,b=l+d,x=p+d,w=s+v,_=f+v,I=a+v,N=h+v,M=g*g,S=6*g*m,E=6*b*x,y=w*w,O=6*w*_,C=6*I*N,T=6*m*x+9*b*b,P=2*g*x+18*m*b,A=6*g*b+9*m*m,k=6*_*N+9*I*I,B=2*w*N+18*_*I,F=6*w*I+9*_*_;return[6*(x*x+E+(M+S)+T+(A+P)+(N*N+C+(y+O)+k+(F+B))),5*(E+5*S+3*P+2*(T+2*A+3*M)+(C+5*O+3*B+2*(k+2*F+3*y))),4*(T+3*(P+2*A)+5*(2*S+3*M)+(k+3*(B+2*F)+5*(2*O+3*y))),3*(P+2*(2*A+5*(S+2*M))+(B+2*(2*F+5*(O+2*y)))),2*(A+5*(S+3*M)+(F+5*(O+3*y))),S+6*M+(O+6*y)]}function Ni(t,n){const e=t[0],r=t[1],o=t[2],i=_i(e[0]),c=_i(e[1]),s=_i(r[0]),u=_i(r[1]),f=_i(o[0]),l=_i(o[1]),a=_i(n[0]),p=_i(n[1]),h=i+a,d=s+a,v=f+a,g=c+p,m=u+p,b=l+p,x=h*h,w=h*d,_=d*v,I=g*g,N=g*m,M=m*b,S=g*b+m*m*2,E=h*v+d*d*2;return[b*b+I+2*S+4*(M+N)+(v*v+x+2*E+4*(_+w)),3*(M+S+(3*N+I)+(_+E+(3*w+x))),S+3*(2*N+I)+(E+3*(2*w+x)),N+I+(w+x)]}function Mi(t,n){const e=t[0],r=t[1],o=_i(e[0]),i=_i(e[1]),c=_i(r[0]),s=_i(r[1]),u=_i(n[0]),f=_i(n[1]),l=o+u,a=c+u,p=i+f,h=s+f,d=l*a+p*h,v=p*p+l*l;return[a*a+h*h+2*d+v,d+v]}const Si=U(6);function Ei(t,n){const e=t.length-1;if(3===e)return{polyDd:$o(t,n),polyE:Ii(t,n).map(t=>10*Si*t),getPolyExact:()=>function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=ei(c,d),m=ei(u,d),b=ei(l,d),x=ei(p,d),w=ei(s,v),_=ei(f,v),I=ei(a,v),N=ei(h,v),M=ri(g,g),S=oi(6,ri(g,m)),E=oi(6,ri(g,b)),y=ii(ri(g,x)),O=oi(9,ri(m,m)),C=oi(18,ri(m,b)),T=oi(6,ri(m,x)),P=oi(9,ri(b,b)),A=oi(6,ri(b,x)),k=ri(x,x),B=ri(w,w),F=oi(6,ri(w,_)),z=oi(6,ri(w,I)),Y=ii(ri(w,N)),V=oi(9,ri(_,_)),L=oi(18,ri(_,I)),$=oi(6,ri(_,N)),X=oi(9,ri(I,I)),j=oi(6,ri(I,N)),q=ri(N,N),W=si(T,P),H=si(y,C),D=si(E,O),Q=si($,X),R=si(Y,L),G=si(z,V),U=ui(si(si(k,M),si(W,D)),si(si(H,A),S)),Z=ui(si(si(q,B),si(Q,G)),si(si(R,j),F)),J=oi(6,si(U,Z)),K=si(ci(si(si(W,ii(D)),oi(3,M))),si(si(A,oi(3,H)),oi(5,S))),tt=si(ci(si(si(Q,ii(G)),oi(3,B))),si(si(j,oi(3,R)),oi(5,F))),nt=oi(5,si(K,tt)),et=si(si(W,oi(3,ui(ii(D),H))),oi(5,ui(oi(3,M),ii(S)))),rt=si(si(Q,oi(3,ui(ii(G),R))),oi(5,ui(oi(3,B),ii(F)))),ot=oi(4,si(et,rt)),it=ui(H,ii(ui(ii(D),oi(5,ui(S,ii(M)))))),ct=ui(R,ii(ui(ii(G),oi(5,ui(F,ii(B)))))),st=oi(3,si(it,ct)),ut=ui(D,oi(5,ui(S,oi(3,M)))),ft=ui(G,oi(5,ui(F,oi(3,B)))),lt=ii(si(ut,ft)),at=ui(S,oi(6,M)),pt=ui(F,oi(6,B));return[J,nt,ot,st,lt,si(at,pt)]}(t,n)};if(2===e)return{polyDd:Ro(t,n),polyE:Ni(t,n).map(t=>8*Si*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=fi(e,u),a=fi(o,u),p=fi(c,u),h=fi(r,f),d=fi(i,f),v=fi(s,f),g=li(l,l),m=li(l,a),b=li(l,p),x=li(a,a),w=li(a,p),_=li(p,p),I=li(h,h),N=li(h,d),M=li(h,v),S=li(d,d),E=li(d,v),y=li(v,v),O=hi(M,pi(S)),C=hi(b,pi(x)),T=hi(di(hi(_,pi(C)),vi(hi(w,m))),g),P=hi(di(hi(y,pi(O)),vi(hi(E,N))),I),A=hi(T,P),k=hi(di(w,C),di(ai(3,m),g)),B=hi(di(E,O),di(ai(3,N),I)),F=ai(3,hi(k,B)),z=di(O,ai(3,di(pi(N),I))),Y=di(C,ai(3,di(pi(m),g))),V=hi(z,Y),L=di(N,I),$=di(m,g);return[A,F,V,hi(L,$)]}(t,n)};if(1===e)return{polyDd:Ko(t,n),polyE:Mi(t,n).map(t=>6*Si*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=gi(e,c),f=gi(o,c),l=gi(r,s),a=gi(i,s),p=mi(u,u),h=mi(u,f),d=mi(f,f),v=mi(l,l),g=mi(l,a),m=mi(a,a),b=xi(h,g),x=xi(v,p);return[xi(xi(d,m),xi(bi(b),x)),wi(b,x)]}(t,n)};if(0===e)return{polyDd:[[0,1]],polyE:[0],getPolyExact:()=>[[1]]};throw new Error("The given bezier curve must be of order <= 3")}const{sqrt:yi}=Math;function Oi(t,n,e=0,r=1){const{polyDd:o,polyE:i,getPolyExact:c}=Ei(t,n),s=ho(o,e,r,i,c);s.push({tS:e,tE:e,multiplicity:1}),s.push({tS:r,tE:r,multiplicity:1});const u=s.map(e=>{const r=Mo(t,[e.tS,e.tE]),o=function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];let l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(const[t,n]of[[o,i],[o,s],[c,i],[c,s]]){const e=yo(t,u),r=yo(n,f),o=Co(Oo(e,e),Oo(r,r)),i=Eo(o),c=i*(1-To),s=i*(1+To);c<=l&&(l=c),s>=a&&(a=s)}return[l,a]}(r,n);return{p:So(r),t:go(e),d:(yi(o[0])+yi(o[1]))/2,dSquaredI:o,box:r,ri:e}});let f=Number.POSITIVE_INFINITY;for(let t=0;t<u.length;t++){const n=u[t].dSquaredI[1];n<f&&(f=n)}const l=[];for(let t=0;t<u.length;t++){const n=u[t];n.dSquaredI[0]<=f&&l.push(n)}return l}function Ci(t){const n=t.xs;if(4===n.length){let t=0,e=0;for(let r=0;r<n.length;r++)0===n[r].x.kind&&t++,4===n[r].x.kind&&e++;if(2===t&&2===e)return!0}return n.length<=2&&7!==n[0].x.kind}const Ti=vt;function Pi(t){const n=(t=Ti(t)).length;return 2===n?t:1===n?[0,t[0]]:[t[n-2],t[n-1]]}const Ai=q,ki=k,Bi=$,Fi=ho,zi=Pi,Yi=J,Vi=Number.EPSILON;function Li(t,n){const e=t.tS,r=t.tE-e;if(0===r)return[{tS:[0,e],tE:[0,e],multiplicity:t.multiplicity}];const o=function(t,n,e){const r=t.length-1;if(r<0)return[];const o=[];for(let t=0;t<r+1;t++)o.push(new Array(r+1).fill([0]));o[0][0]=[1];for(let t=1;t<=r;t++){o[0][t]=Bi(e,o[0][t-1]);for(let r=1;r<=t;r++)o[r][t]=ki(Bi(e,o[r][t-1]),Bi(n,o[r-1][t-1]))}const i=new Array(r+1).fill([0]);for(let n=0;n<=r;n++){i[r-n]=[0];for(let e=n;e<=r;e++){const c=Ai(o[n][e],t[r-e]);i[r-n]=ki(i[r-n],c)}}return i}(n,r,e),i=o.map(zi),c=i.map(t=>Vi*Vi*t[1]),s=Fi(i,0,1,c,()=>o),u=[];for(const t of s)u.push({tS:Yi(e,t.tS*r),tE:Yi(e,t.tE*r),multiplicity:t.multiplicity});return u}const{abs:$i}=Math;function Xi(t,n){const e=t.inOuts;e.sort(function(t){return(n,e)=>{let r=n.side-e.side;if(0!==r)return r;const o=n.sideX,i=e.sideX;r=o.ri.tS-i.ri.tS;const c=8*Number.EPSILON;return $i(r)>=c?r:(o.compensated||(o.compensated=1,o.riExp=Li(o.ri,o.getPExact())[0]),i.compensated||(i.compensated=1,i.riExp=Li(i.ri,i.getPExact())[0]),r=D(o.riExp.tS,i.riExp.tS),0!==r?r:(r=n.dir-e.dir,0!==r?t*r:1===n.dir?n.idx-e.idx:e.idx-n.idx))}}(n));let r=e[e.length-1];for(let t=0;t<e.length;t++){const n=e[t];n.prevAround=r,r.nextAround=n,r=n}}function ji(t,n,e,r){const o=function(t,n){return(e,r,o)=>{t.has(e)||(e.orientation=r,e.parent=o,e.windingNum=o.windingNum+e.orientation,n.push(e))}}(r,e);Xi(t.container,n.orientation);let i,c,s=1,u=t,f=n.orientation;for(;u=1===n.orientation?u.nextAround:u.prevAround,u!==t;){const t=s;s-=u.dir,1===s&&(f*=-1),-1!==u.dir&&(i?1===t&&0===s?o(u,n.orientation,n.parent):0===t&&-1===s&&o(u,-n.orientation,n.parent):0===s?i=u:1===s&&o(u,n.orientation,n))}return Ci(t.container)||(c=[t.p,i.p]),{inOutToUse:i,additionalBezier:c}}function qi(t,n){const e=t._x_,r=n._x_,o=e.curve,i=e.x.ri.tS,c=r.curve,s=r.x.ri.tS;let u=o,f=i;Ci(t.container)||(f=go(Oi(o.ps,t.p)[0].ri));const l=[];for(;;){if(u===c&&(f<s||f===s&&0!==l.length)){const t=u.ps,n=[f,s];return l.push({ps:t,ts:n}),l}{const t=u.ps,n=[f,1];l.push({ps:t,ts:n})}f=0,u=u.next}}function Wi(t,n){const e=n._x_,r=t._x_,o=r.curve,i=r.x.ri.tS,c=e.curve,s=e.x.ri.tS;let u=o,f=i;Ci(t.container)||(f=go(Oi(u.ps,t.p)[0].ri));const l=[];for(;;){const t=u.ps;if(u===c&&(f>s||f===s&&0!==l.length)){const n=[f,s];return l.push({ps:t,ts:n}),l}{const n=[f,0];l.push({ps:t,ts:n})}f=1,u=u.prev}}function Hi(t,n,e,r){const o=function(t,n,e){return(r,o,i,c)=>{n.has(r)||1!==r.dir||(r.loopsIdxs=new Set(c),r.orientation=o*t.orientation,r.parent=i.parent,r.windingNum=i.windingNum+r.orientation,e.unshift(r))}}(n,r,e);Xi(t.container,1);let i=t.nextAround,c=t;const s=[],u=new Set(n.loopsIdxs);for(;c=c.nextAround,c!==t;)o(c,n.dir,n,u),s.push(c.idx),-1===c.dir?u?.add(c._x_?.curve.loop.idx):u.delete(c._x_?.curve.loop.idx);let f;return Ci(t.container)||(f=[t.p,i.p]),{inOutToUse:i,additionalBezier:f}}function Di(t){const{ps:n,ts:e}=t;return Dn(n,e[0],e[1])}function Qi(t,n,e){const r=[],o=[];let i,c=n;const s=e?Hi:ji,u=[];do{t.add(c),u.push(c);const e=c.nextOrPrev;t.add(e);const f=1===c.dir?qi(c,e):Wi(c,e);o.push(...f);const l=s(e,n,r,t);if(({inOutToUse:c,additionalBezier:i}=l),void 0!==i){const t=Di(o[o.length-1]),n={ps:t,ts:[0,go(Oi(t,i[0])[0].ri)]};o.pop(),o.push(n),o.push({ps:i,ts:[0,1]})}}while(c!==n);return"undefined"!=typeof _debug_&&_debug_.verbose&&function(t){const n=[],e=[];for(let r of t)e.push(1===r.dir?"color: blue;":"color: red"),n.push(`%c${r.idx}`);console.log("Taken ios: "+n.join(" "),...e)}(u),{bezierPieces:o,additionalOutsToCheck:r}}function Ri(t,n,e,r){const o=[t];for(;o.length;){const t=o.pop();if(n.add(t._x_.curve.loop),e.has(t))continue;t.children=new Set;const{bezierPieces:i,additionalOutsToCheck:c}=Qi(e,t,r);t.bezierPieces=i,t.parent.children=t.parent.children||new Set,t.parent.children.add(t);for(let t=0;t<c.length;t++)o.push(c[t])}}function Gi(t){if(4===t.length)return Ui(t);if(3===t.length)return Zi(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n,n],[o-e,e]]}(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[n],[e]]}(t);throw new Error("The given bezier curve must be of order <= 3.")}function Ui(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[s-n+3*(r-i),3*(i+n-2*r),3*(r-n),n],[u-e+3*(o-c),3*(c+e-2*o),3*(o-e),e]]}function Zi(t){const[[n,e],[r,o],[i,c]]=t;return[[i+n-2*r,2*(r-n),n],[c+e-2*o,2*(o-e),e]]}function Ji(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY,r){return ho(t.map(t=>[0,t]),n,e,void 0,void 0,r)}function Ki(t){const n=t[0],e=t[t.length-1];let r,o;if(n[1]<e[1]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minY:r,maxY:o};const[,i]=jn(t),c=Ji(i,0,1);for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=Mo(t,i);s[0][1]<r.box[0][1]&&(r={ts:i,box:s}),s[1][1]>o.box[0][1]&&(o={ts:i,box:s})}return{minY:r,maxY:o}}function tc(t){const n=function(t){const n=t[0],e=t[t.length-1];let r,o;if(n[0]<e[0]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minX:r,maxX:o};const[i]=jn(t),c=Ji(i,0,1);for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=Mo(t,i);s[0][0]<r.box[0][0]&&(r={ts:i,box:s}),s[1][0]>o.box[0][0]&&(o={ts:i,box:s})}return{minX:r,maxX:o}}(t),e=Ki(t);return[[n.minX.box[0][0],e.minY.box[0][1]],[n.maxX.box[1][0],e.maxY.box[1][1]]]}const nc=Kn(tc);function ec(t){const n=jn(t),e=kn(n[0],0,1),r=kn(n[1],0,1);e.push(0,1),r.push(0,1);let o,i,c,s,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(let n=0;n<e.length;n++){const r=e[n],[c]=mo(t,r);c<u&&(u=c,o=r),c>f&&(f=c,i=r)}for(let n=0;n<r.length;n++){const e=r[n],[,o]=mo(t,e);o<l&&(l=o,c=e),o>a&&(a=o,s=e)}return{ts:[[o,c],[i,s]],box:[[u,l],[f,a]]}}const rc=Kn(ec),{min:oc,max:ic}=Math;function cc(t){const n=t.map(rc);return{minX:oc(...n.map(t=>t.box[0][0])),maxX:ic(...n.map(t=>t.box[1][0])),minY:oc(...n.map(t=>t.box[0][1])),maxY:ic(...n.map(t=>t.box[1][1]))}}const sc=new Function("try {return this===window;}catch(e){ return false;}")()?function(t){const n=window.atob(t),e=n.length,r=new Uint8Array(e);for(let t=0;t<e;t++)r[t]=n.charCodeAt(t);return r.buffer}:function(t){return function(t){const n=new ArrayBuffer(t.length),e=new Uint8Array(n);for(let n=0;n<t.length;++n)e[n]=t[n];return n}(Buffer.from(t,"base64"))},uc=sc("AGFzbQEAAAABBgFgAX8BfAMDAgAABQMBAAAHHwMGbWVtb3J5AgAHc3F1YXJlcwAACHNxdWFyZXM0AAEKjgECPwECfiAArULHuuXf9tjQm2p+IgEgASABfnxCIIoiAiACfiABQse65d/22NCbanx8QiCKIgIgAn4gAXxCIIi6C0wBAn4gAK1Cx7rl3/bY0JtqfiIBQse65d/22NCbanwiAiABIAIgASABIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiLoL"),fc=new WebAssembly.Module(uc),lc=new WebAssembly.Instance(fc),ac=lc.exports.squares;lc.exports.squares4;const pc=1e-6;function hc(t,n){let e;const r=[t];for(;r.length;)o(r.pop());return e;function o(o){if(o===t||function(t,n){let e=0;do{e++;const o=ac(e)/4294967296,i=r(t,n,mo(t[ac(e+1e3)%t.length],o));if(void 0!==i)return i}while(e<100);return;function r(t,n,e){if(function(t,n){const e=cc(t),r=cc(n);return e.minX<r.minX||e.maxX>r.maxX||e.minY<r.minY||e.maxY>r.maxY}(t,n))return!1;const r=function(t,n){const[e,r]=n;let o=0;for(let i=0;i<t.length;i++){const c=t[i],[[s,u],[f,l]]=nc(c);let a=u>r||l<r||!1;if(a=a||s>e||!1,a)continue;const p=[];let h,d,v;const g=!0;h=t=>Gi(t)[1],d=[0,-r],v=0;const m=c.map(ce(d)),b=kn(h(m),0-pc,1+pc);for(let t=0;t<b.length;t++){const e=b[t];if(Math.abs(e)<pc||Math.abs(e-1)<pc)return;const r=mo(m,e);(g&&n[v]>=r[v]||!g&&n[v]<=r[v])&&p.push(e)}if(1===p.length||3===p.length)for(const t of p){const n=se(fe(c,t));if(Math.abs(n[1])<pc)return}o+=p.length}return o}(n,e);return void 0!==r?r%2!=0:void 0}}(n.beziers,o.bezierPieces.map(Di))){e=o;for(const t of o.children)r.push(t)}}}function dc(t,n){return vc(t)-vc(n)}function vc(t){let n=Number.POSITIVE_INFINITY;for(const e of t){const t=rc(e).box[0][1];t<n&&(n=t)}return n}const{abs:gc,sign:mc}=Math;function bc(t){let n=t.parent;for(;;){if(void 0===n)return!1;if(n.used)return!0;n=n.parent}}function xc(t,n,e){let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;o>c&&([o,c]=[c,o]),u>l&&([u,l]=[l,u]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]);const a=t||r===i&&s===f,p=t||o===c&&u===l;return(a?r<=f:r<f)&&(a?i>=s:i>s)&&(p?u<=c:u<c)&&(p?l>=o:l>o)}function wc(t,n){return xc(!0,t.box,n.box)}function _c(t,n){for(let e=0;e<n.length;e++){const r=n[e];Ic(t,[r.a,r.b])}}function Ic(t,n){const[e,r]=n;let o=t.get(e);o||(o=[],t.set(e,o));let i=t.get(r);i||(i=[],t.set(r,i)),o.push(r),i.push(e)}function Nc(t,n,e,r){e.add(n),r.push(n);const o=t.get(n);for(let n=0;n<o.length;n++){const i=o[n];e.has(i)||Nc(t,i,e,r)}}function Mc(t){const n=[],e=new Set;for(const r of t){const o=r[0];e.has(o)||(n.push([]),Nc(t,o,e,n[n.length-1]))}return n}function Sc(t,n){const e=new Set;for(const t of n)for(const n of t)e.add(n);const r=[];for(let n=0;n<t.length;n++){const o=t[n];e.has(o)||r.push(o)}return r}function Ec(t){const n=[];for(const e of t){let t=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;const c=[];for(const n of e){const[[e,s],[u,f]]=n.box;e<t&&(t=e),s<r&&(r=s),u>o&&(o=u),f>i&&(i=f),c.push(...n.xs)}const s={box:[[t,r],[o,i]],xs:c,inOuts:void 0};n.push(s)}return n}function yc(t){return{tS:[0,t.tS],tE:[0,t.tE],multiplicity:t.multiplicity}}const Oc=P,Cc=Ir,Tc=b,Pc=lr,Ac=Math.abs;function kc(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Oc(s,n),l=Oc(r,i),a=3*(r-i),p=Cc(3,l),h=Ac(a),d=Tc(f,p),v=h+Ac(s-n+a),g=Oc(i,2*r),m=Pc(g,n),b=Ac(i-2*r+n),x=Cc(3,m),w=6*b,_=Oc(r,n),I=Cc(3,_),N=Ac(3*(r-n)),M=Oc(u,e),S=Oc(o,c),E=3*(o-c),y=Cc(3,S),O=Ac(E),C=Tc(M,y),T=O+Ac(u-e+E),P=Oc(c,2*o),A=Pc(P,e),k=Ac(c-2*o+e),B=Cc(3,A),F=6*k,z=Oc(o,e);return{coeffs:[[d,x,I,[0,n]],[C,B,Cc(3,z),[0,e]]],errorBound:[[v,w,N,0],[T,F,Ac(3*(o-e)),0]]}}function Bc(t){const[[n,e],[r,o],[i,c]]=t,s=i-2*r,u=Oc(i,2*r),f=Pc(u,n),l=Ac(s+n),a=Oc(2*r,2*n),p=c-2*o,h=Oc(c,2*o),d=Pc(h,e),v=Ac(p+e);return{coeffs:[[f,a,[0,n]],[d,Oc(2*o,2*e),[0,e]]],errorBound:[[l,0,0],[v,0,0]]}}function Fc(t){const[[n,e],[r,o]]=t;return[[Oc(r,n),[0,n]],[Oc(o,e),[0,e]]]}const zc=x,Yc=Ir,Vc=B,Lc=Math.abs;function $c(t){const[[n,[,e]],[r,[,o]]]=Fc(t),i=Vc(r),c=n,s=Yc(o,n),u=Lc(s[1]),f=Yc(e,r),l=Lc(f[1]),a=zc(f,s);return{coeffs:{vₓ:i,vᵧ:c,v:a},errorBound:{v_:u+l+Lc(a[1])}}}const Xc=b,jc=Ir,qc=fr,Wc=Math.abs,Hc=U(3);function Dc(t){return[-t[0],-t[1]]}const Qc=Dc,Rc=Po,Gc=Ir,Uc=fr,Zc=x,Jc=Math.abs;function Kc(t){const{coeffs:[[n,e,[,r]],[o,i,[,c]]],errorBound:[[s],[u]]}=Bc(t),f=n[1],l=e[1],a=o[1],p=i[1],h=Jc(r),d=Jc(l),v=Jc(f),g=Jc(c),m=Jc(p),b=Jc(a),x=Uc(n,i),w=s*m+2*Jc(f*p),_=Uc(e,o),I=d*u+2*Jc(l*a),N=Gc(c,n),M=g*s+Jc(c*f),S=Gc(r,o),E=h*u+Jc(r*a),y=Gc(c,e),O=Jc(c*l),C=Gc(r,i),T=Jc(r*p),P=Uc(n,n),A=2*(s*v+Jc(f*f)),k=Uc(n,o),B=s*b+v*u+2*Jc(f*a),F=Uc(o,o),z=2*(u*b+Jc(a*a)),Y=f*p-l*a,V=f*c-r*a,L=l*c-r*p,$=Zc(x,_),X=Jc(Y),j=w+I+Jc(Y),q=Zc(N,S),W=Jc(V),H=M+E+Jc(V),D=Zc(y,C),Q=Jc(L),R=O+T+Jc(L),G=Qc(F),U=z,Z=Rc(k),J=B,K=Qc(P),tt=A,nt=p*Y,et=Uc(i,$),rt=m*j+2*Jc(nt),ot=2*V*a,it=Rc(Uc(o,q)),ct=2*(u*W+b*H+2*Jc(ot)),st=nt-ot,ut=Zc(et,it),ft=rt+ct+Jc(st),lt=2*f*V,at=Rc(Uc(n,q)),pt=2*(s*W+v*H+2*Jc(lt)),ht=l*Y,dt=Uc(e,$),vt=d*j+2*Jc(ht),gt=lt-ht,mt=Zc(at,dt),bt=pt+vt+Jc(gt),xt=Y*L,wt=Uc($,D),_t=j*Q+X*R+2*Jc(xt),It=V*V,Nt=Uc(q,q),Mt=2*(H*W+Jc(It)),St=xt-It;return{coeffs:{vₓₓ:G,vₓᵧ:Z,vᵧᵧ:K,vₓ:ut,vᵧ:mt,v:Zc(wt,Nt)},errorBound:{vₓₓ_:U,vₓᵧ_:J,vᵧᵧ_:tt,vₓ_:ft,vᵧ_:bt,v_:_t+Mt+Jc(St)}}}const ts=m,ns=Po,es=Ir,rs=fr,os=b,is=Math.abs,cs=U(3),ss=Math.abs,us=Dc,fs=Po,ls=Ir,as=fr,ps=x,hs=b;function ds(t){const{coeffs:[[n,e,r,[,o]],[i,c,s,[,u]]],errorBound:[[f,l,a],[p,h,d]]}=kc(t),v=r[1],g=e[1],m=n[1],b=s[1],x=c[1],w=i[1],_=ss(o),I=ss(v),N=ss(g),M=ss(m),S=ss(u),E=ss(b),y=ss(x),O=ss(w),C=as(n,s),T=m*b,P=f*E+M*d+2*ss(T),A=as(r,i),k=v*w,B=a*O+I*p+2*ss(k),F=as(n,c),z=m*x,Y=f*y+M*h+2*ss(z),V=as(e,c),L=g*x,$=l*y+N*h+2*ss(L),X=as(e,i),j=g*w,q=l*O+N*p+2*ss(j),W=as(n,n),H=m*m,D=ss(H),Q=f*M+M*f+2*ss(H),R=as(c,c),G=x*x,U=h*y+y*h+2*ss(G),Z=as(i,i),J=w*w,K=ss(J),tt=p*O+O*p+2*ss(J),nt=as(r,n),et=v*m,rt=a*M+I*f+2*ss(et),ot=as(e,e),it=g*g,ct=l*N+N*l+2*ss(it),st=as(s,i),ut=b*w,ft=d*O+E*p+2*ss(ut),lt=as(c,i),at=ss(x*w),pt=h*O+y*p+2*at,ht=as(e,n),dt=ss(g*m),vt=l*M+N*f+2*dt,gt=as(n,i),mt=ss(m*w),bt=f*O+M*p+2*mt,xt=ls(u,n),wt=m*u,_t=f*S+ss(wt),It=ls(o,i),Nt=o*w,Mt=_*p+ss(Nt),St=ls(u,e),Et=g*u,yt=l*S+ss(Et),Ot=ls(o,c),Ct=o*x,Tt=_*h+ss(Ct),Pt=as(e,s),At=g*b,kt=l*E+N*d+2*ss(At),Bt=as(r,c),Ft=v*x,zt=a*y+I*h+2*ss(Ft),Yt=ls(u,r),Vt=v*u,Lt=a*S+ss(Vt),$t=ls(o,s),Xt=o*b,jt=_*d+ss(Xt),qt=ps(xt,It),Wt=_t+Mt+ss(wt-Nt),Ht=ps(C,A),Dt=P+B+ss(T-k),Qt=ps(F,X),Rt=Y+q+ss(z-j),Gt=ps(St,Ot),Ut=yt+Tt+ss(Et-Ct),Zt=ps(Pt,Bt),Jt=kt+zt+ss(At-Ft),Kt=ps(Yt,$t),tn=Lt+jt+ss(Vt-Xt),nn=ss(ut-G),en=ps(st,R),rn=ft+U+nn,on=ss(et-it),cn=ps(nt,ot),sn=rt+ct+ss(et-it),un=ss(j+z),fn=hs(X,F),ln=q+Y+ss(j+z),an=k+T,pn=ss(an),hn=hs(A,C),dn=B+P+pn,vn=fs(Ht),gn=2*Dt,mn=wt-Nt,bn=T-k,xn=z-j,wn=Et-Ct,_n=At-Ft,In=Vt-Xt,Nn=ss(mn),Mn=ss(bn),Sn=ss(xn),En=ss(wn),yn=ss(_n),On=ss(In),Cn=2*Mn,Tn=as(qt,qt),Pn=as(qt,Ht),An=as(qt,Qt),kn=as(qt,Zt),Bn=as(Ht,Ht),Fn=as(vn,Gt),zn=as(Qt,Gt),Yn=as(Qt,Zt),Vn=as(Qt,Kt),Ln=Wt*Nn+Nn*Wt+2*ss(Tn[1]),$n=Wt*Mn+Nn*Dt+2*ss(Pn[1]),Xn=Wt*Sn+Nn*Rt+2*ss(An[1]),jn=Wt*yn+Nn*Jt+2*ss(kn[1]),qn=Dt*Mn+Mn*Dt+2*ss(Bn[1]),Wn=gn*En+Cn*Ut+2*ss(Fn[1]),Hn=Rt*En+Sn*Ut+2*ss(zn[1]),Dn=Rt*yn+Sn*Jt+2*ss(Yn[1]),Qn=Rt*On+Sn*tn+2*ss(zn[1]),Rn=as(us(i),Z),Gn=p*K+O*tt+2*ss(Rn[1]),Un=3*M,Zn=ls(3,n),Jn=3*f+Un,Kn=as(Zn,Z),te=Jn*K+Un*tt+2*ss(Kn[1]),ne=3*O,ee=ls(-3,i),re=3*p+ne,oe=as(ee,W),ie=re*D+ne*Q+2*ss(oe[1]),ce=as(n,W),se=f*D+M*Q+2*ss(ce[1]),ue=-3*mn,fe=3*Nn,le=ls(-3,qt),ae=3*Wt+fe,pe=ps(le,Zt),he=ss(ue-_n),de=ae+Jt+he,ve=as(pe,Z),ge=de*K+he*tt+2*ss(ve[1]),me=as(Qt,en),be=Rt*nn+Sn*rn+2*ss(me[1]),xe=hs(ve,me),we=ge+be+ss(xe[1]),_e=as(vn,lt),Ie=gn*at+Cn*pt+2*ss(_e[1]),Ne=hs(xe,_e),Me=we+Ie+ss(Ne[1]),Se=as(pe,W),Ee=de*D+he*Q+2*ss(Se[1]),ye=as(Qt,cn),Oe=Rt*on+Sn*sn+2*ss(ye[1]),Ce=hs(Se,ye),Te=Ee+Oe+ss(Ce[1]),Pe=as(vn,ht),Ae=gn*dt+Cn*vt+2*ss(Pe[1]),ke=hs(Ce,Pe),Be=Te+Ae+ss(ke[1]),Fe=ss(L-an/2),ze=ps(V,function(t){return[t[0]/2,t[1]/2]}(hn)),Ye=$+dn/2+ss(ze[1]),Ve=as(pe,gt),Le=de*mt+he*bt+2*ss(Ve[1]),$e=as(Ht,fn),Xe=Dt*un+Mn*ln+2*ss($e[1]),je=hs(Ve,$e),qe=Le+Xe+ss(je[1]),We=as(Qt,ze),He=Rt*Fe+Sn*Ye+2*ss(We[1]),De=fs(ps(We,je)),Qe=2*(He+qe)+ss(De[1]),Re=ls(-3,Tn),Ge=3*Ln+ss(Re[1]),Ue=ps(Re,fs(kn)),Ze=Ge+2*jn+ss(Ue[1]),Je=hs(Fn,Vn),Ke=Wn+Qn+ss(Je[1]),tr=hs(Ue,Je),nr=ss(tr[1]),er=Ze+Ke+nr,rr=fs(ps(Pn,zn)),or=ss(rr[1]),ir=2*($n+Hn)+or,cr=ps(An,Bn),sr=Xn+qn+ss(cr[1]),ur=hs(cr,Yn),fr=ss(ur[1]),lr=sr+Dn+fr,ar=as(i,tr),pr=p*nr+O*er+2*ss(ar[1]),hr=as(c,rr),dr=h*or+y*ir+2*ss(hr[1]),vr=as(s,ur),gr=d*fr+E*lr+2*ss(vr[1]),mr=hs(hr,vr),br=dr+gr+ss(mr[1]),xr=hs(ar,mr),wr=pr+br+ss(xr[1]),_r=as(n,tr),Ir=f*nr+M*er+2*ss(_r[1]),Nr=as(e,rr),Mr=l*or+N*ir+2*ss(Nr[1]),Sr=as(r,ur),Er=a*fr+I*lr+2*ss(Sr[1]),yr=hs(Nr,Sr),Or=Mr+Er+ss(yr[1]),Cr=us(hs(_r,yr)),Tr=Ir+Or+ss(Cr[1]),Pr=ps(Fn,Tn),Ar=ps(Pr,kn),kr=ss(Ar[1]),Br=as(ur,Kt),Fr=as(zn,Gt),zr=ps(Br,Fr),Yr=lr*ss(Kt[1])+2*ss(Br[1])+Hn*ss(Gt[1])+2*ss(Fr[1])+ss(zr[1]),Vr=as(qt,Ar),Lr=Wt*kr+Nn*Wn+Ln+ss(Pr[1])+jn+kr+2*ss(Vr[1]),$r=hs(Vr,zr);return{coeffs:{vₓₓₓ:Rn,vₓₓᵧ:Kn,vₓᵧᵧ:oe,vᵧᵧᵧ:ce,vₓₓ:Ne,vₓᵧ:De,vᵧᵧ:ke,vₓ:xr,vᵧ:Cr,v:$r},errorBound:{vₓₓₓ_:Gn,vₓₓᵧ_:te,vₓᵧᵧ_:ie,vᵧᵧᵧ_:se,vₓₓ_:Me,vₓᵧ_:Qe,vᵧᵧ_:Be,vₓ_:wr,vᵧ_:Tr,v_:Lr+Yr+ss($r[1])}}}const vs=m,gs=Po,ms=Ir,bs=fr,xs=b,ws=Math.abs,_s=U(3),Is=b,Ns=Ir,Ms=fr,Ss=Math.abs,Es=U(3),ys=m,Os=Po,Cs=Ir,Ts=fr,Ps=b,As=Math.abs,ks=U(3),Bs=m,Fs=Po,zs=Ir,Ys=fr,Vs=b,Ls=Math.abs,$s=U(3),Xs=b,js=Ir,qs=fr,Ws=Math.abs,Hs=U(3),Ds=m,Qs=Po,Rs=Ir,Gs=fr,Us=b,Zs=Math.abs,Js=U(3),Ks=m,tu=Po,nu=Ir,eu=fr,ru=b,ou=Math.abs,iu=U(3),cu=$,su=Y,uu=B,fu=H;function lu(t){const[[n,[e]],[r,[o]]]=t;if(0!==fu(n)||0!==fu(r))return{vₓ:uu(r),vᵧ:n,v:su(cu(e,r),cu(o,n))}}const au=$,pu=q,hu=k;function du(t,n){const e=Ft(t),[[r,[o]],[i,[c]]]=Ft(n),{vₓ:s,vᵧ:u,v:f}=lu(e),l=pu(r,s),a=pu(i,u),p=hu(l,a),h=au(o,s),d=au(c,u),v=hu(h,d);return[p,hu(v,f)]}const vu=$,gu=ti,mu=Y,bu=q,xu=B;function wu(t){const[[n,e,[r]],[o,i,[c]]]=t;if(0===H(n)&&0===H(o))return lu([[e,[r]],[i,[c]]]);const s=bu(n,i),u=bu(e,o),f=vu(c,n),l=vu(r,o),a=vu(c,e),p=vu(r,i),h=bu(n,n),d=bu(n,o),v=bu(o,o),g=mu(s,u),m=mu(f,l),b=mu(a,p),x=xu(v),w=gu(d),_=xu(h),I=bu(i,g),N=gu(bu(o,m)),M=mu(I,N),S=gu(bu(n,m)),E=bu(e,g),y=mu(S,E),O=bu(g,b),C=bu(m,m);return{vₓₓ:x,vₓᵧ:w,vᵧᵧ:_,vₓ:M,vᵧ:y,v:mu(O,C)}}const _u=it,Iu=$,Nu=q,Mu=k,Su=ti,Eu=H;function yu(t,n){const e=Bt(t);if(0===Eu(e[0][0])&&0===Eu(e[1][0]))return du([t[0],t[2]],n);const[[r,[o]],[i,[c]]]=Ft(n),{vₓₓ:s,vₓᵧ:u,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=wu(e),h=_u(o,o),d=Iu(o,r),v=_u(o,c),g=Iu(o,i),m=Nu(r,r),b=Iu(c,r),x=Nu(r,i),w=_u(c,c),_=Iu(c,i),I=Nu(i,i),N=Nu(m,s),M=Nu(I,f),S=Nu(x,u),E=Mu(N,M),y=Mu(E,S),O=Nu(d,s),C=Nu(_,f),T=Mu(g,b),P=Nu(T,u),A=Su(Mu(O,C)),k=Mu(A,P),B=Nu(r,l),F=Nu(i,a),z=Mu(B,F),Y=Mu(k,z),V=Nu(h,s),L=Nu(v,u),$=Nu(w,f),X=Mu(V,L),j=Mu(X,$),q=Iu(o,l),W=Iu(c,a),H=Mu(q,W),D=Mu(j,H);return[y,Y,Mu(D,p)]}const Ou=q,Cu=dt,Tu=Y,Pu=H,Au=ht,ku=L,Bu=J;function Fu(t,n=!1){const[e,r,o,i]=t;if(!n){const[t,n]=e,[c,s]=r,[u,f]=o,[l,a]=i;return[e,[Au(Tu(ku(Bu(c/4,u/4),3),Bu(t/4,l/4))),Au(Tu(ku(Bu(s/4,f/4),3),Bu(n/4,a/4)))],i]}const c=function(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=Cu(o,e),a=Cu(i,r),p=Cu(u,c),h=Cu(f,s),d=Tu(Ou(p,a),Ou(h,l));if(0===Pu(d))return;const v=Cu(c,e),g=Cu(s,r),m=Tu(Ou(g,l),Ou(v,a)),b=Au(m)/Au(d);return[c+b*Au(p),s+b*Au(h)]}([e,r],[i,o]);if(void 0!==c)return[e,c,i]}const zu=$,Yu=q,Vu=k,Lu=Y,$u=B,Xu=ti,ju=H;function qu(t){const[[n,e,r,[o]],[i,c,s,[u]]]=t;if(0===ju(n)&&0===ju(i))return wu([[e,r,[o]],[c,s,[u]]]);const f=Yu(n,s),l=Yu(r,i),a=Yu(n,c),p=Yu(e,c),h=Yu(e,i),d=Yu(n,n),v=Yu(c,c),g=Yu(i,i),m=Yu(r,n),b=Yu(e,e),x=Yu(s,i),w=Yu(c,i),_=Yu(e,n),I=Yu(n,i),N=zu(u,n),M=zu(o,i),S=zu(u,e),E=zu(o,c),y=Yu(e,s),O=Yu(r,c),C=zu(u,r),T=zu(o,s),P=Lu(N,M),A=Lu(f,l),k=Lu(a,h),B=Lu(S,E),F=Lu(y,O),z=Lu(C,T),Y=Lu(x,v),V=Lu(m,b),L=Vu(h,a),$=Vu(l,f),X=Xu(A),j=Yu(P,P),q=Yu(P,A),W=Yu(P,k),H=Yu(P,F),D=Yu(A,A),Q=Yu(X,B),R=Yu(k,B),G=Yu(k,F),U=Yu(k,z),Z=Yu($u(i),g),J=Yu(zu(3,n),g),K=Yu(zu(-3,i),d),tt=Yu(n,d),nt=Lu(zu(-3,P),F),et=Yu(nt,g),rt=Yu(k,Y),ot=Vu(et,rt),it=Yu(X,w),ct=Vu(ot,it),st=Yu(nt,d),ut=Yu(k,V),ft=Vu(st,ut),lt=Yu(X,_),at=Vu(ft,lt),pt=Lu(p,function(t){const n=[];for(let e=0;e<t.length;e++)n.push(.5*t[e]);return n}($)),ht=Yu(nt,I),dt=Yu(A,L),vt=Vu(ht,dt),gt=Yu(k,pt),mt=Xu(Lu(gt,vt)),bt=zu(-3,j),xt=Lu(bt,Xu(H)),wt=Vu(Q,U),_t=Vu(xt,wt),It=Xu(Lu(q,R)),Nt=Lu(W,D),Mt=Vu(Nt,G),St=Yu(i,_t),Et=Yu(c,It),yt=Yu(s,Mt),Ot=Vu(Et,yt),Ct=Vu(St,Ot),Tt=Yu(n,_t),Pt=Yu(e,It),At=Yu(r,Mt),kt=Vu(Pt,At),Bt=$u(Vu(Tt,kt)),Ft=Lu(Q,j),zt=Lu(Ft,H),Yt=Yu(Mt,z),Vt=Yu(R,B),Lt=Lu(Yt,Vt),$t=Yu(P,zt);return{vₓₓₓ:Z,vₓₓᵧ:J,vₓᵧᵧ:K,vᵧᵧᵧ:tt,vₓₓ:ct,vₓᵧ:mt,vᵧᵧ:at,vₓ:Ct,vᵧ:Bt,v:Vu($t,Lt)}}const Wu=it,Hu=$,Du=q,Qu=k,Ru=ti,Gu=H;function Uu(t,n){const e=kt(t);if(0===Gu(e[0][0])&&0===Gu(e[1][0]))return yu(Fu(t),n);const[[r,[o]],[i,[c]]]=Ft(n),{vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=qu(e),m=Wu(o,o),b=Hu(o,r),x=Wu(o,c),w=Hu(o,i),_=Du(r,r),I=Hu(c,r),N=Du(r,i),M=Wu(c,c),S=Hu(c,i),E=Du(i,i),y=Hu(o,s),O=Du(Wu(3,o),s),C=Hu(o,u),T=Hu(c,u),P=Hu(o,f),A=Hu(c,f),k=Hu(c,l),B=Du(Wu(3,c),l),F=Du(r,s),z=Du(r,f),Y=Du(i,u),V=Du(i,l),L=Qu(F,Y),$=Qu(z,V),X=Du(_,L),j=Du(E,$),q=Qu(X,j),W=Qu(O,T),H=Ru(Qu(C,A)),D=Qu(P,B),Q=Qu(W,a),R=Qu(H,p),G=Qu(D,h),U=Du(_,Q),Z=Du(N,R),J=Du(E,G),K=Qu(U,Z),tt=Qu(K,J),nt=Ru(Qu(T,a)),et=Ru(Qu(P,h)),rt=Qu(O,nt),ot=Qu(B,et),it=Qu(C,p),ct=Qu(A,p),st=Du(b,rt),ut=Du(S,ot),ft=Du(w,it),lt=Du(I,ct),at=Du(r,d),pt=Du(i,v),ht=Qu(st,ut),dt=Qu(ft,lt),vt=Qu(ht,dt),gt=Qu(at,pt),mt=Qu(vt,gt),bt=Qu(y,T),xt=Qu(k,P),wt=Qu(bt,a),_t=Qu(xt,h),It=Du(m,wt),Nt=Du(M,_t),Mt=Du(x,p),St=Qu(It,Nt),Et=Qu(St,Mt),yt=Hu(o,d),Ot=Hu(c,v),Ct=Qu(yt,Ot),Tt=Qu(Et,Ct);return[q,tt,mt,Qu(Tt,g)]}const Zu=$,Ju=q,Ku=k,tf=H;function nf(t,n){const e=Ft(t),[[r,o,[i]],[c,s,[u]]]=Bt(n);if(0===tf(r)&&0===tf(c))return du(t,[n[0],n[2]]);const{vₓ:f,vᵧ:l,v:a}=lu(e),p=Ju(r,f),h=Ju(c,l),d=Ku(p,h),v=Ju(o,f),g=Ju(s,l),m=Ku(v,g),b=Zu(i,f),x=Zu(u,l),w=Ku(b,x);return[d,m,Ku(w,a)]}const ef=it,rf=$,of=q,cf=k,sf=ti,uf=H;function ff(t,n){const e=Bt(t);if(0===uf(e[0][0])&&0===uf(e[1][0]))return nf([t[0],t[2]],n);const[[r,o,[i]],[c,s,[u]]]=Bt(n);if(0===uf(r)&&0===uf(c))return yu(t,[n[0],n[2]]);const{vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d}=wu(e),v=ef(i,i),g=rf(i,o),m=rf(i,r),b=ef(i,u),x=rf(i,s),w=rf(i,c),_=of(o,o),I=of(o,r),N=rf(u,o),M=of(o,s),S=of(o,c),E=of(r,s),y=of(r,r),O=rf(u,r),C=of(r,c),T=ef(u,u),P=rf(u,s),A=rf(u,c),k=of(s,s),B=of(s,c),F=of(c,c),z=of(y,f),Y=of(C,l),V=of(F,a),L=cf(z,Y),$=cf(L,V),X=of(I,f),j=of(B,a),q=cf(S,E),W=of(q,l),H=sf(cf(X,j)),D=cf(H,W),Q=cf(sf(m),_),R=cf(sf(A),k),G=cf(w,M),U=cf(G,O),Z=of(Q,f),J=of(R,a),K=of(U,l),tt=of(r,p),nt=of(c,h),et=cf(Z,J),rt=cf(et,K),ot=cf(tt,nt),it=cf(rt,ot),ct=of(g,f),st=of(P,a),ut=cf(x,N),ft=of(ut,l),lt=sf(cf(ct,st)),at=of(o,p),pt=of(s,h),ht=cf(lt,ft),dt=cf(at,pt),vt=cf(ht,dt),gt=of(v,f),mt=of(b,l),bt=of(T,a),xt=rf(i,p),wt=rf(u,h),_t=cf(gt,mt),It=cf(_t,bt),Nt=cf(xt,wt),Mt=cf(It,Nt);return[$,D,it,vt,cf(Mt,d)]}const lf=it,af=$,pf=q,hf=k,df=ti,vf=H;function gf(t,n){const e=kt(t);if(0===vf(e[0][0])&&0===vf(e[1][0]))return ff(Fu(t),n);const[[r,o,[i]],[c,s,[u]]]=Bt(n);if(0===vf(r)&&0===vf(c))return Uu(t,[n[0],n[2]]);const{vₓₓₓ:f,vₓₓᵧ:l,vₓᵧᵧ:a,vᵧᵧᵧ:p,vₓₓ:h,vₓᵧ:d,vᵧᵧ:v,vₓ:g,vᵧ:m,v:b}=qu(e),x=lf(i,i),w=af(i,o),_=af(i,r),I=lf(i,u),N=af(i,s),M=af(i,c),S=pf(o,o),E=pf(o,r),y=af(u,o),O=pf(o,s),C=pf(o,c),T=pf(r,s),P=pf(r,r),A=af(u,r),k=pf(r,c),B=lf(u,u),F=af(u,s),z=af(u,c),Y=pf(s,s),V=pf(s,c),L=pf(c,c),$=pf(r,f),X=pf(r,a),j=pf(c,l),q=pf(c,p),W=hf($,j),H=hf(X,q),D=pf(P,W),Q=pf(L,H),R=hf(D,Q),G=hf(_,S),U=hf(z,Y),Z=hf(df(_),S),J=hf(df(z),Y),K=hf(df(O),A),tt=hf(df(O),M),nt=hf(df(A),O),et=hf(af(6,_),S),rt=hf(af(6,z),Y),ot=hf(C,T),it=hf(M,A),ct=hf(df(y),N),st=hf(df(N),y),ut=hf(M,O),ft=hf(ut,A),lt=af(3,P),at=af(3,L),pt=pf(lt,f),ht=pf(P,l),dt=df(pf(k,l)),vt=df(pf(k,a)),gt=pf(L,a),mt=pf(at,p),bt=hf(pt,dt),xt=hf(ht,vt),wt=hf(bt,gt),_t=hf(xt,mt),It=pf(o,wt),Nt=pf(s,_t),Mt=hf(It,Nt),St=pf(c,Z),Et=pf(c,tt),yt=pf(r,K),Ot=pf(r,J),Ct=pf(af(3,r),G),Tt=pf(af(3,c),U),Pt=hf(St,yt),At=hf(Et,Ot),Ft=pf(Ct,f),zt=pf(Tt,p),Yt=pf(Pt,l),Vt=pf(At,a),Lt=hf(Ft,zt),$t=hf(Yt,Vt),Xt=pf(P,h),jt=pf(L,v),qt=pf(k,d),Wt=hf(Xt,jt),Ht=hf(Lt,$t),Dt=hf(Wt,qt),Qt=hf(Ht,Dt),Rt=pf(o,et),Gt=pf(s,rt),Ut=af(2*i,ot),Zt=pf(df(s),it),Jt=pf(o,nt),Kt=pf(o,J),tn=hf(Ut,Jt),nn=hf(Zt,Kt),en=pf(V,v),rn=pf(E,h),on=pf(ot,d),cn=hf(en,rn),sn=pf(Rt,f),un=pf(tn,l),fn=pf(Gt,p),ln=pf(nn,a),an=hf(sn,fn),pn=hf(un,ln),hn=hf(an,pn),dn=hf(df(cn),on),vn=hf(hn,dn),gn=pf(lf(3,i),G),mn=pf(lf(3,u),U),bn=af(i,tt),xn=af(i,J),wn=af(u,Z),_n=af(u,K),In=hf(bn,wn),Nn=hf(xn,_n),Mn=pf(gn,f),Sn=pf(mn,p),En=pf(In,l),yn=pf(Nn,a),On=pf(Z,h),Cn=pf(J,v),Tn=pf(ft,d),Pn=pf(r,g),An=pf(c,m),kn=hf(Mn,Sn),Bn=hf(En,yn),Fn=hf(On,Cn),zn=hf(kn,Bn),Yn=hf(Fn,Tn),Vn=hf(Pn,An),Ln=hf(zn,Yn),$n=hf(Ln,Vn),Xn=pf(lf(3,i),w),jn=pf(lf(3,u),F),qn=af(i,ct),Wn=af(u,st),Hn=pf(w,h),Dn=pf(F,v),Qn=pf(N,d),Rn=pf(y,d),Gn=df(hf(Hn,Dn)),Un=hf(Qn,Rn),Zn=pf(o,g),Jn=pf(s,m),Kn=pf(Xn,f),te=pf(jn,p),ne=pf(qn,l),ee=pf(Wn,a),re=hf(Kn,te),oe=hf(ne,ee),ie=hf(re,oe),ce=hf(Gn,Un),se=hf(Zn,Jn),ue=hf(ie,ce),fe=hf(ue,se),le=af(i,f),ae=af(i,a),pe=af(u,l),he=af(u,p),de=hf(le,pe),ve=hf(ae,he),ge=hf(de,h),me=hf(ve,v),be=pf(x,ge),xe=pf(B,me),we=pf(I,d),_e=af(i,g),Ie=af(u,m),Ne=hf(be,xe),Me=hf(Ne,we),Se=hf(_e,Ie),Ee=hf(Me,Se);return[R,Mt,Qt,vn,$n,fe,hf(Ee,b)]}const mf=$,bf=q,xf=k,wf=H;function _f(t,n){const e=Ft(t),[[r,o,i,[c]],[s,u,f,[l]]]=kt(n);if(0===wf(r)&&0===wf(s))return nf(t,Fu(n));const{vₓ:a,vᵧ:p,v:h}=lu(e),d=bf(r,a),v=bf(s,p),g=xf(d,v),m=bf(o,a),b=bf(u,p),x=xf(m,b),w=bf(i,a),_=bf(f,p),I=xf(w,_),N=mf(c,a),M=mf(l,p),S=xf(N,M);return[g,x,I,xf(S,h)]}const If=it,Nf=$,Mf=q,Sf=k,Ef=ti,yf=H;function Of(t,n){const e=Bt(t);if(0===yf(e[0][0])&&0===yf(e[1][0]))return _f([t[0],t[2]],n);const[[r,o,i,[c]],[s,u,f,[l]]]=kt(n);if(0===yf(r)&&0===yf(s))return ff(t,Fu(n));const{vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=wu(e),m=If(c,c),b=Nf(c,i),x=Nf(c,o),w=Nf(c,r),_=If(c,l),I=Nf(c,f),N=Nf(c,u),M=Nf(c,s),S=Mf(i,i),E=Mf(i,o),y=Mf(i,r),O=Nf(l,i),C=Mf(i,f),T=Mf(i,u),P=Mf(i,s),A=Mf(o,f),k=Mf(o,o),B=Mf(o,r),F=Nf(l,o),z=Mf(o,u),Y=Mf(o,s),V=Mf(r,r),L=Nf(l,r),$=Mf(r,f),X=Mf(r,u),j=Mf(r,s),q=If(l,l),W=Nf(l,f),H=Nf(l,u),D=Nf(l,s),Q=Mf(f,f),R=Mf(f,u),G=Mf(s,s),U=Mf(u,u),Z=Mf(u,s),J=Mf(f,s),K=Mf(V,a),tt=Mf(j,p),nt=Mf(G,h),et=Sf(K,tt),rt=Sf(et,nt),ot=Mf(B,a),it=Mf(Z,h),ct=Sf(ot,it),st=Sf(Y,X),ut=Mf(st,p),ft=Sf(Ef(ct),ut),lt=Sf(Ef(y),k),at=Sf(Ef(J),U),pt=Sf(P,z),ht=Sf(pt,$),dt=Mf(lt,a),vt=Mf(at,h),gt=Sf(dt,vt),mt=Mf(ht,p),bt=Sf(gt,mt),xt=Sf(w,E),wt=Sf(D,R),_t=Sf(M,T),It=Sf(A,L),Nt=Sf(_t,It),Mt=Mf(xt,a),St=Mf(wt,h),Et=Ef(Sf(Mt,St)),yt=Mf(Nt,p),Ot=Mf(r,d),Ct=Mf(s,v),Tt=Sf(Ot,Ct),Pt=Sf(Et,yt),At=Sf(Pt,Tt),Ft=Sf(Ef(x),S),zt=Sf(Ef(H),Q),Yt=Sf(N,C),Vt=Sf(Yt,F),Lt=Mf(Ft,a),$t=Mf(zt,h),Xt=Mf(Vt,p),jt=Sf(Lt,$t),qt=Sf(jt,Xt),Wt=Mf(o,d),Ht=Mf(u,v),Dt=Sf(Wt,Ht),Qt=Sf(qt,Dt),Rt=Mf(b,a),Gt=Mf(W,h),Ut=Sf(I,O),Zt=Mf(Ut,p),Jt=Ef(Sf(Rt,Gt)),Kt=Sf(Jt,Zt),tn=Mf(i,d),nn=Mf(f,v),en=Sf(tn,nn),rn=Sf(Kt,en),on=Mf(m,a),cn=Mf(_,p),sn=Mf(q,h),un=Nf(c,d),fn=Nf(l,v),ln=Sf(on,cn),an=Sf(ln,sn),pn=Sf(un,fn),hn=Sf(an,pn);return[rt,ft,bt,At,Qt,rn,Sf(hn,g)]}const Cf=it,Tf=$,Pf=q,Af=k,kf=ti,Bf=H,Ff=[[function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=$c(t),[[c,[,s]],[u,[,f]]]=Fc(n),l=c[1],a=u[1],p=e[1],h=r[1],d=o[1],v=l*p,g=2*Wc(v),m=qc(c,e),b=a*h,x=2*Wc(b),w=qc(u,r),_=v+b,I=Xc(m,w),N=g+x+Wc(_),M=s*p,S=jc(s,e),E=Wc(M),y=f*h,O=jc(f,r),C=Wc(y),T=M+y,P=Xc(S,O),A=E+C+Wc(T),k=Xc(P,o),B=A+i+Wc(T+d);return{coeffs:[I,k],errBound:[Hc*N,Hc*B]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=$c(t),{coeffs:[[c,s,[,u]],[f,l,[,a]]],errorBound:[[p],[h]]}=Bc(n),d=e[1],v=r[1],g=o[1],m=Ss(d),b=Ss(v),x=(Ss(g),s[1]),w=c[1],_=l[1],I=f[1],N=w*d,M=Ms(c,e),S=p*m+2*Ss(N),E=I*v,y=Ms(f,r),O=h*b+2*Ss(E),C=N+E,T=Is(M,y),P=S+O+Ss(C),A=x*d,k=Ms(s,e),B=2*Ss(A),F=_*v,z=Ms(l,r),Y=2*Ss(F),V=A+F,L=Is(k,z),$=B+Y+Ss(V),X=Ns(u,e),j=u*d,q=Ss(j),W=Ns(a,r),H=a*v,D=Ss(H),Q=j+H,R=Is(X,W),G=q+D+Ss(Q),U=Q+g,Z=Is(R,o),J=G+i+Ss(U);return{coeffs:[T,L,Z],errBound:[Es*P,Es*$,Es*J]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=$c(t),{coeffs:[[c,s,u,[,f]],[l,a,p,[,h]]],errorBound:[[d,v,g],[m,b,x]]}=kc(n),w=Ws(e[1]),_=Ws(r[1]),I=qs(c,e),N=d*w+2*Ws(I[1]),M=qs(l,r),S=m*_+2*Ws(M[1]),E=Xs(I,M),y=N+S+Ws(E[1]),O=qs(s,e),C=v*w+2*Ws(O[1]),T=qs(a,r),P=b*_+2*Ws(T[1]),A=Xs(O,T),k=C+P+Ws(A[1]),B=qs(u,e),F=g*w+2*Ws(B[1]),z=qs(p,r),Y=x*_+2*Ws(z[1]),V=Xs(B,z),L=F+Y+Ws(V[1]),$=js(f,e),X=Ws($[1]),j=js(h,r),q=Ws(j[1]),W=Xs($,j),H=X+q+Ws(W[1]),D=Xs(W,o),Q=H+i+Ws(D[1]);return{coeffs:[E,A,V,D],errBound:[Hs*y,Hs*k,Hs*L,Hs*Q]}}],[function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=Kc(t),[[d,[,v]],[g,[,m]]]=Fc(n),b=e[1],x=r[1],w=o[1],_=i[1],I=c[1],N=s[1],M=is(b),S=is(x),E=is(w),y=d[1],O=g[1],C=is(v),T=is(y),P=is(m),A=is(O),k=v*v,B=v*y,F=v*m,z=v*O,Y=y*y,V=y*m,L=y*O,$=m*m,X=m*O,j=O*O,q=ts(v,v),W=es(v,d),H=is(B),D=ts(v,m),Q=es(v,g),R=is(z),G=is(Y),U=rs(d,d),Z=2*G,J=es(m,d),K=is(V),tt=is(L),nt=rs(d,g),et=2*tt,rt=ts(m,m),ot=es(m,g),it=is(X),ct=is(j),st=rs(g,g),ut=2*ct,ft=Y*b,lt=rs(U,e),at=Z*M*G*u+2*is(ft),pt=j*w,ht=rs(st,o),dt=ut*E*ct*l+2*is(pt),vt=L*x,gt=rs(nt,r),mt=et*S*tt*f+2*is(vt),bt=ft+pt,xt=os(lt,ht),wt=at+dt+is(bt),_t=bt+vt,It=os(xt,gt),Nt=wt+mt+is(_t),Mt=B*b,St=rs(W,e),Et=H*(M+u)+2*is(Mt),yt=X*w,Ot=rs(ot,o),Ct=it*(E+l)+2*is(yt),Tt=z+V,Pt=os(Q,J),At=R+K+is(Tt),kt=Tt*x,Bt=rs(Pt,r),Ft=At*S+is(Tt)*f+2*is(kt),zt=2*(Mt+yt),Yt=ns(os(St,Ot)),Vt=2*(Et+Ct)+is(zt),Lt=zt+kt,$t=os(Yt,Bt),Xt=Vt+Ft+is(Lt),jt=y*_,qt=rs(d,i),Wt=T*a+2*is(jt),Ht=O*I,Dt=rs(g,c),Qt=A*p+2*is(Ht),Rt=jt+Ht,Gt=os(qt,Dt),Ut=Wt+Qt+is(Rt),Zt=Lt+Rt,Jt=os($t,Gt),Kt=Xt+Ut+is(Zt),tn=k*b,nn=rs(q,e),en=2*is(tn),rn=F*x,on=rs(D,r),cn=2*is(rn),sn=$*w,un=rs(rt,o),fn=2*is(sn),ln=tn+rn,an=os(nn,on),pn=en+cn+is(ln),hn=ln+sn,dn=os(an,un),vn=pn+fn+is(hn),gn=v*_,mn=es(v,i),bn=C*a+is(gn),xn=m*I,wn=es(m,c),_n=P*p+is(xn),In=gn+xn,Nn=os(mn,wn),Mn=bn+_n+is(In),Sn=hn+In,En=os(dn,Nn),yn=vn+Mn+is(Sn),On=Sn+N,Cn=os(En,s),Tn=yn+h+is(On);return{coeffs:[It,Jt,Cn],errBound:[cs*Nt,cs*Kt,cs*Tn]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=Kc(t),{coeffs:[[d,v,[,g]],[m,b,[,x]]],errorBound:[[w],[_]]}=Bc(n),I=e[1],N=r[1],M=o[1],S=i[1],E=c[1],y=s[1],O=As(I),C=As(N),T=As(M),P=As(S),A=As(E),k=v[1],B=d[1],F=b[1],z=m[1],Y=As(g),V=As(k),L=As(B),$=As(x),X=As(F),j=As(z),q=g*g,W=g*k,H=g*B,D=g*x,Q=g*F,R=g*z,G=k*k,U=k*B,Z=k*x,J=k*F,K=k*z,tt=B*F,nt=B*B,et=B*x,rt=B*z,ot=x*x,it=x*F,ct=x*z,st=F*F,ut=F*z,ft=z*z,lt=As(q),at=As(D),pt=As(ot),ht=ys(g,g),dt=Cs(g,v),vt=As(W),gt=Cs(g,d),mt=As(H),bt=ys(g,x),xt=Cs(g,b),wt=As(Q),_t=Cs(g,m),It=As(R),Nt=Ts(v,v),Mt=2*As(G),St=Ts(v,d),Et=As(U),yt=V*w+2*Et,Ot=Cs(x,v),Ct=As(Z),Tt=Ts(v,b),Pt=2*As(J),At=Ts(v,m),kt=V*_+2*As(K),Bt=Ts(d,b),Ft=w*X+2*As(tt),zt=Ts(d,d),Yt=As(nt),Vt=2*(w*L+Yt),Lt=Cs(x,d),$t=As(et),Xt=Ts(d,m),jt=As(rt),qt=w*j+L*_+2*jt,Wt=ys(x,x),Ht=Cs(x,b),Dt=As(it),Qt=Cs(x,m),Rt=As(ct),Gt=Ts(b,b),Ut=2*As(st),Zt=Ts(b,m),Jt=As(ut),Kt=X*_+2*Jt,tn=Ts(m,m),nn=As(ft),en=2*(_*j+nn),rn=nt*I,on=Ts(zt,e),cn=Vt*O+Yt*u+2*As(rn),sn=rt*N,un=Ts(Xt,r),fn=qt*C+jt*f+2*As(sn),ln=ft*M,an=Ts(tn,o),pn=en*T+nn*l+2*As(ln),hn=rn+sn,dn=Ps(on,un),vn=cn+fn+As(hn),gn=hn+ln,mn=Ps(dn,an),bn=vn+pn+As(gn),xn=U*I,wn=Ts(St,e),_n=yt*O+Et*u+2*As(xn),In=ut*M,Nn=Ts(Zt,o),Mn=Kt*T+Jt*l+2*As(In),Sn=K+tt,En=Ps(At,Bt),yn=As(Sn),On=kt+Ft+yn,Cn=Sn*N,Tn=Ts(En,r),Pn=On*C+yn*f+2*As(Cn),An=2*(xn+In),kn=Os(Ps(wn,Nn)),Bn=2*(_n+Mn)+As(An),Fn=An+Cn,zn=Ps(kn,Tn),Yn=Bn+Pn+As(Fn),Vn=2*H+G,Ln=As(Vn),$n=Ps(Os(gt),Nt),Xn=2*mt+Mt+As(Vn),jn=2*ct+st,qn=As(jn),Wn=Ps(Os(Qt),Gt),Hn=2*Rt+Ut+As(jn),Dn=R+J,Qn=(As(Dn),Ps(_t,Tt)),Rn=It+Pt+As(Dn),Gn=Dn+et,Un=Ps(Qn,Lt),Zn=As(Gn),Jn=Rn+$t+Zn,Kn=Vn*I,te=Ts($n,e),ne=Xn*O+Ln*u+2*As(Kn),ee=jn*M,re=Ts(Wn,o),oe=Hn*T+qn*l+2*As(ee),ie=Gn*N,ce=Ts(Un,r),se=Jn*C+Zn*f+2*As(ie),ue=B*S,fe=Ts(d,i),le=w*P+L*a+As(ue),ae=z*E,pe=Ts(m,c),he=_*A+j*p+As(ae),de=Kn+ee,ve=Ps(te,re),ge=ne+oe+As(de),me=de+ie,be=Ps(ve,ce),xe=ge+se+As(me),we=ue+ae,_e=Ps(fe,pe),Ie=le+he+As(we),Ne=me+we,Me=Ps(be,_e),Se=xe+Ie+As(Ne),Ee=W*I,ye=Ts(dt,e),Oe=vt*(O+u)+2*As(Ee),Ce=it*M,Te=Ts(Ht,o),Pe=Dt*(T+l)+2*As(Ce),Ae=Q+Z,ke=Ps(xt,Ot),Be=As(Ae),Fe=wt+Ct+Be,ze=Ae*N,Ye=Ts(ke,r),Ve=Fe*C+Be*f+2*As(ze),Le=2*(Ee+Ce),$e=Os(Ps(ye,Te)),Xe=2*(Oe+Pe)+As(Le),je=k*S,qe=Ts(v,i),We=V*a+2*As(je),He=F*E,De=Ts(b,c),Qe=X*p+2*As(He),Re=Le+ze,Ge=Ps($e,Ye),Ue=Xe+Ve+As(Re),Ze=je+He,Je=Ps(qe,De),Ke=We+Qe+As(Ze),tr=Re+Ze,nr=Ps(Ge,Je),er=Ue+Ke+As(tr),rr=q*I,or=Ts(ht,e),ir=lt*u+2*As(rr),cr=D*N,sr=Ts(bt,r),ur=at*f+2*As(cr),fr=ot*M,lr=Ts(Wt,o),ar=pt*l+2*As(fr),pr=g*S,hr=Cs(g,i),dr=Y*a+As(pr),vr=x*E,gr=Cs(x,c),mr=$*p+As(vr),br=rr+cr,xr=Ps(or,sr),wr=ir+ur+As(br),_r=br+fr,Ir=Ps(xr,lr),Nr=wr+ar+As(_r),Mr=pr+vr,Sr=Ps(hr,gr),Er=dr+mr+As(Mr),yr=_r+Mr,Or=Ps(Ir,Sr),Cr=Nr+Er+As(yr),Tr=yr+y,Pr=Ps(Or,s),Ar=Cr+h+As(Tr);return{coeffs:[mn,zn,Me,nr,Pr],errBound:[ks*bn,ks*Yn,ks*Se,ks*er,ks*Ar]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=Kc(t),{coeffs:[[d,v,g,[,m]],[b,x,w,[,_]]],errorBound:[[I,N,M],[S,E,y]]}=kc(n),O=e[1],C=r[1],T=o[1],P=i[1],A=c[1],k=s[1],B=Zs(O),F=Zs(C),z=Zs(T),Y=Zs(P),V=Zs(A),L=g[1],$=v[1],X=d[1],j=w[1],q=x[1],W=b[1],H=Zs(m),D=Zs(L),Q=Zs($),R=Zs(X),G=Zs(_),U=Zs(j),Z=Zs(q),J=Zs(W),K=m*m,tt=m*L,nt=m*$,et=m*X,rt=m*_,ot=m*j,it=m*q,ct=m*W,st=L*L,ut=L*$,ft=L*X,lt=L*_,at=L*j,pt=L*q,ht=L*W,dt=$*j,vt=$*$,gt=$*X,mt=$*_,bt=$*q,xt=$*W,wt=X*X,_t=X*_,It=X*j,Nt=X*q,Mt=X*W,St=_*_,Et=_*j,yt=_*q,Ot=_*W,Ct=j*j,Tt=j*q,Pt=W*W,At=q*q,kt=q*W,Bt=j*W,Ft=Ds(m,m),zt=Zs(K),Yt=Rs(m,g),Vt=Zs(tt),Lt=H*M+Vt,$t=Rs(m,v),Xt=H*N+Zs(nt),jt=Rs(m,d),qt=H*I+Zs(et),Wt=Ds(m,_),Ht=Zs(rt),Dt=Rs(m,w),Qt=H*y+Zs(ot),Rt=Rs(m,x),Gt=H*E+Zs(it),Ut=Rs(m,b),Zt=H*S+Zs(ct),Jt=Gs(g,g),Kt=M*D+D*M+2*Zs(st),tn=Gs(g,v),nn=M*Q+D*N+2*Zs(ut),en=Gs(g,d),rn=M*R+D*I+2*Zs(ft),on=Rs(_,g),cn=G*M+Zs(lt),sn=Gs(g,w),un=M*U+D*y+2*Zs(at),fn=Gs(g,x),ln=M*Z+D*E+2*Zs(pt),an=Gs(g,b),pn=M*J+D*S+2*Zs(ht),hn=Gs(v,w),dn=N*U+Q*y+2*Zs(dt),vn=Gs(v,v),gn=N*Q+Q*N+2*Zs(vt),mn=Gs(v,d),bn=Zs(gt),xn=N*R+Q*I+2*bn,wn=Rs(_,v),_n=G*N+Zs(mt),In=Gs(v,x),Nn=N*Z+Q*E+2*Zs(bt),Mn=Gs(v,b),Sn=N*J+Q*S+2*Zs(xt),En=Gs(d,d),yn=Zs(wt),On=I*R+R*I+2*yn,Cn=Rs(_,d),Tn=G*I+Zs(_t),Pn=Gs(d,w),An=I*U+R*y+2*Zs(It),kn=Gs(d,x),Bn=I*Z+R*E+2*Zs(Nt),Fn=Gs(d,b),zn=Zs(Mt),Yn=I*J+R*S+2*zn,Vn=Ds(_,_),Ln=Zs(St),$n=Rs(_,w),Xn=Zs(Et),jn=G*y+Xn,qn=Rs(_,x),Wn=G*E+Zs(yt),Hn=Rs(_,b),Dn=G*S+Zs(Ot),Qn=Gs(w,w),Rn=y*U+U*y+2*Zs(Ct),Gn=Gs(w,x),Un=y*Z+U*E+2*Zs(Tt),Zn=Gs(b,b),Jn=Zs(Pt),Kn=S*J+J*S+2*Jn,te=Gs(x,x),ne=E*Z+Z*E+2*Zs(At),ee=Gs(x,b),re=Zs(kt),oe=E*J+Z*S+2*re,ie=Gs(w,b),ce=y*J+U*S+2*Zs(Bt),se=wt*O,ue=Gs(En,e),fe=On*B+yn*u+2*Zs(se),le=Mt*C,ae=Gs(Fn,r),pe=Yn*F+zn*f+2*Zs(le),he=Pt*T,de=Gs(Zn,o),ve=Kn*z+Jn*l+2*Zs(he),ge=se+le,me=Us(ue,ae),be=fe+pe+Zs(ge),xe=ge+he,we=Us(me,de),_e=be+ve+Zs(xe),Ie=gt*O,Ne=Gs(mn,e),Me=xn*B+bn*u+2*Zs(Ie),Se=kt*T,Ee=Gs(ee,o),ye=oe*z+re*l+2*Zs(Se),Oe=Ie+Se,Ce=Us(Ne,Ee),Te=Me+ye+Zs(Oe),Pe=xt+Nt,Ae=Us(Mn,kn),ke=Zs(Pe),Be=Sn+Bn+ke,Fe=Pe*C,ze=Gs(Ae,r),Ye=Be*F+ke*f+2*Zs(Fe),Ve=2*Oe+Fe,Le=Us(Qs(Ce),ze),$e=2*Te+Ye+Zs(Ve),Xe=2*ft+vt,je=Us(Qs(en),vn),qe=Zs(Xe),We=2*rn+gn+Zs(Xe),He=2*Bt+At,De=Us(Qs(ie),te),Qe=Zs(He),Re=2*ce+ne+Zs(He),Ge=ht+bt,Ue=Us(an,In),Ze=pn+Nn+Zs(Ge),Je=Ge+It,Ke=Us(Ue,Pn),tr=Zs(Je),nr=Ze+An+tr,er=Xe*O,rr=Gs(je,e),or=We*B+qe*u+2*Zs(er),ir=He*T,cr=Gs(De,o),sr=Re*z+Qe*l+2*Zs(ir),ur=er+ir,fr=Us(rr,cr),lr=or+sr+Zs(ur),ar=Je*C,pr=Gs(Ke,r),hr=nr*F+tr*f+2*Zs(ar),dr=ur+ar,vr=Us(fr,pr),gr=lr+hr+Zs(dr),mr=et+ut,br=Us(jt,tn),xr=Zs(mr),wr=qt+nn+xr,_r=Ot+Tt,Ir=Us(Hn,Gn),Nr=Zs(_r),Mr=Dn+Un+Nr,Sr=ct+pt,Er=Us(Ut,fn),yr=Zt+ln+Zs(Sr),Or=dt+_t,Cr=Us(hn,Cn),Tr=dn+Tn+Zs(Or),Pr=Sr+Or,Ar=Us(Er,Cr),kr=Zs(Pr),Br=yr+Tr+kr,Fr=mr*O,zr=Gs(br,e),Yr=wr*B+xr*u+2*Zs(Fr),Vr=_r*T,Lr=Gs(Ir,o),$r=Mr*z+Nr*l+2*Zs(Vr),Xr=2*(Fr+Vr),jr=Qs(Us(zr,Lr)),qr=2*(Yr+$r)+Zs(Xr),Wr=Pr*C,Hr=Gs(Ar,r),Dr=Br*F+kr*f+2*Zs(Wr),Qr=X*P,Rr=Gs(d,i),Gr=I*Y+R*a+2*Zs(Qr),Ur=W*A,Zr=Gs(b,c),Jr=S*V+J*p+2*Zs(Ur),Kr=Qr+Ur,to=Us(Rr,Zr),no=Gr+Jr+Zs(Kr),eo=Xr+Wr,ro=Us(jr,Hr),oo=qr+Dr+Zs(eo),io=eo+Kr,co=Us(ro,to),so=oo+no+Zs(io),uo=2*nt+st,fo=Us(Qs($t),Jt),lo=Zs(uo),ao=2*Xt+Kt+lo,po=2*yt+Ct,ho=Us(Qs(qn),Qn),vo=Zs(po),go=2*Wn+Rn+vo,mo=it+at,bo=Us(Rt,sn),xo=Gt+un+Zs(mo),wo=mo+mt,_o=Us(bo,wn),Io=Zs(wo),No=xo+_n+Io,Mo=uo*O,So=Gs(fo,e),Eo=ao*B+lo*u+2*Zs(Mo),yo=po*T,Oo=Gs(ho,o),Co=go*z+vo*l+2*Zs(yo),To=wo*C,Po=Gs(_o,r),Ao=No*F+Io*f+2*Zs(To),ko=Mo+yo,Bo=Us(So,Oo),Fo=Eo+Co+Zs(ko),zo=ko+To,Yo=Us(Bo,Po),Vo=Fo+Ao+Zs(zo),Lo=$*P,$o=Gs(v,i),Xo=N*Y+Q*a+2*Zs(Lo),jo=q*A,qo=Gs(x,c),Wo=E*V+Z*p+2*Zs(jo),Ho=Lo+jo,Do=Us($o,qo),Qo=Xo+Wo+Zs(Ho),Ro=zo+Ho,Go=Us(Yo,Do),Uo=Vo+Qo+Zs(Ro),Zo=tt*O,Jo=Gs(Yt,e),Ko=Lt*B+Vt*u+2*Zs(Zo),ti=Et*T,ni=Gs($n,o),ei=jn*z+Xn*l+2*Zs(ti),ri=ot+lt,oi=Us(Dt,on),ii=Zs(ri),ci=Qt+cn+ii,si=ri*C,ui=Gs(oi,r),fi=ci*F+ii*f+2*Zs(si),li=2*(Zo+ti),ai=Qs(Us(Jo,ni)),pi=2*(Ko+ei)+Zs(li),hi=li+si,di=Us(ai,ui),vi=pi+fi+Zs(hi),gi=L*P,mi=Gs(g,i),bi=M*Y+D*a+2*Zs(gi),xi=j*A,wi=Gs(w,c),_i=y*V+U*p+2*Zs(xi),Ii=gi+xi,Ni=Us(mi,wi),Mi=bi+_i+Zs(Ii),Si=hi+Ii,Ei=Us(di,Ni),yi=vi+Mi+Zs(Si),Oi=K*O,Ci=Gs(Ft,e),Ti=zt*u+2*Zs(Oi),Pi=rt*C,Ai=Gs(Wt,r),ki=Ht*f+2*Zs(Pi),Bi=St*T,Fi=Gs(Vn,o),zi=Ln*l+2*Zs(Bi),Yi=m*P,Vi=Rs(m,i),Li=H*a+Zs(Yi),$i=_*A,Xi=Rs(_,c),ji=G*p+Zs($i),qi=Oi+Pi,Wi=Us(Ci,Ai),Hi=Ti+ki+Zs(qi),Di=qi+Bi,Qi=Us(Wi,Fi),Ri=Hi+zi+Zs(Di),Gi=Yi+$i,Ui=Us(Vi,Xi),Zi=Li+ji+Zs(Gi),Ji=Di+Gi,Ki=Us(Qi,Ui),tc=Ri+Zi+Zs(Ji),nc=Ji+k,ec=Us(Ki,s),rc=tc+h+Zs(nc);return{coeffs:[we,Le,vr,co,Go,Ei,ec],errBound:[Js*_e,Js*$e,Js*gr,Js*so,Js*Uo,Js*yi,Js*rc]}}],[function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:w,v_:_}}=ds(t),[[I,[,N]],[M,[,S]]]=Fc(n),E=e[1],y=r[1],O=o[1],C=i[1],T=c[1],P=s[1],A=u[1],k=f[1],B=l[1],F=a[1],z=I[1],Y=M[1],V=ws(N),L=ws(z),$=ws(S),X=ws(Y),j=N*N,q=N*z,W=N*S,H=N*Y,D=z*z,Q=z*S,R=z*Y,G=S*S,U=S*Y,Z=Y*Y,J=vs(N,N),K=ms(N,I),tt=ws(q),nt=vs(N,S),et=ms(N,M),rt=ws(H),ot=bs(I,I),it=2*ws(D),ct=ms(S,I),st=ws(Q),ut=bs(I,M),ft=2*ws(R),lt=vs(S,S),at=ms(S,M),pt=ws(U),ht=bs(M,M),dt=2*ws(Z),vt=ws(j),gt=ws(q),mt=ws(W),bt=ws(H),xt=ws(D),wt=ws(Q),_t=ws(R),It=ws(G),Nt=ws(U),Mt=ws(Z),St=N*E,Et=ms(N,e),yt=V*p+ws(St),Ot=3*N,Ct=vs(3,N),Tt=ws(Ot),Pt=Ot*E,At=bs(Ct,e),kt=Tt*p+2*ws(Pt),Bt=N*y,Ft=ms(N,r),zt=V*h+ws(Bt),Yt=S*y,Vt=ms(S,r),Lt=$*h+ws(Yt),$t=N*O,Xt=ms(N,o),jt=V*d+ws($t),qt=S*O,Wt=ms(S,o),Ht=$*d+ws(qt),Dt=S*C,Qt=ms(S,i),Rt=$*v+ws(Dt),Gt=3*S,Ut=vs(3,S),Zt=ws(Gt),Jt=Gt*C,Kt=bs(Ut,i),tn=Zt*v+2*ws(Jt),nn=z*E,en=bs(I,e),rn=L*p+2*ws(nn),on=z*O,cn=bs(I,o),sn=L*d+2*ws(on),un=Y*y,fn=bs(M,r),ln=X*h+2*ws(un),an=Y*C,pn=bs(M,i),hn=X*v+2*ws(an),dn=nn+un,vn=xs(en,fn),gn=ws(dn),mn=rn+ln+gn,bn=on+an,xn=xs(cn,pn),wn=ws(bn),_n=sn+hn+wn,In=D*dn,Nn=bs(ot,vn),Mn=it*gn+xt*mn+2*ws(In),Sn=Z*bn,En=bs(ht,xn),yn=dt*wn+Mt*_n+2*ws(Sn),On=In+Sn,Cn=xs(Nn,En),Tn=Mn+yn+ws(On),Pn=Pt+Yt,An=xs(At,Vt),kn=kt+Lt+ws(Pn),Bn=2*(Bt+qt),Fn=gs(xs(Ft,Wt)),zn=2*(zt+Ht)+ws(Bn),Yn=$t+Jt,Vn=xs(Xt,Kt),Ln=jt+tn+ws(Yn),$n=Pn+T,Xn=xs(An,c),jn=ws($n),qn=kn+g+jn,Wn=Bn+P,Hn=xs(Fn,s),Dn=ws(Wn),Qn=zn+m+Dn,Rn=Yn+A,Gn=xs(Vn,u),Un=ws(Rn),Zn=Ln+b+Un,Jn=D*$n,Kn=bs(ot,Xn),te=it*jn+xt*qn+2*ws(Jn),ne=R*Wn,ee=bs(ut,Hn),re=ft*Dn+_t*Qn+2*ws(ne),oe=Z*Rn,ie=bs(ht,Gn),ce=dt*Un+Mt*Zn+2*ws(oe),se=Jn+ne,ue=xs(Kn,ee),fe=te+re+ws(se),le=se+oe,ae=xs(ue,ie),pe=fe+ce+ws(le),he=2*(Yt+T),de=gs(xs(Vt,c)),ve=2*(Lt+g)+ws(he),ge=2*($t+A),me=gs(xs(Xt,u)),be=2*(jt+b)+ws(ge),xe=Pt+he,we=xs(At,de),_e=ws(xe),Ie=kt+ve+_e,Ne=Jt+ge,Me=xs(Kt,me),Se=ws(Ne),Ee=tn+be+Se,ye=Bt+P,Oe=xs(Ft,s),Ce=ws(ye),Te=zt+m+Ce,Pe=qt+P,Ae=xs(Wt,s),ke=ws(Pe),Be=Ht+m+ke,Fe=q*xe,ze=bs(K,we),Ye=tt*_e+gt*Ie+2*ws(Fe),Ve=U*Ne,Le=bs(at,Me),$e=pt*Se+Nt*Ee+2*ws(Ve),Xe=H*ye,je=bs(et,Oe),qe=rt*Ce+bt*Te+2*ws(Xe),We=Q*Pe,He=bs(ct,Ae),De=st*ke+wt*Be+2*ws(We),Qe=z*k,Re=bs(I,f),Ge=L*x+2*ws(Qe),Ue=Y*B,Ze=bs(M,l),Je=X*w+2*ws(Ue),Ke=Fe+Ve,tr=xs(ze,Le),nr=Ye+$e+ws(Ke),er=Xe+We,rr=xs(je,He),or=qe+De+ws(er),ir=Ke+er,cr=xs(tr,rr),sr=nr+or+ws(ir),ur=Qe+Ue,fr=xs(Re,Ze),lr=Ge+Je+ws(ur),ar=ir+ur,pr=xs(cr,fr),hr=sr+lr+ws(ar),dr=St+Yt,vr=xs(Et,Vt),gr=yt+Lt+ws(dr),mr=Dt+$t,br=xs(Qt,Xt),xr=Rt+jt+ws(mr),wr=dr+T,_r=xs(vr,c),Ir=gr+g+ws(wr),Nr=mr+A,Mr=xs(br,u),Sr=xr+b+ws(Nr),Er=j*wr,yr=bs(J,_r),Or=vt*Ir+2*ws(Er),Cr=G*Nr,Tr=bs(lt,Mr),Pr=It*Sr+2*ws(Cr),Ar=W*P,kr=bs(nt,s),Br=mt*m+2*ws(Ar),Fr=Er+Cr,zr=xs(yr,Tr),Yr=Or+Pr+ws(Fr),Vr=Fr+Ar,Lr=xs(zr,kr),$r=Yr+Br+ws(Vr),Xr=N*k,jr=ms(N,f),qr=V*x+ws(Xr),Wr=S*B,Hr=ms(S,l),Dr=$*w+ws(Wr),Qr=Xr+Wr,Rr=xs(jr,Hr),Gr=qr+Dr+ws(Qr),Ur=Vr+Qr,Zr=xs(Lr,Rr),Jr=$r+Gr+ws(Ur),Kr=Ur+F,to=xs(Zr,a),no=Jr+_+ws(Kr);return{coeffs:[Cn,ae,pr,to],errBound:[_s*Tn,_s*pe,_s*hr,_s*no]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:w,v_:_}}=ds(t),{coeffs:[[I,N,[,M]],[S,E,[,y]]],errorBound:[[O],[C]]}=Bc(n),T=e[1],P=r[1],A=o[1],k=i[1],B=c[1],F=s[1],z=u[1],Y=f[1],V=l[1],L=a[1],$=Ls(T),X=Ls(P),j=Ls(A),q=Ls(k),W=Ls(B),H=Ls(z),D=Ls(F),Q=Ls(Y),R=Ls(V),G=N[1],U=I[1],Z=E[1],J=S[1],K=Ls(M),tt=Ls(G),nt=Ls(U),et=Ls(y),rt=Ls(Z),ot=Ls(J),it=M*M,ct=M*G,st=M*U,ut=M*y,ft=M*Z,lt=M*J,at=G*G,pt=G*U,ht=G*y,dt=G*Z,vt=G*J,gt=U*Z,mt=U*U,bt=U*y,xt=U*J,wt=y*y,_t=y*Z,It=y*J,Nt=Z*Z,Mt=Z*J,St=J*J,Et=Bs(M,M),yt=zs(M,N),Ot=Ls(ct),Ct=zs(M,I),Tt=K*O+Ls(st),Pt=Bs(M,y),At=zs(M,E),kt=Ls(ft),Bt=zs(M,S),Ft=K*C+Ls(lt),zt=Ys(N,N),Yt=2*Ls(at),Vt=Ys(N,I),Lt=tt*O+2*Ls(pt),$t=zs(y,N),Xt=Ls(ht),jt=Ys(N,E),qt=2*Ls(dt),Wt=Ys(N,S),Ht=tt*C+2*Ls(vt),Dt=Ys(I,E),Qt=O*rt+2*Ls(gt),Rt=Ys(I,I),Gt=2*(O*nt+Ls(mt)),Ut=zs(y,I),Zt=et*O+Ls(bt),Jt=Ys(I,S),Kt=O*ot+nt*C+2*Ls(xt),tn=Bs(y,y),nn=zs(y,E),en=Ls(_t),rn=zs(y,S),on=et*C+Ls(It),cn=Ys(E,E),sn=2*Ls(Nt),un=Ys(E,S),fn=rt*C+2*Ls(Mt),ln=Ys(S,S),an=2*(C*ot+Ls(St)),pn=Ls(it),hn=Ls(ct),dn=Ls(ut),vn=Ls(ft),gn=Ls(pt),mn=Ls(mt),bn=Ls(xt),xn=Ls(ht),wn=Ls(wt),_n=Ls(_t),In=Ls(Mt),Nn=Ls(St),Mn=Ys(I,e),Sn=U*T,En=O*$+nt*p+2*Ls(Sn),yn=Ys(I,o),On=U*A,Cn=O*j+nt*d+2*Ls(On),Tn=Ys(S,r),Pn=J*P,An=C*X+ot*h+2*Ls(Pn),kn=Ys(S,i),Bn=J*k,Fn=C*q+ot*v+2*Ls(Bn),zn=Sn+Pn,Yn=Vs(Mn,Tn),Vn=Ls(zn),Ln=En+An+Vn,$n=On+Bn,Xn=Vs(yn,kn),jn=Ls($n),qn=Cn+Fn+jn,Wn=mt*zn,Hn=Ys(Rt,Yn),Dn=Gt*Vn+mn*Ln+2*Ls(Wn),Qn=St*$n,Rn=Ys(ln,Xn),Gn=an*jn+Nn*qn+2*Ls(Qn),Un=Wn+Qn,Zn=Vs(Hn,Rn),Jn=Dn+Gn+Ls(Un),Kn=st+at,te=Vs(Ct,zt),ne=Ls(Kn),ee=Tt+Yt+ne,re=It+Nt,oe=Vs(rn,cn),ie=Ls(re),ce=on+sn+ie,se=2*st+at,ue=Ls(se),fe=Vs(Fs(Ct),zt),le=2*Tt+Yt+ue,ae=2*It+Nt,pe=Vs(Fs(rn),cn),he=Ls(ae),de=2*on+sn+he,ve=2*dt+bt,ge=Vs(Fs(jt),Ut),me=Ls(ve),be=2*qt+Zt+me,xe=2*dt+lt,we=Vs(Fs(jt),Bt),_e=Ls(xe),Ie=2*qt+Ft+_e,Ne=2*bt+dt,Me=Vs(Fs(Ut),jt),Se=2*Zt+qt+Ls(Ne),Ee=6*st+at,ye=6*st,Oe=zs(6,Ct),Ce=6*Tt+Ls(ye),Te=Vs(Oe,zt),Pe=Ce+Yt+Ls(ye+at),Ae=6*It+Nt,ke=6*It,Be=zs(6,rn),Fe=6*on+Ls(ke),ze=Vs(Be,cn),Ye=Fe+sn+Ls(ke+Nt),Ve=vt+gt,Le=Vs(Wt,Dt),$e=Ls(Ve),Xe=Ht+Qt+$e,je=lt+bt,qe=Vs(Bt,Ut),We=Ft+Zt+Ls(je),He=2*ht+ft,De=Vs(Fs($t),At),Qe=2*Xt+kt+Ls(He),Re=2*ft+ht,Ge=Vs(Fs(At),$t),Ue=2*kt+Xt+Ls(Re),Ze=lt+dt,Je=Vs(Bt,jt),Ke=Ft+qt+Ls(Ze),tr=Ze+bt,nr=Vs(Je,Ut),er=Ls(tr),rr=Ke+Zt+er,or=3*mt,ir=zs(3,Rt),cr=3*Gt+Ls(or),sr=Ls(or),ur=3*St,fr=zs(3,ln),lr=3*an+Ls(ur),ar=Ls(ur),pr=or*T,hr=Ys(ir,e),dr=cr*$+sr*p+2*Ls(pr),vr=mt*P,gr=Ys(Rt,r),mr=Gt*X+mn*h+2*Ls(vr),br=2*xt*P,xr=Fs(Ys(Jt,r)),wr=2*(Kt*X+bn*h+Ls(br)),_r=2*xt*A,Ir=Fs(Ys(Jt,o)),Nr=2*(Kt*j+bn*d+Ls(_r)),Mr=St*A,Sr=Ys(ln,o),Er=an*j+Nn*d+2*Ls(Mr),yr=ur*k,Or=Ys(fr,i),Cr=lr*q+ar*v+2*Ls(yr),Tr=pr+br,Pr=Vs(hr,xr),Ar=dr+wr+Ls(Tr),kr=vr+_r,Br=Vs(gr,Ir),Fr=mr+Nr+Ls(kr),zr=Tr+Mr,Yr=Vs(Pr,Sr),Vr=Ar+Er+Ls(zr),Lr=kr+yr,$r=Vs(Br,Or),Xr=Fr+Cr+Ls(Lr),jr=G*zr,qr=Ys(N,Yr),Wr=tt*Vr+Ls(jr),Hr=Z*Lr,Dr=Ys(E,$r),Qr=rt*Xr+Ls(Hr),Rr=jr+Hr,Gr=Vs(qr,Dr),Ur=Wr+Qr+Ls(Rr),Zr=J*se,Jr=Ys(S,fe),Kr=C*ue+ot*le+2*Ls(Zr),to=J*xe,no=Ys(S,we),eo=C*_e+ot*Ie+2*Ls(to),ro=U*ve,oo=Ys(I,ge),io=O*me+nt*be+2*Ls(ro),co=U*ae,so=Ys(I,pe),uo=O*he+nt*de+2*Ls(co),fo=3*U,lo=zs(3,I),ao=Ls(fo),po=3*O+ao,ho=fo*Kn,vo=Ys(lo,te),go=Ls(ho),mo=po*ne+ao*ee+go,bo=3*J,xo=zs(3,S),wo=Ls(bo),_o=3*C+wo,Io=bo*re,No=Ys(xo,oe),Mo=Ls(Io),So=_o*ie+wo*ce+Mo,Eo=Zr+ro,yo=Vs(Jr,oo),Oo=Ls(Eo),Co=Kr+io+Oo,To=to+co,Po=Vs(no,so),Ao=Ls(To),ko=eo+uo+Ao,Bo=ho*T,Fo=Ys(vo,e),zo=mo*$+go*p+2*Ls(Bo),Yo=Io*k,Vo=Ys(No,i),Lo=So*q+Mo*v+2*Ls(Yo),$o=Eo*P,Xo=Ys(yo,r),jo=Co*X+Oo*h+2*Ls($o),qo=To*A,Wo=Ys(Po,o),Ho=ko*j+Ao*d+2*Ls(qo),Do=Bo+Yo,Qo=Vs(Fo,Vo),Ro=zo+Lo+Ls(Do),Go=$o+qo,Uo=Vs(Xo,Wo),Zo=jo+Ho+Ls(Go),Jo=mt*B,Ko=Ys(Rt,c),ti=Gt*W+mn*g+2*Ls(Jo),ni=St*z,ei=Ys(ln,u),ri=an*H+Nn*b+2*Ls(ni),oi=xt*F,ii=Ys(Jt,s),ci=Kt*D+bn*m+2*Ls(oi),si=Jo+ni,ui=Vs(Ko,ei),fi=ti+ri+Ls(si),li=Do+Go,ai=Vs(Qo,Uo),pi=Ro+Zo+Ls(li),hi=si+oi,di=Vs(ui,ii),vi=fi+ci+Ls(hi),gi=li+hi,mi=Vs(ai,di),bi=pi+vi+Ls(gi),xi=G*Ee,wi=Ys(N,Te),_i=tt*Pe+2*Ls(xi),Ii=2*_i,Ni=Z*Ae,Mi=Ys(E,ze),Si=rt*Ye+2*Ls(Ni),Ei=2*Si,yi=2*M*Ve,Oi=zs(2*M,Le),Ci=2*K*Xe+Ls(yi),Ti=2*Z*je,Pi=Ys(Fs(E),qe),Ai=2*rt*We+2*Ls(Ti),ki=G*Ne,Bi=Ys(N,Me),Fi=tt*Se+2*Ls(ki),zi=G*ae,Yi=Ys(N,pe),Vi=tt*de+2*Ls(zi),Li=yi+ki,$i=Vs(Oi,Bi),Xi=Ci+Fi+Ls(Li),ji=Ci+Fi+Xi,qi=Ti+zi,Wi=Vs(Pi,Yi),Hi=Ai+Vi+Ls(qi),Di=Ai+Vi+Hi,Qi=Mt*z,Ri=Ys(un,u),Gi=fn*H+In*b+2*Ls(Qi),Ui=pt*B,Zi=Ys(Vt,c),Ji=Lt*W+gn*g+2*Ls(Ui),Ki=Ve*F,tc=Ys(Le,s),nc=Xe*D+$e*m+2*Ls(Ki),ec=Qi+Ui,rc=Vs(Ri,Zi),oc=Gi+Ji+Ls(ec),ic=xi*T,cc=Ys(wi,e),sc=Ii*$+_i*p+2*Ls(ic),uc=Li*P,fc=Ys($i,r),lc=ji*X+Xi*h+2*Ls(uc),ac=Ni*k,pc=Ys(Mi,i),hc=Ei*q+Si*v+2*Ls(ac),dc=qi*A,vc=Ys(Wi,o),gc=Di*j+Hi*d+2*Ls(dc),mc=ic+ac,bc=Vs(cc,pc),xc=sc+hc+Ls(mc),wc=uc+dc,_c=Vs(fc,vc),Ic=lc+gc+Ls(wc),Nc=mc+wc,Mc=Vs(bc,_c),Sc=xc+Ic+Ls(Nc),Ec=2*ec+Ki,yc=Vs(Fs(rc),tc),Oc=2*oc+nc+Ls(Ec),Cc=Nc+Ec,Tc=Vs(Mc,yc),Pc=Sc+Oc+Ls(Cc),Ac=3*M,kc=Ls(Ac),Fc=Bs(3,M),zc=Ac*Kn,Yc=Ys(Fc,te),Vc=Ls(zc),Lc=kc*ee+2*Ls(zc),$c=3*y,Xc=Ls($c),jc=Bs(3,y),qc=$c*re,Wc=Ys(jc,oe),Hc=Ls(qc),Dc=Xc*ce+2*Ls(qc),Qc=M*xe,Rc=zs(M,we),Gc=K*Ie+Ls(Qc),Uc=M*ae,Zc=zs(M,pe),Jc=K*de+Ls(Uc),Kc=y*se,ts=zs(y,fe),ns=et*le+Ls(Kc),es=y*ve,rs=zs(y,ge),os=et*be+Ls(es),is=Qc+Kc,cs=Vs(Rc,ts),ss=Ls(is),us=Gc+ns+ss,fs=Uc+es,ls=Vs(Zc,rs),as=Ls(fs),ps=Jc+os+as,hs=zc*T,vs=Ys(Yc,e),gs=Lc*$+Vc*p+2*Ls(hs),ms=qc*k,bs=Ys(Wc,i),xs=Dc*q+Hc*v+2*Ls(ms),ws=is*P,_s=Ys(cs,r),Is=us*X+ss*h+2*Ls(ws),Ns=fs*A,Ms=Ys(ls,o),Ss=ps*j+as*d+2*Ls(Ns),Es=se*B,ys=Ys(fe,c),Os=le*W+ue*g+2*Ls(Es),Cs=ae*z,Ts=Ys(pe,u),Ps=de*H+he*b+2*Ls(Cs),As=tr*F,ks=Ys(nr,s),Xs=rr*D+er*m+2*Ls(As),js=U*Y,qs=Ys(I,f),Ws=O*Q+nt*x+2*Ls(js),Hs=J*V,Ds=Ys(S,l),Qs=C*R+ot*w+2*Ls(Hs),Rs=hs+ms,Gs=Vs(vs,bs),Us=gs+xs+Ls(Rs),Zs=ws+Ns,Js=Vs(_s,Ms),Ks=Is+Ss+Ls(Zs),tu=Es+Cs,nu=Vs(ys,Ts),eu=Os+Ps+Ls(tu),ru=Rs+Zs,ou=Vs(Gs,Js),iu=Us+Ks+Ls(ru),cu=tu+As,su=Vs(nu,ks),uu=eu+Xs+Ls(cu),fu=js+Hs,lu=Vs(qs,Ds),au=Ws+Qs+Ls(fu),pu=ru+cu,hu=Vs(ou,su),du=iu+uu+Ls(pu),vu=pu+fu,gu=Vs(hu,lu),mu=du+au+Ls(vu),bu=Ac*ct,xu=Ys(Fc,yt),wu=Ls(bu),_u=kc*Ot+2*wu,Iu=$c*_t,Nu=Ys(jc,nn),Mu=Ls(Iu),Su=Xc*en+2*Mu,Eu=M*He,yu=zs(M,De),Ou=Ls(Eu),Cu=K*Qe+Ls(Eu),Tu=y*Re,Pu=zs(y,Ge),Au=Ls(Tu),ku=et*Ue+Ls(Tu),Bu=ct*B,Fu=Ys(yt,c),zu=Ot*W+hn*g+2*Ls(Bu),Yu=_t*z,Vu=Ys(nn,u),Lu=en*H+_n*b+2*Ls(Yu),$u=ft*F,Xu=Ys(At,s),ju=kt*D+vn*m+2*Ls($u),qu=ht*F,Wu=Ys($t,s),Hu=Xt*D+xn*m+2*Ls(qu),Du=2*(Bu+Yu),Qu=Fs(Vs(Fu,Vu)),Ru=2*(zu+Lu)+Ls(Du),Gu=$u+qu,Uu=Vs(Xu,Wu),Zu=ju+Hu+Ls(Gu),Ju=G*Y,Ku=Ys(N,f),tf=tt*x+2*Ls(Ju),nf=Z*V,ef=Ys(E,l),rf=rt*w+2*Ls(nf),of=bu*T,cf=Ys(xu,e),sf=_u*$+wu*p+2*Ls(of),uf=Iu*k,ff=Ys(Nu,i),lf=Su*q+Mu*v+2*Ls(uf),af=Eu*P,pf=Ys(yu,r),hf=Cu*X+Ou*h+2*Ls(af),df=Tu*A,vf=Ys(Pu,o),gf=ku*j+Au*d+2*Ls(df),mf=of+uf,bf=Vs(cf,ff),xf=sf+lf+Ls(mf),wf=af+df,_f=Vs(pf,vf),If=hf+gf+Ls(wf),Nf=mf+wf,Mf=Vs(bf,_f),Sf=xf+If+Ls(Nf),Ef=Du+Gu,yf=Vs(Qu,Uu),Of=Ru+Zu+Ls(Ef),Cf=Ju+nf,Tf=Vs(Ku,ef),Pf=tf+rf+Ls(Cf),Af=Nf+Ef,kf=Vs(Mf,yf),Bf=Sf+Of+Ls(Af),Ff=Af+Cf,zf=Vs(kf,Tf),Yf=Bf+Pf+Ls(Ff),Vf=M*T,Lf=zs(M,e),$f=K*p+Ls(Vf),Xf=M*A,jf=zs(M,o),qf=K*d+Ls(Xf),Wf=y*P,Hf=zs(y,r),Df=et*h+Ls(Wf),Qf=y*k,Rf=zs(y,i),Gf=et*v+Ls(Qf),Uf=Vf+Wf,Zf=Vs(Lf,Hf),Jf=$f+Df+Ls(Uf),Kf=Xf+Qf,tl=Vs(jf,Rf),nl=qf+Gf+Ls(Kf),el=Uf+B,rl=Vs(Zf,c),ol=Jf+g+Ls(el),il=Kf+z,cl=Vs(tl,u),sl=nl+b+Ls(il),ul=it*el,fl=Ys(Et,rl),ll=pn*ol+2*Ls(ul),al=wt*il,pl=Ys(tn,cl),hl=wn*sl+2*Ls(al),dl=ut*F,vl=Ys(Pt,s),gl=dn*m+2*Ls(dl),ml=M*Y,bl=zs(M,f),xl=K*x+Ls(ml),wl=y*V,_l=zs(y,l),Il=et*w+Ls(wl),Nl=ul+al,Ml=Vs(fl,pl),Sl=ll+hl+Ls(Nl),El=Nl+dl,yl=Vs(Ml,vl),Ol=Sl+gl+Ls(El),Cl=ml+wl,Tl=Vs(bl,_l),Pl=xl+Il+Ls(Cl),Al=El+Cl,kl=Vs(yl,Tl),Bl=Ol+Pl+Ls(Al),Fl=Al+L,zl=Vs(kl,a),Yl=Bl+_+Ls(Fl);return{coeffs:[Zn,Gr,mi,Tc,gu,zf,zl],errBound:[$s*Jn,$s*Ur,$s*bi,$s*Pc,$s*mu,$s*Yf,$s*Yl]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:w,v_:_}}=ds(t),{coeffs:[[I,N,M,[,S]],[E,y,O,[,C]]],errorBound:[[T,P,A],[k,B,F]]}=kc(n),z=e[1],Y=r[1],V=o[1],L=i[1],$=c[1],X=s[1],j=u[1],q=f[1],W=l[1],H=a[1],D=ou(z),Q=ou(Y),R=ou(V),G=ou(L),U=ou($),Z=ou(X),J=ou(j),K=ou(q),tt=ou(W),nt=(ou(H),M[1]),et=N[1],rt=I[1],ot=O[1],it=y[1],ct=E[1],st=ou(S),ut=ou(nt),ft=ou(et),lt=ou(rt),at=ou(C),pt=ou(ot),ht=ou(it),dt=ou(ct),vt=S*S,gt=S*nt,mt=S*et,bt=S*rt,xt=S*C,wt=S*ot,_t=S*it,It=S*ct,Nt=nt*nt,Mt=nt*et,St=nt*rt,Et=nt*C,yt=nt*ot,Ot=nt*it,Ct=nt*ct,Tt=et*ot,Pt=et*et,At=et*rt,kt=et*C,Bt=et*it,Ft=et*ct,zt=rt*rt,Yt=rt*C,Vt=rt*ot,Lt=rt*it,$t=rt*ct,Xt=C*C,jt=C*ot,qt=C*it,Wt=C*ct,Ht=ot*ot,Dt=ot*it,Qt=ct*ct,Rt=it*it,Gt=it*ct,Ut=ot*ct,Zt=Ks(S,S),Jt=nu(S,M),Kt=st*A+ou(gt),tn=nu(S,N),nn=st*P+ou(mt),en=nu(S,I),rn=st*T+ou(bt),on=Ks(S,C),cn=nu(S,O),sn=st*F+ou(wt),un=nu(S,y),fn=st*B+ou(_t),ln=nu(S,E),an=st*k+ou(It),pn=eu(M,M),hn=ou(Nt),dn=2*(A*ut+hn),vn=eu(M,N),gn=A*ft+ut*P+2*ou(Mt),mn=eu(M,I),bn=A*lt+ut*T+2*ou(St),xn=nu(C,M),wn=at*A+ou(Et),_n=eu(M,O),In=A*pt+ut*F+2*ou(yt),Nn=eu(M,y),Mn=A*ht+ut*B+2*ou(Ot),Sn=eu(M,E),En=A*dt+ut*k+2*ou(Ct),yn=eu(N,O),On=P*pt+ft*F+2*ou(Tt),Cn=eu(N,N),Tn=ou(Pt),Pn=2*(P*ft+Tn),An=eu(N,I),kn=P*lt+ft*T+2*ou(At),Bn=nu(C,N),Fn=at*P+ou(kt),zn=eu(N,y),Yn=P*ht+ft*B+2*ou(Bt),Vn=eu(N,E),Ln=P*dt+ft*k+2*ou(Ft),$n=eu(I,I),Xn=2*(T*lt+ou(zt)),jn=nu(C,I),qn=at*T+ou(Yt),Wn=eu(I,O),Hn=T*pt+lt*F+2*ou(Vt),Dn=eu(I,y),Qn=ou(Lt),Rn=T*ht+lt*B+2*Qn,Gn=eu(I,E),Un=T*dt+lt*k+2*ou($t),Zn=Ks(C,C),Jn=nu(C,O),Kn=at*F+ou(jt),te=nu(C,y),ne=at*B+ou(qt),ee=nu(C,E),re=at*k+ou(Wt),oe=eu(O,O),ie=ou(Ht),ce=2*(F*pt+ie),se=eu(O,y),ue=F*ht+pt*B+2*ou(Dt),fe=eu(E,E),le=2*(k*dt+ou(Qt)),ae=eu(y,y),pe=ou(Rt),he=2*(B*ht+pe),de=eu(y,E),ve=B*dt+ht*k+2*ou(Gt),ge=eu(O,E),me=ou(Ut),be=F*dt+pt*k+2*me,xe=ou(vt),we=ou(gt),_e=ou(At),Ie=ou(zt),Ne=ou($t),Me=ou(xt),Se=ou(Xt),Ee=ou(jt),ye=ou(Gt),Oe=ou(Qt),Ce=rt*zt,Te=eu(I,$n),Pe=lt*Ie,Ae=T*Ie+lt*Xn+2*Pe,ke=rt*Qt,Be=eu(I,fe),Fe=lt*Oe,ze=T*Oe+lt*le+2*Fe,Ye=ct*zt,Ve=eu(E,$n),Le=dt*Ie,$e=k*Ie+dt*Xn+2*Le,Xe=ct*Qt,je=eu(E,fe),qe=dt*Oe,We=k*Oe+dt*le+2*qe,He=Ce*z,De=eu(Te,e),Qe=Ae*D+Pe*p+2*ou(He),Re=ke*V,Ge=eu(Be,o),Ue=ze*R+Fe*d+2*ou(Re),Ze=Ye*Y,Je=eu(Ve,r),Ke=$e*Q+Le*h+2*ou(Ze),tr=Xe*L,nr=eu(je,i),er=We*G+qe*v+2*ou(tr),rr=He+Re,or=ru(De,Ge),ir=Qe+Ue+ou(rr),cr=Ze+tr,sr=ru(Je,nr),ur=Ke+er+ou(cr),fr=rr+cr,lr=ru(or,sr),ar=ir+ur+ou(fr),pr=2*Ft+Lt,hr=ou(pr),dr=ru(tu(Vn),Dn),vr=2*Ln+Rn+hr,gr=2*Lt+Ft,mr=ou(gr),br=ru(tu(Dn),Vn),xr=2*Rn+Ln+ou(gr),wr=rt*pr,_r=ou(wr),Ir=eu(I,dr),Nr=T*hr+lt*vr+2*_r,Mr=ct*gr,Sr=ou(Mr),Er=eu(E,br),yr=k*mr+dt*xr+2*Sr,Or=et*zt,Cr=ou(Or),Tr=eu(N,$n),Pr=P*Ie+ft*Xn+2*Cr,Ar=it*Qt,kr=ou(Ar),Br=eu(y,fe),Fr=B*Oe+ht*le+2*kr,zr=z*Or,Yr=eu(e,Tr),Vr=Pr*D+D*Pr+2*ou(zr),Lr=L*Ar,$r=eu(i,Br),Xr=Fr*G+G*Fr+2*ou(Lr),jr=Y*wr,qr=eu(r,Ir),Wr=Nr*Q+Q*Nr+2*ou(jr),Hr=V*Mr,Dr=eu(o,Er),Qr=yr*R+R*yr+2*ou(Hr),Rr=jr+Hr,Gr=ru(qr,Dr),Ur=Wr+Qr+ou(Rr),Zr=3*(zr+Lr),Jr=nu(3,ru(Yr,$r)),Kr=3*(Vr+Xr)+2*ou(Zr),to=Rr+Zr,no=ru(Gr,Jr),eo=Ur+Kr+ou(to),ro=nt*$t,oo=eu(M,Gn),io=A*Ne+ut*Un+2*ou(ro),co=ot*zt,so=eu(O,$n),uo=F*Ie+pt*Xn+2*ou(co),fo=et*Gt,lo=eu(N,de),ao=P*ye+ft*ve+2*ou(fo),po=nt*Qt,ho=eu(M,fe),vo=A*Oe+ut*le+2*ou(po),go=et*Lt,mo=eu(N,Dn),bo=P*Qn+ft*Rn+2*ou(go),xo=ct*Pt,wo=eu(E,Cn),_o=k*Tn+dt*Pn+2*ou(xo),Io=rt*Ut,No=eu(I,ge),Mo=T*me+lt*be+2*ou(Io),So=it*Lt,Eo=eu(y,Dn),yo=B*Qn+ht*Rn+2*ou(So),Oo=ro+go,Co=ru(oo,mo),To=io+bo+ou(Oo),Po=co+xo,Ao=ru(so,wo),ko=uo+_o+ou(Po),Bo=fo+Io,Fo=ru(lo,No),zo=ao+Mo+ou(Bo),Yo=po+So,Vo=ru(ho,Eo),Lo=vo+yo+ou(Yo),$o=St+Pt,Xo=ru(mn,Cn),jo=ou($o),qo=bn+Pn+jo,Wo=Ut+Rt,Ho=ou(Wo),Do=ru(ge,ae),Qo=be+he+Ho,Ro=2*Oo+Po,Go=ru(tu(Co),Ao),Uo=ou(Ro),Zo=2*To+ko+Uo,Jo=2*Bo+Yo,Ko=ru(tu(Fo),Vo),ti=ou(Jo),ni=2*zo+Lo+ti,ei=Y*Ro,ri=eu(r,Go),oi=h*Uo+Q*Zo+2*ou(ei),ii=V*Jo,ci=eu(o,Ko),si=d*ti+R*ni+2*ou(ii),ui=rt*$o,fi=eu(I,Xo),li=ou(ui),ai=T*jo+lt*qo+2*li,pi=ct*Wo,hi=eu(E,Do),di=ou(pi),vi=k*Ho+dt*Qo+2*di,gi=z*ui,mi=eu(e,fi),bi=p*li+D*ai+2*ou(gi),xi=L*pi,wi=eu(i,hi),_i=v*di+G*vi+2*ou(xi),Ii=ei+ii,Ni=ru(ri,ci),Mi=oi+si+ou(Ii),Si=3*(gi+xi),Ei=nu(3,ru(mi,wi)),yi=3*(bi+_i)+2*ou(Si),Oi=Ii+Si,Ci=ru(Ni,Ei),Ti=Mi+yi+ou(Oi),Pi=Ft+Lt,Ai=ru(Vn,Dn),ki=ou(Pi),Bi=Ln+Rn+ki,Fi=it*Pt,zi=eu(y,Cn),Yi=B*Tn+ht*Pn+2*ou(Fi),Vi=2*nt*Pi,Li=tu(eu(M,Ai)),$i=2*(A*ki+ut*Bi+2*ou(Vi)),Xi=Fi+Vi,ji=ru(zi,Li),qi=Yi+$i+ou(Xi),Wi=2*(It+Tt),Hi=tu(ru(ln,yn)),Di=2*(an+On)+ou(Wi),Qi=Wi+Yt,Ri=ou(Qi),Gi=ru(Hi,jn),Ui=Di+qn+Ri,Zi=rt*Qi,Ji=eu(I,Gi),Ki=T*Ri+lt*Ui+2*ou(Zi),tc=Xi+Zi,nc=ru(ji,Ji),ec=ou(tc),rc=qi+Ki+ec,oc=et*Rt,ic=eu(N,ae),cc=P*pe+ft*he+2*ou(oc),sc=2*ot*Pi,uc=tu(eu(O,Ai)),fc=2*(F*ki+pt*Bi+ou(sc)),lc=oc+sc,ac=ru(ic,uc),pc=cc+fc+ou(lc),hc=2*(Ot+Yt),dc=tu(ru(Nn,jn)),vc=2*(Mn+qn)+ou(hc),gc=hc+It,mc=ru(dc,ln),bc=ou(gc),xc=vc+an+bc,wc=ct*gc,_c=eu(E,mc),Ic=k*bc+dt*xc+2*ou(wc),Nc=lc+wc,Mc=ru(ac,_c),Sc=ou(Nc),Ec=pc+Ic+Sc,yc=et*Pt,Oc=eu(N,Cn),Cc=P*Tn+ft*Pn+2*ou(yc),Tc=2*Mt+bt,Pc=ru(tu(vn),en),Ac=ou(Tc),Bc=2*gn+rn+Ac,Fc=3*rt,zc=nu(3,I),Yc=ou(Fc),Vc=3*T+Yc,Lc=Fc*Tc,$c=eu(zc,Pc),Xc=Vc*Ac+Yc*Bc+2*ou(Lc),jc=yc+Lc,qc=ru(Oc,$c),Wc=ou(jc),Hc=Cc+Xc+Wc,Dc=it*Rt,Qc=eu(y,ae),Rc=B*pe+ht*he+2*ou(Dc),Gc=2*Dt+Wt,Uc=ru(tu(se),ee),Zc=ou(Gc),Jc=2*ue+re+Zc,Kc=3*ct,ts=nu(3,E),ns=ou(Kc),es=3*k+ns,rs=Kc*Gc,os=eu(ts,Uc),is=es*Zc+ns*Jc+2*ou(rs),cs=Dc+rs,ss=ru(Qc,os),us=ou(cs),fs=Rc+is+us,ls=Y*tc,as=eu(r,nc),ps=h*ec+Q*rc+2*ou(ls),hs=V*Nc,vs=eu(o,Mc),gs=d*Sc+R*Ec+2*ou(hs),ms=ls+hs,bs=ru(as,vs),xs=ps+gs+ou(ms),ws=z*jc,_s=eu(e,qc),Is=p*Wc+D*Hc+2*ou(ws),Ns=L*cs,Ms=eu(i,ss),Ss=v*us+G*fs+2*ou(Ns),Es=ws+Ns,ys=ru(_s,Ms),Os=Is+Ss+ou(Es),Cs=$*zt,Ts=eu($n,c),Ps=Xn*U+Ie*g+2*ou(Cs),As=j*Qt,ks=eu(fe,u),Bs=le*J+Oe*b+2*ou(As),Fs=Cs+As,zs=ru(Ts,ks),Ys=Ps+Bs+ou(Fs),Vs=X*$t,Ls=eu(Gn,s),$s=Un*Z+Ne*m+2*ou(Vs),Xs=ms+Es,js=ru(bs,ys),qs=xs+Os+ou(Xs),Ws=Fs+Vs,Hs=ru(zs,Ls),Ds=Ys+$s+ou(Ws),Qs=Xs+Ws,Rs=ru(js,Hs),Gs=qs+Ds+ou(Qs),Us=Bt+Vt,Zs=ru(zn,Wn),Js=ou(Us),cu=Yn+Hn+Js,su=Ct+Bt,uu=ru(Sn,zn),fu=ou(su),lu=En+Yn+fu,au=S*Pi,pu=nu(S,Ai),hu=st*Bi+ou(au),du=C*Pi,vu=nu(C,Ai),gu=at*Bi+ou(du),mu=nt*Us,bu=eu(M,Zs),xu=A*Js+ut*cu+2*ou(mu),wu=ot*su,_u=eu(O,uu),Iu=F*fu+pt*lu+2*ou(wu),Nu=2*Yt+Tt,Mu=ru(tu(jn),yn),Su=ou(Nu),Eu=2*qn+On+Su,yu=2*It+Ot,Ou=ru(tu(ln),Nn),Cu=ou(yu),Tu=2*an+Mn+Cu,Pu=ct*Nt,Au=eu(E,pn),ku=k*hn+dt*dn+2*ou(Pu),Bu=rt*Ht,Fu=eu(I,oe),zu=T*ie+lt*ce+2*ou(Bu),Yu=et*Nu,Vu=eu(N,Mu),Lu=P*Su+ft*Eu+2*ou(Yu),$u=it*yu,Xu=eu(y,Ou),ju=B*Cu+ht*Tu+2*ou($u),qu=2*(au+mu),Wu=tu(ru(pu,bu)),Hu=2*(hu+xu)+ou(qu),Du=2*(du+wu),Qu=tu(ru(vu,_u)),Ru=2*(gu+Iu)+ou(Du),Gu=2*S*At,Uu=tu(nu(S,An)),Zu=2*st*kn+ou(Gu),Ju=2*C*Gt,Ku=tu(nu(C,de)),tf=2*at*ve+ou(Ju),nf=nt*$o,ef=eu(M,Xo),rf=A*jo+ut*qo+2*ou(nf),of=ot*Wo,cf=eu(O,Do),sf=F*Ho+pt*Qo+2*ou(of),uf=$*At,ff=eu(An,c),lf=kn*U+_e*g+2*ou(uf),af=j*Gt,pf=eu(de,u),hf=ve*J+ye*b+2*ou(af),df=qu+Pu,vf=ru(Wu,Au),gf=ou(df),mf=Hu+ku+gf,bf=Du+Bu,xf=ru(Qu,Fu),wf=ou(bf),_f=Ru+zu+wf,If=df+Yu,Nf=ru(vf,Vu),Mf=ou(If),Sf=mf+Lu+Mf,Ef=bf+$u,yf=ru(xf,Xu),Of=ou(Ef),Cf=_f+ju+Of,Tf=Gu+nf,Pf=ru(Uu,ef),Af=ou(Tf),kf=Zu+rf+Af,Bf=Ju+of,Ff=ru(Ku,cf),zf=ou(Bf),Yf=tf+sf+zf,Vf=2*(uf+af),Lf=tu(ru(ff,pf)),$f=2*(lf+hf)+ou(Vf),Xf=Y*If,jf=eu(r,Nf),qf=h*Mf+Q*Sf+2*ou(Xf),Wf=V*Ef,Hf=eu(o,yf),Df=d*Of+R*Cf+2*ou(Wf),Qf=z*Tf,Rf=eu(e,Pf),Gf=p*Af+D*kf+2*ou(Qf),Uf=L*Bf,Zf=eu(i,Ff),Jf=v*zf+G*Yf+2*ou(Uf),Kf=Xf+Wf,tl=ru(jf,Hf),nl=qf+Df+ou(Kf),el=3*(Qf+Uf),rl=nu(3,ru(Rf,Zf)),ol=3*(Gf+Jf)+2*ou(el),il=X*Pi,cl=eu(s,Ai),sl=m*ki+Z*Bi+2*ou(il),ul=Kf+el,fl=ru(tl,rl),ll=nl+ol+ou(ul),al=il+Vf,pl=ru(cl,Lf),hl=sl+$f+ou(al),dl=ul+al,vl=ru(fl,pl),gl=ll+hl+ou(dl),ml=Ct+Us,bl=ru(Sn,Zs),xl=ou(ml),wl=En+cu+xl,_l=2*St+Pt,Il=ru(tu(mn),Cn),Nl=ou(_l),Ml=2*bn+Pn+Nl,Sl=2*Ut+Rt,El=ru(tu(ge),ae),yl=ou(Sl),Ol=2*be+he+yl,Cl=2*S*ml,Tl=nu(2*S,bl),Pl=2*st*wl+ou(Cl),Al=2*C*ml,kl=nu(2*C,bl),Bl=2*at*wl+ou(Al),Fl=Ot+2*Tt,zl=ru(Nn,tu(yn)),Yl=ou(Fl),Vl=Mn+2*On+Yl,Ll=Tt+2*Ot,$l=ru(yn,tu(Nn)),Xl=ou(Ll),jl=On+2*Mn+Xl,ql=C*_l,Wl=nu(C,Il),Hl=at*Ml+ou(ql),Dl=S*Sl,Ql=nu(S,El),Rl=st*Ol+ou(Dl),Gl=nt*Fl,Ul=eu(M,zl),Zl=A*Yl+ut*Vl+2*ou(Gl),Jl=ot*Ll,Kl=eu(O,$l),ta=F*Xl+pt*jl+2*ou(Jl),na=S*_l,ea=nu(S,Il),ra=st*Ml+ou(na),oa=C*Sl,ia=nu(C,El),ca=at*Ol+ou(oa),sa=et*Nt,ua=eu(N,pn),fa=P*hn+ft*dn+2*ou(sa),la=it*Ht,aa=eu(y,oe),pa=B*ie+ht*ce+2*ou(la),ha=Cl+ql,da=ru(Tl,Wl),va=Pl+Hl+ou(ha),ga=Al+Dl,ma=ru(kl,Ql),ba=Bl+Rl+ou(ga),xa=ha+Gl,wa=ru(da,Ul),_a=ou(xa),Ia=va+Zl+_a,Na=ga+Jl,Ma=ru(ma,Kl),Sa=ou(Na),Ea=ba+ta+Sa,ya=na+sa,Oa=ru(ea,ua),Ca=ou(ya),Ta=ra+fa+Ca,Pa=oa+la,Aa=ru(ia,aa),ka=ou(Pa),Ba=ca+pa+ka,Fa=Y*xa,za=eu(r,wa),Ya=h*_a+Q*Ia+2*ou(Fa),Va=V*Na,La=eu(o,Ma),$a=d*Sa+R*Ea+2*ou(Va),Xa=z*ya,ja=eu(e,Oa),qa=p*Ca+D*Ta+2*ou(Xa),Wa=L*Pa,Ha=eu(i,Aa),Da=v*ka+G*Ba+2*ou(Wa),Qa=Xa+Wa,Ra=ou(Qa),Ga=ru(ja,Ha),Ua=qa+Da+Ra,Za=Fa+Va,Ja=ru(za,La),Ka=Ya+$a+ou(Za),tp=Za+3*Qa,np=ru(Ja,nu(3,Ga)),ep=Ka+3*(Ua+Ra)+ou(tp),rp=X*ml,op=eu(s,bl),ip=m*xl+Z*wl+2*ou(rp),cp=$*_l,sp=eu(c,Il),up=g*Nl+U*Ml+2*ou(cp),fp=rp+cp,lp=ru(op,sp),ap=ip+up+ou(fp),pp=j*Sl,hp=eu(u,El),dp=b*yl+J*Ol+2*ou(pp),vp=fp+pp,gp=ru(lp,hp),mp=ap+dp+ou(vp),bp=tp+vp,xp=ru(np,gp),wp=ep+mp+ou(bp),_p=Ot+Tt,Ip=ru(Nn,yn),Np=Mn+On+ou(_p),Mp=Yt+It,Sp=ru(jn,ln),Ep=qn+an+ou(Mp),yp=Mt+bt,Op=ru(vn,en),Cp=gn+rn+ou(yp),Tp=ou(yp),Pp=Dt+Wt,Ap=ru(se,ee),kp=ue+re+ou(Pp),Bp=ou(Pp),Fp=2*_p+Yt,zp=ru(tu(Ip),jn),Yp=2*Np+qn+ou(Fp),Vp=2*_p+It,Lp=ru(tu(Ip),ln),$p=2*Np+an+ou(Vp),Xp=2*kt+yt,jp=ru(tu(Bn),_n),qp=ou(Xp),Wp=2*Fn+In+qp,Hp=2*_t+yt,Dp=ru(tu(un),_n),Qp=ou(Hp),Rp=2*fn+In+Qp,Gp=yp+Mt,Up=ru(Op,vn),Zp=Cp+gn+ou(Gp),Jp=Pp+Dt,Kp=ru(Ap,se),th=kp+ue+ou(Jp),nh=3*S,eh=Ks(3,S),rh=nh*Gp,oh=eu(eh,Up),ih=ou(nh)*Zp+2*ou(rh),ch=3*C,sh=Ks(3,C),uh=ch*Jp,fh=eu(sh,Kp),lh=ou(ch)*th+2*ou(uh),ah=nt*Nt,ph=eu(M,pn),hh=A*hn+ut*dn+2*ou(ah),dh=ot*Ht,vh=eu(O,oe),gh=F*ie+pt*ce+2*ou(dh),mh=$*yp,bh=eu(c,Op),xh=g*Tp+U*Cp+ou(mh),wh=j*Pp,_h=eu(u,Ap),Ih=b*Bp+J*kp+ou(wh),Nh=Fp+Mp,Mh=ru(zp,Sp),Sh=Yp+Ep+ou(Nh),Eh=Vp+Mp,yh=ru(Lp,Sp),Oh=$p+Ep+ou(Eh),Ch=S*Nh,Th=nu(S,Mh),Ph=st*Sh+ou(Ch),Ah=C*Eh,kh=nu(C,yh),Bh=at*Oh+ou(Ah),Fh=nt*Xp,zh=eu(M,jp),Yh=A*qp+ut*Wp+2*ou(Fh),Vh=ot*Hp,Lh=eu(O,Dp),$h=F*Qp+pt*Rp+2*ou(Vh),Xh=rt*q,jh=eu(I,f),qh=T*K+lt*x+2*ou(Xh),Wh=ct*W,Hh=eu(E,l),Dh=k*tt+dt*w+2*ou(Wh),Qh=Ch+Fh,Rh=ru(Th,zh),Gh=ou(Qh),Uh=Ph+Yh+Gh,Zh=Ah+Vh,Jh=ru(kh,Lh),Kh=ou(Zh),td=Bh+$h+Kh,nd=rh+ah,ed=ru(oh,ph),rd=ou(nd),od=ih+hh+rd,id=uh+dh,cd=ru(fh,vh),sd=ou(id),ud=lh+gh+sd,fd=Mp+_p,ld=ru(Sp,Ip),ad=ou(fd),pd=Ep+Np+ad,hd=2*(mh+wh),dd=tu(ru(bh,_h)),vd=2*(xh+Ih)+ou(hd),gd=Y*Qh,md=eu(r,Rh),bd=h*Gh+Q*Uh+2*ou(gd),xd=V*Zh,wd=eu(o,Jh),_d=d*Kh+R*td+2*ou(xd),Id=z*nd,Nd=eu(e,ed),Md=p*rd+D*od+2*ou(Id),Sd=L*id,Ed=eu(i,cd),yd=v*sd+G*ud+2*ou(Sd),Od=X*fd,Cd=eu(s,ld),Td=m*ad+Z*pd+2*ou(Od),Pd=gd+xd,Ad=ru(md,wd),kd=bd+_d+ou(Pd),Bd=Id+Sd,Fd=ru(Nd,Ed),zd=Md+yd+ou(Bd),Yd=Od+hd,Vd=ru(Cd,dd),Ld=Td+vd+ou(Yd),$d=Xh+Wh,Xd=ru(jh,Hh),jd=qh+Dh+ou($d),qd=Pd+Bd,Wd=ru(Ad,Fd),Hd=kd+zd+ou(qd),Dd=Yd+$d,Qd=ru(Vd,Xd),Rd=Ld+jd+ou(Dd),Gd=qd+Dd,Ud=ru(Wd,Qd),Zd=Hd+Rd+ou(Gd),Jd=yt+kt,Kd=ru(_n,Bn),tv=In+Fn+ou(Jd),nv=yt+_t,ev=ru(_n,un),rv=In+fn+ou(nv),ov=2*Jd+_t,iv=ru(tu(Kd),un),cv=2*tv+fn+ou(ov),sv=2*nv+kt,uv=ru(tu(ev),Bn),fv=2*rv+Fn+ou(sv),lv=S*ov,av=nu(S,iv),pv=st*cv+ou(lv),hv=C*Nt,dv=nu(C,pn),vv=at*dn+ou(hv),gv=C*sv,mv=nu(C,uv),bv=at*fv+ou(gv),xv=S*Ht,wv=nu(S,oe),_v=st*ce+ou(xv),Iv=S*Nt,Nv=nu(S,pn),Mv=st*dn+ou(Iv),Sv=et*vt,Ev=eu(N,Zt),yv=P*xe+2*ou(Sv),Ov=C*Ht,Cv=nu(C,oe),Tv=at*ce+ou(Ov),Pv=it*Xt,Av=eu(y,Zn),kv=B*Se+2*ou(Pv),Bv=lv+hv,Fv=ru(av,dv),zv=pv+vv+ou(Bv),Yv=pv+vv+zv,Vv=gv+xv,Lv=ru(mv,wv),$v=bv+_v+ou(Vv),Xv=bv+_v+$v,jv=Iv+Sv,qv=ru(Nv,Ev),Wv=ou(jv),Hv=Mv+yv+Wv,Dv=Ov+Pv,Qv=ru(Cv,Av),Rv=ou(Dv),Gv=Tv+kv+Rv,Uv=z*jv,Zv=eu(e,qv),Jv=p*Wv+D*Hv+2*ou(Uv),Kv=L*Dv,tg=eu(i,Qv),ng=v*Rv+G*Gv+2*ou(Kv),eg=3*(Uv+Kv),rg=nu(3,ru(Zv,tg)),og=3*(Jv+ng)+2*ou(eg),ig=Jd+_t,cg=ru(Kd,un),sg=ou(ig),ug=tv+fn+sg,fg=2*mt+Nt,lg=ru(tu(tn),pn),ag=ou(fg),pg=2*nn+dn+ag,hg=2*qt+Ht,dg=ru(tu(te),oe),vg=ou(hg),gg=2*ne+ce+vg,mg=Y*Bv,bg=eu(r,Fv),xg=h*zv+Q*Yv+2*ou(mg),wg=V*Vv,_g=eu(o,Lv),Ig=d*$v+R*Xv+2*ou(wg),Ng=X*ig,Mg=eu(s,cg),Sg=m*sg+Z*ug+2*ou(Ng),Eg=$*fg,yg=eu(c,lg),Og=g*ag+U*pg+2*ou(Eg),Cg=j*hg,Tg=eu(u,dg),Pg=b*vg+J*gg+2*ou(Cg),Ag=et*q,kg=eu(N,f),Bg=P*K+ft*x+ou(Ag),Fg=it*W,zg=eu(y,l),Yg=B*tt+ht*w+ou(Fg),Vg=Ag+Fg,Lg=ru(kg,zg),$g=Bg+Yg+ou(Vg),Xg=mg+wg,jg=ru(bg,_g),qg=xg+Ig+ou(Xg),Wg=eg+Ng,Hg=ru(rg,Mg),Dg=og+Sg+ou(Wg),Qg=Eg+Cg,Rg=ru(yg,Tg),Gg=Og+Pg+ou(Qg),Ug=Xg+Wg,Zg=ru(jg,Hg),Jg=qg+Dg+ou(Ug),Kg=Qg+Vg,tm=ru(Rg,Lg),nm=Gg+$g+ou(Kg),em=Ug+Kg,rm=ru(Zg,tm),om=Jg+nm+ou(em),im=Et+wt,cm=ru(xn,cn),sm=ou(im),um=wn+sn+sm,fm=S*Y,lm=nu(S,r),am=ou(fm),pm=st*h+am,hm=C*V,dm=nu(C,o),vm=ou(hm),gm=at*d+vm,mm=im+Et,bm=ru(cm,xn),xm=ou(mm),wm=um+wn+xm,_m=im+wt,Im=ru(cm,cn),Nm=ou(_m),Mm=um+sn+Nm,Sm=nt*vt,Em=eu(M,Zt),ym=ou(Sm),Om=A*xe+2*ym,Cm=Sm*z,Tm=eu(Em,e),Pm=Om*D+ym*p+2*ou(Cm),Am=ot*Xt,km=eu(O,Zn),Bm=ou(Am),Fm=F*Se+2*Bm,zm=Am*L,Ym=eu(km,i),Vm=Fm*G+Bm*v+2*ou(zm),Lm=X*im,$m=eu(s,cm),Xm=m*sm+Z*um+2*ou(Lm),jm=gt*$,qm=eu(Jt,c),Wm=Kt*U+we*g+2*ou(jm),Hm=jt*j,Dm=eu(Jn,u),Qm=Kn*J+Ee*b+2*ou(Hm),Rm=jm+Hm,Gm=ru(qm,Dm),Um=Wm+Qm+ou(Rm),Zm=nt*q,Jm=eu(M,f),Km=A*K+ut*x+ou(Zm),tb=ot*W,nb=eu(O,l),eb=F*tt+pt*w+ou(tb),rb=Zm+tb,ob=ru(Jm,nb),ib=Km+eb+ou(rb),cb=fm*mm,sb=eu(lm,bm),ub=pm*xm+am*wm+2*ou(cb),fb=hm*_m,lb=eu(dm,Im),ab=gm*Nm+vm*Mm+2*ou(fb),pb=cb+fb,hb=ru(sb,lb),db=ub+ab+ou(pb),vb=3*(Cm+zm),gb=nu(3,ru(Tm,Ym)),mb=3*(Pm+Vm)+2*ou(vb),bb=Lm+2*Rm,xb=ru($m,tu(Gm)),wb=Xm+2*Um+ou(bb),_b=pb+vb,Ib=ru(hb,gb),Nb=db+mb+ou(_b),Mb=bb+rb,Sb=ru(xb,ob),Eb=wb+ib+ou(Mb),yb=_b+Mb,Ob=ru(Ib,Sb),Cb=Nb+Eb+ou(yb),Tb=S*z,Pb=nu(S,e),Ab=st*p+ou(Tb),kb=C*Y,Bb=nu(C,r),Fb=at*h+ou(kb),zb=Tb+kb,Yb=ru(Pb,Bb),Vb=Ab+Fb+ou(zb),Lb=S*V,$b=nu(S,o),Xb=st*d+ou(Lb),jb=C*L,qb=nu(C,i),Wb=at*v+ou(jb),Hb=Lb+jb,Db=ru($b,qb),Qb=Xb+Wb+ou(Hb),Rb=zb+$,Gb=ru(Yb,c),Ub=Vb+g+ou(Rb),Zb=Hb+j,Jb=ru(Db,u),Kb=Qb+b+ou(Zb),tx=vt*Rb,nx=eu(Zt,Gb),ex=xe*Ub+2*ou(tx),rx=Xt*Zb,ox=eu(Zn,Jb),ix=Se*Kb+2*ou(rx),cx=tx+rx,sx=ru(nx,ox),ux=ex+ix+ou(cx),fx=xt*X,lx=eu(on,s),ax=Me*m+ou(fx),px=cx+fx,hx=ru(sx,lx),dx=ux+ax+ou(px),vx=S*q,gx=nu(S,f),mx=st*x+ou(vx),bx=C*W,xx=nu(C,l),wx=at*w+ou(bx),_x=vx+bx,Ix=ru(gx,xx),Nx=mx+wx+ou(_x),Mx=px+_x,Sx=ru(hx,Ix),Ex=dx+Nx+ou(Mx),yx=Mx+H,Ox=ru(Sx,a),Cx=Ex+_+ou(yx);return{coeffs:[lr,no,Ci,Rs,vl,xp,Ud,rm,Ob,Ox],errBound:[iu*ar,iu*eo,iu*Ti,iu*Gs,iu*gl,iu*wp,iu*Zd,iu*om,iu*Cb,iu*Cx]}}]],zf=[[du,nf,_f],[yu,ff,Of],[Uu,gf,function(t,n){const e=kt(t);if(0===Bf(e[0][0])&&0===Bf(e[1][0]))return Of(Fu(t),n);const[[r,o,i,[c]],[s,u,f,[l]]]=kt(n);if(0===Bf(r)&&0===Bf(s))return gf(t,Fu(n));const{vₓₓₓ:a,vₓₓᵧ:p,vₓᵧᵧ:h,vᵧᵧᵧ:d,vₓₓ:v,vₓᵧ:g,vᵧᵧ:m,vₓ:b,vᵧ:x,v:w}=qu(e),_=Cf(c,c),I=Tf(c,i),N=Tf(c,o),M=Tf(c,r),S=Cf(c,l),E=Tf(c,f),y=Tf(c,u),O=Tf(c,s),C=Pf(i,i),T=Pf(i,o),P=Pf(i,r),A=Tf(l,i),k=Pf(i,f),B=Pf(i,u),F=Pf(i,s),z=Pf(o,f),Y=Pf(o,o),V=Pf(o,r),L=Tf(l,o),$=Pf(o,u),X=Pf(o,s),j=Pf(r,r),q=Tf(l,r),W=Pf(r,f),H=Pf(r,u),D=Pf(r,s),Q=Cf(l,l),R=Tf(l,f),G=Tf(l,u),U=Tf(l,s),Z=Pf(f,f),J=Pf(f,u),K=Pf(s,s),tt=Pf(u,u),nt=Pf(u,s),et=Pf(f,s),rt=Pf(r,j),ot=Pf(r,K),it=Pf(s,j),ct=Pf(s,K),st=Pf(rt,a),ut=Pf(ot,h),ft=Pf(it,p),lt=Pf(ct,d),at=Af(st,ut),pt=Af(ft,lt),ht=Af(at,pt),dt=Af(kf(X),H),vt=Af(kf(H),X),gt=Pf(r,dt),mt=Pf(s,vt),bt=Pf(o,j),xt=Pf(u,K),wt=Pf(a,bt),_t=Pf(d,xt),It=Pf(p,gt),Nt=Pf(h,mt),Mt=Af(It,Nt),St=Tf(3,Af(wt,_t)),Et=Af(Mt,St),yt=Pf(i,D),Ot=Pf(f,j),Ct=Pf(o,nt),Tt=Pf(i,K),Pt=Pf(o,H),At=Pf(s,Y),Bt=Pf(r,et),Ft=Pf(u,H),zt=Af(yt,Pt),Yt=Af(Ot,At),Vt=Af(Ct,Bt),Lt=Af(Tt,Ft),$t=Af(P,Y),Xt=Af(et,tt),jt=Af(kf(zt),Yt),qt=Af(kf(Vt),Lt),Wt=Pf(p,jt),Ht=Pf(h,qt),Dt=Pf(r,$t),Qt=Pf(s,Xt),Rt=Pf(a,Dt),Gt=Pf(d,Qt),Ut=Af(Wt,Ht),Zt=Tf(3,Af(Rt,Gt)),Jt=Af(Ut,Zt),Kt=Af(X,H),tn=Pf(u,Y),nn=kf(Pf(i,Kt)),en=Af(tn,nn),rn=kf(Af(O,z)),on=Af(rn,q),cn=Pf(r,on),sn=Af(en,cn),un=Pf(o,tt),fn=kf(Pf(f,Kt)),ln=Af(un,fn),an=kf(Af(B,q)),pn=Af(an,O),hn=Pf(s,pn),dn=Af(ln,hn),vn=Pf(o,Y),gn=Af(kf(T),M),mn=Pf(Tf(3,r),gn),bn=Af(vn,mn),xn=Pf(u,tt),wn=Af(kf(J),U),_n=Pf(Tf(3,s),wn),In=Af(xn,_n),Nn=Pf(p,sn),Mn=Pf(h,dn),Sn=Af(Nn,Mn),En=Pf(a,bn),yn=Pf(d,In),On=Af(En,yn),Cn=Pf(j,v),Tn=Pf(K,m),Pn=Af(Cn,Tn),An=Pf(D,g),kn=Af(Sn,On),Bn=Af(Pn,An),Fn=Af(kn,Bn),zn=Af($,W),Yn=Af(F,$),Vn=Tf(c,Kt),Ln=Tf(l,Kt),$n=Pf(i,zn),Xn=Pf(f,Yn),jn=Af(kf(q),z),qn=Af(kf(O),B),Wn=Pf(s,C),Hn=Pf(r,Z),Dn=Pf(o,jn),Qn=Pf(u,qn),Rn=kf(Af(Vn,$n)),Gn=kf(Af(Ln,Xn)),Un=kf(Tf(c,V)),Zn=kf(Tf(l,nt)),Jn=Pf(i,$t),Kn=Pf(f,Xt),te=Pf(V,v),ne=Pf(nt,m),ee=Af(Rn,Wn),re=Af(Gn,Hn),oe=Af(ee,Dn),ie=Af(re,Qn),ce=Af(Un,Jn),se=Af(Zn,Kn),ue=kf(Af(te,ne)),fe=Pf(p,oe),le=Pf(h,ie),ae=Pf(a,ce),pe=Pf(d,se),he=Af(fe,le),de=Tf(3,Af(ae,pe)),ve=Pf(g,Kt),ge=Af(he,de),me=Af(ve,ue),be=Af(ge,me),xe=Af(F,zn),we=Af(kf(P),Y),_e=Af(kf(et),tt),Ie=Tf(2*c,xe),Ne=Tf(2*l,xe),Me=Af(B,kf(z)),Se=Af(z,kf(B)),Ee=Tf(l,we),ye=Tf(c,_e),Oe=Pf(i,Me),Ce=Pf(f,Se),Te=Tf(c,we),Pe=Tf(l,_e),Ae=Pf(o,C),ke=Pf(u,Z),Be=Af(Ie,Ee),Fe=Af(Ne,ye),ze=Af(Be,Oe),Ye=Af(Fe,Ce),Ve=Af(Te,Ae),Le=Af(Pe,ke),$e=Pf(p,ze),Xe=Pf(h,Ye),je=Pf(a,Ve),qe=Pf(d,Le),We=Af(je,qe),He=Af($e,Xe),De=Af(He,Tf(3,We)),Qe=Pf(g,xe),Re=Pf(v,we),Ge=Af(Qe,Re),Ue=Pf(m,_e),Ze=Af(Ge,Ue),Je=Af(De,Ze),Ke=Af(B,z),tr=Af(q,O),nr=Af(T,M),er=Af(J,U),rr=Af(kf(Ke),q),or=Af(kf(Ke),O),ir=Af(kf(L),k),cr=Af(kf(y),k),sr=Af(nr,T),ur=Af(er,J),fr=Pf(Cf(3,c),sr),lr=Pf(Cf(3,l),ur),ar=Pf(i,C),pr=Pf(f,Z),hr=Pf(v,nr),dr=Pf(m,er),vr=Af(rr,tr),gr=Af(or,tr),mr=Tf(c,vr),br=Tf(l,gr),xr=Pf(i,ir),wr=Pf(f,cr),_r=Pf(r,b),Ir=Pf(s,x),Nr=Af(mr,xr),Mr=Af(br,wr),Sr=Af(fr,ar),Er=Af(lr,pr),yr=Af(tr,Ke),Or=kf(Af(hr,dr)),Cr=Pf(p,Nr),Tr=Pf(h,Mr),Pr=Pf(a,Sr),Ar=Pf(d,Er),kr=Pf(g,yr),Br=Af(Cr,Tr),Fr=Af(Pr,Ar),zr=Af(kr,Or),Yr=Af(_r,Ir),Vr=Af(Br,Fr),Lr=Af(zr,Yr),$r=Af(Vr,Lr),Xr=Af(k,L),jr=Af(k,y),qr=Af(kf(Xr),y),Wr=Af(kf(jr),L),Hr=Tf(c,qr),Dr=Tf(l,C),Qr=Tf(l,Wr),Rr=Tf(c,Z),Gr=Tf(c,C),Ur=Pf(o,_),Zr=Tf(l,Z),Jr=Pf(u,Q),Kr=Af(Hr,Dr),to=Af(Qr,Rr),no=Af(Gr,Ur),eo=Af(Zr,Jr),ro=Pf(a,no),oo=Pf(d,eo),io=Tf(3,Af(ro,oo)),co=Af(Xr,y),so=Af(kf(N),C),uo=Af(kf(G),Z),fo=Pf(p,Kr),lo=Pf(h,to),ao=Pf(g,co),po=Pf(v,so),ho=Pf(m,uo),vo=Pf(o,b),go=Pf(u,x),mo=Af(vo,go),bo=Af(fo,lo),xo=Af(io,ao),wo=Af(po,ho),_o=Af(bo,xo),Io=Af(wo,mo),No=Af(_o,Io),Mo=Af(A,E),So=Tf(c,p),Eo=Tf(l,h),yo=Af(Mo,A),Oo=Af(Mo,E),Co=Pf(i,_),To=Pf(Co,a),Po=Pf(f,Q),Ao=Pf(Po,d),ko=Pf(g,Mo),Bo=Pf(I,v),Fo=Pf(R,m),zo=Af(Bo,Fo),Yo=Pf(i,b),Vo=Pf(f,x),Lo=Af(Yo,Vo),$o=Pf(So,yo),Xo=Pf(Eo,Oo),jo=Af($o,Xo),qo=Tf(3,Af(To,Ao)),Wo=Af(ko,kf(zo)),Ho=Af(jo,qo),Do=Af(Wo,Lo),Qo=Af(Ho,Do),Ro=Tf(c,a),Go=Tf(l,p),Uo=Af(Ro,Go),Zo=Tf(c,h),Jo=Tf(l,d),Ko=Af(Zo,Jo),ti=Af(Uo,v),ni=Af(Ko,m),ei=Pf(_,ti),ri=Pf(Q,ni),oi=Af(ei,ri),ii=Pf(S,g),ci=Af(oi,ii),si=Tf(c,b),ui=Tf(l,x),fi=Af(si,ui),li=Af(ci,fi);return[ht,Et,Jt,Fn,be,Je,$r,No,Qo,Af(li,w)]}]];function Yf(t,n){const{coeffs:e,errBound:r}=Ff[t.length-2][n.length-2](t,n);return{coeffs:e,errBound:r,getPExact:()=>zf[t.length-2][n.length-2](t,n)}}const Vf=134217729;function Lf(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r/i,s=i*c,u=Vf*i,f=u-(u-i),l=i-f,a=Vf*c,p=a-(a-c),h=c-p,d=o*c,v=s+d,g=d-(v-s)+(l*h-(s-f*p-l*p-f*h)),m=v+g,b=(r-m+(e-(g-(m-v))))/i,x=c+b;return[b-(x-c),x]}const $f=Lf,Xf=Number.EPSILON/2,jf=Xf*Xf,qf=x,Wf=x,Hf=x,Df=lr,Qf=fr,Rf=Ir,Gf=b,Uf=Po,Zf=Number.EPSILON/2,Jf=Zf*Zf,Kf=Math.abs,tl=Hf,nl=[0,1],el=Df,rl=Gf,ol=Qf,il=Rf,cl=Uf,sl=function(t,n,e,r){const o=t[0],i=t[1],c=n[0],s=n[1],u=$f(t,n),f=Math.abs(o+i),l=Math.abs(c+s),a=l-Xf*l-r;return a<=0?{est:u,err:Number.POSITIVE_INFINITY}:{est:u,err:(l*e+f*r)/a**2+9*jf*Math.abs(f/l)}},ul=function(t,n){return qf(t,n)[1]>0?n:t},fl=function(t,n){return Wf(t,n)[1]>0?t:n},ll=U(3);function al(t,n){return n[0][0]!==n[1][0]||n[0][1]!==n[1][1]?4===t.length?function([[t,n],[e,r],[o,i],[c,s]],[u,f]){const l=tl(f,u),a=3*Jf*Kf(l[1]),p=tl(nl,u),h=3*Jf*Kf(p[1]),d=sl(l,p,a,h);f=el(d.est,d.err);const v=tl(nl,u),g=ol(u,u),m=ol(u,v),b=ol(v,v),x=ol(g,u),w=ol(g,v),_=ol(b,u),I=ol(b,v),N=tl(nl,f),M=ol(f,f),S=ol(f,N),E=ol(N,N),y=ol(M,f),O=ol(M,N),C=ol(E,f),T=ol(E,N),P=Kf(u[1]),A=Kf(v[1]),k=Kf(g[1]),B=Kf(m[1]),F=Kf(b[1]),z=Kf(x[1]),Y=Kf(w[1]),V=Kf(_[1]),L=Kf(I[1]),$=Kf(f[1]),X=Kf(N[1]),j=Kf(M[1]),q=Kf(S[1]),W=Kf(E[1]),H=Kf(y[1]),D=Kf(O[1]),Q=Kf(C[1]),R=Kf(T[1]);let G=Kf(t),U=Kf(n),Z=Kf(e),J=Kf(r),K=Kf(o),tt=Kf(i),nt=Kf(c),et=Kf(s);const rt=rl(il(c,u),il(o,v)),ot=rl(rl(il(c,g),il(2*o,m)),il(e,b)),it=rl(rl(il(c,x),il(t,I)),il(3,rl(il(o,w),il(e,_)))),ct=rl(ol(ot,f),ol(it,N)),st=rl(rl(ol(rt,M),ol(it,E)),ol(cl(ot),S)),ut=rl(rl(il(c,y),ol(it,T)),il(3,rl(ol(rt,O),ol(ot,C)))),ft=Kf(it[1]),lt=nt*P+K*A,at=nt*k+2*K*B+Z*F;G=nt*z+G*L+3*(K*Y+Z*V),Z=at*$+ft*X,K=lt*j+ft*W+2*at*q,nt=nt*H+ft*R+3*(lt*D+at*Q),G*=11*Jf,Z*=15*Jf,K*=20*Jf,nt*=22*Jf;const pt=rl(il(s,u),il(i,v)),ht=rl(rl(il(s,g),il(2*i,m)),il(r,b)),dt=rl(rl(il(s,x),il(n,I)),il(3,rl(il(i,w),il(r,_)))),vt=rl(ol(ht,f),ol(dt,N)),gt=rl(rl(ol(pt,M),ol(dt,E)),ol(cl(ht),S)),mt=rl(rl(il(s,y),ol(dt,T)),il(3,rl(ol(pt,O),ol(ht,C)))),bt=Kf(dt[1]),xt=et*P+tt*A,wt=et*k+2*tt*B+J*F;U=et*z+U*L+3*(tt*Y+J*V),J=wt*$+bt*X,tt=xt*j+bt*W+2*wt*q,et=et*H+bt*R+3*(xt*D+wt*Q),U*=11*Jf,J*=15*Jf,tt*=20*Jf,et*=22*Jf;const _t=ul(ul(el(it,-G),el(ct,-Z)),ul(el(st,-K),el(ut,-nt))),It=fl(fl(el(it,+G),el(ct,+Z)),fl(el(st,+K),el(ut,+nt)));return[[_t,ul(ul(el(dt,-U),el(vt,-J)),ul(el(gt,-tt),el(mt,-et)))],[It,fl(fl(el(dt,+U),el(vt,+J)),fl(el(gt,+tt),el(mt,+et)))]]}(t,n):3===t.length?function([[t,n],[e,r],[o,i]],[c,s]){const u=tl(s,c),f=3*Jf*Kf(u[1]),l=tl(nl,c),a=3*Jf*Kf(l[1]),p=sl(u,l,f,a);s=el(p.est,p.err);const h=tl(nl,c),d=ol(c,c),v=ol(c,h),g=ol(h,h),m=tl(nl,s),b=ol(s,s),x=ol(s,m),w=ol(m,m),_=Kf(c[1]),I=Kf(h[1]),N=Kf(d[1]),M=Kf(v[1]),S=Kf(g[1]),E=Kf(s[1]),y=Kf(m[1]),O=Kf(b[1]),C=Kf(x[1]),T=Kf(w[1]);let P=Kf(t),A=Kf(n),k=Kf(e),B=Kf(r),F=Kf(o),z=Kf(i);const Y=rl(rl(il(o,d),il(2*e,v)),il(t,g)),V=rl(il(o,c),il(e,h)),L=Y,$=rl(ol(s,V),ol(m,Y)),X=rl(rl(il(o,b),ol(cl(x),V)),ol(w,Y)),j=F*N+2*k*M+P*S,q=F*_+k*I;P=j,k=E*q+y*j,F=O*o+2*C*q+T*j,P*=7*Jf,k*=11*Jf,F*=14*Jf;const W=rl(rl(il(i,d),il(2*r,v)),il(n,g)),H=rl(il(i,c),il(r,h)),D=W,Q=rl(ol(s,H),ol(m,W)),R=rl(rl(il(i,b),ol(cl(x),H)),ol(w,W)),G=z*N+2*B*M+A*S,U=z*_+B*I;A=G,B=E*U+y*G,z=O*i+2*C*U+T*G,A*=7*Jf,B*=11*Jf,z*=14*Jf;const Z=ul(ul(el(L,-P),el($,-k)),el(X,-F)),J=fl(fl(el(L,+P),el($,+k)),el(X,+F));return[[Z,ul(ul(el(D,-A),el(Q,-B)),el(R,-z))],[J,fl(fl(el(D,+A),el(Q,+B)),el(R,+z))]]}(t,n):function([[t,n],[e,r]],[o,i]){const c=tl(i,o),s=3*Jf*Kf(c[1]),u=tl(nl,o),f=3*Jf*Kf(u[1]),l=sl(c,u,s,f);i=el(l.est,l.err);const a=tl(nl,o),p=tl(nl,i),h=Kf(o[1]),d=Kf(a[1]),v=Kf(i[1]),g=Kf(p[1]);let m=Kf(t),b=Kf(n),x=Kf(e),w=Kf(r);const _=rl(il(e,o),il(t,a)),I=rl(il(e,i),ol(_,p));m=x*h+m*d,x=x*v+m*g,m*=3*Zf,x*=7*Zf;const N=rl(il(r,o),il(n,a)),M=rl(il(r,i),ol(N,p));b=w*h+b*d,w=w*v+b*g,b*=3*Zf,w*=7*Zf;const S=ul(el(_,-m),el(I,-x)),E=fl(el(_,+m),el(I,+x));return[[S,ul(el(N,-b),el(M,-w))],[E,fl(el(N,+b),el(M,+w))]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n[0]&&0===n[1]){const t=[0,e[0]],n=[0,e[1]];return[[t,n],[t,n]]}if(0===n[0]&&1===n[1]){const t=[0,r[0]],n=[0,r[1]];return[[t,n],[t,n]]}const o=gr(t,n);let i;if(4===t.length)i=xo(t,n).map(t=>16*ll*t);else if(3===t.length)i=xo(t,n).map(t=>10*ll*t);else if(2===t.length)i=xo(t,n).map(t=>4*ll*t);else if(1===t.length)return[o,o];return[[el(o[0],-i[0]),el(o[1],-i[1])],[el(o[0],+i[0]),el(o[1],+i[1])]]}(t,n[0])}function pl(t){return(n,e)=>{let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;return(o[1]>c[1]||o[1]===c[1]&&o[0]>c[0])&&([o,c]=[c,o]),(u[1]>l[1]||u[1]===l[1]&&u[0]>l[0])&&([u,l]=[l,u]),(r[1]>i[1]||r[1]===i[1]&&r[0]>i[0])&&([r,i]=[i,r]),(s[1]>f[1]||s[1]===f[1]&&s[0]>f[0])&&([s,f]=[f,s]),t?(r[1]<f[1]||r[1]===f[1]&&r[0]<=f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>=s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<=c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>=o[0]):(r[1]<f[1]||r[1]===f[1]&&r[0]<f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>o[0])}}function hl(t){return[((n=t.x.box)[0][0]+n[1][0])/2,(n[0][1]+n[1][1])/2];var n}function dl(t,n){const e=Yf(t,n);if(void 0===e)return;const{coeffs:r,errBound:o,getPExact:i}=e,c=ho(r,0,1,o,i);return 0!==c.length?{ris:c.map(yc),getPExact:i}:void 0}function vl(t){return{tS:ht(t.tS),tE:ht(t.tE),multiplicity:t.multiplicity}}function gl(t,n){const e=dl(t,n);if(void 0===e)return[];const{getPExact:r}=e;let o,{ris:i}=e;const c=()=>(o=o||r(),o),s=dl(n,t);if(void 0===s)return[];let{ris:u}=s;const{getPExact:f}=s;let l;const a=()=>(l=l||f(),l);let p;p=1;let h,d=0;t:for(;d<p;){h=u.map(n=>al(t,[n.tS,n.tE]));for(let t=0;t<u.length;t++){const n=h[t];for(let e=t+1;e<u.length;e++){const t=h[e];if(pl(!0)(n,t)){const t=[];for(const n of u)t.push(...Li({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},a()));u=t,d++;continue t}}}break t}p=1;let v,g=0;t:for(;g<p;){v=i.map(t=>al(n,[t.tS,t.tE]));for(let t=0;t<i.length;t++){const n=v[t];for(let e=t+1;e<i.length;e++){const t=v[e];if(pl(!0)(n,t)){const t=[];for(const n of i)t.push(...Li({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},c()));i=t,g++;continue t}}}break t}const m=[];for(let t=0;t<u.length;t++){const n=h[t];for(let e=0;e<i.length;e++){const o=v[e];if(pl(!0)(n,o)){const c={compensated:d,ri:vl(u[t]),riExp:d?u[t]:void 0,getPExact:d?void 0:f,kind:1,box:ml(n)},s={compensated:g,ri:vl(i[e]),riExp:g?i[e]:void 0,getPExact:g?void 0:r,kind:1,box:ml(o)};m.push({psX:c,sideX:s})}}}return m}function ml(t){return t.map(t=>t.map(ht))}function bl(t,n){return function(t,n){const e=t.xs,r=[],o=new Map;for(const t of e){const n=t.curve,e=o.get(n);e?e.push(t):o.set(n,[t])}const i=function(t){const[[n,e],[r,o]]=t.box,i=[[[r,e],[n,e]],[[n,e],[n,o]],[[n,o],[r,o]],[[r,o],[r,e]]];return(n,e,r)=>{const o=n.ps,c=e.slice();for(let t=0;t<i.length;t++){const n=gl(o,i[t]);for(const{psX:e,sideX:r}of n)c.push({x:e,side:t,sideX:r,curve:void 0})}c.sort((t,n)=>t.x.ri.tS-n.x.ri.tS);const s=[],u=[];let f,l;for(const n of c)void 0!==n.side?(!0===l&&(u.push({idx:++r,dir:1,p:hl(n),_x_:f,container:t,side:n.side,sideX:n.sideX,loopsIdxs:new Set,children:new Set,windingNum:0,orientation:0}),f.out=u[u.length-1]),l=!1):(!1===l&&(s.push({idx:++r,dir:-1,p:hl(f),_x_:n,container:t,side:f.side,sideX:f.sideX,loopsIdxs:new Set,children:new Set,windingNum:0,orientation:0}),n.in_=s[s.length-1]),l=!0),f=n;return{ins:s,outs:u,ioIdx:r}}}(t);for(const t of o){const[e,o]=t;let c,s;({ins:c,outs:s,ioIdx:n}=i(e,o,n)),r.push(...c),r.push(...s)}return{inOuts:r,ioIdx:n}}(t,n)}function xl(t,n,e,r){const o=[];for(const r of t)o.push({type:-1,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(wl);const i=new Set,c=[];for(const t of o){const{item:n,type:e}=t;if(-1===e){for(const t of i){const e=r(n,t);e&&c.push({a:n,b:t,u:e})}i.add(n)}else 1===e&&i.delete(n)}return c}function wl(t,n){const e=t.x-n.x;return 0!==e?e:t.type}function _l(t,n){const e=n[0]-t[0],r=n[1]-t[1];return e*e+r*r}function Il(t,n,e){const r=n[0]-t[0],o=n[1]-t[1];return r*(e[0]-n[0])+o*(e[1]-n[1])}const Nl=function(t,n){if(0===t.length)return;const e=t.slice(),r=function(t){let n,e=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY];for(let r=0;r<t.length;r++){const o=t[r][1];(o<e[1]||o===e[1]&&t[r][0]<e[0])&&(n=r,e=t[r])}return n}(e),[o]=e.splice(r,1);e.sort((t,n)=>{let e=-gt(o,t,n);return 0!==e?e:(e=t[1]-n[1],0!==e?e:t[0]-n[0])}),e.unshift(o);const i=function(t){const n=[t[0]],e=t.length;for(let r=1;r<t.length;r++){const o=t[(r+e-1)%e],i=t[r];o[0]===i[0]&&o[1]===i[1]||n.push(i)}return n}(e),c=[];for(const t of i){for(;c.length>=2&&gt(c[c.length-2],c[c.length-1],t)<0;)c.pop();c.push(t)}if(n||c.length<3)return c;const s=[];{const t=c.length;for(let n=0;n<t;n++){const e=(n+1)%t,r=c[(n+t-1)%t],o=c[n],i=c[e];(0!==gt(r,o,i)||Il(r,o,i)<0)&&s.push(o)}}return s},Ml=b,Sl=q,El=k,yl=H,Ol=ht,Cl=fr,Tl=Pi,Pl=Math.abs,Al=U(3);const kl=Math.abs;const Bl=Math.abs,Fl=fr,zl=b,Yl=q,Vl=k,Ll=H,$l=ht,Xl=Pi,jl=Math.abs,ql=G(1),Wl=U(3);function Hl(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓ:n,vₓᵧ:e,vᵧᵧ:r,vₓ:o,vᵧ:i,v:f}=function(t){const[[n,e,r],[o,i,c]]=Zi(t),s=n*i-e*o,u=n*c-r*o;return{vₓₓ:-o*o,vₓᵧ:2*n*o,vᵧᵧ:-n*n,vₓ:i*s-2*o*u,vᵧ:2*n*u-e*s,v:s*(e*c-r*i)-u*u}}(t),{vₓₓ_:l,vₓᵧ_:a,vᵧᵧ_:p,vₓ_:h,vᵧ_:d,v_:v}=function(t){const[n,e]=t[0],[[r,o],[i,c]]=function(t){const[[n,e],[r,o],[i,c]]=t,s=kl(n),u=kl(r),f=kl(i),l=kl(e),a=kl(o);return[[f+s+2*u,2*(u+s),0],[kl(c)+l+2*a,2*(a+l),0]]}(t),s=Bl(n),u=Bl(e),f=r*c+o*i,l=r*u+s*i;return{vₓₓ_:i*i,vₓᵧ_:2*r*i,vᵧᵧ_:r*r,vₓ_:c*f+2*i*l,vᵧ_:2*r*l+o*f,v_:f*(o*u+s*c)+l*l}}(t),g=u?0:1,m=jl(c),b=jl(s);if((g+12)*ql*(l*(m*m)+a*(m*b)+p*(b*b)+(h*m+d*b)+v)<jl(n*c*c+e*c*s+r*s*s+(o*c+i*s)+f))return!1}{const{coeffs:{vₓₓ:n,vₓᵧ:o,vᵧᵧ:i,vₓ:u,vᵧ:f,v:l},errorBound:{vₓₓ_:a,vₓᵧ_:p,vᵧᵧ_:h,vₓ_:d,vᵧ_:v,v_:g}}=Kc(t),m=Xl(e),b=Xl(r),x=jl(c),w=jl(s),_=x/3,I=w/3,N=Fl(m,m),M=N[1],S=2*(x*_+M),E=Fl(b,b),y=E[1],O=2*(w*I+y),C=Fl(m,b),T=jl(C[1]),P=x*I+_*w+2*T,A=Fl(n,N),k=jl(n[1])*S+a*M+2*jl(A[1]),B=Fl(o,C),F=jl(o[1])*P+p*T+2*jl(B[1]),z=Fl(i,E),Y=jl(i[1])*O+h*y+2*jl(z[1]),V=Fl(m,u),L=jl(u[1])*_+d*x+2*jl(V[1]),$=Fl(b,f),X=jl(f[1])*I+v*w+2*jl($[1]),j=zl(A,B),q=k+F+jl(j[1]),W=zl(j,z),H=q+Y+jl(W[1]),D=zl(V,$),Q=L+X+jl(D[1]),R=zl(W,D),G=H+Q+jl(R[1]),U=zl(R,l),Z=G+g+jl(U[1]);if(Wl*Z<jl($l(U)))return!1}{const n=function(t){return wu(Bt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓ:o,vₓᵧ:i,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=n,h=Vl(Vl(Vl(Yl(o,Yl(e,e)),Yl(i,Yl(e,r))),Yl(f,Yl(r,r))),Vl(Vl(Yl(e,l),Yl(r,a)),p));return 0===Ll(h)}}const Dl=Math.abs,Ql=fr,Rl=b,Gl=q,Ul=k,Zl=H,Jl=ht,Kl=Pi,ta=Math.abs,na=G(1),ea=U(3);function ra(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓₓ:n,vₓₓᵧ:e,vₓᵧᵧ:r,vᵧᵧᵧ:o,vₓₓ:i,vₓᵧ:f,vᵧᵧ:l,vₓ:a,vᵧ:p,v:h}=function(t){const[[n,e,r,o],[i,c,s,u]]=Ui(t),f=n*s,l=r*i,a=n*c,p=e*i,h=n*n,d=i*i,v=n*u-o*i,g=f-l,m=a-p,b=e*u-o*c,x=e*s-r*c,w=r*u-o*s,_=2*g,I=v*v,N=v*x,M=_*b,S=m*b,E=-3*v-x,y=-3*I-2*N+(M+m*w),O=2*(v*g-S),C=v*m-g*g+m*x;return{vₓₓₓ:-i*d,vₓₓᵧ:3*n*d,vₓᵧᵧ:-3*i*h,vᵧᵧᵧ:n*h,vₓₓ:E*d+m*(s*i-c*c)+_*c*i,vₓᵧ:2*(m*(e*c-(l+f)/2)-(E*n*i+g*(p+a))),vᵧᵧ:E*h+m*(r*n-e*e)+_*e*n,vₓ:i*y+(c*O+s*C),vᵧ:-n*y-(e*O+r*C),v:v*(M-I-N)+(C*w-S*b)}}(t),{vₓₓₓ_:d,vₓₓᵧ_:v,vₓᵧᵧ_:g,vᵧᵧᵧ_:m,vₓₓ_:b,vₓᵧ_:x,vᵧᵧ_:w,vₓ_:_,vᵧ_:I,v_:N}=function(t){const[n,e]=t[0],[[r,o,i],[c,s,u]]=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=kl(n),l=kl(r),a=kl(i),p=kl(s),h=kl(e),d=kl(o),v=kl(c);return[[p+f+3*(l+a),3*(a+f+2*l),3*(l+f),0],[kl(u)+h+3*(d+v),3*(v+h+2*d),3*(d+h),0]]}(t),f=Dl(n),l=Dl(e),a=r*u,p=i*c,h=r*s,d=o*c,v=r*r,g=c*c,m=r*l+f*c,b=a+p,x=h+d,w=o*l+f*s,_=o*u+i*s,I=i*l+f*u,N=2*b,M=m*m,S=m*_,E=N*w,y=x*w,O=3*m+_,C=3*M+2*S+(E+x*I),T=2*(m*b+y),P=m*x+b*b+x*_;return{vₓₓₓ_:c*g,vₓₓᵧ_:3*r*g,vₓᵧᵧ_:3*c*v,vᵧᵧᵧ_:r*v,vₓₓ_:O*g+x*(u*c+s*s)+N*s*c,vₓᵧ_:2*(x*(o*s+(p+a)/2)+(O*r*c+b*(d+h))),vᵧᵧ_:O*v+x*(i*r+o*o)+N*o*r,vₓ_:c*C+(s*T+u*P),vᵧ_:r*C+(o*T+i*P),v_:m*(E+M+S)+(P*I+y*w)}}(t),M=c*c,S=s*s,E=n*(M*c)+e*(M*s)+(r*(c*S)+o*(S*s))+(i*M+f*(c*s)+l*S)+(a*c+p*s+h),y=u?0:1,O=ta(c),C=ta(s),T=O*O,P=C*C;if((y+26)*na*(d*(T*O)+v*(T*C)+(g*(O*P)+m*(P*C))+(b*T+x*(O*C)+w*P)+(_*O+I*C+N))<ta(E))return!1}{const{coeffs:{vₓₓₓ:n,vₓₓᵧ:o,vₓᵧᵧ:i,vᵧᵧᵧ:u,vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d},errorBound:{vₓₓₓ_:v,vₓₓᵧ_:g,vₓᵧᵧ_:m,vᵧᵧᵧ_:b,vₓₓ_:x,vₓᵧ_:w,vᵧᵧ_:_,vₓ_:I,vᵧ_:N,v_:M}}=ds(t),S=ta(n[1]),E=ta(o[1]),y=ta(i[1]),O=ta(u[1]),C=Kl(e),T=Kl(r),P=ta(c),A=ta(s),k=P/3,B=A/3,F=Ql(C,C),z=F[1],Y=2*(P*k+z),V=Ql(C,F),L=ta(V[1]),$=P*Y+k*z+2*L,X=Ql(T,T),j=X[1],q=2*(A*B+j),W=Ql(T,X),H=ta(W[1]),D=A*q+B*j+2*H,Q=Ql(T,F),R=ta(Q[1]),G=A*Y+B*z+2*R,U=Ql(C,X),Z=ta(U[1]),J=P*q+k*j+2*Z,K=Ql(C,T),tt=ta(K[1]),nt=P*B+k*A+2*tt,et=Ql(n,V),rt=S*$+v*L+2*ta(et[1]),ot=Ql(o,Q),it=E*G+g*R+2*ta(ot[1]),ct=Ql(i,U),st=y*J+m*Z+2*ta(ct[1]),ut=Ql(u,W),ft=O*D+b*H+2*ta(ut[1]),lt=Ql(f,F),at=ta(f[1])*Y+x*z+2*ta(lt[1]),pt=Ql(l,K),ht=ta(l[1])*nt+w*tt+2*ta(pt[1]),dt=Ql(a,X),vt=ta(a[1])*q+_*j+2*ta(dt[1]),gt=Ql(C,p),mt=ta(p[1])*k+I*P+2*ta(gt[1]),bt=Ql(T,h),xt=ta(h[1])*B+N*A+2*ta(bt[1]),wt=Rl(et,ot),_t=rt+it+ta(wt[1]),It=Rl(ct,ut),Nt=st+ft+ta(It[1]),Mt=Rl(wt,It),St=_t+Nt+ta(Mt[1]),Et=Rl(lt,pt),yt=at+ht+ta(Et[1]),Ot=Rl(Et,dt),Ct=yt+vt+ta(Ot[1]),Tt=Rl(Mt,Ot),Pt=St+Ct+ta(Tt[1]),At=Rl(gt,bt),kt=mt+xt+ta(At[1]),Bt=Rl(At,d),Ft=kt+M+ta(Bt[1]),zt=Rl(Tt,Bt),Yt=Pt+Ft+ta(zt[1]);if(ea*Yt<ta(Jl(zt)))return!1}{const n=function(t){return qu(kt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓₓ")||(n.vₓₓₓ=[0],n.vₓₓᵧ=[0],n.vₓᵧᵧ=[0],n.vᵧᵧᵧ=[0]),n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓₓ:o,vₓₓᵧ:i,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=n,m=Gl(e,e),b=Gl(e,m),x=Gl(r,r),w=Gl(r,x),_=Gl(r,m),I=Gl(e,x),N=Gl(e,r),M=Gl(o,b),S=Gl(i,_),E=Gl(f,I),y=Gl(l,w),O=Gl(a,m),C=Gl(p,N),T=Gl(h,x),P=Gl(e,d),A=Gl(r,v),k=Ul(M,S),B=Ul(E,y),F=Ul(k,B),z=Ul(O,C),Y=Ul(z,T),V=Ul(F,Y),L=Ul(P,A),$=Ul(L,g),X=Ul(V,$);return 0===Zl(X)}}function oa(t,n){const{coeffs:e,errBound:r,getPExact:o}=Yf(t,n);return ho(e,0,1,r,o,!0)}const ia=Math.min,ca=Math.max;function sa(t,n){let[[e,r],[o,i]]=t,[[c,s],[u,f]]=n;if(e>o&&([e,o]=[o,e]),c>u&&([c,u]=[u,c]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]),e<=u&&o>=c&&s<=i&&f>=r)return[[ca(e,c),ca(r,s)],[ia(o,u),ia(i,f)]]}function ua(t,n,e){if(void 0===e)return;if(0===e.length)return[];const r=oa(n,t);if(void 0===r)return;if(0===r.length)return[];const o=r.map(n=>Mo(t,[n.tS,n.tE])),i=e.map(t=>Mo(n,[t.tS,t.tE])),c=[];for(let t=0;t<r.length;t++){const n=o[t];for(let o=0;o<e.length;o++){const s=sa(n,i[o]);if(void 0!==s){const n={ri:r[t],box:s,kind:1},i={ri:e[o],box:s,kind:1};c.push([n,i])}}}return c}function fa(t,n,e){for(const r of[t,n]){const o=r.length;for(let i=1;i<o+1;i++){const c=r[i-1],s=r[i%o],u=[s[1]-c[1],c[0]-s[0]];let f=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let n=0;n<t.length;n++){const e=u[0]*t[n][0]+u[1]*t[n][1];e<f&&(f=e),e>l&&(l=e)}let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(let t=0;t<n.length;t++){const e=u[0]*n[t][0]+u[1]*n[t][1];e<a&&(a=e),e>p&&(p=e)}if(e&&(l<a||p<f))return!1;if(!e&&(l<=a||p<=f))return!1}}return!0}function la(t){return 4===t.length&&pt(t)&&(t=Fu(t)),3===t.length&&rt(t)&&(t=[t[0],t[2]]),2===t.length&&Z(t)&&(t=[t[0]]),t}const aa=Number.EPSILON,pa=aa/2;function ha(t,n){return n<0?t<1?t:1-pa:0===n?1:t>1?t:1+aa}function da(t){const n=function(t){const n=new ArrayBuffer(8);return new DataView(n).setFloat64(0,t,!1),Array.from(new Uint8Array(n))}(t),e=n[0],r=n[1],o=e>>7,i=((127&e)<<4)+((240&r)>>4),c=0===i?0:16,s=0===i?i-1022:i-1023,u=n.slice(1);return u[0]=(15&r)+c,{sign:o,exponent:s,significand:u}}function va(t){return da(t).significand}function ga(t){return Math.log2(t&-t)}function ma(t){if(0===t||!Number.isFinite(t))return NaN;const n=va(t),e=n.length;for(let t=e-1;t>=0;t--){if(0===n[t])continue;const r=ga(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function ba(t){return t>=128?7:t>=64?6:t>=32?5:t>=16?4:t>=8?3:t>=4?2:t>=2?1:t>=1?0:NaN}function xa(t){if(0===t||!Number.isFinite(t))return NaN;const n=va(t),e=n.length;for(let t=0;t<e;t++){const r=ba(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function wa(t){return da(t).exponent}function _a(t){if(0===t||!Number.isFinite(t))return NaN;const n=wa(t);return xa(t)-52+n}function Ia(t,n){const e=(2**(53-n)+1)*t;return e-(e-t)}const Na=H,Ma=vt;function Sa(t){return 0===t?0:xa(t)-ma(t)+1}const Ea=q,ya=function(t,n){if(t=Ma(t),0===Na(t))return[0];const e=_a(t[t.length-1]);let r=e,o=t.length-1;for(;o>0;){const i=_a(t[o-1]);if(e-i>n)break;r=i,o--}const i=Math.min(n-(e-r),53);let c=t[o];c=Ia(c,i);const s=t.slice(o);return s[0]=c,s},Oa=function(t){const n=vt(t);if(0===H(n))return 0;const e=n[n.length-1],r=n[0];return wa(e)-wa(r)+(53-ma(r))},Ca=Y,Ta=ht;function Pa(t){return ht(function(t,n,e){let r=n,o=t,i=!1,c=0;e||(c=Oa(o)-Oa(r)+1,e=c/53+1,i=!0);let s=[1/Ta(r)],u=1;for(;;){if(o=Ea(o,s),u>e)return i?(o=ya(o,c),o):o.slice(o.length-e,o.length);r=Ea(r,s),s=Ca([2],r),u*=2}}(t[0],t[1],2))}function Aa(t){return H(t[0])*H(t[1])}function ka(t){return(n,e)=>{const r=At(n),o=At(e),i=At(n.slice().reverse()),c=At(e.slice().reverse()),s=t(r,o),u=t(i,o),f=t(r,c),l=t(i,c),a=-Aa(u),p=-Aa(l),h=Pa(s),d=Pa(f);return[ha(h,a),ha(d,p)]}}const Ba=ka(function(t,n){const e=0===H(t[0][0])?1:0;return function(t,n){const[e,r]=t,[,o]=n;return[Y(o,r),e]}(t[e],n[e])});function Fa(t,n){return D(q(t[0],n[1]),q(t[1],n[0]))*H(t[1])*H(n[1])}const za=wa,Ya=Sa;function Va(t){let n=-1024;for(let e=0;e<t.length;e++){const r=t[e];for(let t=0;t<r.length;t++){const e=r[t];if(0===e)continue;const o=-za(e)+Ya(e)-1;o>n&&(n=o)}}return 0===n?t.map(t=>t.map(t=>BigInt(t))):n>0?t.map(t=>t.map(t=>{if(0===t)return 0n;const e=-za(t)+Ya(t)-1;return BigInt(t*2**e)*2n**BigInt(n-e)})):t.map(t=>t.map(t=>BigInt(t*2**n)))}function La(t,n){if(n=n<0n?-n:n,0n===(t=t<0n?-t:t))return n;if(0n===n)return t;for(;0n!==n;){const e=n;n=t%n,t=e}return t}const $a=BigInt(2**53);function Xa(t){if(0n===t)return[0];const n=[];let e=0,r=t;for(;0n!==r;){r=t/$a;const o=t%$a;n.push(Number(o)*2**(53*e)),t=r,e++}return vt(n)}const{round:ja,sqrt:qa}=Math;function Wa(t){if(t<=1n){if(t<0n)throw new Error("square root of negative numbers are not allowed");return t}let n=BigInt(ja(qa(Number(t))));for(;;){const e=n+t/n>>1n;if(e===n)return n;n=e}}function Ha(t){return t<0n?-t:t}function Da(t){let n=0n;for(let e=0;e<t.length;e++)n+=t[e];return n}function Qa(t,n){const[e,r]=Ra(t[0],n[0]),[o,i]=Ra(t[1],n[1]);if(0===Fa(e,o)||0===Fa(e,i))return e;if(0===Fa(r,o)||0===Fa(r,i))return r;throw new Error("An unexpected error occured.")}function Ra(t,n){const[e,r]=t,[o,i]=n,[c,s]=function(t){const[n,e]=Va(t).map(Da),r=La(n,e);return[Xa(Wa(Ha(n/r))),Xa(Wa(Ha(e/r)))]}([o,e]);return[[Y(q(i,s),q(r,c)),q(c,ti(e))],[Y(q(i,B(s)),q(r,c)),q(c,ti(e))]].sort(Fa)}function Ga(t,n){const e=At(t),r=0===H(e[0][0])?0:0===H(e[1][0])?1:-1;if(-1!==r){const e=t[0][r],o=t[2][r],i=n[0][r],c=n[2][r];return Ba([[e,e],[o,o]],[[i,i],[c,c]])}return ka(Qa)(t,n)}const{round:Ua,cbrt:Za}=Math;function Ja(t){const n=(e=t)>0n?1n:e<0n?-1n:0n;var e;if((t=Ha(t))<=1n)return n*t;let r=BigInt(Ua(Za(Number(t))));for(;;){const e=(2n*r+t/(r*r))/3n;if(e===r)return n*r;r=e}}function Ka(t){return q(t,t)}const tp=ka(function(t,n){const e=0===H(t[0][0])?1:0;return function(t,n){const[e,r]=t,[o,i]=n,c=function(t){const[n,e]=Va(t).map(Da),r=La(n,e);return[Xa(Ja(n/r)),Xa(Ja(e/r))]}([o,e]),s=Ka(c[0]);return[Y(q(i,Ka(c[1])),q(r,s)),q($(3,e),s)]}(t[e],n[e])}),{EPSILON:np}=Number,ep=np/2+np**2/2;function rp(t){return t>0?t-t*ep:t+t*ep}const{EPSILON:op}=Number,ip=op/2+op**2/2;function cp(t){return t>0?t+t*ip:t-t*ip}function sp(t){if(0===t||1===t)return[t,t];const n=rp(rp(t)),e=function(t){return cp(cp(t))}(t);return[n,e]}function up(t,n,e,r){const o=t.ps,i=n.ps,c=[];let s=oa(o,i);if(void 0===s){const r=2**(e-47),s=function(t,n,e=!1){e||(t=la(t),n=la(n));const r=[,,Ba,Ga,tp],[o,i]=r[t.length](t,n),[c,s]=r[t.length](n,t),u=[{tA:o,tB:0,bez:"B",start:!0},{tA:i,tB:1,bez:"B",start:!1},{tA:0,tB:c,bez:"A",start:!0},{tA:1,tB:s,bez:"A",start:!1}].sort((t,n)=>t.tA-n.tA);if(u[1].tA===u[2].tA){const n=u[1],e=n.tA,r=n.tB,o=Mo(t,[e,e]);return[{p:o[0],kind:4,box:o,t1:e,ri1:{tS:e,tE:e,multiplicity:1},t2:r,ri2:{tS:r,tE:r,multiplicity:1}}]}if(u[0].bez===u[1].bez)return[];const f=u[1],l=u[2],[a,p]=sp(f.tA),[h,d]=sp(f.tB),[v,g]=sp(l.tA),[m,b]=sp(l.tB),x=Mo(t,[a,p]),w=Mo(n,[h,d]),_=Mo(t,[v,g]),I=Mo(n,[m,b]),N=sa(x,w),M=sa(_,I),S={tS:a,tE:p,multiplicity:1},E={tS:h,tE:d,multiplicity:1},y={tS:v,tE:g,multiplicity:1},O={tS:m,tE:b,multiplicity:1};return[{p:So(N),kind:5,box:N,t1:go(S),ri1:S,t2:go(E),ri2:E},{p:So(M),kind:5,box:M,t1:go(y),ri1:y,t2:go(O),ri2:O}]}(o,i);for(const e of s){const i=mo(o,e.ri1.tS),s=[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]],u={x:{ri:e.ri1,kind:5,box:s},curve:t},f={x:{ri:e.ri2,kind:5,box:s},curve:n};c.push([u,f])}return c}if(r&&(s=s.filter(t=>t.tS>0)),0===s.length)return[];const u=ua(o,i,s);if(void 0===u||0===u.length)return[];for(const e of u){const r={x:e[0],curve:t},o={x:e[1],curve:n};c.push([r,o])}return c}const fp=mo,lp=xo,ap=G(1);function pp(t,n,e){const r=n.ps;if(0===t)return r[0],{x:{ri:{tS:t,tE:t,multiplicity:1},box:[r[0],r[0]],kind:e},curve:n};if(1===t){const o=r[r.length-1];return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[o,o],kind:e},curve:n}}const{p:o,pE:i}=function(t,n){const e=fp(t,n),r=lp(t,[0,n]);if(4===t.length)return{p:e,pE:r.map(t=>9*ap*t)};if(3===t.length)return{p:e,pE:r.map(t=>6*ap*t)};if(2===t.length)return{p:e,pE:r.map(t=>3*ap*t)};if(1===t.length)return{p:t[0],pE:[0,0]};throw new Error("The given bezier curve must be of order <= 3.")}(r,t);return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]],kind:e},curve:n}}function hp(t,n){if(n.next===t){if(t.next===n)return;[t,n]=[n,t]}const e=t.ps,r=n.ps;if(function(t,n){if(4===t.length)return ra(t,n);if(3===t.length)return Hl(t,n);if(2===t.length)return function(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{coeffs:{vₓ:n,vᵧ:o,v:i},errorBound:{v_:u}}=$c(t),f=Tl(e),l=Tl(r),a=Pl(c),p=Pl(s),h=Pl(n[1]),d=Pl(o[1]),v=a/3,g=p/3,m=n[1]*c,b=Cl(f,n),x=h*v+2*Pl(m),w=o[1]*s,_=Cl(l,o),I=d*g+2*Pl(w),N=Ml(b,_),M=x+I+Pl(N[1]),S=Ml(N,i),E=M+u+Pl(S[1]);if(Al*E<Pl(Ol(S)))return!1}{const n=function(t){return lu(Ft(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];const{vₓ:o,vᵧ:i,v:f}=n,l=Sl(e,o),a=Sl(r,i),p=El(El(l,a),f);return 0===yl(p)}}(t,n);if(1===t.length){const e=vt(n[0]),r=vt(n[1]);return 1===e.length&&1===r.length&&e[0]===t[0][0]&&r[0]===t[0][1]}throw new Error("The given bezier curve must be of order <= 3")}(e,r[r.length-1].map(t=>[t]))){const i=ua(e,r,[(o=1,{tS:o,tE:o,multiplicity:1})]);if(void 0===i||0===i.length)return;return[[{x:i[0][0],curve:t},pp(1,n,1)]]}var o}const dp=B;function vp(t){return t[t.length-1]<0?dp(t):t}Number.EPSILON;const gp=Number.EPSILON/2;function mp(t,n,e,r){const o=t/n,i=Math.abs(t),c=Math.abs(n),s=c-r;return s<=0?{est:o,err:Number.POSITIVE_INFINITY}:{est:o,err:(c*e+i*r)/s**2+gp*Math.abs(i/c)}}const bp=Y,xp=q,wp=$,_p=P,Ip=A,Np=Dc,Mp=b,Sp=Po,Ep=Lf,yp=k,Op=W,Cp=2*Number.EPSILON,Tp=Math.abs,Pp=G(1);function Ap(t,n=!0){if(t.length<4)return[];const{coeffs:[e,r,o],errBound:[i,c,s]}=Et(t);if(Tp(e)<=i){const[[n,e],[r,o],[i,c],[s,u]]=t,f=yp(_p(s,n),wp(3,_p(r,i))),l=Op(Ip(i,n),-2*r),a=yp(_p(u,e),wp(3,_p(o,c))),p=Op(Ip(c,e),-2*o);if(0===D(xp(l,a),xp(f,p)))return[]}const u=r*r,f=4*e*o,l=u-f,a=2*c*Tp(r)+Pp*u+(4*(i*Tp(o)+Tp(e)*s)+Pp*Tp(f))+Pp*Tp(l);if(l<-a)return[];if(l>a){const{est:t,err:u}=function(t,n){if(t-n<=0){const e=t>0?Math.sqrt(t):0;return{est:e,err:Math.max(Math.sqrt(t+n)-e,e)}}const e=Math.sqrt(t),r=Math.sqrt(t-n),o=Math.sqrt(t+n);return{est:e,err:Math.max(Math.abs(r-e),Math.abs(o-e))}}(l,a);let f;f=r>=0?-r-t:-r+t;const p=c+u+Pp*Tp(f),{est:h,err:d}=mp(f,2*e,p,2*i),{est:v,err:g}=mp(2*o,f,2*s,p);if(n){if(h+d<0||h-d>1||v+g<0||v-g>1)return[]}else if((h+d<0||h-d>1)&&(v+g<0||v-g>1))return[]}let[p,h,d]=Lt(t);const v=bp(xp(h,h),wp(4,xp(p,d))),g=H(v);if(g<0)return[];if(g>0){const t=function(t){const n=t[0],e=t[1];if(0===e)return[0,0];const r=Math.sqrt(e),o=r*r,i=134217729*r,c=i-(i-r),s=r-c,u=.5*(e-o-(s*s-(o-c*c-c*s*2))+n)/r;return[u-(r+u-r),r+u]}(Pi(v));let e;p=Pi(p),h=Pi(h),d=Pi(d),e=H(h)>=0?Np(Mp(h,t)):Mp(Np(h),t);let r=ht(Ep(e,Sp(p))),o=ht(Ep(Sp(d),e));if(n){if(r<-Cp||r>1+Cp||o<-Cp||o>1+Cp)return[]}else if((r<-Cp||r>1+Cp)&&(o<-Cp||o>1+Cp))return[];return[r,o]=r<o?[r,o]:[o,r],r>=0-Cp&&r<=1+Cp?o>=0-Cp&&o<=1+Cp?[r,o]:[r]:o>=0-Cp&&o<=1+Cp?[o]:[]}const m=ni(p);if(H(h)*H(m)<0)return[];if(D(vp(h),vp(m))>0)return[];const b=Pi(h),x=Pi(m),w=Ep(b,x),_=w[1]+w[0];return[_,_]}const kp=Number.EPSILON;function Bp(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i)),6*(i+n-2*r)],[6*(u-e+3*(o-c)),6*(c+e-2*o)]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[2*(i-2*r+n)],[2*(c-2*o+e)]]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}function Fp(t){if(bt(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&pt(t)&&(t=Fu(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=i-r,u=s-(r-n),f=c-o,l=f-(o-e);return[u*u+l*l,-(n*(u-r)-r*(s-r)+e*(l-o)-o*(f-o))]}(t);return{minima:[],maxima:kn(n,0,1),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=jn(t),[[s,u],[f,l]]=Bp(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i))],[6*(u-e+3*(o-c))]]}if(t.length<=3)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=a*i,d=p*e,v=u*c,g=u*i,m=f*f,b=s*c,x=l*r,w=l*e,_=f*r,I=r*e,N=r*n,M=r*o,S=e*e,E=e*n,y=e*i,O=n*c,C=n*o,T=n*n,P=c*i,A=c*o,k=i*i,B=i*o,F=o*o,z=a*c-p*r,Y=u*r+l*c,V=v-x,L=r*r+c*c,$=y+O,X=A+k,j=N+S,q=e*o+n*i,W=T-F,H=E-B,D=I-P,Q=r*i+e*c,R=A+X,G=N+j,U=M+$,Z=y+$,J=G-R,K=$+O,tt=M+y+O,nt=2*w+_;return{inflectionPoly:[s*o-f*n,u*o+s*i-l*n-f*e,g+b-w-_,v-x],otherExtremaPoly:[T*(h-3*d)+F*(3*h-d)+2*(C*(a*e-p*i+3*(l*f-u*s))+3*s*f*H)+3*(q*(m-s*s)+W*(u*f+l*s)),a*(o*(G+3*X)+n*Z)-p*(r*(3*T+F)+e*(3*E+2*B)+n*R)+3*(u*(l*W-u*C+2*(f*H-s*q))+s*(2*l*H+f*(2*(N-A)+(S-k))-s*tt)+l*(l*C+2*f*q)+m*U),a*(2*r*q+e*K+i*(4*A+R))-p*(2*r*(3*E+B)+e*(S+2*A)+i*K)+3*(u*(2*(l*H-s*tt)+f*J-u*q)+s*(2*f*D-s*Q)+l*(l*q+2*f*U+s*J)+m*Q),a*(r*(M+2*$)+c*(S+3*X))-p*(r*(3*j+R)+c*Z)+3*(u*(l*J-u*U+2*(f*D-s*Q))+s*(r*(nt-s*c)-c*(2*l*i+f*c))+l*(l*$+r*(2*f*i+l*o))+f*c*nt),L*(h-d)+2*(I+P)*z-3*(Y*(g+b-w-_)+(u*e+s*r+l*i+f*c)*V),z*L-3*Y*V]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=kn(r,0,1),i=dn(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=o[t],r=vn(i,n);vn(e,n)*r>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:kn(e,0,1)}}function zp(t,n){const[e,r]=jn(t),[o,i]=Bp(t),c=vn(e,n),s=vn(r,n),u=vn(o,n);return(c*vn(i,n)-s*u)/Math.sqrt((c*c+s*s)**3)}const{abs:Yp}=Math,Vp=Kn(function(t){const{curves:n}=t;let e=Ki(n[0].ps).minY,r=n[0];for(let t=1;t<n.length;t++){const o=Ki(n[t].ps).minY,i=o.box[0][1],c=e.box[0][1];(i<c||i===c&&o.ts[0]>e.ts[0])&&(e=o,r=n[t])}return{curve:r,y:e}});function Lp(t){const{curve:n,y:e}=Vp(t),r=e.ts;return r[0]<=0?[pp(0,n,0),pp(1,n.prev,0)]:r[1]>=1?[pp(1,n,0),pp(0,n.next,0)]:[{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n},{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n}]}function $p(t,n,e){const r=e-(n-Math.floor(Math.log2(Math.abs(t))))+1;return r<=0?0:e>=53?t:Ia(t,r)}function Xp(t,n,e){const r=function(t,n){const e=[];for(const n of t)for(const t of n.curves)e.push(t);const r=xl(e,t=>nc(t.ps)[0][0],t=>nc(t.ps)[1][0],function(t){return(n,e)=>{const r=n.ps,o=e.ps;if(2===r.length&&2===o.length)return function(t,n,e){let r=t.ps,o=n.ps;const i=nc(r),c=nc(o);if(t.next!==n&&n.next!==t){if(xc(!0,i,c)){const r=up(t,n,e,!1);return r.length?r:void 0}return}if(n.next===t&&([t,n]=[n,t],[r,o]=[o,r]),0!==gt(r[0],r[1],o[1]))return;if(!xc(!1,i,c))return;let s;return s=_l(r[0],r[1])>_l(o[0],o[1])?[go(Oi(r,o[1])[0].ri),1]:[0,go(Oi(o,r[0])[0].ri)],[[pp(1,t,5),pp(0,n,5)],[pp(s[0],t,5),pp(s[1],n,5)]]}(n,e,t);if(n.next===e||e.next===n)return xc(!1,nc(r),nc(o))&&fa(Nl(r,!1),Nl(o,!1),!1)?e.next===n?up(e,n,t,!0):up(n,e,t,!0):hp(n,e);let i=xc(!0,nc(r),nc(o));return i?(i=fa(Nl(r,!1),Nl(o,!1),!0),i?up(n,e,t,!1):void 0):void 0}}(n)),o=[];for(const t of r)for(const n of t.u)o.push(n);return o}(t,e),o=function(t){const n=[];for(const e of t)for(const t of e.curves){const e=t.ps,r=Ap(e);if(0===r.length)continue;const o=r[0]===r[1]?3:2,i=r[0]-kp,c=r[0]+kp,s=r[1]-kp,u=r[1]+kp,f=Mo(e,[i,c]),l=Mo(e,[s,u]);n.push([{x:{ri:{tS:i,tE:c,multiplicity:1},box:f,kind:o},curve:t},{x:{ri:{tS:s,tE:u,multiplicity:1},box:l,kind:o},curve:t}])}return n}(t),i=function(t){const n=[];for(const e of t)for(const t of e.curves)n.push([pp(1,t,4),pp(0,t.next,4)]);return n}(t),{extremes:c,xs:s}=function(t){const n=new Map,e=[];for(const r of t){const t=Lp(r);e.push(t),n.set(r,t)}return{extremes:n,xs:e}}(t),u=function(t,n){const e=[];for(const r of n)for(const n of r.curves){const r=n.ps,o=Fp(r),{minima:i,maxima:c}=o,s=[0,1,...i,...c];for(let o of s)Yp(zp(r,o))>1e7*2**-t&&e.push([pp(o,n,7),pp(o,n,7)])}return e}(e,t);let f=[...r,...o,...i,...s,...u];if("undefined"!=typeof _debug_){for(const t of r)_debug_.generated.elems.intersection.push(...t);for(const t of o)_debug_.generated.elems.intersection.push(...t);for(const t of i)_debug_.generated.elems.intersection.push(...t);for(const t of s)_debug_.generated.elems.intersection.push(...t);for(const t of u)_debug_.generated.elems.intersection.push(...t)}let l=f.map(t=>({xs:t,box:[[t[0].x.box[0][0]-n,t[0].x.box[0][1]-n],[t[0].x.box[1][0]+n,t[0].x.box[1][1]+n]],inOuts:void 0}));for(;;){const t=xl(l,jp,qp,wc);if(!t.length)break;const n=new Map;_c(n,t);const e=Mc(n),r=Sc(l,e);l=[...Ec(e),...r]}l=function(t){return t.filter(t=>{const n=t.xs;if(2===t.xs.length){const t=n[0];if(1===t.x.kind&&t.x.ri.multiplicity%2==0)return!1}for(const n of t.xs)if(4!==n.x.kind)return!0;return!1})}(l),l=function(t,n,e){const r=Math.log2(e)-3;return t.map(t=>{const e=t.box.map(t=>t.map(t=>$p(t,n,n-r)));return{...t,box:e}})}(l,e,n),"undefined"!=typeof _debug_&&(_debug_.generated.elems.container=l);let a=0;for(const t of l){for(const n of t.xs)n.container=t;let n;({inOuts:n,ioIdx:a}=bl(t,a)),t.inOuts=n}f=f.filter(t=>void 0!==t[0].container),function(t){const n=new Map;for(const e of t)for(const t of e){const e=t.curve.loop,r=n.get(e)||[];r.length||n.set(e,r),r.push(t)}for(const t of n){const n=t[1];if(!n||!n.length)continue;n.sort((t,n)=>{let e=t.curve.idx-n.curve.idx;return 0!==e?e:(e=t.x.ri.tS-n.x.ri.tS,0!==e?e:void 0!==t.in_?-1:1)});const e=n.length;for(let t=0;t<e;t++)n[t].next=n[(t+1)%e],n[t].prev=n[(t-1+e)%e]}}(f);for(const t of l)for(const n of t.inOuts){if(-1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.next,void 0===e.in_;);t.nextOrPrev=e.in_,t.idx=t.nextOrPrev.idx}for(const t of l)for(const n of t.inOuts){if(1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.prev,void 0===e.out;);t.nextOrPrev=e.out,t.idx=t.nextOrPrev.idx}return{extremes:c,containers:l}}function jp(t){return t.box[0][0]}function qp(t){return t.box[1][0]}function Wp(t,n,e){Xi(t,1);const r=t.inOuts,o=r[0],i=r[r.length-1],c=1===o.dir?o:i,s=i.dir,u=0===n.idx?new Set:1===n.orientation?n.loopsIdxs:new Set;return o.orientation=s,o.parent=n,o.windingNum=n.windingNum+s,o.loopsIdxs=new Set(u),o.children=new Set,1===s&&o.loopsIdxs?.add(e.idx),i.orientation=s,i.parent=n,i.windingNum=n.windingNum+s,i.loopsIdxs=new Set(u),i.children=new Set,1===s&&i.loopsIdxs?.add(e.idx),c}function Hp(t){if(!bt(t))return!1;const n=t.map(t=>t[0]),e=t.map(t=>t[1]);return!(Dp(n)&&Dp(e))}function Dp(t){return function(t){for(let n=1;n<t.length;n++)if(t[n-1]>t[n])return!1;return!0}(t)||function(t){for(let n=1;n<t.length;n++)if(t[n-1]<t[n])return!1;return!0}(t)}function Qp(t,n){const e=n/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[e*t[0],e*t[1]]}function Rp(t){for(let n=0;n<t.length-1;n++)for(let e=n+1;e<t.length;e++)if(t[n][0]===t[e][0]&&t[n][1]===t[e][1])return!1;return!0}const{abs:Gp}=Math;function Up(t,n,e){if(void 0!==t&&!Z(t)){if(2===t.length)return t;if(3===t.length){if(Rp(t))return bt(t)?[t[0],t[2]]:t;if(Jp(t[0],t[2]))return;return[t[0],t[2]]}if(Rp(t)){const r=Zp(t);if(void 0===r)return;return function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e][0]!==n[e][0]||t[e][1]!==n[e][1])return!1;return!0}(r,t)?t:Up(r,n,e)}if(Jp(t[0],t[3])){if(bt(t))return;return t}if(bt(t))return[t[0],t[3]];if(Jp(t[0],t[1])&&Jp(t[1],t[2])||Jp(t[1],t[2])&&Jp(t[2],t[3])||Jp(t[0],t[1])&&Jp(t[2],t[3]))return Up([t[0],t[t.length-1]],n,e);if(Jp(t[0],t[2])||Jp(t[1],t[3])||Jp(t[1],t[2]))return t;if(Jp(t[0],t[1])){if(_l(t[1],t[2])<4*n)return[t[0],t[2],t[2],t[3]];{const r=Qp(ne(t[1],t[2]),2*n),o=ce(t[1],r);return Zp([t[0],e(o),t[2],t[3]])}}if(Jp(t[2],t[3])){if(_l(t[2],t[1])<4*n)return[t[0],t[1],t[1],t[3]];{const r=Qp(ne(t[2],t[1]),2*n),o=ce(t[2],r);return Zp([t[0],t[1],e(o),t[3]])}}}}function Zp(t){return bt(t)?[t[0],t[3]]:pt(t)?Fu(t):t}function Jp(t,n){return t[0]===n[0]&&t[1]===n[1]}function Kp(t){return t}function th(t,n,e,r=!1,o=!0){const i=function(t,n,e=!0){const r=2**t*2**-n,o=e?function(t,n){return e=>{const r=$p(e[0],t,n),o=$p(e[1],t,n);return r===e[0]&&o===e[1]?e:[r,o]}}(t,n):Kp;return t=>{const n=[];for(let e=0;e<t.length;e++){let i=t[e].slice();const c=n[n.length-1],s=c?c[c.length-1]:o(t[0][0]);i[0]=s,i=i.map(t=>o(t)),Hp(i)&&(i=[i[0],i[i.length-1]]),i=Up(i,r,o),void 0!==i&&n.push(i)}const e=n.length;if(!e)return[];const i=n[e-1];return i[i.length-1]=n[0][0],n}}(e,n,o);let c=t.slice();return c=r?function(t,n,e,r=.02){const o=[];for(const i of t){const t=[];for(const o of i){const i=o.map(t=>t.map(t=>{let o,i=0,c=0,s=0;for(;!(++c>10);){i=(t+Math.random())*(1+(Math.random()-.7)*r),i=$p(i,e,n);const c=Sa(i);c>s&&(s=c,o=i)}return o}));t.push(i)}o.push(t)}return o}(c,n,e,1):c,c=c.map(i),c=c.filter(t=>t.length>0),c}const nh=Kn(t=>{let n=0;for(const e of t)for(const t of e)for(const e of t)for(const t of e){const e=Math.abs(t);e>n&&(n=e)}return n}),eh=En;function rh(t,n){const e=t.length-1,r=n.length-1;if(e<0||r<0)return[];const o=e+r,i=new Array(o+1).fill(0);for(let c=0;c<e+1;c++)for(let s=0;s<r+1;s++)i[o-(c+s)]+=t[e-c]*n[r-s];return eh(i)}function oh(t,n){const e=[],r=t.length-1;for(let n=0;n<r+1;n++)e.push(t[n]/(r+1-n));return e.push(n),e}const ih=En;function ch(t,n){const e=t.length-1,r=n.length-1,o=e-r,i=o<0?+o:0,c=o>0?-o:0,s=Math.max(e,r),u=[];for(let e=0;e<s+1;e++){const r=t[e+i]||0,o=n[e+c]||0;u.push(r+o)}return ih(u)}function sh(t){let n=0;for(const e of t){const[t,r]=Gi(e),[o,i]=jn(e);n+=vn(oh(ch(rh(t,i),wn(rh(r,o))),0),1)}return n/2}function uh(t){let n=0;for(let e=0;e<t.length-1;e++)n+=Vn(t[e],t[e+1]);return n}function fh(t){const[n,e]=t[0],[r,o]=t[t.length-1];let i,c;const s=uh(t);if(256*_l(t[0],t[t.length-1])<s*s){const[r,o]=mo(t,.5),s=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/s,c=(r-n)/s}else{const t=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/t,c=(r-n)/t}const u=function(t,n,e){const r=ce(t[0].map(t=>-t));return tc(t.map(t=>ue(-n,e,r(t))))}(t,i,c),[[f,l],[a,p]]=u,h=[u[0],[a,l],u[1],[f,p]],d=ue(i,c);return h.map(n=>ce(t[0],d(n)))}function lh(t){return{ps:t,ts:[0,1]}}const{round:ah,PI:ph}=Math;const{abs:hh,max:dh}=Math;function vh(t,e,r={}){let o;"undefined"!=typeof _debug_&&(o=performance.now()),e=e||nh(t);const i=Math.ceil(Math.log2(e)),{inclMicroCorners:c=!0,minLoopArea:s=(2**i*2**-12)**2,booleanOp:u="OR",containerSizeMultiplier:f=16}=r,l=2**i*2**-46*f;(function(t){if("undefined"!=typeof _debug_)for(const n of t){_debug_.generated.elems.loopPre.push(...t),_debug_.generated.elems.loopsPre.push(t);for(const t of n){const n=nc(t),e=fh(t),r=Nl(t,!1);_debug_.generated.elems.bezier_.push(t),_debug_.generated.elems.looseBoundingBox_.push(n),_debug_.generated.elems.tightBoundingBox_.push(e),_debug_.generated.elems.boundingHull_.push(r)}}})(t=th(t,46,i,!1,!0)),t.sort(dc);const a=t.map((t,e)=>n(t,e)),{extremes:p,containers:h}=Xp(a,l,i),d={dir:void 0,idx:0,parent:void 0,children:new Set,windingNum:0,p:void 0,_x_:void 0,container:void 0,loopsIdxs:new Set,orientation:-1},v=new Set,g=new Set;for(const t of a){if(v.has(t))continue;v.add(t);const n=hc(d,t),e=p.get(t)[0].container;if(0===e.inOuts.length)continue;const r=Wp(e,n,t),o=2===e.inOuts.length&&2===e.xs.length;if(o&&e.inOuts[0].nextOrPrev===e.inOuts[1])r.bezierPieces=t.beziers.map(lh),r.parent.children=r.parent.children||new Set,r.parent.children.add(r);else if(Ri(r,v,g,!1),o&&void 0!==r.bezierPieces){const{bezierPieces:t}=r,n=t[t.length-1],e=t[0];if(n.ps===e.ps){const r={ps:n.ps,ts:[n.ts[0],e.ts[1]]};t.shift(),t.pop(),t.unshift(r)}}}"undefined"!=typeof _debug_&&_debug_.verbose;const m=function(t){const n=[],e=[t];for(;e.length;){const t=e.pop();0===t.windingNum&&n.push(...t.children),e.push(...t.children),0===t.windingNum&&(t.children=new Set)}return n}(d);"undefined"!=typeof _debug_&&_debug_.verbose;const b=function(t){return n=>{const e="OR"===t||"XOR"===t?[n]:[];n.used="OR"===t||"XOR"===t;const r=Array.from(n.children);for(;r.length;){const n=r.pop();if("OR"===t&&0===n.windingNum&&e.push(n),"AND"===t){const t=bc(n);(0===n.windingNum&&t||gc(n.windingNum)>=2&&!t)&&(e.push(n),n.used=!0)}if("XOR"===t){const t=bc(n);(0===n.windingNum&&t||gc(n.windingNum)>=2&&t)&&(e.push(n),n.used=!0)}for(const t of n.children)r.push(t)}return e}}(u),x=m.map(b).filter(t=>0!==t.length).map(t=>{const e=t[0].orientation;return t.map((t,r)=>function(t,e,r){const o=t.bezierPieces?.map(Di);if(void 0===o)return n([],r);const i=t.orientation;return n(0===r||e*i<0?o:o.map(t=>t.toReversed()).toReversed(),r)}(t,e,r))}),w=[];for(let t=0;t<x.length;t++){const n=x[t].filter(t=>Math.abs(sh(t.beziers))>s);n.length&&(n.sort((t,n)=>dc(t.beziers,n.beziers)),w.push(n))}"undefined"!=typeof _debug_&&(_debug_.generated.timing.simplifyPaths=performance.now()-o);const _=c?w:w.map(t=>t.map(t=>{const{beziers:e}=t,r=function(t,n){!function(t){ah(function(t){const n=t.length;let e=0;for(let r=0;r<n;r++){const o=t[(r-1+n)%n],i=t[r];e+=Yn(i,[0,1])+M(fe(o,1),fe(i,0))}return e}(t)/(2*ph))}(t);const e=t.map(t=>t.map(t=>[t[0],t[1]])).filter(t=>uh(t)>n),r=e.length;for(let t=0;t<r;t++){const n=e[t],o=e[(t+1)%r],i=n[n.length-1],c=o[0];c[0]===i[0]&&c[1]===i[1]||(i[0]=c[0],i[1]=c[1])}return e}(e,dh(...h.map(t=>hh(t.box[0][0]-t.box[1][0])),...h.map(t=>hh(t.box[0][1]-t.box[1][1]))));return n(r,t.idx)}));return function(t){if("undefined"!=typeof _debug_)for(const n of t)_debug_.generated.elems.loop.push(...n),_debug_.generated.elems.loops.push(n)}(_),_}const gh=Math.max,mh=Math.abs;function bh(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=n[0],v=n[1],g=c-d,m=u-d,b=l-d,x=p-d,w=s-v,_=f-v,I=a-v,N=h-v,M=g*g,S=6*g*m,E=6*b*x,y=w*w,O=6*w*_,C=6*I*N,T=6*m*x+9*b*b,P=2*g*x+18*m*b,A=6*g*b+9*m*m,k=6*_*N+9*I*I,B=2*w*N+18*_*I,F=6*w*I+9*_*_;return[6*(x*x-E+(M-S)+T+(A-P)+(N*N-C+(y-O)+k+(F-B))),5*(E+5*S+3*P-2*(T+2*A+3*M)+(C+5*O+3*B-2*(k+2*F+3*y))),4*(T-3*(P-2*A)-5*(2*S-3*M)+(k-3*(B-2*F)-5*(2*O-3*y))),3*(P-2*(2*A-5*(S-2*M))+(B-2*(2*F-5*(O-2*y)))),2*(A-5*(S-3*M)+(F-5*(O-3*y))),S-6*M+(O-6*y)]}function xh(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n[0],p=n[1],h=i-a,d=s-a,v=f-a,g=c-p,m=u-p,b=l-p,x=h*h,w=h*d,_=d*v,I=g*g,N=g*m,M=m*b,S=g*b+m*m*2,E=h*v+d*d*2;return[b*b+I+2*S-4*(M+N)+(v*v+x+2*E-4*(_+w)),3*(M-S+(3*N-I)+(_-E+(3*w-x))),S-3*(2*N-I)+(E-3*(2*w-x)),N-I+(w-x)]}function wh(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=u*f+l*a,h=l*l+u*u;return[f*f+a*a+(h-2*p),p-h]}const _h=Math.sqrt;function Ih(t,n,e=!0){let r;if(4===t.length)r=bh(t,n);else if(3===t.length)r=xh(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:Vn(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}r=wh(t,n)}const o=kn(r,0,1);e&&(o.push(0),o.push(1));let i,c=Number.POSITIVE_INFINITY;for(const e of o){const r=mo(t,e),o=_l(r,n);o<c&&(c=o,i={p:r,t:e,d:_h(o)})}return i}const Nh=Math.sqrt;function Mh(t){let n=Number.NEGATIVE_INFINITY;for(let e=0;e<t.length;e++){const r=t[e],o=Math.abs(r[0]),i=Math.abs(r[1]);o>n&&(n=o),i>n&&(n=i)}return n}function Sh(t){return Math.max(t.hL+t.hEL,t.hR+t.hER)}function Eh(t,n){const e=Sh(t)-Sh(n);return 0!==e?e:t.tS-n.tS}class yh{compare;heap=[];constructor(t){this.compare=t}insert(t){const n=this.heap;n.push(t);let e=n.length-1;for(;;){const r=(e-1-(e+1)%2)/2;if(-1===r)return;const o=n[r];if(this.compare(t,o)<0)break;n[r]=t,n[e]=o,e=r}}popMax(){const t=this.heap,n=t[0];return t[0]=t[t.length-1],t.length--,this.swimDown(),n}swimDown(){const t=this.heap,n=t.length;let e=0;for(;;){const r=2*e+1;if(r>=n)break;const o=2*e+2,i=o>=n||this.compare(t[r],t[o])>0?r:o,c=t[i],s=t[e];if(this.compare(s,c)>0)break;t[i]=s,t[e]=c,e=i}}swapMinOrMax(t){this.heap[0]=t,this.swimDown()}static getParentIdx(t){return(t-1-(t+1)%2)/2}static getLeftChild(t){return 2*t+1}static getRightChild(t){return 2*t+2}}const Oh=Math.max;function Ch(t,n,e,r=50){if(1===t.length)return Ih(n,t[0]).d;if(1===n.length)return function(t,n){let e;if(4===t.length)e=bh(t,n);else if(3===t.length)e=xh(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:Vn(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}e=wh(t,n)}const r=kn(e,0,1);r.push(0),r.push(1);let o,i=Number.NEGATIVE_INFINITY;for(const e of r){const r=mo(t,e),c=_l(r,n);c>i&&(i=c,o={p:r,t:e,d:Nh(c)})}return o}(t,n[0]).d;if(2===t.length&&2===n.length){const e=Ih(n,t[0]).d,r=Ih(n,t[t.length-1]).d;return e>r?e:r}const o=Oh(Mh(t),Mh(n));e=e||o/1e6;const[i,c]=Th(t,0,1),s={tS:0,tE:1,hL:Ih(n,t[0]).d,hR:Ih(n,t[t.length-1]).d,hEL:i,hER:c},u=new yh(Eh);u.insert(s);let f=0,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(;;){const o=u.heap[0],{tS:i,tE:c,hL:s,hR:p}=o,h=(i+c)/2,[d,v]=Th(t,i,h),[g,m]=Th(t,h,c),b=mo(t,h),x=Vn(b,Ih(n,b).p),w=Oh(s,x,p);if(w>a&&(a=w),l=Sh(o),l-a<e)return a;if(f++>r)return a;const _={tS:i,tE:h,hL:s,hR:x,hEL:d,hER:v},I={tS:h,tE:c,hL:x,hR:p,hEL:g,hER:m};u.swapMinOrMax(_),u.insert(I)}}function Th(t,n,e){const r=(e+n)/2,o=Dn(t,n,r),i=Dn(t,r,e);return[uh(o),uh(i)]}function Ph(t,n=!1){const e=t;let r=e;const o=[];do{n&&r===e||Be(r)||o.push(r),r=r.nextOnCircle}while(r!==e);return o}function Ah(t){const n=[],e=[t],r=new Set;for(;e.length>0;){const t=rr(e.pop());if(0===t.length)continue;n.push(t);const o=t[0],i=t[t.length-1].next.prevOnCircle;r.add(o),r.add(i);const c=Ph(o,!0),s=Ph(i,!0),u=c.filter(t=>!r.has(t)),f=s.filter(t=>!r.has(t));for(const t of u)r.add(t);for(const t of f)r.add(t);e.push(...u,...f)}return n}const kh=-1;class Bh{datum;color=0;parent;extras;"-1";1;constructor(t){this.datum=t}}function Fh(t){return!!t&&0===t.color}class zh{compare;duplicatesAllowed;root;nodeCount;valueCount;constructor(t,n=!0,e){if(this.compare=t,this.duplicatesAllowed=n,this.root=void 0,this.nodeCount=0,this.valueCount=0,e)for(const t of e)this.insert(t)}isEmpty(){return!this.root}find(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return e;e=e[r>0?1:kh]}}toArrayInOrder(){const t=[];return function n(e){e&&(n(e[-1]),t.push(e.datum),void 0!==e.extras&&t.push(...e.extras),n(e[1]))}(this.root),t}insertMulti(t){const n=this;for(const e of t)n.insert(e)}insert(t){const n=this;n.root=function t(e,r){if(void 0===e)return n.valueCount++,n.nodeCount++,new Bh(r);const o=n.compare(r,e.datum);if(0===o&&(n.duplicatesAllowed?(n.valueCount++,void 0===e.extras?e.extras=[r]:e.extras.push(r)):e.datum=r),0!==o){const n=o>0?1:kh;e[n]=t(e[n],r),e[n].parent=e}return Fh(e[1])&&!Fh(e[-1])&&(e=Yh(kh,e)),Fh(e[-1])&&Fh(e[-1][-1])&&(e=Yh(1,e)),Fh(e[-1])&&Fh(e[1])&&Lh(e),e}(n.root,t),n.root.color=1,n.root.parent=void 0}remove(t,n=!1,e){const r=this;if(void 0===r.root)return;let o;const i=function t(i,c){const s=r.duplicatesAllowed&&void 0!==i.extras;let u=r.compare(c,i.datum);if(u<0&&!i[-1]||u>0&&!i[1])return i;if(u<0){Fh(i[-1])||Fh(i[-1][-1])||(i=$h(i));const n=t(i[-1],c);return null===n?null:(i[-1]=n,i[-1]&&(i[-1].parent=i),Xh(i))}if(Fh(i[-1])&&(i=Yh(1,i),u=r.compare(c,i.datum)),0===u&&!i[1]){if(s&&!n){if(void 0===e||!0===e(c,i.datum))return o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0),i;{const t=i.extras;for(let n=0;n<t.length;n++)if(!0===e(c,t[n]))return o=t.splice(n,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),i;return null}}return void 0===e||!0===e(c,i.datum)?(o=i.datum,r.valueCount-=1+(s?i.extras.length:0),void r.nodeCount--):null}if(Fh(i[1])||Fh(i[1][-1])||(i=function(t){return Lh(t),Fh(t[-1][-1])&&Lh(t=Yh(1,t)),t}(i),u=r.compare(c,i.datum)),0===u)if(s&&!n)if(void 0===e||!0===e(c,i.datum))o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0);else{const t=i.extras;let n=!1;for(let s=0;s<t.length;s++)if(!0===e(c,t[s])){o=t.splice(s,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),n=!0;break}if(!n)return null}else{if(void 0!==e&&!0!==e(c,i.datum))return null;{r.valueCount-=1+(s?i.extras.length:0),o=i.datum;const t=r.getMinNode(i[1]);i.datum=t?.datum,r.duplicatesAllowed&&(i.extras=t?.extras),i[1]=Vh(i[1]),r.nodeCount--}}else{const n=t(i[1],c);if(null===n)return null;i[1]=n}return i[1]&&(i[1].parent=i),Xh(i)}(r.root,t);return null!==i?(r.root=i,void 0!==r.root&&(r.root.color=1,r.root.parent=void 0),o):void 0}findBounds(t){const n=this;let e=n.root;const r=[void 0,void 0];if(void 0===e)return r;for(;e;){const o=n.compare(t,e.datum);o>=0?r[0]=e:r[1]=e,e=e[o>=0?1:kh]}return r}findBoundsExcl(t){const n=this,e=n.root,r=[void 0,void 0];return void 0===e||function e(o){for(;o;){const i=n.compare(t,o.datum);if(0===i)return e(o[-1]),void e(o[1]);i>0?r[0]=o:i<0&&(r[1]=o),o=o[i>0?1:kh]}}(e),r}findAll(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return[e.datum,...e.extras?e.extras:[]];e=e[r>0?1:kh]}return[]}getMinOrMaxNode(t){return n=>{if(void 0===n&&(n=this.root),n){for(;n[t];)n=n[t];return n}}}getMinNode=this.getMinOrMaxNode(kh);getMaxNode=this.getMinOrMaxNode(1);min(t){void 0===t&&(t=this.root);const n=this.getMinNode(t);if(void 0!==n)return n.datum}max(t){void 0===t&&(t=this.root);const n=this.getMaxNode(t);if(void 0!==n)return n.datum}}function Yh(t,n){const e=n[-t];return n[-t]=e[t],e[t]&&(e[t].parent=n),e[t]=n,n.parent=e,e.color=n.color,n.color=0,e}function Vh(t){if(t[-1])return Fh(t[-1])||Fh(t[-1][-1])||(t=$h(t)),t[-1]=Vh(t[-1]),t[-1]&&(t[-1].parent=t),Xh(t)}function Lh(t){t.color=(t.color+1)%2,t[-1].color=(t[-1].color+1)%2,t[1].color=(t[1].color+1)%2}function $h(t){if(Lh(t),Fh(t[1][-1])){const n=Yh(1,t[1]);t[1]=n,n.parent=t,Lh(t=Yh(kh,t))}return t}function Xh(t){return Fh(t[1])&&(t=Yh(kh,t)),Fh(t[-1])&&Fh(t[-1][-1])&&(t=Yh(1,t)),Fh(t[-1])&&Fh(t[1])&&Lh(t),t}const{cpNodeComparator:jh,getAllOnLoop:qh}=ir;function Wh(t){const n=new Map;return qh(t).forEach(function(t){const e=t.cp.pointOnShape.curve.loop;let r=n.get(e);r||(r=new zh(jh,!1),n.set(e,r)),r.insert(t)}),n}function Hh(t,n=.125,e=50){let r=Ze(t.cpNode);for(;!Be(r);)r=r.next;const o=Ah(r),i=new Set;for(let t=0;t<o.length;t++){const r=o[t];let c=0;for(;c<r.length;){const t=c;for(;(c++,c!==r.length)&&!(Dh(t,c,r,e)>n);)i.add(r[c])}}r=function(t,n){const e=n;if(t(e))return e;let r=n.next;for(;r!==e;){if(t(r))return r;r=r.next}}(t=>Be(t)?t:void 0,r);for(const n of i)cr(t=>2!==We(t)&&!t.isHoleClosing)(n)||nr(n,t.meta.cpTrees);return{cpNode:r,meta:{...t.meta,cpTrees:Wh(r)}}}function Dh(t,n,e,r){const o=[],i=Te(e[t],e[n].next);for(;t<n+1;t++)o.push(Ch(Pe(e[t]),i,r));return Math.max(...o)}const{getAllOnLoop:Qh}=ir;function Rh(t){const n=[],e=Qh(t);for(const t of e)Xe(t)&&!t.isHoleClosing&&n.push(t);return n}const Gh=function(t,n,e){const r=t.get(n);return void 0!==r&&r.has(e)},Uh=function(t,n,e){let r=t.get(n);void 0===r&&(r=new Set,t.set(n,r)),r.add(e)},{isOnSameCircle:Zh}=ir;function Jh(t){let n=t,e=t.prevOnCircle;for(;Be(e);)e=e.prevOnCircle;const r=[];do{Be(n)||r.push(n),n=n.nextOnCircle}while(n!==e);return r}function Kh(t,n){const e=new Map,r=new Map;return Qe(t,function(t){const o=r.get(t)||n*t.cp.circle.radius,i=t.next,c=function(t,n,e=.4,r=16){if(4===n.length)return Gn(t,n,e,r);if(3===n.length)return Rn(t,n,e,r);if(2===n.length)return Ln(t,n);if(1===n.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}([0,1],Pe(t)),s=i.cp.circle.radius;if(o-c>n*s)for(const t of ke(i))if(r.set(t,o-c),!i.isHoleClosing){const{center:t}=i.cp.circle;Uh(e,t[0],t[1])}}),e}function td(t,n){let e=0;"undefined"!=typeof _debug_&&(e=performance.now());const r=function(t){const n=v(t);return n.reduce(function(t,n){return t.cp.circle.radius>=n.cp.circle.radius?t:n},n[0])}(Ze(t.cpNode));!function(t,n){const e=Rh(n);for(;e.length;){const r=e.pop(),{center:o}=r.cp.circle;if(!Gh(t,o[0],o[1])||r.isIntersection)continue;let i=r.prevOnCircle,c=!1;for(;!c;){i=i.next;const{center:e}=i.cp.circle;if(Gh(t,e[0],e[1]))if(Zh(i,n))c=!0;else{if(1===Jh(i).length)continue;c=!0}else{for(;Be(i.prevOnCircle);)i=i.prevOnCircle;c=!0}}if(c){const t=i.prevOnCircle;t.next=i,i.prev=t,t.nextOnCircle=i,i.prevOnCircle=t}}}(Kh(r,n),r);const o={cpNode:r,meta:{...t.meta,cpTrees:Wh(r)}};return function(t){"undefined"!=typeof _debug_&&(_debug_.generated.timing.sats=performance.now()-t)}(e),o}const nd={maxCurviness:.05,maxLength:40,applySat:!0,satScale:2,simplify:!0,simplifyTolerance:2**-4,minBezLength:2**-6,angleIncrement:15},ed={maxCurviness:{range:[.01,3]},maxLength:{range:[1,1024],scaleByMaxRadius:!0},angleIncrement:{range:[.1,360]},satScale:{range:[1,Number.POSITIVE_INFINITY]},simplifyTolerance:{range:[2**-10,1024],scaleByMaxCoordinate:!0},minBezLength:{range:[2**-20,2],scaleByMaxCoordinate:!0}};function rd(t){return[t[1],-t[0]]}function od(t,n){return Ee(n)&&Se(n).isDull?-ee(rd(Se(n).tangents[0]),se(ne(n.p,t.center))):0}function id(t){return t[0]*t[0]+t[1]*t[1]}function cd(t,n,e){return t[0]*(n[1]*e[2]-n[2]*e[1])-t[1]*(n[0]*e[2]-n[2]*e[0])+t[2]*(n[0]*e[1]-n[1]*e[0])}function sd(t){const n=t[0],e=t[1],r=t[2],o=id,i=.5*cd([o(n),n[1],1],[o(e),e[1],1],[o(r),r[1],1]),c=.5*cd([n[0],o(n),1],[e[0],o(e),1],[r[0],o(r),1]),s=cd([n[0],n[1],1],[e[0],e[1],1],[r[0],r[1],1]);return[i/s,c/s]}function ud(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}const fd=Number.EPSILON/2,ld=fd*fd;function ad(t){const n=t*ld;return n/(1-n)}const pd=Ir,hd=b,{abs:dd}=Math,vd=ad(3);function gd(t,n,e){const r=t.length-1,o=[t[0]];let i=n[0];const c=[i];for(let s=1;s<r;s++){const r=o[s-1],u=e*r[1],f=dd(e)*i+dd(u),l=t[s];i=n[s]+f+dd(l[1]+u);const a=hd(l,pd(e,r));o.push(a),c.push(i)}return{coeffs:o,errBound:c.map(t=>vd*t)}}const md=$,bd=k;function xd(t,n){const e=t.length-1,r=[t[0]];for(let o=1;o<e;o++)r.push(bd(t[o],md(n,r[o-1])));return r}const wd=dt,_d=fr,Id=b,Nd=Number.EPSILON,Md=ad(3),{sqrt:Sd}=Math;function Ed(t,n,e,r=[0,1],o=void 0,i=void 0,c=!1,s=0){const[u,f]=r,l=n.ps,a=0===s&&n===o;let{polyDd:p,polyE:h,getPolyExact:d}=Ei(l,e);const v=a?gd(p,h.map(t=>t/Md),i):void 0,g=c&&a?gd(v.coeffs,v.errBound.map(t=>t/Md),i):void 0,m=c&&a?gd(g.coeffs,g.errBound.map(t=>t/Md),i):void 0,{polyDd:b,polyE:x,getPolyExact:w}=void 0!==m?{polyDd:m.coeffs,polyE:m.errBound,getPolyExact:()=>xd(xd(xd(d(),i),i),i)}:void 0!==v?{polyDd:v.coeffs,polyE:v.errBound,getPolyExact:()=>xd(d(),i)}:{polyDd:p,polyE:h,getPolyExact:d},_=ho(b,u,f,x,w),I=1===i&&n===o.next||0===i&&n===o,N=0===i&&n===o.prev||1===i&&n===o;0===u?I||_.push({tS:0,tE:0,multiplicity:1}):1===u?N||_.push({tS:1,tE:1,multiplicity:1}):_.push({tS:u,tE:u,multiplicity:1}),0===f?I||_.push({tS:0,tE:0,multiplicity:1}):1===f?N||_.push({tS:1,tE:1,multiplicity:1}):_.push({tS:f,tE:f,multiplicity:1});const M=_.map(r=>{const{tS:o,tE:i}=r;if(i<u||o>f)return;const c=(o+i)/2,s=c<0?0:c>1?1:c,a=Mo(l,[o,i]),p=function(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}(a),h=function(t,n,e){const r=n[0],o=n[1],i=r[0],c=r[1],s=o[0],u=o[1],f=e[0],l=e[1];let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(const[n,e]of[[i,c],[i,u],[s,c],[s,u]]){const r=wd(n,f),o=wd(e,l),i=Id(_d(r,r),_d(o,o))[1],c=i*(1-2**t*Nd),s=i*(1+2**t*Nd);c<=a&&(a=c),s>=p&&(p=s)}return[a,p]}(t,a,e),d=0===s?1:s;return{curve:0===s?n.prev:n,p,t:d,d:(Sd(h[0])+Sd(h[1]))/2,dSquaredI:h,box:a}});return M.filter(t=>void 0!==t)}const yd=_l;function Od(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];return u<o?f<i?yd(t[0],n):f>s?yd([o,s],n):(o-u)**2:u>c?f<i?yd([c,i],n):f>s?yd(t[1],n):(u-c)**2:f<i?(i-f)**2:f>s?(f-s)**2:0}const Cd=Kn(tc);function Td(t,n){const e=[0,1,2,3].map(e=>function(t,n){const e=_l,r=n[0],o=n[1],i=e(r,o);if(0==i)return e(t,r);let c=((t[0]-r[0])*(o[0]-r[0])+(t[1]-r[1])*(o[1]-r[1]))/i;return c=Math.max(0,Math.min(1,c)),e(t,[r[0]+c*(o[0]-r[0]),r[1]+c*(o[1]-r[1])])}(n,[t[e],t[(e+1)%4]])),r=_l(t[0],t[1]),o=_l(t[0],t[3]);return e[0]<=o&&e[2]<=o&&e[1]<=r&&e[3]<=r?0:Math.min(...e)}const Pd=Kn(fh);function Ad(t,n,e,r=void 0,o=void 0,i=!1,c=0){n=function(t,n){const e=function(t,n){let e=Number.POSITIVE_INFINITY;for(let r=0;r<t.length;r++){const o=t[r],i=o.curve.ps,c=mo(i,o.ts[0]),s=mo(i,o.ts[1]),u=Math.min(_l(n,c),_l(n,s));u<e&&(e=u)}return(1+2**-10)*e}(t,n);return t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;Od(Cd(c),n)<=e&&r.push(i)}return r}(t,n,e),t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;Td(Pd(c),n)<=e&&r.push(i)}return r}(t,n,e),t}(n,e);const s=[];for(let u=0;u<n.length;u++){const f=n[u],l=Ed(t,f.curve,e,f.ts,r,o,i,c);s.push(...l)}let u=Number.POSITIVE_INFINITY;for(let t=0;t<s.length;t++){const n=s[t].dSquaredI[1];n<u&&(u=n)}const f=[];for(let t=0;t<s.length;t++){const n=s[t];n.dSquaredI[0]<=u&&f.push(n)}return f.map(t=>mr(t.curve,t.t,!1))}const{max:kd,ceil:Bd,log2:Fd}=Math;function zd(t,n){return n.map(n=>Ad(5,n,t)[0])}function Yd(t,n){return[n*t[0],n*t[1]]}function Vd(t,n,e){const r=ud(e);let o,i,c,s,u=1,f=0;do{i=ce(Yd(e,u),n),c=zd(i,t),s=ud(ne(i,sd(c.map(t=>t.p)))),o=s<r,u/=2,f++}while(!o&&f<3);return{newX:i,newV:s,newPoss:c}}const{isSharp:Ld}=ir,$d=ne;function Xd(t,n,e,r,o){const i=2**-32*o,c=[t[0],t[n],t[t.length-1]],s=[r[0],r[n],r[t.length-1]],u=[[c[0],c[1],c[2]],[c[1],c[2],c[0]],[c[2],c[0],c[1]]][e],f=[[s[0],s[1],s[2]],[s[1],s[2],s[0]],[s[2],s[0],s[1]]][e];if(Ld(u[0][0]))return;let l,a,p=0,h=function(t,n,e){const r=n[0][0].cp.circle,o=r.center,i=Ad(kd(0,Bd(Fd(t/r.radius)))+1,e[1],o)[0];return sd([n[0][0].cp.pointOnShape.p,i.p,n[2][1].cp.pointOnShape.p])}(o,u,f),d=Number.POSITIVE_INFINITY;for(;d>i&&p<10;){if(p++,l=zd(h,f),!Number.isFinite(h[0])||!Number.isFinite(h[1]))return;a=sd(l.map(t=>t.p));const t=$d(h,a);if(!Number.isFinite(t[0])||!Number.isFinite(t[1]))return;const n=Vd(f,h,t);h=n.newX,l=n.newPoss;const e=ud(t);d=Math.abs(e-n.newV)}const v=(Vn(h,l[0].p)+Vn(h,l[1].p)+Vn(h,l[2].p))/3,g={center:h,radius:v};let m=0;for(let t=0;t<3;t++){const n=l[t],e=se(ne(n.p,h)),r=re(e);if(Ee(n)&&Se(n).isDull){const t=Me(n.curve.ps,n.curve.next.ps).tangents.map(re),r=Math.asin(oe(t[0],e)),o=Math.asin(oe(e,t[1]));let i=0;r>0&&(i+=r),o>0&&(i+=o),m+=i}else{const t=se(fe(n.curve.ps,n.t));m+=Math.abs(Math.asin(oe(r,t)))}}const b=[];for(let t=0;t<r.length;t++){const n=Ad(5,r[t],h)[0];b.push(Vn(n.p,h))}const x=Math.min(...b);return{poss:l,circle:g,error:1*Math.abs(v-x)+1*m,δ3s:u}}const jd=Kn(t=>!!Ee(t)&&Se(t).isQuiteSharp);function qd(t){let n=t[0];const e=t[1],r=[];let o=!0;do{if(!o){o=!0,n=n.prevOnCircle;continue}o=!1;const t=n.cp.pointOnShape,e=n.next.cp.pointOnShape;e.curve===t.curve&&jd(t)&&jd(e)||(e.curve===t.curve&&d(n.next.cp,n.cp)>0?r.push({curve:t.curve,ts:[t.t,e.t]}):(r.push({curve:t.curve,ts:[t.t,1]}),t.curve.loop===e.curve.loop&&Wd(r,t.curve,e.curve,e.t))),n=n.next}while(n!==e);return r}function Wd(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push({curve:o,ts:[0,n]})}while(o!==e)}function Hd(t,n,e,r){const o={pointOnShape:n,order:e,order2:r},i=t.findBounds({cp:o});if(void 0!==i[0]||void 0!==i[1])return void 0===i[0]||void 0===i[1]?t.max(t.root):i[0].datum}function Dd(t,n,e,r,o,i){if(void 0!==i&&!function(t,n,e){const r=d(n,e.cp);if(r<0)return!0;if(0===r)return!0;const o=t.getMinNode();if(void 0===o)return!0;const i=o.datum;return d(t.getMaxNode().datum.cp,n)<0&&i===e}(r,o,i.next)&&!t)return;const c={cp:o,isHoleClosing:n,isIntersection:e},s=void 0===i?c:i,u=void 0===i?c:s.next;return u.prev=c,s.next=c,c.prev=s,c.next=u,r.insert(c),c}function Qd(t,n,e,r,o,i,c){let s=!1;const u=i.map((i,u)=>{const f=r[u],l=o.get(i.curve.loop),a={pointOnShape:i,circle:e,order:f,order2:0},p=void 0===c?Hd(l,i,f,0):c[u],h=Dd(t,n,!1,l,a,p);return void 0===h&&(s=!0),h});return s||function(t,n){n=n.slice().sort(function(t){const n=t.center;return function(t,e){let r=t.cp.pointOnShape.p,o=e.cp.pointOnShape.p;r=[r[0]-n[0],r[1]-n[1]],o=[o[0]-n[0],o[1]-n[1]];const i=Math.atan2(r[1],r[0]);return Math.atan2(o[1],o[0])-i}}(t));const e=n.length;for(let t=0;t<e;t++)n[t].nextOnCircle=n[(t+1)%e],n[t].prevOnCircle=n[(t-1+e)%e]}(e,u),{anyFailed:s,cpNodes:u}}const Rd=Math.cos(Math.PI/180*1);function Gd(t,n,e,r,o,i){const{cpTrees:c,maxCoordinate:s}=t,u=2e-14*s,f=.02*u,l=Hd(c.get(n.curve.loop),n,r,o);if(!l)return;const a=[l,l.next],{p,t:h}=n;for(const t of a){const n=t.cp.pointOnShape.p,r=Vn(p,n);if(!(r>u)&&(ee(se(ne(n,t.cp.circle.center)),se(ne(p,e.center)))>Rd||r<f&&0!==h&&1!==h))return t}}function Ud(t,n){const e=[];for(const t of n)e.push([t,t.next]);const r=function(t,n){const e=t.map(qd);let r,o=Number.POSITIVE_INFINITY;for(let i=1;i<t.length-1;i++)for(let c=0;c<3;c++){const s=Xd(t,i,c,e,n);if(!s)continue;const{circle:u,poss:f,error:l,δ3s:a}=s;l<o&&(o=l,r={circle:u,poss:f,δ3s:a})}return r}(e,t.maxCoordinate),{circle:o,poss:i,δ3s:c}=r,s=[];for(let t=0;t<3;t++)s.push(od(o,i[t]));const u=[];for(let n=0;n<i.length;n++){const e=Gd(t,i[n],o,s[n],0);void 0!==e&&We(e)<=2&&!e.isHoleClosing&&u.push(e)}return{closeBysFor3Prong:u,cpNodes:0===u.length?Qd(!0,!1,o,s,t.cpTrees,i,c.map(t=>t[0])).cpNodes:[]}}let Zd=0;function Jd(t,n){if(ye(n.cp.pointOnShape))return{closeBysFor3Prong:void 0,addedCpNodes:[]};const e=[];for(;;){if(void 0===n)continue;const r=De(n);if(r.length<=2)break;const{closeBysFor3Prong:o,cpNodes:i}=Ud(t,r);if(e.push(i),o.length>0)return{closeBysFor3Prong:o,addedCpNodes:e};if("undefined"!=typeof _debug_&&++Zd===_debug_.directives.stopAfterThreeProngsNum)return}return{closeBysFor3Prong:void 0,addedCpNodes:e}}function Kd(t){for(const n of t)return n}function tv(t,n,e,r){for(const o of[n[0]])ke(o).forEach(t=>{e.delete(t),r.delete(t)}),nr(o,t)}const{cpNodeComparator:nv}=ir;function ev(t,n,e){let r;for(let o=0;o<e.length;o++){const i=e[o],c=new zh(nv,!1);let s,u;for(const t of i){const n={center:t.p,radius:0},e={pointOnShape:t,circle:n,order:1,order2:0};s=Dd(!0,!1,!1,c,{pointOnShape:t,circle:n,order:-1,order2:0},u),u=Dd(!0,!1,!1,c,e,s),s.prevOnCircle=u,u.prevOnCircle=s,s.nextOnCircle=u,u.nextOnCircle=s}r||(r=s);const f=t[o];n.set(f,c)}return r}const rv=function(t,n,e,r,o){let i=t.get(n);void 0===i&&(i=new Map,t.set(n,i));let c=i.get(e);void 0===c&&(c=new Map,i.set(e,c)),c.set(r,o)};let ov;function iv(t,n,e,r){ov=performance.now();const o=new Map,i=[],c=[],s=[],u=[],f=[];for(const t of e){const n=r.get(t).toArrayInOrder();for(const e of n){const{p:n,t:r}=e.cp.pointOnShape;rv(o,t,n[0],n[1],e)}for(let n of t.curves){const t=n.ps,e=Nl(t,!0);s.push(e);const r=Cd(t);i.push(r);const o=fh(t);c.push(o);const l=Me(n.ps,n.next.ps);l.isQuiteSharp?u.push(n):l.isQuiteDull&&f.push(n)}}return{maxCoordinate:t,squaredDiagonalLength:n,looseBoundingBoxes:i,tightBoundingBoxes:c,boundingHulls:s,sharpCorners:u,dullCorners:f,loops:e,cpTrees:r,pointToCpNode:o}}function cv(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];uh(o.ps)<t||Me(o.ps,o.next.ps).isQuiteSharp&&e.push(mr(o,1,!0))}return e}}const sv=b,uv=Ir;function fv(t,n){let e=[0,0];for(let r=0;r<t.length;r++)e=sv(t[r],uv(n,e));return e}const lv=A,av=P,pv=Ir,hv=b,dv=lr;function vv(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[pv(3,hv(av(s,n),pv(3,av(r,i)))),pv(6,dv(lv(i,n),-2*r)),pv(3,av(r,n))],[pv(3,hv(av(u,e),pv(3,av(o,c)))),pv(6,dv(lv(c,e),-2*o)),pv(3,av(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[dv(lv(2*i,2*n),-4*r),av(2*r,2*n)],[dv(lv(2*c,2*e),-4*o),av(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[av(r,n)],[av(o,e)]]}(t);if(1===t.length)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const gv=P,mv=b,bv=Ir,xv=lr;function wv(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[bv(6,mv(gv(s,n),bv(3,gv(r,i)))),bv(6,xv(gv(i,2*r),n))],[bv(6,mv(gv(u,e),bv(3,gv(o,c)))),bv(6,xv(gv(c,2*o),e))]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[xv(gv(2*i,4*r),2*n)],[xv(gv(2*c,4*o),2*e)]]}if(t.length<=2)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const _v=fr,Iv=b,Nv=x,Mv=dt,Sv=J,Ev=$,yv=k,Ov=W;function Cv(t,n,e=!1){const r=n.curve.ps,{p:o,t:i}=n;let c=-function(t,n){const[e,r]=vv(t),[o,i]=wv(t),c=fv(e,n),s=fv(r,n),u=fv(o,n),f=fv(i,n),l=Nv(_v(c,f),_v(s,u)),a=Iv(_v(c,c),_v(s,s)),p=_v(a,_v(a,a)),h=Math.sqrt(p[1]);return l[1]/h}(r,i);(c<t||e)&&(c=t);const s=function(t,n){const[e,r]=function(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Ev(3,yv(Mv(s,n),Ev(3,Mv(r,i)))),Ev(6,Ov(Sv(i,n),-2*r)),Ev(3,Mv(r,n))],[Ev(3,yv(Mv(u,e),Ev(3,Mv(o,c)))),Ev(6,Ov(Sv(c,e),-2*o)),Ev(3,Mv(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[Ov(Sv(2*i,2*n),-4*r),Mv(2*r,2*n)],[Ov(Sv(2*c,2*e),-4*o),Mv(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[Mv(r,n)],[Mv(o,e)]]}(t);if(1===t.length)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t);return[Xr(e,n),Xr(r,n)]}(r,i).map(t=>t[t.length-1]),u=[-s[1],s[0]],f=Math.sqrt(u[0]**2+u[1]**2);return{center:[o[0]-u[0]/(c*f),o[1]-u[1]/(c*f)],radius:1/c}}const{abs:Tv}=Math,Pv=P,Av=m;function kv(t,n,e){const r=Tv(t[1]-n[1])>Tv(t[0]-n[0]);let o,i,c,s,u,f;r?(o=t[1],i=t[0],c=n[1],s=n[0],u=e[1],f=e[0]):(o=t[0],i=t[1],c=n[0],s=n[1],u=e[0],f=e[1]);const l=Lf(Pv(i,s),Pv(o,c)),a=x([0,s],_r(c,l)),p=Lf(b(x(b(Av(c,c),Av(s,s)),b(Av(u,u),Av(f,f))),Po(fr(a,Pv(f,s)))),Po(b(Pv(c,u),fr(l,Pv(s,f))))),h=b(fr(l,p),a);return r?[h[1],p[1]]:[p[1],h[1]]}function Bv(t,n,e,r){const o=(2**-14*t)**2;if(_l(n,r)<o)return;const i=[(n[0]+r[0])/2,(n[1]+r[1])/2],c=[r[0]-n[0],r[1]-n[1]],s=[-c[1],c[0]],u=te([n,e],[i,[i[0]+s[0],i[1]+s[1]]]);return u?ee([u[0]-n[0],u[1]-n[1]],[e[0]-n[0],e[1]-n[1]])<0?void 0:u:void 0}function Fv(t,n){const[e,r]=t,[o,i]=n,c=P(e,o),s=P(r,i);return b(fr(c,c),fr(s,s))[1]}function zv(t,n,e){if(t.length<=1)return t;const r=[];for(const o of t){const t=o.curve.ps;Od(Cd(t),n)<=1.0009765625*e&&r.push(o)}return r}function Yv(t,n,e,r){if(Ee(r)&&Se(r).isDull)return;const o={radius:n,center:e};if(Gd(t,r,o,od(o,r),0))return;const{anyFailed:i,cpNodes:c}=Qd(!1,!1,o,[-.5,.5],t.cpTrees,[r,r])}const Vv=m,Lv=b,$v=x,Xv=_r,{asin:jv,acos:qv,cos:Wv,sqrt:Hv,PI:Dv}=Math,Qv=1e3*2**-46;function Rv(t,n,e){if(n+e>=t)return Number.POSITIVE_INFINITY;const r=P(t,n),o=Xv(n,r),i=t-n,c=n*i,s=(c-n*e-e*e/2)/(c+i*e),u=Lf($v($v(o,Vv(n,e)),Vv(e,e/2)),Lv(o,Xv(e,r)))[1];return qv(s),n*qv(u)}Rv(699,698,Qv),function(t,n,e){const r=698+e;const o=t*t-r*r-1,i=2*r*1,c=Lf($v($v(Vv(t,t),Vv(r,r)),Vv(1,1)),Vv(-2*r,1))[1];qv(-o/i),qv(c)}(699,0,Qv),function(t,n,e){const r=698+e,o=699,i=Hv((1-(r*r+o*o-2*r*o))/(4*r*o));jv(i)}(0,0,Qv);const{ceil:Gv,log2:Uv,max:Zv,sqrt:Jv,abs:Kv,sin:tg,cos:ng}=Math;function eg(t,n,e,r,o){const{loops:i,maxCoordinate:c,squaredDiagonalLength:s,cpTrees:u}=t,f=o.curve.loop,l=(2**-21*c)**2,a=2**-46*c,p=Jv(s),h=1/p,d=2**-16*c,[v,g]=function(t,n,e,r,o){let i;const c=o.p;let s;if(n)i=[c[0],c[1]-e],s=e;else if(0===t)({center:i,radius:s}=Cv(r,o));else{({center:i,radius:s}=Cv(r,o,!0));const n=ne(o.p,i),e=ue(tg(t),ng(t))(n);i=ce(o.p)(e)}return[i,s]}(r,n,p,h,o),m=o.p;let b=function(t,n,e,r,o,i,c){if(n)return r.filter(t=>t!==e).flatMap(t=>t.curves.map(t=>({curve:t,ts:[0,1]})));const s=Ee(i)&&Se(i).isDull?1===i.t&&0===t?-1:0===i.t?1:od(c,i):0,u=Hd(o.get(e),i,s,0);return u&&u!==u.next.next?qd([u,u]):e.curves.map(t=>({curve:t,ts:[0,1]}))}(r,n,f,i,u,o,{center:v,radius:g}),x=v;const w=Jv(function(t,n,e,r){let o=Number.POSITIVE_INFINITY;for(let i=0;i<n.length;i++){const c=n[i],s=c.curve.ps,u=2;for(let n=0;n<u+1;n++){const i=Bv(t,e,r,mo(s,c.ts[n/u]));if(i){let t=_l(e,i);t<o&&(o=t)}}}return(1+2**-10)*o}(c,b,m,v));let _,I;g>w&&(x=ie(m,v,w/g));let N=0;for(;N<25;){const i=Fv(x,o.p);N<2&&(b=zv(b,x,i));const s=Ad(Zv(0,Gv(Uv(c/i)))+1,b,x,o.curve,o.t,e&&0==N&&g!==1/h,r).map(t=>mr(t.curve,t.t,!1));let u,f=Number.NEGATIVE_INFINITY;_=[];for(const t of s){if(void 0===t)continue;const n=Fv(o.p,t.p);n>f&&(f=n,u=t),0!==n&&_.push(t)}const p=f;if(I=u,void 0===I||0===p)return;const m=Fv(x,I.p);if(0===N&&g<(1-d)*Jv(m))return void Yv(t,g,v,o);if(!n&&p<=Zv(Rv(g,Jv(m),4*a),l))return;if(x=kv(x,o.p,I.p),Kv(Jv(i)-Jv(m))<a)break;if(N++,25===N)return}return{circle:{center:x,radius:Vn(x,I.p)},zs:[I]}}function rg(t,n,e,r){const{cpTrees:o}=t;e[0]=0===e[0].t?mr(e[0].curve.prev,1,!0):e[0];const i=e.map(t=>od(n,t));for(let r=0;r<e.length;r++)if(Gd(t,e[r],n,i[r],0))return;const{anyFailed:c,cpNodes:s}=Qd(r,r,n,i,o,e);if(!c)return r&&function(t,n){const[e,r]=n,o=r.cp,i=Dd(!0,!0,!1,t.get(o.pointOnShape.curve.loop),{...o,order2:1},r),c=Dd(!0,!0,!1,t.get(e.cp.pointOnShape.curve.loop),{...e.cp,order2:-1},e.prev);c.prevOnCircle=i,c.nextOnCircle=i,i.prevOnCircle=c,i.nextOnCircle=c,r.next=e,e.prev=r,c.next=i,i.prev=c}(o,s),s[0];s.forEach(t=>{void 0!==t&&tr(t,o)})}const{PI:og,atan2:ig}=Math;function cg(t,n,e,r){let o;const i=n*og/180;for(let n=0;n<e.length;n++){const c=[0],s=e[n];if(1===s.t){const{curve:t}=s,n=Me(t.ps,t.next.ps);if(n.isQuiteDull){const t=rd(n.tangents[0]),e=rd(n.tangents[1]),r=(ig(t[1],t[0])+2*og)%(2*og),o=((ig(e[1],e[0])+2*og)%(2*og)-r+2*og)%(2*og);let s=i;for(;s<=o-i/2;)c.push(s),s+=i}}for(let e of c){const i=eg(t,!1,r,e,s);if(i){const{circle:n,zs:e}=i,r=rg(t,n,[s,...e],!1);o=o||r}if("undefined"!=typeof _debug_&&n+1===_debug_.directives.stopAfterTwoProngsNum)return}}return o}function sg(t,n,e,r){let o;for(let i=0;i<e.length;i++){const c=cg(t,n,e[i],r);o=void 0===o?c:o}return o}function ug(t,n=.4,e=10,r=2**-16){const o=[0],i=[1];for(;;){const c=o[o.length-1],s=i[i.length-1],u=Dn(t,c,s),f=uh(u),l=Hn(u);if(f<=e&&l<=n||s-c<=r){if(o.push(i.pop()),1===s)return o;continue}const a=(c+s)/2;i.push(a)}}function fg(t,n,e){return function(r){const o=[],i=r.curves;for(let r=0;r<i.length;r++){const c=i[r],s=c.ps;if(uh(s)<t)continue;let u=ug(s,n,e);u=2===u.length?[.5]:u,u.push(...Bn(s)),u=u.filter(t=>0!==t&&1!==t);const f=u.map(t=>mr(c,t,!0));o.push(...f)}return o}}const lg=Ir,ag=P,pg=b,hg=Ir,dg=Po,vg=Ao,gg=Ir,mg=fr,bg=b,xg=x;const wg=P,_g=Ir,Ig=fr,Ng=b,Mg=x;function Sg(t){if(bt(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&pt(t)&&(t=Fu(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=wg(r,n),u=wg(i,r),f=Mg(u,s),l=wg(o,e),a=wg(c,o),p=Mg(a,l),h=Ng(Mg(_g(n,Mg(f,[0,r])),_g(r,Mg(u,[0,r]))),Mg(_g(e,Mg(p,[0,o])),_g(o,Mg(a,[0,o]))));return[Ng(Ig(f,f),Ig(p,p)),Dc(h)]}(t);return{minima:[],maxima:ho(n,0,1).map(t=>(t.tS+t.tE)/2),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=vv(t),[[s,u],[f,l]]=wv(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[hg(6,pg(ag(s,n),hg(3,ag(r,i))))],[hg(6,pg(ag(u,e),hg(3,ag(o,c))))]]}if(t.length<=3)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=mg(a,i),d=mg(p,e),v=mg(u,c),g=mg(u,i),m=mg(f,f),b=mg(s,c),x=mg(l,r),w=mg(l,e),_=mg(f,r),I=mg(r,e),N=mg(r,n),M=mg(r,o),S=mg(e,e),E=mg(e,n),y=mg(e,i),O=mg(n,c),C=mg(n,o),T=mg(n,n),P=mg(c,i),A=mg(c,o),k=mg(i,i),B=mg(i,o),F=mg(o,o),z=xg(mg(a,c),mg(p,r)),Y=xg(h,d),V=bg(mg(u,r),mg(l,c)),L=bg(bg(mg(u,e),mg(s,r)),bg(mg(l,i),mg(f,c))),$=xg(v,x),X=xg(bg(g,b),bg(w,_)),j=bg(mg(r,r),mg(c,c)),q=bg(I,P),W=bg(y,O),H=bg(A,k),D=bg(N,S),Q=bg(mg(e,o),mg(n,i)),R=xg(T,F),G=xg(E,B),U=bg(M,y),Z=xg(I,P),J=bg(mg(r,i),mg(e,c)),K=bg(A,H),tt=bg(N,D),nt=bg(M,W),et=bg(y,W),rt=xg(tt,K),ot=bg(W,O),it=bg(U,O),ct=bg(Po(w),_),st=mg(T,xg(h,gg(3,d))),ut=mg(F,xg(gg(3,h),d)),ft=Po(bg(mg(C,bg(xg(mg(a,e),mg(p,i)),gg(3,xg(mg(l,f),mg(u,s))))),gg(3,mg(mg(s,f),G)))),lt=gg(3,bg(mg(Q,xg(m,mg(s,s))),mg(R,bg(mg(u,f),mg(l,s))))),at=bg(bg(st,ut),bg(ft,lt)),pt=mg(a,bg(mg(o,bg(tt,gg(3,H))),mg(n,et))),ht=mg(p,bg(bg(mg(r,bg(gg(3,T),F)),mg(e,bg(gg(3,E),dg(B)))),mg(n,K))),dt=gg(3,bg(bg(mg(u,bg(xg(mg(l,R),mg(u,C)),dg(xg(mg(f,G),mg(s,Q))))),mg(s,xg(bg(dg(mg(l,G)),mg(f,bg(dg(xg(N,A)),xg(S,k)))),mg(s,it)))),bg(mg(l,bg(mg(l,C),dg(mg(f,Q)))),mg(m,nt)))),vt=bg(xg(pt,ht),dt),gt=mg(a,bg(bg(dg(mg(r,Q)),mg(e,ot)),mg(i,bg(vg(A),K)))),mt=mg(p,bg(bg(dg(mg(r,bg(gg(3,E),B))),mg(e,bg(S,dg(A)))),mg(i,ot))),bt=gg(3,bg(bg(mg(u,xg(bg(dg(xg(mg(l,G),mg(s,it))),mg(f,rt)),mg(u,Q))),mg(s,xg(dg(mg(f,Z)),mg(s,J)))),bg(mg(l,bg(bg(mg(l,Q),dg(mg(f,nt))),mg(s,rt))),mg(m,J)))),xt=bg(xg(gt,mt),bt),wt=mg(a,bg(mg(r,bg(M,dg(W))),mg(c,bg(S,gg(3,H))))),_t=mg(p,bg(mg(r,bg(gg(3,D),K)),mg(c,et))),It=gg(3,bg(bg(mg(u,bg(xg(mg(l,rt),mg(u,nt)),dg(xg(mg(f,Z),mg(s,J))))),mg(s,xg(mg(r,xg(ct,mg(s,c))),mg(c,bg(dg(mg(l,i)),mg(f,c)))))),bg(mg(l,bg(mg(l,W),mg(r,bg(dg(mg(f,i)),mg(l,o))))),mg(f,mg(c,ct))))),Nt=bg(xg(wt,_t),It),Mt=xg(bg(mg(j,Y),dg(mg(q,z))),gg(3,bg(mg(V,X),mg(L,$)))),St=xg(mg(z,j),gg(3,mg(V,$)));return{inflectionPoly:[xg(mg(s,o),mg(f,n)),xg(bg(mg(u,o),mg(s,i)),bg(mg(l,n),mg(f,e))),xg(bg(g,b),bg(w,_)),xg(v,x)],otherExtremaPoly:[at,vt,xt,Nt,Mt,St]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=ho(r,0,1),i=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(lg(e-r,t[r]));return n}(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=(o[t].tS+o[t].tE)/2,r=Xr(i,n);H(q(Xr(e,n),r))>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:ho(e,0,1).map(t=>(t.tS+t.tE)/2)}}const Eg=Number.POSITIVE_INFINITY,yg=Kn(function(t){const n=[[{bezier:void 0,t:void 0,val:Eg},{bezier:void 0,t:void 0,val:Eg}],[{bezier:void 0,t:void 0,val:-Eg},{bezier:void 0,t:void 0,val:-Eg}]];return t.curves.forEach(function(t){const e=ec(t.ps);{const r=e.box[0][0],o=n[0][0].val;(r<o||r===o&&e.ts[0][0]>n[0][0].t)&&(n[0][0]={bezier:t,t:e.ts[0][0],val:r})}{const r=e.box[0][1],o=n[0][1].val;(r<o||r===o&&e.ts[0][1]>n[0][1].t)&&(n[0][1]={bezier:t,t:e.ts[0][1],val:r})}{const r=e.box[1][0],o=n[1][0].val;(r>o||r===o&&e.ts[1][0]>n[1][0].t)&&(n[1][0]={bezier:t,t:e.ts[1][0],val:r})}{const r=e.box[1][1],o=n[1][1].val;(r>o||r===o&&e.ts[1][1]>n[1][1].t)&&(n[1][1]={bezier:t,t:e.ts[1][1],val:r})}}),{minY:mr(n[0][1].bezier,n[0][1].t,!0),minX:mr(n[0][0].bezier,n[0][0].t,!0),maxX:mr(n[1][0].bezier,n[1][0].t,!0),maxY:mr(n[1][1].bezier,n[1][1].t,!0)}});function Og(t){return yg(t).minY}function Cg(t){const{loops:n}=t,e=n.map(Og);let r;for(let n=1;n<e.length;n++){const o=e[n],i=eg(t,!0,!1,0,o);if(!i)throw new Error("Unable to find hole-closing 2-prong");const{circle:c,zs:s}=i,u=rg(t,c,[o,s[0]],!0);r=void 0===r?u:r}return r}const Tg=Kn(function(t){let n,e,r,o,i=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(const f of t){const t=yg(f);t.minX.p[0]<i&&(n=t.minX,i=t.minX.p[0]),t.maxX.p[0]>c&&(e=t.maxX,c=t.maxX.p[0]),t.minY.p[1]<s&&(r=t.minY,s=t.minY.p[1]),t.maxY.p[1]>u&&(o=t.maxY,u=t.maxY.p[1])}return{minX:n,minY:r,maxX:e,maxY:o}});function Pg(t,n,e){const{minBezLength:r,maxCurviness:o,maxLength:i,angleIncrement:c}=e,s=cv(r),u=function(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];uh(o.ps)<t||Me(o.ps,o.next.ps).isQuiteDull&&(e.push(mr(o,1,!0)),e.push(mr(o.next,0,!0)))}return e}}(r),f=fg(r,o,i),l=function(t){return function(n){const e=[],r=function(t){return function(n){const e={minima:[],maxima:[]};for(let r=0;r<n.curves.length;r++){const o=n.curves[r];if(uh(o.ps)<t)continue;const{minima:i,maxima:c}=Sg(o.ps);e.minima.push(...i.map(t=>mr(o,t,!0))),e.maxima.push(...c.map(t=>mr(o,t,!0)))}return e}}(t)(n);return e.push(...r.minima,...r.maxima),e}}(r),a=t.map(s),p=new Map;ev(t,p,a);const h=Tg(t),d=iv(n,(h.maxX.p[0]-h.minX.p[0])**2+(h.maxY.p[1]-h.minY.p[1])**2,t,p);let g;if(g=Cg(d),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterHoleClosers)return{cpNode:g,meta:d};if(function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.holeClosers+=n-ov,ov=n}(),g=sg(d,c,t.map(u),!1)||g,g=sg(d,c,t.map(l),!0)||g,g=sg(d,c,t.map(f),!1)||g,function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.oneAnd2Prongs+=n-ov,ov=n}(),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterTwoProngs)return{cpNode:g,meta:d};if(g=function(t,n){if(void 0===n)return;const e=new Set;let r=!0;for(;r;){r=!1;const o=new Set(v(n));for(const n of o){const{closeBysFor3Prong:i,addedCpNodes:c}=Jd(t,n);c.length>0&&(r=!0),void 0===i?e.add(n):(r=!0,tv(t.cpTrees,i,o,e)),c.forEach(t=>t.forEach(t=>e.add(t)))}n=Kd(e)}return Kd(e)}(d,g),void 0===g)return;if("undefined"!=typeof _debug_&&_debug_.directives.stopAfterThreeProngs)return{cpNode:g,meta:d};const m={cpNode:g,meta:d};return"undefined"!=typeof _debug_&&(_debug_.generated.timing.threeProngs+=performance.now()-ov),m}function Ag(t,n){const{maxCoordinate:e,maxRadius:r}=function(t){let n=0,e=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const c of t)for(const t of c)for(const c of t){const t=c[0],s=c[1],u=gh(mh(t),mh(s));u>n&&(n=u),t<e&&(e=t),t>r&&(r=t),s<o&&(o=s),s>i&&(i=s)}return{maxCoordinate:n,maxRadius:gh(r-e,i-o)}}(t),o=function(t,n,e){const r=Math.ceil(Math.log2(t)),o=Math.ceil(Math.log2(n)),i={...e};for(const t in ed){let n=i[t];const e=ed[t],{range:c,scaleByMaxCoordinate:s,scaleByMaxRadius:u}=e;n<c[0]&&(n=c[0]),n>c[1]&&(n=c[1]),s?n*=2**r*2**-10:u&&(n*=2**o*2**-10),i[t]=n}return i}(e,r,{...nd,...n||{}}),{applySat:i,simplify:c,satScale:s,simplifyTolerance:u}=o,f=vh(t),l=[];for(const t of f){let n=Pg(t,e,o);void 0!==n&&(i&&(n=td(n,s)),c&&(n=Hh(n,u,50)),l.push(n))}return l}const{getProngCount:kg,isOnSameCircle:Bg,isTerminating:Fg}=ir;function zg(t){const n=function(t){let n=t;const e=Rh(t);for(;e.length;){const r=e.pop();if(r.isHoleClosing||r.isIntersection)continue;let o=r.next;for(;;){o=o.next;let e=!1;const r=o.prevOnCircle;if(kg(o)>2){const n=o.nextOnCircle;Bg(o,t)?e=!0:o.next===n?o=n:n.next!==r&&(e=!0)}else if(Fg(o)&&!o.isIntersection)return void(n=o);if(e){r.next=o,o.prev=r,n=o;break}}}return n}(Ze(t.cpNode));if(n)return{cpNode:n,meta:{...t.meta,cpTrees:Wh(n)}}}let Yg=0;function Vg(t){return t.map(t=>{return(n=t.cp.pointOnShape).p[0]+", "+n.p[1]+" | bz: "+n.curve.idx+" | t: "+n.t;var n})}function Lg(t,n=3){return t[0].toFixed(n)+", "+t[1].toFixed(n)}const $g={δToString:Vg,δsToString:function(t){return t.map(Vg)},pointToStr:Lg,pointsToStr:function(t,n=3){return t.map(t=>Lg(t,n))},nameObj:function(t,n=""){t.name=""+n+Yg++}},Xg="red thin10 nofill ",jg="http://www.w3.org/2000/svg";function qg(t,n,e=Xg,r){const o=n.center,i=n.radius,c=document.createElementNS(jg,"circle");return c.setAttributeNS(null,"cx",o[0].toString()),c.setAttributeNS(null,"cy",o[1].toString()),c.setAttributeNS(null,"r",i.toString()),c.setAttributeNS(null,"class",e),t.appendChild(c),r&&setTimeout(()=>c.remove(),r),[c]}function Wg(t,n,e=3,r="red",o){const[i]=qg(t,{center:n,radius:e},"dot "+r,o);return o&&setTimeout(()=>i.remove(),o),[i]}function Hg(t,n,e=Xg,r=0,o=void 0,i=0){const c=document.createElementNS(jg,"line");c.setAttributeNS(null,"x1",n[0][0].toString()),c.setAttributeNS(null,"y1",n[0][1].toString()),c.setAttributeNS(null,"x2",n[1][0].toString()),c.setAttributeNS(null,"y2",n[1][1].toString()),c.setAttributeNS(null,"class",e),t.appendChild(c);let s=[];if(void 0!==o)for(const e of n)s.push(...Wg(t,e,i,o,r));for(const n of s)t.appendChild(n);const u=[c,...s];return r&&setTimeout(()=>{for(const t of u)t.remove()},r),u}function Dg(t,n,e=Xg,r=3,o){const i=qg(t,{center:n,radius:r},e),c=[[n[0]-r,n[1]],[n[0]+r,n[1]]],s=[[n[0],n[1]-r],[n[0],n[1]+r]],u=Hg(t,c,e),f=Hg(t,s,e);return o&&setTimeout(()=>{i.forEach(t=>t.remove()),u.forEach(t=>t.remove()),f.forEach(t=>t.remove())},o),[...i,...u,...f]}function Qg(t){return 2===t?"L":3===t?"Q":4===t?"C":void 0}function Rg(t,n,e=Xg,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p]]=n,h=document.createElementNS(jg,"path");h.setAttributeNS(null,"d",`M${s} ${u} Q${f} ${l} ${a} ${p}`),e&&h.setAttributeNS(null,"class",e);let d=[];if(void 0!==o)for(const e of n)d.push(...Wg(t,e,i,o,r));let v=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)v.push(...Hg(t,[n[e],n[e+1]],c,r));const g=[h,...d,...v];for(const n of g)t.appendChild(n);return r&&setTimeout(()=>{for(const t of g)t.remove()},r),g}function Gg(t,n,e=Xg,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p],[h,d]]=n;if(s===h&&f===h&&a===h&&u===d&&l===d&&p===d)return Dg(t,[s,u],e,.2,r);const v=document.createElementNS(jg,"path");v.setAttributeNS(null,"d",`M${s} ${u} C${f} ${l} ${a} ${p} ${h} ${d}`),v.setAttributeNS(null,"class",e);let g=[];if(void 0!==o)for(const e of n)g.push(...Wg(t,e,i,o,r));let m=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)m.push(...Hg(t,[n[e],n[e+1]],c,r));const b=[v,...g,...m];for(const n of b)t.appendChild(n);return r&&setTimeout(()=>{for(const t of b)t.remove()},r),b}function Ug(t,n,e=Xg,r=0,o=void 0,i=0,c=void 0){return 2===n.length?Hg(t,n,e,r,o,i):3===n.length?Rg(t,n,e,r,o,i,c):4===n.length?Gg(t,n,e,r,o,i,c):[]}const Zg=["red","green","cyan","blue"];function Jg(t,n){const e=1-n;if(4===t.length){const[[r,o],[i,c],[s,u],[f,l]]=t;return[r*e**3+3*i*e**2*n+3*s*e*n**2+f*n**3,o*e**3+3*c*e**2*n+3*u*e*n**2+l*n**3]}if(3===t.length){const[[r,o],[i,c],[s,u]]=t;return[r*e**2+2*i*e*n+s*n**2,o*e**2+2*c*e*n+u*n**2]}if(2===t.length){const[[r,o],[i,c]]=t;return[r*e+i*n,o*e+c*n]}return[NaN,NaN]}function Kg(t,n){return 2===t.length?function(t,n){const[[e,r],[o,i]]=t,c=1-n,s=[c*e+n*o,c*r+n*i];return[[[e,r],s],[s,[o,i]]]}(t,n):3===t.length?function(t,n){const[[e,r],[o,i],[c,s]]=t,u=1-n,f=[u*u*e+2*u*n*o+n*n*c,u*u*r+2*u*n*i+n*n*s];return[[[e,r],[u*e+n*o,u*r+n*i],f],[f,[u*o+n*c,u*i+n*s],[c,s]]]}(t,n):4===t.length?function(t,n){const[[e,r],[o,i],[c,s],[u,f]]=t,l=1-n,a=n*n,p=a*n,h=l*l,d=h*l,v=[p*u+3*l*a*c+3*h*n*o+d*e,p*f+3*l*a*s+3*h*n*i+d*r];return[[[e,r],[n*o+l*e,n*i+l*r],[a*c+2*l*n*o+h*e,a*s+2*l*n*i+h*r],v],[v,[a*u+2*n*l*c+h*o,a*f+2*n*l*s+h*i],[n*u+l*c,n*f+l*s],[u,f]]]}(t,n):[]}const tm={circle:qg,crossHair:Dg,dot:Wg,line:Hg,rect:function(t,n,e=Xg,r){const[[o,i],[c,s]]=n,u=o<c?o:c,f=i<s?i:s,l=Math.abs(o-c),a=Math.abs(i-s),p=document.createElementNS(jg,"rect");return p.setAttributeNS(null,"x",u.toString()),p.setAttributeNS(null,"y",f.toString()),p.setAttributeNS(null,"width",l.toString()),p.setAttributeNS(null,"height",a.toString()),e&&p.setAttributeNS(null,"class",e),t.appendChild(p),r&&setTimeout(()=>p.remove(),r),[p]},beziers:function(t,n,e,r){const o=void 0===e,i=[];for(let r=0;r<n.length;r++){const c=n[r],s=o?"thin5 nofill "+Zg[r%Zg.length]:e;i.push(...Ug(t,c,s))}return r&&setTimeout(()=>i.forEach(t=>t.remove()),r),i},bezier:Ug,bezierPiece:function(t,n,e,r=Xg,o){const i=e[0]===e[1]?Dg(t,Jg(n,e[0]),r,1.5):Ug(t,function(t,n){if(0===n[0]&&1===n[1])return t;if(n[0]===n[1]){const e=Jg(t,n[0]);return[e,e,e,e]}return 0===n[0]?Kg(t,n[1])[0]:1===n[1]?Kg(t,n[0])[1]:Kg(Kg(t,n[0])[1],(n[1]-n[0])/(1-n[0]))[0]}(n,e),r);return o&&setTimeout(()=>i.forEach(t=>t.remove()),o),i},quadBezier:Rg,cubicBezier:Gg,polygon:function(t,n,e=Xg,r){const o=document.createElementNS(jg,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},loop:function(t,n,e=Xg,r){if(!n.length)return[];const o=document.createElementNS(jg,"path");let i=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];i+=`${Qg(e.length)} `;for(let t=1;t<e.length;t++)i+=`${e[t][0]} ${e[t][1]} `}return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},polyline:function(t,n,e=Xg,r){if(n.length<2)return[];const o=document.createElementNS(jg,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},text:function(t,n,e,r,o=Xg,i){const c=document.createElementNS(jg,"text");return c.setAttributeNS(null,"x",n[0].toString()),c.setAttributeNS(null,"y",n[1].toString()),c.setAttributeNS(null,"font-size",r.toString()),c.setAttributeNS(null,"class",o),c.textContent=e,t.appendChild(c),i&&setTimeout(()=>c.remove(),i),[c]}};function nm(t,n){return(n,e,r,o=0,i=1)=>{let c,s;switch(e.isHoleClosing){case!1:c="red ",s="2";break;case!0:c="cyan ",s="10"}const u=e.cp,{circle:f,pointOnShape:l}=u,{center:a,radius:p}=f,{isSource:h,p:d}=l,v=e.nextOnCircle.cp.pointOnShape.p,g=h?d:v,m=h?v:d,{line:b,dot:x,circle:w,crossHair:_}=tm,I=x(n,f.center,.02*i,"yellow",o);return[...w(n,f,c+"thin"+s+" nofill",o),...x(n,g,.005*i,c,o),...x(n,m,.01*i,c,o),...t?_(n,f.center,"red thin2 nofill",.002*i,o):[],...I]}}function em(t,n){return{center:t.center,radius:n*t.radius}}const{getAllOnCircle:rm}=ir,{isTerminating:om}=ir,im=["thin10 blue nofill","thin10 red nofill"];function cm(t,n,e,r=0,o=1){let i=n.cpNode;if(!i)return[];for(;!om(i);)i=i.next;const c=[];let s=0;return Qe(i,n=>{if(om(n))return;const e=Pe(n);e&&(c.push(...tm.bezier(t,e,im[s%2],r)),s++)}),c}function sm(t,n,e,r){const o=document.createElementNS("http://www.w3.org/2000/svg","circle");return o.setAttributeNS(null,"cx",n[0].toString()),o.setAttributeNS(null,"cy",n[1].toString()),o.setAttributeNS(null,"r",e.toString()+"%"),o.setAttributeNS(null,"class",r),t.appendChild(o),o}function um(t,n,e="thin5 purple nofill",r=0,o=1){const i=[],c=[];for(const t of n){if(Be(t))continue;const n=Pe(t);n&&c.push(n)}return i.push(...p(t,c,e,r)),i}const fm={oneProng:function(t,n,e,r=0,o=1){const i=n[0].cp,{circle:c,pointOnShape:s}=i;return[...tm.dot(t,s.p,.02*o,"deeppink",r),...tm.dot(t,c.center,.05*o,"deeppink",r),...tm.circle(t,c,"deeppink thin5 nofill",r)]},twoProng:nm(!1),threeProng:function(t,n,e,r=0,o=1){const i=em(n.cp.circle,1),{center:c,radius:s}=i,u=ir.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=tm,p=l(t,i,"blue thin2 nofill",r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...tm.line(t,[e,c],"thin5 red",r))}const v=a(t,i.center,"red thin2 nofill",.02*o,r);return[...h,...d,...p,...v]},boundingHull:function(t,n,e="thin5 black nofill",r=0,o=1){return tm.polygon(t,n,e,r)},looseBoundingBox:function(t,n,e="thin5 brown nofill",r=0,o=1){const[[i,c],[s,u]]=n;return n=[[i,c],[s,c],[s,u],[i,u]],tm.polygon(t,n,e,r)},tightBoundingBox:function(t,n,e="thin5 pinker nofill",r=0,o=1){return tm.polygon(t,n,"thin5 pinker nofill",r)},vertex:function(t,n,e,r=0,o=1){const i=n.cp.circle;let c=[];return c=[...tm.dot(t,i.center,.01*o,"darkgreen",r)],c},mat:cm,maxVertex:function(t,n){const e=n.cp.circle;return tm.circle(t,e,"brown thin10 nofill")},leaves:function(t,n,e="thin10 deeppink nofill",r=0,o=1){const i=[],{line:c,dot:s,circle:u}=tm;for(const f of n){const n=f.cp,{circle:l}=n,{center:a,radius:p}=l,h=[sm(t,a,.5,"pinker thin5 nofill")],d=ir.getAllOnCircle(f).map(t=>t.cp.pointOnShape),v=[],g=[];for(let n=0;n<d.length;n++){const e=d[n].p;g.push(...s(t,e,.01*(n+1)*o,"pinker",r)),v.push(...c(t,[e,a],"thin5 red",r))}const m=u(t,l,e,r);i.push(...m,...g,...v,...h)}return i},cull:function(t,n,e="thin10 cyan nofill",r=0,o=1){const i=[];return i.push(...tm.crossHair(t,n,e,.1*o,r)),i},cpNode:function(t,n,e="blue thin2 nofill",r=0,o=1){const i=em(n.cp.circle,1),{center:c,radius:s}=i,u=ir.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=tm,p=l(t,i,e,r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...tm.line(t,[e,c],"thin5 red",r))}const v=a(t,c,"orange thin10 nofill",2*o,r);return[...h,...d,...p,...v]},branch:um,holeCloser:nm(!1),speed:function(t,n,e,r=0,o=1){const i=[],c=je(0)(n);if(void 0===c)return[];const s=n.cp.pointOnShape,{p:u,t:f}=s,l=c*o/8,a=Qp(function(t,n){const[e,r]=jn(t);return[-vn(r,n),vn(e,n)]}(s.curve.ps,f),l);return i.push(...tm.line(t,[u,ce(u,a)],"red thin5",r)),i}},lm={...fm,twoProng:nm(!0)};function am(t){if(!t)return void(window._debug_=void 0);let n=window._debug_;n={...n,generated:{...n&&n.generated?n.generated:{},elems:{...n&&n.generated&&n.generated.elems?n.generated.elems:{},oneProng:[],twoProng:[],looseBoundingBox:[],tightBoundingBox:[],vertex:[],threeProng:[],boundingHull:[],mat:[],cpNode:[],maxVertex:[],leaves:[]},timing:{...n&&n.generated&&n.generated.timing?n.generated.timing:{},holeClosers:0,oneAnd2Prongs:0,threeProngs:0,sats:0,simplifyMat:0}},fs:{...n&&n.fs?n.fs:{},drawElem:{...n&&n.fs&&n.fs.drawElem?n.fs.drawElem:{},...fm},...$g},directives:{...n&&n.directives?n.directives:{},stopAfterHoleClosers:!1,stopAfterHoleClosersNum:void 0,stopAfterTwoProngs:!1,stopAfterTwoProngsNum:void 0,stopAfterThreeProngs:!1,stopAfterThreeProngsNum:void 0}},window._debug_=n}const pm={oneProng:[],twoProng:[],threeProng:[],looseBoundingBox:[],tightBoundingBox:[],boundingHull:[],vertex:[],mat:[],maxVertex:[],leaves:[],cull:[],cpNode:[],branch:[],holeCloser:[],speed:[]},hm=Object.keys(pm);function dm(t,n,e,r){const o=[];for(const r of t)o.push({type:0,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(vm);const i=new Set,c=[];for(const t of o){const{item:n}=t;if(0===t.type){for(const t of i.values())r(n,t)&&c.push([n,t]);i.add(n)}else 1===t.type&&i.delete(t.item)}return c}function vm(t,n){const e=t.x-n.x;return 0!==e?e:0===t.type?-1:1}function gm(t){return t}function mm(t,n){const e=eg(t,!1,!1,0,n);if(void 0===e)return;const{circle:r,zs:o}=e;return rg(t,r,[n,...o],!1)}const bm=1e-4;function xm(t,n){const e=t.cp.pointOnShape,r=n.cp.pointOnShape;let{curve:o,p:i,t:c}=e,{curve:s,p:u,t:f}=r;if(i[0]===u[0]&&i[1]===u[1])return[i];1===c&&(c=0,o=o.next),0===f&&(f=1,s=s.prev);const{ps:l}=o,{ps:a}=s,p=[i,ce(i)(se(fe(l,c)))],h=[u,ce(u)(se(fe(a,f)))],d=te(p,h),v=ne(i,u);let g;if(d){const t=ne(i,d),n=ne(u,d);g=ee(t,v)<0||ee(n,v)>0}else g=!0;if(!g)return[i,d,u];const m=ne(p[0],p[1]),b=ne(h[0],h[1]),x=Math.abs(oe(v,m))/9,w=Math.abs(oe(v,b))/9;return x>.01||w>.01||x>bm||w>bm?void 0:[i,u]}const wm=Kn(function(t){return Un(Pe(t))});function _m(t,n){const e=function(t){const n=new Map;for(let e of t)for(let r of t){const t=e.cp.circle.center,o=r.cp.circle.center,i=e.cp.pointOnShape.p,c=r.cp.pointOnShape.p;r!==e&&t[0]===o[0]&&t[1]===o[1]&&i[0]===c[0]&&i[1]===c[1]&&n.set(e,r)}return n}(n),r=t.length,o=[];for(let n=0;n<r;n++){const i=t[n],c=[];for(let o=0;o<r;o++){const r=t[o];if(n===o){c.push(0);continue}let s=Number.POSITIVE_INFINITY;for(const t of ke(i)){let n=wm(t),o=t.next;for(;!er(o,r);)if(o.isHoleClosing)o=Im(e,o);else{if(sr(o)){n=Number.POSITIVE_INFINITY;break}n+=wm(o),o=o.next}n<s&&(s=n)}c.push(s)}o.push(c)}return o}function Im(t,n){return t.get(n).next}export{ir as CpNodeFs,r as beziersToSvgPathStr,gm as connectHoleClosers,ev as createInitialCpTree,mr as createPos,hm as debugElemNames,p as drawBeziersAsSinglePath,um as drawBranch,fm as drawElemFs,lm as drawElemFsDetailed,cm as drawMat,pm as emptyDebugElems,am as enableDebugForMat,eg as find2Prong,mm as findAndAdd2Prong,Cg as findAndAddHoleClosing2Prongs,Ag as findMats,h as floydWarshall,Ke as getBoundaryBeziersToNext,qd as getBoundaryPieceBeziers,Ah as getBranches,Ad as getCloseBoundaryPointsCertified,Od as getClosestSquareDistanceToRect,fg as getFor2ProngsOnLoop,_m as getGraph,xm as getImpliedBoundaryBezierBetween,iv as getMeta,a as getPathsFromStr,Ed as getPotentialClosestPointsOnCurveCertified,Kh as getSatCulls,Tg as getShapeBounds,cv as getSharpCornersOnLoop,sr as isVertexSpecial,n as loopFromBeziers,Hh as simplifyMat,dm as sweepLine,td as toScaleAxis,zg as trimMat};
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "flo-mat",
3
3
  "sideEffects": false,
4
4
  "description": "Medial / Scale Axis Transform (MAT/SAT) Library.",
5
- "version": "3.0.5",
5
+ "version": "3.0.6",
6
6
  "author": {
7
7
  "name": "Floris Steenkamp"
8
8
  },
@@ -34,7 +34,7 @@
34
34
  "big-float-ts": "^4.0.2",
35
35
  "double-double": "^3.0.4",
36
36
  "flo-bezier3": "^6.0.7",
37
- "flo-boolean": "^5.0.1",
37
+ "flo-boolean": "^5.0.3",
38
38
  "flo-draw": "^2.0.5",
39
39
  "flo-gauss-quadrature": "^2.1.4",
40
40
  "flo-ll-rb-tree": "^0.3.4",
@@ -1,4 +1,4 @@
1
- import { memoize } from "flo-memoize";
1
+ // import { memoize } from "flo-memoize";
2
2
  import { getPosCorner } from "./get-pos-corner.js";
3
3
  import { isPosCorner } from "./is-pos-corner.js";
4
4
  import { PointOnShape } from "./point-on-shape.js";