svg-path-simplify 0.0.8 → 0.0.9

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.
Files changed (34) hide show
  1. package/README.md +25 -5
  2. package/dist/svg-path-simplify.esm.js +576 -494
  3. package/dist/svg-path-simplify.esm.min.js +1 -1
  4. package/dist/svg-path-simplify.js +576 -494
  5. package/dist/svg-path-simplify.min.js +1 -1
  6. package/dist/svg-path-simplify.node.js +576 -494
  7. package/dist/svg-path-simplify.node.min.js +1 -1
  8. package/index.html +86 -29
  9. package/package.json +1 -1
  10. package/src/detect_input.js +17 -10
  11. package/src/index.js +3 -0
  12. package/src/pathData_simplify_cubic.js +113 -106
  13. package/src/pathData_simplify_cubic_extrapolate.js +25 -11
  14. package/src/pathSimplify-main.js +89 -182
  15. package/src/svgii/geometry_flatness.js +29 -36
  16. package/src/svgii/pathData_analyze.js +4 -0
  17. package/src/svgii/pathData_convert.js +26 -17
  18. package/src/svgii/pathData_interpolate.js +65 -0
  19. package/src/svgii/pathData_parse.js +25 -9
  20. package/src/svgii/pathData_parse_els.js +18 -12
  21. package/src/svgii/pathData_remove_collinear.js +31 -28
  22. package/src/svgii/pathData_remove_orphaned.js +5 -4
  23. package/src/svgii/pathData_remove_zerolength.js +8 -4
  24. package/src/svgii/pathData_reorder.js +6 -2
  25. package/src/svgii/pathData_simplify_refineCorners.js +160 -0
  26. package/src/svgii/{simplify_refineExtremes.js → pathData_simplify_refineExtremes.js} +78 -43
  27. package/src/svgii/pathData_split.js +42 -15
  28. package/src/svgii/pathData_stringify.js +3 -12
  29. package/src/svgii/rounding.js +16 -14
  30. package/src/svgii/svg_cleanup.js +1 -1
  31. package/src/pathData_simplify_cubic_arr.js +0 -50
  32. package/src/svgii/simplify.js +0 -248
  33. package/src/svgii/simplify_bezier.js +0 -470
  34. package/src/svgii/simplify_linetos.js +0 -93
@@ -1 +1 @@
1
- const{abs:e,acos:t,asin:l,atan:a,atan2:n,ceil:s,cos:r,exp:p,floor:i,log:u,max:y,min:h,pow:o,random:c,round:x,sin:f,sqrt:g,tan:v,PI:d}=Math;function m(e,t,l=!1){let a=n(t.y-e.y,t.x-e.x);return l&&a<0&&(a+=2*Math.PI),a}function M(e=null,t=null,l=null,a=null,n=!0,s=!1){let r,p,i,u,y,h={};if(!(e&&t&&l&&a))return s&&console.warn("points missing"),!1;try{if(r=(a.y-l.y)*(t.x-e.x)-(a.x-l.x)*(t.y-e.y),0==r)return!1}catch{return s&&console.warn("!catch",e,t,"p3:",l,"p4:",a),!1}p=e.y-l.y,i=e.x-l.x,u=(a.x-l.x)*p-(a.y-l.y)*i,y=(t.x-e.x)*p-(t.y-e.y)*i,p=u/r,i=y/r,h={x:e.x+p*(t.x-e.x),y:e.y+p*(t.y-e.y)};let o=!1;return p>0&&p<1&&i>0&&i<1&&(o=!0),!(n&&!o)&&h}function b(e,t){return g((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y))}function A(e,t){return(t.x-e.x)**2+(t.y-e.y)**2}function C(e,t,l,a=!1){let n={x:(t.x-e.x)*l+e.x,y:(t.y-e.y)*l+e.y};return a&&(n.angle=m(e,t),n.angle<0&&(n.angle+=2*d)),n}function w(e,t=.5,l=!1,a=!1){let n;return n=e.length>2?((e,t,l=!1)=>{let n=4===e.length,s=e[0],r=e[1],p=n?e[2]:e[1],i=e[e.length-1],u={x:0,y:0};if(l||a){let e,l,y,h,o,c=s.x===r.x&&s.y===r.y,x=i.x===p.x&&i.y===p.y;0!==t||c?1!==t||x?(c&&(t+=1e-7),x&&(t-=1e-7),e=C(s,r,t),n?(l=C(r,p,t),y=C(p,i,t),h=C(e,l,t),o=C(l,y,t),u=C(h,o,t),u.angle=m(h,o),a&&(u.cpts=[l,y,h,o])):(l=C(s,r,t),y=C(r,i,t),u=C(l,y,t),u.angle=m(l,y),a&&(u.cpts=[l,y]))):(u.x=i.x,u.y=i.y,u.angle=m(p,i)):(u.x=s.x,u.y=s.y,u.angle=m(s,r))}else{let e=1-t;u=n?{x:e**3*s.x+3*e**2*t*r.x+3*e*t**2*p.x+t**3*i.x,y:e**3*s.y+3*e**2*t*r.y+3*e*t**2*p.y+t**3*i.y}:{x:e*e*s.x+2*e*t*r.x+t**2*i.x,y:e*e*s.y+2*e*t*r.y+t**2*i.y}}return u})(e,t,l):C(e[0],e[1],t,l),l&&n.angle<0&&(n.angle+=2*d),n}function L(t,l,a,s,p,i,u,y,h){const o=(e,t,l,a)=>n(a-t,l-e);let c={cx:0,cy:0,rx:a=e(a),ry:s=e(s),startAngle:0,endAngle:0,deltaAngle:0,clockwise:u,xAxisRotation:p,largeArc:i,sweep:u};if(0==a||0==s)throw Error("rx and ry can not be 0");if(a===s){let e=Math.abs(y-t),a=Math.abs(h-l),n=e,s=Math.min(t,y),r=Math.min(l,h),p=.5*Math.PI;if(0===e&&a||0===a&&e)return n=0===e&&a?a/2:e/2,c.rx=n,c.ry=n,0===e&&a?(c.cx=t,c.cy=r+a/2,c.startAngle=l>h?p:-p,c.endAngle=l>h?-p:p,c.deltaAngle=u?Math.PI:-Math.PI):0===a&&e&&(c.cx=s+e/2,c.cy=l,c.startAngle=t>y?Math.PI:0,c.endAngle=t>y?-Math.PI:Math.PI,c.deltaAngle=u?Math.PI:-Math.PI),c}let x,v,m=a===s?0:p*d/180,M=m?f(m):0,b=m?r(m):1,A=(t-y)/2,C=(l-h)/2,w=(t+y)/2,L=(l+h)/2,k=m?b*A+M*C:A,P=m?b*C-M*A:C,S=k*k/(a*a)+P*P/(s*s);S>1&&(a*=g(S),s*=g(S),c.rx=a,c.ry=s);let $=a*s,F=a*P,E=s*k,I=F**2+E**2;if(!I)throw Error("start point can not be same as end point");let z=g(e(($*$-I)/I));i==u&&(z=-z);let Q=z*F/s,T=-z*E/a;x=m?b*Q-M*T+w:w+Q,v=m?M*Q+b*T+L:L+T,c.cy=v,c.cx=x;let q=o(x,v,t,l),D=o(x,v,y,h);!u&&D>q&&(D-=2*Math.PI),u&&q>D&&(D=D<=0?D+2*Math.PI:D);let B=D-q;return c.startAngle=q,c.endAngle=D,c.deltaAngle=B,c}function k(e,t,l,n,s,p=0,i=!0,u=!1){if(s=u?s*d/180:s,p=u?p*d/180:p,p=l!==n&&p!==2*d?p:0,i&&l!==n){let e=a(v(s=p?s-p:s)*(l/n));s=r(s)<0?e+d:e}let y=e+l*r(s),h=t+n*f(s),o={x:y,y:h};return p&&(o.x=e+(y-e)*r(p)-(h-t)*f(p),o.y=t+(y-e)*f(p)+(h-t)*r(p)),o}function P(e,t=[],l=.05){let a=3===t.length,n=t[0]||null,s=a?t[1]:null,r=a?t[2]:t[1],p=.5*Math.PI,i=!1,u=!1,y=n?m(r,n,!0):null;if(i=Math.abs(y%p)<l||Math.abs(y%p-p)<l,a){let e=s?m(s,r,!0):0;u=Math.abs(e%p)<=l||Math.abs(e%p-p)<=l}return i||u}function S(e){return 4===e.length?function(e,t,l,a){let[n,s,r,p,i,u,y,h]=[e.x,e.y,t.x,t.y,l.x,l.y,a.x,a.y],o=Math.min(e.y,a.y),c=Math.min(e.x,a.x),x=Math.max(e.x,a.x),f=Math.max(e.y,a.y);if(t.y>=o&&t.y<=f&&l.y>=o&&l.y<=f&&t.x>=c&&t.x<=x&&l.x>=c&&l.x<=x)return[];let g,v,d,m,M,b,A,C,w=[];for(let e=0;e<2;++e)if(0==e?(v=6*n-12*r+6*i,g=-3*n+9*r-9*i+3*y,d=3*r-3*n):(v=6*s-12*p+6*u,g=-3*s+9*p-9*u+3*h,d=3*p-3*s),Math.abs(g)<1e-12){if(Math.abs(v)<1e-12)continue;m=-d/v,0<m&&m<1&&w.push(m)}else A=v*v-4*d*g,A<0?Math.abs(A)<1e-12&&(m=-v/(2*g),0<m&&m<1&&w.push(m)):(C=Math.sqrt(A),M=(-v+C)/(2*g),0<M&&M<1&&w.push(M),b=(-v-C)/(2*g),0<b&&b<1&&w.push(b));let L=w.length;for(;L--;)m=w[L];return w}(e[0],e[1],e[2],e[3]):function(e,t,l){let a,n,s,r=Math.min(e.y,l.y),p=Math.min(e.x,l.x),i=Math.max(e.x,l.x),u=Math.max(e.y,l.y);if(t.y>=r&&t.y<=u&&t.x>=p&&t.x<=i)return[];let[y,h,o,c,x,f]=[e.x,e.y,t.x,t.y,l.x,l.y],g=[];for(let e=0;e<2;++e)a=0==e?y-2*o+x:h-2*c+f,n=0==e?-2*y+2*o:-2*h+2*c,Math.abs(a)>1e-12&&(s=-n/(2*a),s>0&&s<1&&g.push(s));return g}(e[0],e[1],e[2])}function $(e,t){const l=(e,t,l,a,n,s)=>{var r=Math.cos(s),p=Math.sin(s),i=a*Math.cos(e),u=n*Math.sin(e);return{x:t+r*i-p*u,y:l+p*i+r*u}};let a,n,s,r,p,i=L(e.x,e.y,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),{rx:u,ry:y,cx:h,cy:o,endAngle:c,deltaAngle:x}=i,f=t[2],g={x:t[5],y:t[6]},v=[g],d=f*Math.PI/180,m=Math.tan(d);p=Math.atan2(-y*m,u);let M=p,b=p+Math.PI,A=Math.atan2(y,u*m),C=A+Math.PI,w=[e.x,g.x],k=[e.y,g.y],P=Math.min(...w),S=Math.max(...w),$=Math.min(...k),F=Math.max(...k),E=l(c-.001*x,h,o,u,y,d),I=l(c-.999*x,h,o,u,y,d);return(E.x>S||I.x>S)&&(a=l(M,h,o,u,y,d),v.push(a)),(E.x<P||I.x<P)&&(n=l(b,h,o,u,y,d),v.push(n)),(E.y<$||I.y<$)&&(r=l(C,h,o,u,y,d),v.push(r)),(E.y>F||I.y>F)&&(s=l(A,h,o,u,y,d),v.push(s)),v}function F(e,t){return(Math.abs(t.x-e.x)+Math.abs(t.y-e.y))/2}function E(e){let t=[];try{e.map((e,t)=>"m"===e.type.toLowerCase()?t:-1).filter(e=>-1!==e)}catch{console.log("catch",e)}let l=e.map((e,t)=>"m"===e.type.toLowerCase()?t:-1).filter(e=>-1!==e);return 1===l.length?[e]:(l.forEach((a,n)=>{t.push(e.slice(a,l[n+1]))}),t)}function I(e,t){let l,a,n,s,r,p,i=[],u=[],y=e[0],h=e[1],o=e[e.length-2],c=e[e.length-1];return 4===e.length?(l=w([y,h],t),a=w([h,o],t),n=w([o,c],t),s=w([l,a],t),r=w([a,n],t),p=w([s,r],t),i.push({x:y.x,y:y.y},{x:l.x,y:l.y},{x:s.x,y:s.y},{x:p.x,y:p.y}),u.push({x:p.x,y:p.y},{x:r.x,y:r.y},{x:n.x,y:n.y},{x:c.x,y:c.y})):3===e.length?(a=w([y,h],t),n=w([h,c],t),p=w([a,n],t),i.push({x:y.x,y:y.y},{x:a.x,y:a.y},{x:p.x,y:p.y}),u.push({x:p.x,y:p.y},{x:n.x,y:n.y},{x:c.x,y:c.y})):2===e.length&&(a=w([y,c],t),i.push({x:y.x,y:y.y},{x:a.x,y:a.y}),u.push({x:a.x,y:a.y},{x:c.x,y:c.y})),[i,u]}function z(e,t,l=0,a=1){let n=[],s=6===t.length?"C":"Q",r={x:t[0],y:t[1]},p="C"===s?{x:t[2],y:t[3]}:r,i={x:t[4],y:t[5]},u=Math.max(i.x,e.x),y=Math.min(i.x,e.x),h=Math.max(i.y,e.y),o=Math.min(i.y,e.y),c=0;if(r.x<y||r.x>u||r.y<o||r.y>h||p.x<y||p.x>u||p.y<o||p.y>h){let u=S("C"===s?[e,r,p,i]:[e,r,i]).sort();if(u=u.filter(e=>e>l&&e<a),u.length){let l=function(e,t,l,a=!0){let n=[];if(!l.length)return!1;let s,r,p,i=t.length,u={x:t[i-2],y:t[i-1]};2===t.length?p=[e,u]:4===t.length?(s={x:t[0],y:t[1]},p=[e,s,u]):6===t.length&&(s={x:t[0],y:t[1]},r={x:t[2],y:t[3]},p=[e,s,r,u]);if(l.length)if(1===l.length){let e=I(p,l[0]),t=e[0],a=e[1];n.push(t,a)}else{let e=l[0],t=I(p,e),a=t[0];n.push(a),p=t[1];for(let t=1;t<l.length;t++){e=l[t-1];let a=I(p,(l[t]-e)/(1-e));n.push(a[0]),t===l.length-1&&n.push(a[a.length-1]),p=a[1]}}if(a){let e,t,l=[];return n.forEach(a=>{e={type:"",values:[]},a.shift(),t=a.map(e=>Object.values(e)).flat(),e.values=t,3===a.length?e.type="C":2===a.length?e.type="Q":1===a.length&&(e.type="L"),l.push(e)}),l}return n}(e,t,u);n.push(...l),c+=l.length}else n.push({type:s,values:t})}else n.push({type:s,values:t});return{pathData:n,count:c}}function Q(e,t=0,l=1){let a=[e[0]],n={x:e[0].values[0],y:e[0].values[1]},s={x:e[0].values[0],y:e[0].values[1]},r=e.length;for(let p=1;r&&p<r;p++){let r=e[p],{type:i,values:u}=r,y=u.slice(-2);if(y[0],y[1],"C"!==i&&"Q"!==i)a.push(r);else if("C"===i||"Q"===i){let e=z(n,u,t,l).pathData;a.push(...e)}n={x:y[0],y:y[1]},"z"===i.toLowerCase()?n=s:"M"===i&&(s={x:y[0],y:y[1]})}return a}function T(e,t=-1){let l=e.map(e=>e.x),a=e.map(e=>e.y),n=Math.min(...l),s=Math.max(...l),r=Math.min(...a),p=Math.max(...a),i={x:n,left:n,right:s,y:r,top:r,bottom:p,width:s-n,height:p-r};if(t>-1)for(let e in i)i[e]=+i[e].toFixed(t);return i}function q(e){let t=[];return e.forEach(e=>{let l=function(e){let t=function(e){let t=[];for(let l=0;l<e.length;l++){let a=e[l],n=l>0?e[l-1]:e[l],{type:s,values:r}=a,p={x:n.values[n.values.length-2],y:n.values[n.values.length-1]},i=r.length?{x:r[r.length-2],y:r[r.length-1]}:"",u=r.length?{x:r[0],y:r[1]}:"";switch(s){case"A":if("function"!=typeof arcToBezier){let e=b(p,i)/2,l=C(p,i,.5),a=k(l.x,l.y,e,e,0),n=k(l.x,l.y,e,e,Math.PI);t.push(a,n,i);break}arcToBezier(p,r).forEach(e=>{let l=e.values,a={x:l[0],y:l[1]},n={x:l[2],y:l[3]},s={x:l[4],y:l[5]};t.push(a,n,s)});break;case"C":let e={x:r[2],y:r[3]};t.push(u,e);break;case"Q":t.push(u)}"z"!==s.toLowerCase()&&t.push(i)}return t}(e),l=T(t);return l}(e);t.push(l)}),t}function D(e,t){let[l,a,n,s,r,p]=[e.x,e.y,e.width,e.height,e.x+e.width,e.y+e.height],[i,u,y,h,o,c]=[t.x,t.y,t.width,t.height,t.x+t.width,t.y+t.height],x=!1;return n*s!=y*h&&n*s>y*h&&l<i&&r>o&&a<u&&p>c&&(x=!0),x}function B(e,t=9){let l=0,a=[],n=E(e),s=n.length>1,r=[];if(s){let e=q(n);e.forEach(function(t,l){for(let l=0;l<e.length;l++){let a=e[l];if(t!=a){D(t,a)&&r.push(l)}}})}return n.forEach((e,t)=>{a=[];let n=0,s=0,p=1,i=[];e.forEach(function(t,l){let[s,r]=[t.type,t.values],p=r.length;if(r.length){let u=(l>0?e[l-1]:e[0]).values,y=u.length,h={x:u[y-2],y:u[y-1]},o={x:r[p-2],y:r[p-1]};if("C"===s||"Q"===s){let e={x:r[0],y:r[1]};i="C"===s?[h,e,{x:r[2],y:r[3]},o]:[h,e,o];let t=Math.abs(function(e,t=!1){let l,[a,n,s,r]=[e[0],e[1],e[2],e[e.length-1]];if(e.length<3)return 0;3===e.length&&(n={x:1*e[0].x/3+2*e[1].x/3,y:1*e[0].y/3+2*e[1].y/3},s={x:1*e[2].x/3+2*e[1].x/3,y:1*e[2].y/3+2*e[1].y/3});return l=3*(a.x*(-2*n.y-s.y+3*r.y)+n.x*(2*a.y-s.y-r.y)+s.x*(a.y+n.y-2*r.y)+r.x*(-3*a.y+n.y+2*s.y))/20,t?Math.abs(l):l}(i));n+=t,a.push(h,o)}else if("A"===s){let e=L(h.x,h.y,t.values[0],t.values[1],t.values[2],t.values[3],t.values[4],o.x,o.y),{cx:l,cy:s,rx:r,ry:p,startAngle:i,endAngle:u,deltaAngle:y}=e,c=Math.abs(function(e,t,l,a){const n=Math.PI*e*t;let s=(a-l+2*Math.PI)%(2*Math.PI);if(e===t)return n*(s/(2*Math.PI));const r=l=>Math.atan2(e*Math.sin(l),t*Math.cos(l));return l=r(l),a=r(a),s=(a-l+2*Math.PI)%(2*Math.PI),n*(s/(2*Math.PI))}(r,p,i,u));c-=Math.abs(j([h,{x:l,y:s},o])),a.push(h,o),n+=c}else a.push(h,o)}});let u=j(a);-1!==r.indexOf(t)&&(p=-1),s=u<0&&n<0?(Math.abs(n)-Math.abs(u))*p:(Math.abs(n)+Math.abs(u))*p,l+=s}),l}function j(e,t=!1){let l=0;for(let t=0,a=e.length;a&&t<a;t++){l+=e[t].x*e[t===e.length-1?0:t+1].y*.5-e[t===e.length-1?0:t+1].x*e[t].y*.5}return t&&(l=Math.abs(l)),l}function N(e,t=0){t=parseFloat(t);let l=e.length,a=t>1,n=!a&&!t,s="",r=a?"\n":n?"":" ",p=n?"":" ";s=`${e[0].type}${p}${e[0].values.join(" ")}${r}`;for(let t=1;t<l;t++){let l=e[t-1],a=e[t],{type:i,values:u}=a;if(!n||"A"!==i&&"a"!==i||(u=[u[0],u[1],u[2],`${u[3]}${u[4]}${u[5]}`,u[6]]),i=l.type===a.type&&"m"!==a.type.toLowerCase()&&n||"M"===l.type&&"L"===a.type&&n?" ":a.type,n){let e="",t=!1;for(let l=0,a=u.length;l<a;l++){let a=u[l],n=a.toString(),s=n.includes(".")&&Math.abs(a)<1;s&&t&&(n=n.replace(/^0\./,".")),!(l>0)||t&&s||(e+=" "),e+=n,t=s}s+=`${i}${p}${e}${r}`}else s+=`${i}${p}${u.join(" ")}${r}`}return n&&(s=s.replace(/ 0\./g," .").replace(/ -/g,"-").replace(/-0\./g,"-.").replace(/Z/g,"z")),s}function Z(e,t,l=0,a=1,n=!1){const s=(e,t,l,a,n)=>{let s=1-n;return{x:3*s*s*(t.x-e.x)+6*s*n*(l.x-t.x)+3*n*n*(a.x-l.x),y:3*s*s*(t.y-e.y)+6*s*n*(l.y-t.y)+3*n*n*(a.y-l.y)}};let r=[e,t],p=F(e.p0,e.p)>F(t.p0,t.p),i=JSON.parse(JSON.stringify(e)),u=JSON.parse(JSON.stringify(t)),y=M(i.p0,i.cp1,u.p,u.cp2,!1);if(!y)return r;if(p){let l={p0:{x:e.p.x,y:e.p.y},cp1:{x:e.cp2.x,y:e.cp2.y},cp2:{x:e.cp1.x,y:e.cp1.y},p:{x:e.p0.x,y:e.p0.y}};e={p0:{x:t.p.x,y:t.p.y},cp1:{x:t.cp2.x,y:t.cp2.y},cp2:{x:t.cp1.x,y:t.cp1.y},p:{x:t.p0.x,y:t.p0.y}},t=l}let h=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),o=(e,t)=>({x:e.x*t,y:e.y*t}),c=(e,t)=>e.x*t.x+e.y*t.y,x=t.p0,f=s(t.p0,t.cp1,t.cp2,t.p,0),g=c(h(e.p0,x),f)/c(f,f),v=w([t.p0,t.cp1,t.cp2,t.p],g),d=s(t.p0,t.cp1,t.cp2,t.p,g);g-=c(h(v,e.p0),d)/c(d,d);let m=w([t.p0,t.cp1,t.cp2,t.p],g),b=t.p,A=s(t.p0,t.cp1,t.cp2,t.p,g),L=s(t.p0,t.cp1,t.cp2,t.p,1),k=1-g,P=(S=m,$=o(A,k/3),{x:S.x+$.x,y:S.y+$.y});var S,$;let E=h(b,o(L,k/3)),I={p0:m,cp1:P,cp2:E,p:b};p&&(I={p0:b,cp1:E,cp2:P,p:m});let z=.5*(1-g),Q=w([I.p0,I.cp1,I.cp2,I.p],z,!1,!0),T=Q.cpts[2],q=M(Q,T,I.p0,y,!1),D=M(Q,T,I.p,y,!1),j=C(I.p0,q,1.333),Z=C(I.p,D,1.333);if(M(i.p0,j,u.p,Z,!0))return r;n&&function(e,t,l="red",a="1%",n="1",s="",r=!0,p="",i=""){Array.isArray(t)&&(t={x:t[0],y:t[1]});let u=`<circle class="${i}" opacity="${n}" id="${p}" cx="${t.x}" cy="${t.y}" r="${a}" fill="${l}">\n <title>${s}</title></circle>`;if(!r)return u;e.insertAdjacentHTML("beforeend",u)}(markers,Q,"purple"),I.cp1=j,I.cp2=Z;let O=F(i.p0,I.p0)+F(u.p,I.p);if(I.p0=i.p0,I.p=u.p,I.extreme=u.extreme,I.corner=u.corner,I.dimA=u.dimA,I.directionChange=u.directionChange,I.type="C",I.values=[I.cp1.x,I.cp1.y,I.cp2.x,I.cp2.y,I.p.x,I.p.y],O<l){let t=p?1+g:Math.abs(g);if(F(w([I.p0,I.cp1,I.cp2,I.p],t),e.p)>l*a)return r;let s=B([{type:"M",values:[i.p0.x,i.p0.y]},{type:"C",values:[i.cp1.x,i.cp1.y,i.cp2.x,i.cp2.y,i.p.x,i.p.y]},{type:"C",values:[u.cp1.x,u.cp1.y,u.cp2.x,u.cp2.y,u.p.x,u.p.y]}]),y=[{type:"M",values:[I.p0.x,I.p0.y]},{type:"C",values:[I.cp1.x,I.cp1.y,I.cp2.x,I.cp2.y,I.p.x,I.p.y]}],h=B(y),o=Math.abs(h/s-1);if(I.error=5*o*a,n){let e=N(y);!function(e,t="",l="green",a="1%",n=!0){let s=`<path d="${t}" fill="none" stroke="${l}" stroke-width="${a}" /> `;if(!n)return s;e.insertAdjacentHTML("beforeend",s)}(markers,e,"orange")}o<.05*a&&(r=[I])}return r}function O(e,t,l=!1,a=1){let n=[e,t],s=function(e,t){let l=b(e.cp2,e.p),a=b(e.cp2,t.cp1),n=Math.min(l)/a;return n}(e,t),r=F(e.p0,e.p),p=F(t.p0,t.p),i=.05*Math.min(r,p)*a,u=function(e,t,l=0,a=0){let{p0:n,cp1:s}=e,{p:r,cp2:p}=t,i={x:(s.x-(1-l)*n.x)/l,y:(s.y-(1-l)*n.y)/l},u={x:(p.x-a*r.x)/(1-a),y:(p.y-a*r.y)/(1-a)},y={p0:n,cp1:i,cp2:u,p:r};return y}(e,t,s,s),y=w([u.p0,u.cp1,u.cp2,u.p],s),h=F(e.p,y),o=0,c=0,x=!1,f=h;if(h<i){let l=.5*(1+s);if(o=F(w([t.p0,t.cp1,t.cp2,t.p],.5),w([u.p0,u.cp1,u.cp2,u.p],l)),f+=o,o<i){let t=.5*s;c=F(w([e.p0,e.cp1,e.cp2,e.p],.5),w([u.p0,u.cp1,u.cp2,u.p],t)),o+c<i&&(x=!0),f+=c}}if(l&&!x){let l=Z(e,t,i,a);1===l.length&&(x=!0,u=l[0],f=u.error)}return x&&(u.p0=e.p0,u.p=t.p,u.dimA=F(u.p0,u.p),u.type="C",u.extreme=t.extreme,u.directionChange=t.directionChange,u.corner=t.corner,u.values=[u.cp1.x,u.cp1.y,u.cp2.x,u.cp2.y,u.p.x,u.p.y],u.error=f/i,n=[u]),n}function H(e,t,l){let a=!1,n=2===t.length,s=t[0],r=n?t[1]:s;if(e.x===s.x&&e.y===s.y&&l.x===r.x&&l.y===r.y)return!0;let p=s.x-e.x,i=s.y-e.y,u=l.x-r.x,y=l.y-r.y;if(!Math.abs(p*y-i*u))return!0;let h=l.x-e.x,o=l.y-e.y;return!Math.abs(h*i-o*p)||(a=j([e,...t,l],!0)<A(e,l)/200,a)}function R(e=[]){let t,l=[],a=function(e){let t=[],l={x:e[0].values[0],y:e[0].values[1]};return e.forEach(e=>{let{type:a,values:n}=e;if(n.length){let e=n.length>1?{x:n[n.length-2],y:n[n.length-1]}:"V"===a?{x:l.x,y:n[0]}:{x:n[0],y:l.y};t.push(e),l=e}}),t}(e),n=T(a),{left:s,right:r,top:p,bottom:i,width:u,height:y}=n,h=e[0].values[0],o=e[0].values[1],c={x:e[0].values[0],y:e[0].values[1]},x={x:e[0].values[0],y:e[0].values[1]};e[0].idx=0,e[0].p0=c,e[0].p=c,e[0].lineto=!1,e[0].corner=!1,e[0].extreme=!1,e[0].directionChange=!1,e[0].closePath=!1,e[0].dimA=0;let f=[e[0]],g=0,v=e.length;for(let l=2;v&&l<=v;l++){let a=e[l-1],{type:n,values:u}=a,y=u.slice(-2),v=[x];a.idx=l-1,a.lineto=!1,a.corner=!1,a.extreme=!1,a.directionChange=!1,a.closePath=!1,a.dimA=0;let d,M,b,C,w,L,k=.05;t=y.length?{x:y[0],y:y[1]}:c,"M"===n?(c=t,x=t):"z"===n.toLowerCase()&&(t=c),a.p0=x,a.p=t;let S=F(x,t);a.dimA=S,"L"===n&&(a.lineto=!0),"Z"===n&&(a.closePath=!0,c.x!==h&&c.y!==o&&(a.lineto=!0)),"Q"!==n&&"C"!==n||(d={x:u[0],y:u[1]},M="C"===n?{x:u[2],y:u[3]}:null,a.cp1=d,M&&(a.cp2=M)),u.length>2&&("Q"!==n&&"C"!==n||v.push(d),"C"===n&&v.push(M),v.push(t)),"L"===n||t.x!==s&&t.y!==p&&t.x!==r&&t.y!==i||(a.extreme=!0);let $=e[l]?e[l]:null,E=$?$.values.slice(-2):null;w=$?$.type:null,!$||"Q"!==$.type&&"C"!==$.type||(C=$?{x:E[0],y:E[1]}:null,b={x:$.values[0],y:$.values[1]},"C"===$.type&&($.values[2],$.values[3])),L=j(v);let I=g<0&&L>0||g>0&&L<0;if(g=L,I&&(a.directionChange=!0),("Q"===n||"C"===n)&&("Q"===n&&"Q"===w||"C"===n&&"C"===w)){let e=v.slice(1);if(C&&Math.abs(C.x-x.x),C&&Math.abs(C.y-x.y),!!a.extreme||P(0,e,k))a.extreme=!0;else{let e=M?[M,t]:[d,t],l=[t,b],n=m(...e,!0),s=m(...l,!0),r=180*Math.abs(n-s)/Math.PI,p=A(...e),i=A(...l);r>10&&p&&i&&(a.corner=!0)}}f.push(a),x=t}return l={pathData:f,bb:n,dimA:(u+y)/2},l}function U(e,t=-1){let l=!("auto"!=t||!e[0].hasOwnProperty("decimals"));for(let a=0,n=e.length;a<n;a++){let n=e[a];(t>-1||l)&&(t=l?n.decimals:t,e[a].values=n.values.map(e=>e?+e.toFixed(t):e))}return e}function V(e={},t={},l={},a={}){let n=C(e,t,1.5),s=C(a,l,1.5),r=.01*F(e,a),p=F(n,s),i=null,u={type:"C",values:[t.x,t.y,l.x,l.y,a.x,a.y]};return p<r&&(i=M(e,t,a,l,!1),i&&(u.type="Q",u.values=[i.x,i.y,a.x,a.y],u.p0=e,u.cp1=i,u.p=a)),u}function J(e,{toShorthands:t=!0,toRelative:l=!0,decimals:a=3}={}){return t&&(e=function(e,t=-1,l=!0){let a;if(l){let t=e.map(e=>e.type).join("");a=/[astvqmhlc]/g.test(t)}e=l&&a?Y(e,t):e;let n={type:"M",values:e[0].values};e[0].decimals&&(n.decimals=e[0].decimals);let s,r=[n],p={x:e[0].values[0],y:e[0].values[1]},i=.01;for(let l=1,a=e.length;l<a;l++){let a=e[l],{type:u,values:y}=a,h=y.slice(-2),o=e[l-1],c=o.type;s={x:h[0],y:h[1]};let x,f,g,v,d={x:y[0],y:y[1]},m=Math.abs(s.x-p.x),M=Math.abs(s.y-p.y),b=(m+M)/2*i;switch(u){case"L":n=0===M||M<b&&m>b?{type:"H",values:[y[0]]}:0===m||M>b&&m<b?{type:"V",values:[y[1]]}:a;break;case"Q":if("Q"!==c){p={x:h[0],y:h[1]},r.push(a);continue}let e={x:o.values[0],y:o.values[1]};v={x:2*p.x-e.x,y:2*p.y-e.y},x=Math.abs(d.x-v.x),f=Math.abs(d.y-v.y),g=(x+f)/2,n=g<b?{type:"T",values:[s.x,s.y]}:a;break;case"C":let t={x:y[2],y:y[3]};if("C"!==c){r.push(a),p={x:h[0],y:h[1]};continue}let l={x:o.values[2],y:o.values[3]};v={x:2*p.x-l.x,y:2*p.y-l.y},x=Math.abs(d.x-v.x),f=Math.abs(d.y-v.y),g=(x+f)/2,n=g<b?{type:"S",values:[t.x,t.y,s.x,s.y]}:a;break;default:n={type:u,values:y}}(a.decimals||0===a.decimals)&&(n.decimals=a.decimals),t>-1&&(n.values=n.values.map(e=>+e.toFixed(t))),p={x:h[0],y:h[1]},r.push(n)}return r}(e)),e=U(e,a),l&&(e=function(e,t=-1){return X(e,!0,t)}(e)),a>-1&&(e=U(e,a)),e}function W(e,t){Array.isArray(e)&&(e={x:e[0],y:e[1]});let l={x:e.x+2/3*(t[0]-e.x),y:e.y+2/3*(t[1]-e.y)},a={x:t[2]+2/3*(t[0]-t[2]),y:t[3]+2/3*(t[1]-t[3])};return{type:"C",values:[l.x,l.y,a.x,a.y,t[2],t[3]]}}function X(e,t=!1,l=-1){l>=0&&(e[0].values=e[0].values.map(e=>+e.toFixed(l)));let a=e[0].values,n=a[0],s=a[1],r=n,p=s;for(let a=1,i=e.length;a<i;a++){let i=e[a],{type:u,values:y}=i,h=t?u.toLowerCase():u.toUpperCase();if(u!==h)switch(u=h,i.type=u,u){case"a":case"A":y[5]=t?y[5]-n:y[5]+n,y[6]=t?y[6]-s:y[6]+s;break;case"v":case"V":y[0]=t?y[0]-s:y[0]+s;break;case"h":case"H":y[0]=t?y[0]-n:y[0]+n;break;case"m":case"M":t?(y[0]-=n,y[1]-=s):(y[0]+=n,y[1]+=s),r=t?y[0]+n:y[0],p=t?y[1]+s:y[1];break;default:if(y.length)for(let e=0;e<y.length;e++)y[e]=t?y[e]-(e%2?s:n):y[e]+(e%2?s:n)}let o=y.length;switch(u){case"z":case"Z":n=r,s=p;break;case"h":case"H":n=t?n+y[0]:y[0];break;case"v":case"V":s=t?s+y[0]:y[0];break;case"m":case"M":r=y[o-2]+(t?n:0),p=y[o-1]+(t?s:0);default:n=y[o-2]+(t?n:0),s=y[o-1]+(t?s:0)}l>=0&&(i.values=i.values.map(e=>+e.toFixed(l)))}return e}function Y(e,t=-1){return X(e,!1,t)}function G(e,t,l=1){const a=2*Math.PI;let[n,s,r,p,i,u,y]=t;if(0===n||0===s)return[];let h=r?r*a/360:0,o=h?Math.sin(h):0,c=h?Math.cos(h):1,x=c*(e.x-u)/2+o*(e.y-y)/2,f=-o*(e.x-u)/2+c*(e.y-y)/2;if(0===x&&0===f)return[];n=Math.abs(n),s=Math.abs(s);let g=x*x/(n*n)+f*f/(s*s);if(g>1){let e=Math.sqrt(g);n*=e,s*=e}let v=n*n,d=n===s?v:s*s,m=x*x,M=f*f,b=v*d-v*M-d*m;b<=0?b=0:(b/=v*M+d*m,b=Math.sqrt(b)*(p===i?-1:1));let A=b?b*n/s*f:0,C=b?b*-s/n*x:0,w=c*A-o*C+(e.x+u)/2,L=o*A+c*C+(e.y+y)/2,k=(x-A)/n,P=(f-C)/s,S=(-x-A)/n,$=(-f-C)/s;const F=(e,t,l,a)=>{let n=+(e*l+t*a).toFixed(9);return 1===n||-1===n?1===n?0:Math.PI:(n=n>1?1:n<-1?-1:n,(e*a-t*l<0?-1:1)*Math.acos(n))};let E=F(1,0,k,P),I=F(k,P,S,$);0===i&&I>0?I-=2*Math.PI:1===i&&I<0&&(I+=2*Math.PI);let z=(+(Math.abs(I)/(a/4)).toFixed(0)||1)*l;I/=z;let Q=[];const T=1.5707963267948966,q=.551785;let D=I===T?q:I===-T?-q:4/3*Math.tan(I/4),B=I?Math.cos(I):1,j=I?Math.sin(I):0;const N=(e,t,l,a,n)=>{let s=e!=t?Math.cos(e):a,r=e!=t?Math.sin(e):n,p=Math.cos(e+t),i=Math.sin(e+t);return[{x:s-r*l,y:r+s*l},{x:p+i*l,y:i-p*l},{x:p,y:i}]};for(let e=0;e<z;e++){let e={type:"C",values:[]};N(E,I,D,B,j).forEach(t=>{let l=t.x*n,a=t.y*s;e.values.push(c*l-o*a+w,o*l+c*a+L)}),Q.push(e),E+=I}return Q}function K(e,t,l,a,n=7.5){let s={type:"C",values:[t.x,t.y,l.x,l.y,a.x,a.y]},r=0,p=!1,i=m(e,t,!0),u=m(a,l,!0),y=180*Math.abs(i-u)/Math.PI;if(Math.abs(y%180-90)<3){let i=M(e,t,a,l,!1);if(i){let u=b(e,i),y=b(a,i),h=+Math.max(u,y).toFixed(8),o=+Math.min(u,y).toFixed(8),c=o,x=h,f=j([e,t,l,a])<0?0:1,g=Math.abs(a.x-e.x)>Math.abs(a.y-e.y);100/c*Math.abs(c-x)<5&&(c=h,x=c),g&&(c=h,x=o);let v=B([{type:"M",values:[e.x,e.y]},{type:"C",values:[t.x,t.y,l.x,l.y,a.x,a.y]}]),d={type:"A",values:[c,x,0,0,f,a.x,a.y]};r=Math.PI*(c*x)/4,r-=Math.abs(j([e,a,i])),function(e,t){let l=Math.abs(e-t);return Math.abs(100-100/e*(e+l))}(v,r)<n&&(p=!0,s=d)}}return{com:s,isArc:p,area:r}}function _(e){let t,l=[[]],a=0,n=[[]],s={x:e[0].values[0],y:e[0].values[1]};for(let r=0,p=e.length;r<p;r++){let p=e[r],{type:i,values:u}=p;if("A"===i){let i=e[r-1].values.slice(-2);s={x:i[0],y:i[1]};let[y,h,o,c,x,f,g]=u,v=100/y*Math.abs(y-h)<5;t={x:u[5],y:u[6]},p.p0=s,p.p=t,p.circular=v;let d=e[r+1];if(!l[a].length&&d&&"A"===d.type&&(l[a].push(p),n[a].push(r)),d&&"A"===d.type){let[e,p,i,u,o,c,x]=d.values,f=y!=e?100/y*Math.abs(y-e):0,g=h!=p?100/h*Math.abs(h-p):0;t={x:d.values[5],y:d.values[6]},d.p0=s,d.p=t,f<5&&g<5?(l[a].push(d),n[a].push(r+1)):(l.push([]),n.push([]),a++)}else l.push([]),n.push([]),a++}}if(!n.length)return e;l=l.filter(e=>e.length),n=n.filter(e=>e.length);for(let t=l.length-1;t>=0;t--){const a=l[t],s=n[t][0],r=a.length;let p=0,i=0;a.forEach(({values:e})=>{const[t,l]=e;p+=t,i+=l}),p/=r,i/=r;let u=100/p*Math.abs(p-i)<5;u&&(p=(p+i)/2,i=p);let y=e[s-1].values.slice(-2);if(y[0],y[1],4===r){let[t,l,n,y,h,o,c]=a[1].values,[,,,,,x,f]=a[3].values;u&&(p=1,i=1);let g={type:"A",values:[p,i,n,y,h,o,c]},v={type:"A",values:[p,i,n,y,h,x,f]};e.splice(s,r,g,v)}else if(3===r){let[t,l,n,u,y,h,o]=a[0].values,[c,x,,,,f,g]=a[2].values;u=1;let v={type:"A",values:[p,i,n,u,y,f,g]};e.splice(s,r,v)}else if(2===r){let[t,l,n,y,h,o,c]=a[0].values,[x,f,,,,g,v]=a[1].values;u&&(p=1,i=1,n=0);let{p0:d,p:m}=a[0],[M,b]=[a[1].p0,a[1].p];if(d.x!==b.x||d.y!==b.y){let t={type:"A",values:[p,i,n,y,h,g,v]};e.splice(s,r,t)}}}return e}function ee(e=[],{toAbsolute:t=!0,toLonghands:l=!0,quadraticToCubic:a=!1,arcToCubic:n=!1,arcAccuracy:s=2}={},{hasRelatives:r=!0,hasShorthands:p=!0,hasQuadratics:i=!0,hasArcs:u=!0,testTypes:y=!1}={}){if(y){let t=Array.from(new Set(e.map(e=>e.type))).join("");r=/[lcqamts]/gi.test(t),i=/[qt]/gi.test(t),u=/[a]/gi.test(t),p=/[vhst]/gi.test(t),isPoly=/[mlz]/gi.test(t)}return(i&&a||u&&n)&&(l=!0,t=!0),r&&t&&(e=X(e,!1)),p&&l&&(e=function(e,t=-1,l=!0){let a=!1;if(l){let t=e.map(e=>e.type).join(""),l=/[hstv]/gi.test(t);if(a=/[astvqmhlc]/g.test(t),!l)return e}let n=[],s={type:"M",values:(e=l&&a?Y(e,t):e)[0].values};n.push(s);for(let l=1,a=e.length;l<a;l++){let a,r,p,i,u,y,h,o,c=e[l],{type:x,values:f}=c,g=f.length,v=s.values,d=v.length,[m,M]=[f[g-2],f[g-1]],[b,A]=[v[d-2],v[d-1]];switch(x){case"H":s={type:"L",values:[f[0],A]};break;case"V":s={type:"L",values:[b,f[0]]};break;case"T":[a,r]=[v[0],v[1]],[b,A]=[v[d-2],v[d-1]],p=b+(b-a),i=A+(A-r),s={type:"Q",values:[p,i,m,M]};break;case"S":[a,r]=[v[0],v[1]],[b,A]=[v[d-2],v[d-1]],[h,o]=d>2&&"A"!==s.type?[v[2],v[3]]:[b,A],p=2*b-h,i=2*A-o,u=f[0],y=f[1],s={type:"C",values:[p,i,u,y,m,M]};break;default:s={type:x,values:f}}t>-1&&(s.values=s.values.map(e=>+e.toFixed(t))),n.push(s)}return n}(e,-1,!1)),u&&n&&(e=function(e,{arcAccuracy:t=1}={}){let l=[e[0]];for(let a=1,n=e.length;a<n;a++){let n=e[a],s=e[a-1].values,r=s.length,p={x:s[r-2],y:s[r-1]};"A"===n.type?G(p,n.values,t).forEach(e=>{l.push(e)}):l.push(n)}return l}(e,s)),i&&a&&(e=function(e){let t=[e[0]];for(let l=1,a=e.length;l<a;l++){let a=e[l],n=e[l-1].values,s=n.length,r={x:n[s-2],y:n[s-1]};"Q"===a.type?t.push(W(r,a.values)):t.push(a)}return t}(e)),e}function te(e,{toAbsolute:t=!0,toLonghands:l=!0,quadraticToCubic:a=!1,arcToCubic:n=!1,arcAccuracy:s=4}={}){let r=function(e,t=!0){if(e=e.trim(),""===e)return{pathData:[],hasRelatives:!1,hasShorthands:!1,hasQuadratics:!1,hasArcs:!1};const l=new Set([5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279]),a=e=>32===e||44===e||10===e||13===e||8232===e||8233===e||9===e||11===e||12===e||160===e||e>=5760&&l.has(e);let n,s=0,r=e.length,p="",i=[],u=-1,y="",h=!1,o=0,c=0,x=0,f=!1,g=new Set([]),v=[];const d=()=>{f&&("M"===p?p="L":"m"===p&&(p="l"),i.push({type:p,values:[]}),u++,c=0,f=!1)},m=(e=!1)=>{(e?o>0:""!==y)&&(t&&-1===u&&(n="Pathdata must start with M command",v.push(n),p="M",i.push({type:p,values:[]}),x=2,c=0,u++),"A"===p||"a"===p?(y=M(),i[u].values.push(...y)):(t&&y[1]&&"."!==y[1]&&"0"===y[0]&&(n=`${u}. command: Leading zeros not valid: ${y}`,v.push(n)),i[u].values.push(+y)),c++,y="",o=0,f=c>=x)},M=()=>{let e=y.length,t=!1;return 3===c&&2===e||4===c&&e>1?(y=[+y[0],+y[1]],t=!0,c++):3===c&&e>=3&&(y=[+y[0],+y[1],+y.substring(2)],t=!0,c+=2),t?y:[+y]},b=()=>{if(u>0){let e=i[u].values.length;if(e&&e<x||e&&e>x||("z"===p||"Z"===p)&&e>0){n=`${u}. command of type "${p}": ${x-e} values too few - ${x} expected`,v[v.length-1]!==n&&v.push(n)}}};let A=!1,C=!1,w=!1;for(;s<r;){let l=e.charCodeAt(s),r=l>47&&l<58;if(r||(A=101===l||69===l,C=45===l||43===l,w=46===l),r||C||w||A){if(h||45!==l&&46!==l)d();else{let e=46===l;m(e),d(),e&&o++}y+=e[s],h=A,s++}else if((l<48||l>5759)&&a(l))m(),s++;else{if(l>64){if(!le.has(l)){n=`${u}. command "${e[s]}" is not a valid type`,v.push(n),s++;continue}""!==y&&(i[u].values.push(+y),c++,y=""),t&&b(),p=e[s],x=ae[l];let a="M"===p||"m"===p,r=u>0&&("z"===i[u].type||"Z"===i[u].type);g.add(p),r&&!a&&(i.push({type:"m",values:[0,0]}),u++),i.push({type:p,values:[]}),u++,o=0,c=0,f=!1,s++;continue}r||(n=`${u}. ${e[s]} is not a valid separarator or token`,v.push(n),y=""),s++}}m(),t&&b();if(t&&v.length){if(n="Invalid path data:\n"+v.join("\n"),"log"!==t)throw new Error(n);console.log(n)}i[0].type="M";let L=Array.from(g).join(""),k=/[lcqamts]/g.test(L),P=/[vhst]/gi.test(L),S=/[a]/gi.test(L),$=/[qt]/gi.test(L);return{pathData:i,hasRelatives:k,hasShorthands:P,hasQuadratics:$,hasArcs:S}}(e),{hasRelatives:p,hasShorthands:i,hasQuadratics:u,hasArcs:y}=r,h=r.pathData;return h=ee(h,{toAbsolute:t,toLonghands:l,quadraticToCubic:a,arcToCubic:n,arcAccuracy:s},{hasRelatives:p,hasShorthands:i,hasQuadratics:u,hasArcs:y}),h}const le=new Set([77,109,65,97,67,99,76,108,81,113,83,115,84,116,72,104,86,118,90,122]),ae=new Uint8Array(128);function ne(e){if("path"===e.nodeName.toLowerCase())return e;let t=function(e,t=!1){let l,a,n,s,r,p,i,u,y,h,o,c,x,f,g,v,d=[],m=e.nodeName;const M=(e,t=9)=>{const l="svg"!==e.nodeName?e.closest("svg"):e,a=e=>{if(null===e)return 0;let l=96,a=e.match(/([a-z]+)/gi);a=a?a[0]:"";let n,s=parseFloat(e);if(!a)return s;switch(a){case"in":n=l;break;case"pt":n=1/72*96;break;case"cm":n=1/2.54*96;break;case"mm":n=1/2.54*96/10;break;case"em":case"rem":n=16;break;default:n=1}return+(s*n).toFixed(t)};let n=l.getAttribute("width");n=n?a(n):300;let s=l.getAttribute("height");s=n?a(s):150;let r=l.getAttribute("viewBox");r=r?r.replace(/,/g," ").split(" ").filter(Boolean).map(e=>+e):[];let p=r.length?r[2]:n,i=r.length?r[3]:s,u=p/100,y=i/100,h=Math.sqrt((Math.pow(u,2)+Math.pow(y,2))/2),o=["x","width","x1","x2","rx","cx","r"],c=["y","height","y1","y2","ry","cy"];e.getAttributeNames().forEach(t=>{let l=e.getAttribute(t),n=l;if(o.includes(t)||c.includes(t)){let s=o.includes(t)?u:y;s="r"===t&&p!=i?h:s;let r=l.match(/([a-z|%]+)/gi);r=r?r[0]:"",n=l.includes("%")?parseFloat(l)*s:a(l),e.setAttribute(t,+n)}})};M(e);const b=t=>(l={},t.forEach(t=>{l[t]=+e.getAttribute(t)}),l);switch(m){case"path":n=e.getAttribute("d"),d=te(n);break;case"rect":a=["x","y","width","height","rx","ry"],({x:s,y:r,width:p,height:i,rx:y,ry:h}=b(a)),y||h?(y>p/2&&(y=p/2),h>i/2&&(h=i/2),d=[{type:"M",values:[s+y,r]},{type:"L",values:[s+p-y,r]},{type:"A",values:[y,h,0,0,1,s+p,r+h]},{type:"L",values:[s+p,r+i-h]},{type:"A",values:[y,h,0,0,1,s+p-y,r+i]},{type:"L",values:[s+y,r+i]},{type:"A",values:[y,h,0,0,1,s,r+i-h]},{type:"L",values:[s,r+h]},{type:"A",values:[y,h,0,0,1,s+y,r]},{type:"Z",values:[]}]):d=[{type:"M",values:[s,r]},{type:"L",values:[s+p,r]},{type:"L",values:[s+p,r+i]},{type:"L",values:[s,r+i]},{type:"Z",values:[]}];break;case"circle":case"ellipse":a=["cx","cy","rx","ry","r"],({cx:o,cy:c,r:u,rx:y,ry:h}=b(a)),"circle"===m?(y=u,h=u):(y=y||u,h=h||u),d=[{type:"M",values:[o+y,c]},{type:"A",values:[y,h,0,1,1,o-y,c]},{type:"A",values:[y,h,0,1,1,o+y,c]}];break;case"line":a=["x1","y1","x2","y2"],({x1:x,y1:g,x2:f,y2:v}=b(a)),d=[{type:"M",values:[x,g]},{type:"L",values:[f,v]}];break;case"polygon":case"polyline":let t=e.getAttribute("points").replaceAll(","," ").split(" ").filter(Boolean);for(let e=0;e<t.length;e+=2)d.push({type:0===e?"M":"L",values:[+t[e],+t[e+1]]});"polygon"===m&&d.push({type:"Z",values:[]})}return t?function(e){return e.map(e=>`${e.type} ${e.values.join(" ")}`).join(" ")}(d):d}(e),l=t.map(e=>`${e.type} ${e.values} `).join(" "),a=[...e.attributes].map(e=>e.name),n=document.createElementNS("http://www.w3.org/2000/svg","path");n.setAttribute("d",l);let s=["x","y","cx","cy","dx","dy","r","rx","ry","width","height","points"];return a.forEach(t=>{if(!s.includes(t)){let l=e.getAttribute(t);n.setAttribute(t,l)}}),n}function se(e,t=1,l=!0){let a=[e[0]],n={x:e[0].values[0],y:e[0].values[1]},s=n,r=n;e[e.length-1].type.toLowerCase();for(let p=1,i=e.length;p<i;p++){let u=e[p-1],y=e[p],h=e[p+1]||e[i-1],o="z"===h.type.toLowerCase()?n:{x:h.values[h.values.length-2],y:h.values[h.values.length-1]},{type:c,values:x}=y,f=x.slice(-2);r="Z"!==c?{x:f[0],y:f[1]}:n;let g=j([s,r,o],!0);A(s,r),A(r,o);let v=g<A(s,o)/200*t,d=!1;if(l||"C"!==c||(v=!1),l&&("C"===c||"Q"===c)){d=H(s,"C"===c?[{x:x[0],y:x[1]},{x:x[2],y:x[3]}]:"Q"===c?[{x:x[0],y:x[1]}]:[],r),d&&p<i-1&&"C"!==u.type&&(c="L",y.type="L",y.values=f)}s=r,v&&p<i-1&&("L"===c||l&&d)||("M"===c?(n=r,s=n):"Z"===c&&(s=n),a.push(y))}return a}function re(e){let t={x:e[0].values[0],y:e[0].values[1]},l=t,a=[e[0]];for(let n=1,s=e.length;n<s;n++){let s=e[n],{type:r,values:p}=s,i=p.length;if(l={x:p[i-2],y:p[i-1]},"L"!==r||l.x!==t.x||l.y!==t.y){if("l"===r||"v"===r||"h"===r){if("l"===r?"00"===p.join(""):0===p[0])continue}a.push(s),t=l}}return a}function pe(e){let t=e.length;if(!("z"===e[t-1].type.toLowerCase()))return e;let l=0,a=[];for(let l=0;l<t;l++){let t=e[l],{type:n,values:s}=t,r=s.length;if(r){let e={type:n,x:s[r-2],y:s[r-1],index:0};e.index=l,a.push(e)}}return a=a.sort((e,t)=>+e.y.toFixed(3)-+t.y.toFixed(3)),l=a[0].index,l?ue(e,l):e}function ie(e,t=!0,l=!0){let a=[],n=e.length,s={x:+e[0].values[0].toFixed(8),y:+e[0].values[1].toFixed(8)},r="z"===e[n-1].type.toLowerCase(),p=e.filter(e=>"L"===e.type),i=e[n-2],u=i.type,y=i.values.slice(-2).map(e=>+e.toFixed(8)),h=y[0]===s.x&&y[1]===s.y,o="L"!==e[1].type&&(!h||"L"===u);if(o=!1,!r)return e;let c=0;{let t=[];for(let l=0,a=e.length;l<a;l++){let a=e[l],{type:n,values:s}=a;if(s.length){let a=s.slice(-2),r=e[l-1]&&"L"===e[l-1].type,p=e[l+1]&&"L"===e[l+1].type,i=e[l-1]?e[l-1].type.toUpperCase():null,u=e[l+1]?e[l+1].type.toUpperCase():null,y={type:n,x:a[0],y:a[1],dist:0,index:0,prevL:r,nextL:p,prevCom:i,nextCom:u};y.index=l,t.push(y)}}if(p.length){let e=t.filter(e=>"L"!==e.type&&"M"!==e.type&&e.prevCom&&"L"===e.prevCom||"M"===e.prevCom&&"L"===u).sort((e,t)=>e.y-t.y||e.x-t.x)[0];c=e?e.index-1:0}else t=t.sort((e,t)=>+e.y.toFixed(1)-+t.y.toFixed(1)||e.x-t.x),c=t[0].index;e=c?ue(e,c):e}return s={x:+e[0].values[0].toFixed(8),y:+e[0].values[1].toFixed(7)},n=e.length,i=e[n-2],u=i.type,y=i.values.slice(-2).map(e=>+e.toFixed(8)),h="L"===u&&y[0]===s.x&&y[1]===s.y,t&&h&&e.splice(n-2,1),a.push(...e),a}function ue(e,t){let l=0,a="z"===e[e.length-1].type.toLowerCase();if(!a||t<1||e.length<3)return e;let n=a?1:0;!function(e){let t=e.length,l="z"===e[t-1].type.toLowerCase(),a=e[0],[n,s]=[a.values[0],a.values[1]].map(e=>+e.toFixed(8)),r=l?e[t-2]:e[t-1],p=r.values.length,[i,u]=[r.values[p-2],r.values[p-1]].map(e=>+e.toFixed(8));!l||n==i&&s==u||(e.pop(),e.push({type:"L",values:[n,s]},{type:"Z",values:[]}))}(e),l=t+1<e.length-1?t+1:e.length-1-n;let s,r,p=e.slice(l),i=e.slice(0,l);return i.shift(),s=i[i.length-1].values||[],r=[s[s.length-2],s[s.length-1]],n&&(p.pop(),i.push({type:"Z",values:[]})),e=[{type:"M",values:r},...p,...i]}function ye(e,{arcToCubic:t=!1,quadraticToCubic:l=!1,toClockwise:a=!1,returnD:n=!1}={}){const s=(e,t)=>{let l=[],a=[];if("A"!==e){for(let e=0;e<t.length;e+=2)l.push([t[e],t[e+1]]);a=l.pop(),l.reverse()}else{let e=0==t[4]?1:0;l=[t[0],t[1],t[2],t[3],e],a=[t[5],t[6]]}return{controlPoints:l,endPoints:a}};let r=[],p="z"===e[e.length-1].type.toLowerCase();p&&(e=(e=>{let t="z"===e[e.length-1].type.toLowerCase(),l=e[0],[a,n]=[l.values[0],l.values[1]],s=t?e[e.length-2]:e[e.length-1],[r,p]=[s.values[s.values.length-2],s.values[s.values.length-1]];return!t||a==r&&n==p||(e.pop(),e.push({type:"L",values:[a,n]},{type:"Z",values:[]})),e})(e),e.pop());let i=e[e.length-1].values,u=i.length,y=p?e[0]:{type:"M",values:[i[u-2],i[u-1]]};r.push(y),e.reverse();for(let t=1;t<e.length;t++){let l=e[t],a=l.type,n=l.values,p=e[t-1],i=p.type,u=[];u=[s(i,p.values).controlPoints,s(a,n).endPoints].flat(),r.push({type:i,values:u.flat()})}return p&&r.push({type:"z",values:[]}),r}function he(e,{threshold:t=null,tolerance:l=1}={}){if(!t){let l=function(e){let t=1/0,l=-1/0,a=1/0,n=-1/0;const s=e=>{e.x<t&&(t=e.x),e.x>l&&(l=e.x),e.y<a&&(a=e.y),e.y>n&&(n=e.y)};for(let t=0;t<e.length;t++){let l=e[t],{type:a,values:n}=l,r=n.length,p=(e[t-1]?e[t-1]:e[t]).values,i=p.length;if(r){let e={x:p[i-2],y:p[i-1]},t={x:n[r-2],y:n[r-1]};if(s(t),"C"===a||"Q"===a){let l={x:n[0],y:n[1]},r="C"===a?{x:n[2],y:n[3]}:l,p="C"===a?[e,l,r,t]:[e,l,t];S(p).forEach(e=>{let t=w(p,e);s(t)})}else"A"===a&&$(e,n).forEach(e=>{s(e)})}}return{x:t,y:a,width:l-t,height:n-a}}(e);t=(l.width+l.height)/2*.05}let a=e.length;for(let n=0;n<a;n++){let a=e[n],{type:s,values:r,extreme:p,corner:i=!1,dimA:u,p0:y,p:h}=a,o=e[n+1]?e[n+1]:null;if(o&&"C"===s&&"C"===o.type&&p&&!i){if(F(h,o.p)<t){let s,r=a.cp1.x-o.p0.x,p=a.cp1.y-o.p0.y,i=Math.abs(p)<Math.abs(r),u=o.p,y=1;if(o.extreme){i?(y=Math.abs(Math.abs(o.cp2.x-o.p.x)/Math.abs(a.cp2.x-a.p.x)),s=C(o.p,a.cp2,1+y),a.cp2.x=s.x):(y=Math.abs(Math.abs(o.cp2.y-o.p.y)/Math.abs(a.cp2.y-a.p.y)),s=C(o.p,a.cp2,1+y),a.cp2.y=s.y),e[n+1].values=[a.cp1.x,a.cp1.y,a.cp2.x,a.cp2.y,u.x,u.y],e[n+1].cp1=a.cp1,e[n+1].cp2=a.cp2,e[n+1].p0=a.p0,e[n+1].p=u,e[n+1].extreme=!0,e[n]=null;continue}{let a=e[n+2]?e[n+2]:null;if(!a&&"C"!==a.type)continue;let s=Z(o,a,t,l,!1);if(1===s.length){e[n+1]=null,s=s[0],e[n+2].values=[s.cp1.x,s.cp1.y,s.cp2.x,s.cp2.y,s.p.x,s.p.y],e[n+2].cp1=s.cp1,e[n+2].cp2=s.cp2,e[n+2].p0=s.p0,e[n+2].p=s.p,e[n+2].extreme=s.extreme,n++;continue}}}}}a=(e=e.filter(Boolean)).length;let n="z"===e[a-1].type.toLowerCase()?a-2:a-1,s=e[n],r=e[n-1]||null,p={x:e[0].values[0],y:e[0].values[1]},i=s.values.slice(-2),u=+i[0].toFixed(8)===+p.x.toFixed(8)&&+i[1].toFixed(8)===+p.y.toFixed(8),y="C"===e[1].type&&e[1].extreme?e[1]:null,h=F(s.p0,s.p)<t;if(r&&"C"===r.type&&h&&u&&y){Math.abs(y.cp1.x-p.x),Math.abs(y.cp1.y-p.y);let a=Z(r,s,t,l,!1);console.log("comEx",a),1===a.length&&(e[n-1]=a[0],e[n]=null,e=e.filter(Boolean))}return e}function oe(e){let t=(new XMLSerializer).serializeToString(e);return t=t.replace(/\t/g,"").replace(/[\n\r|]/g,"\n").replace(/\n\s*\n/g,"\n").replace(/ +/g," "),t}function ce(e="",{getObject:t=!1,toAbsolute:l=!0,toRelative:a=!0,toShorthands:n=!0,quadraticToCubic:s=!0,arcToCubic:r=!1,cubicToArc:p=!1,simplifyBezier:i=!0,optimizeOrder:u=!0,removeColinear:y=!0,flatBezierToLinetos:h=!0,revertToQuadratics:o=!0,refineExtremes:c=!0,keepExtremes:x=!0,keepCorners:f=!0,extrapolateDominant:g=!0,keepInflections:v=!1,addExtremes:d=!1,removeOrphanSubpaths:m=!1,decimals:M=3,autoAccuracy:b=!0,minifyD:A=0,tolerance:C=1,reverse:w=!1,mergePaths:L=!1,removeHidden:k=!0,removeUnused:P=!0,shapesToPaths:S=!0}={}){C=Math.max(.1,C);let $=function(e){let t="string";if(Array.isArray(e))return"array";if("string"==typeof e){let l=(e=e.trim()).includes("<svg")&&e.includes("</svg"),a=e.startsWith("M")||e.startsWith("m"),n=!isNaN(e.substring(0,1))&&!isNaN(e.substring(e.length-1,e.length));if(l)t="svgMarkup";else if(a)t="pathDataString";else if(n)t="polyString";else{let l=/^(file:|https?:\/\/|\/|\.\/|\.\.\/)/.test(e),a=e.startsWith("data:image");t=l||a?"url":"string"}return t}return t=typeof e,(e.constructor.name||t).toLowerCase()}(e),I="",z=0,T=0,q=0,D={},B="",j="svgMarkup"===$?1:0,Z=[];if(z=new Blob([e]).size,j){if(I=function(e,{returnDom:t=!1,removeHidden:l=!0,removeUnused:a=!0}={}){e=(e=e.replace(/<\?xml[\s\S]*?\?>/gi,"").replace(/<!DOCTYPE[\s\S]*?>/gi,"").replace(/<!--[\s\S]*?-->/g,"").trim()).replaceAll("xlink:href=","href=");let n=(new DOMParser).parseFromString(e,"text/html").querySelector("svg");!function(e,t=["viewBox","xmlns","width","height","id","class"]){[...e.attributes].map(e=>e.name).forEach(l=>{t.includes(l)||e.removeAttribute(l)})}(n,["viewBox","xmlns","width","height","id","class","fill","stroke","stroke-width"]);let s=["metadata","script"];if(n.querySelectorAll("*").forEach(e=>{let t=e.nodeName,a=e.getAttribute("style")||"",n=!!a&&a.trim().includes("display:none"),r=e.getAttribute("display")&&"none"===e.getAttribute("display")||n;t.includes(":")||s.includes(t)||l&&r?e.remove():function(e){[...e.attributes].map(e=>e.name).forEach(t=>{t.includes(":")&&e.removeAttribute(t)})}(e)}),t)return n;let r=oe(n);return console.log(r),r}(e,{returnDom:!0,removeHidden:k,removeUnused:P}),S){I.querySelectorAll("polygon, polyline, line, rect, circle, ellipse").forEach(e=>{let t=ne(e);e.replaceWith(t)})}I.querySelectorAll("path").forEach(e=>{Z.push({d:e.getAttribute("d"),el:e})})}else"pathDataString"===$?B=e:"polyString"===$&&(B="M"+e),Z.push({d:B,el:null});let O={toRelative:a,toShorthands:n,decimals:M},H=[];if(Z.forEach(e=>{let{d:t,el:a}=e,n=te(t,{quadraticToCubic:s,toAbsolute:l,arcToCubic:r}),k=n.length,P=n;m&&(P=function(e){for(let t=0,l=e.length;t<l;t++){let l=e[t];if(!l)continue;let{type:a=null,values:n=[]}=l,s=e[t+1]?e[t+1]:null;"M"!==a&&"m"!==a||s&&(!s||"Z"!==s.type&&"z"!==s.type)||(e[t]=null,e[t+1]=null)}return e.filter(Boolean)}(P));let S=E(P),$=[];for(let e=0,t=S.length;e<t;e++){let t=S[e];w&&(t=ye(t)),y&&(t=re(t)),d&&(t=Q(t,0,1)),u&&(t=pe(t)),y&&(t=se(t,C,h));let l=R(t),{pathData:a,bb:n,dimA:s}=l;if(a=i?xe(a,{simplifyBezier:i,keepInflections:v,keepExtremes:x,keepCorners:f,extrapolateDominant:g,revertToQuadratics:o,tolerance:C,reverse:w}):a,c){let e=(n.width+n.height)/2*.05;a=he(a,{threshold:e,tolerance:C})}if(p){let e=3;a.forEach((t,l)=>{let{type:n,values:s,p0:r,cp1:p=null,cp2:i=null,p:u=null}=t;if("C"===n){let t=K(r,p,i,u,e);t.isArc&&(a[l]=t.com)}}),a=_(a)}o&&a.forEach((e,t)=>{let{type:l,values:n,p0:s,cp1:r=null,cp2:p=null,p:i=null}=e;if("C"===l){let l=V(s,r,p,i);"Q"===l.type&&(l.extreme=e.extreme,l.corner=e.corner,l.dimA=e.dimA,a[t]=l)}}),u&&(a=ie(a)),$.push(a)}if(P=$.flat(),a&&L)H.push(...P);else{b&&(M=function(e){let t={x:e[0].values[0],y:e[0].values[1]},l=t,a=t;e[0].decimals=0;let n=new Set;for(let s=0,r=e.length;s<r;s++){let r=e[s],{type:p,values:i}=r,u=i.length?i.slice(-2):[t.x,t.y];a={x:u[0],y:u[1]};let y=r.dimA?+r.dimA.toFixed(8):"M"!==p?+F(l,a).toFixed(8):0;y&&n.add(y),"M"===p&&(t=a),l=a}let s=Array.from(n).sort(),r=Math.ceil(s.length/10);s=s.slice(0,r);let p=s.reduce((e,t)=>e+t,0)/r,i=p>60?0:Math.floor(40/p).toString().length;return Math.min(Math.max(0,i),8)}(P),O.decimals=M),P=J(P,O),P=re(P);let t=P.length,l=N(P,A);T=new Blob([l]).size,q=+(100/z*T).toFixed(2),e.d=l,e.report={original:k,new:t,saved:k-t,compression:q,decimals:M},a&&a.setAttribute("d",l)}}),j){if(H.length){let e=J(H,O);e=re(e);let t=N(e,A);Z[0].el.setAttribute("d",t);for(let e=1;e<Z.length;e++){let t=Z[e].el;t&&t.remove()}!function(e){e.querySelectorAll("g, defs").forEach(e=>{e.children.length||e.remove()})}(I)}I=oe(I),T=new Blob([I]).size,q=+(100/z*T).toFixed(2),z=+(z/1024).toFixed(3),T=+(T/1024).toFixed(3),D={svgSize:z,svgSizeOpt:T,compression:q}}else({d:B,report:D}=Z[0]);return t?{svg:I,d:B,report:D,inputType:$,mode:j}:B||I}function xe(e,{keepExtremes:t=!0,keepInflections:l=!0,keepCorners:a=!0,extrapolateDominant:n=!0,tolerance:s=1,reverse:r=!1}={}){let p=[e[0]];for(let r=2,i=e.length;i&&r<=i;r++){let u=e[r-1],y=r<i?e[r]:null,h=y?.type||null,o=u?.directionChange||null,c=y?.directionChange||null,{type:x,values:f,p0:g,p:v,cp1:d=null,cp2:m=null,extreme:M=!1,corner:b=!1,dimA:A=0}=u;if("C"===x&&"C"===h)if(l&&c||a&&b||!o&&t&&M)p.push(u);else{let h=O(u,y,n,s),o=0;if(1===h.length){u=h[0];let y=1;o+=u.error;for(let p=r+1;o<s&&p<i;p++){let r=e[p];if("C"!==r.type||l&&r.directionChange||a&&u.corner||t&&u.extreme)break;let i=O(u,r,n,s);1===i.length&&(o+=.5*i[0].error,y++),u=i[0]}p.push(u),r<i&&(r+=y)}else p.push(u)}else p.push(u)}return r&&(p=ye(p)),p}ae[77]=2,ae[109]=2,ae[65]=7,ae[97]=7,ae[67]=6,ae[99]=6,ae[76]=2,ae[108]=2,ae[81]=4,ae[113]=4,ae[83]=4,ae[115]=4,ae[84]=2,ae[116]=2,ae[72]=1,ae[104]=1,ae[86]=1,ae[118]=1,ae[90]=0,ae[122]=0;const{abs:fe,acos:ge,asin:ve,atan:de,atan2:me,ceil:Me,cos:be,exp:Ae,floor:Ce,log:we,hypot:Le,max:ke,min:Pe,pow:Se,random:$e,round:Fe,sin:Ee,sqrt:Ie,tan:ze,PI:Qe}=Math;"undefined"!=typeof window&&(window.svgPathSimplify=ce);export{Qe as PI,fe as abs,ge as acos,ve as asin,de as atan,me as atan2,Me as ceil,be as cos,Ae as exp,Ce as floor,Le as hypot,we as log,ke as max,Pe as min,Se as pow,$e as random,Fe as round,Ee as sin,Ie as sqrt,ce as svgPathSimplify,ze as tan};
1
+ const{abs:e,acos:t,asin:l,atan:a,atan2:n,ceil:s,cos:r,exp:p,floor:i,log:u,max:y,min:h,pow:o,random:c,round:x,sin:f,sqrt:g,tan:v,PI:d}=Math;function m(e,t,l=!1){let a=n(t.y-e.y,t.x-e.x);return l&&a<0&&(a+=2*Math.PI),a}function M(e=null,t=null,l=null,a=null,n=!0,s=!1){let r,p,i,u,y,h={};if(!(e&&t&&l&&a))return s&&console.warn("points missing"),!1;try{if(r=(a.y-l.y)*(t.x-e.x)-(a.x-l.x)*(t.y-e.y),0==r)return!1}catch{return s&&console.warn("!catch",e,t,"p3:",l,"p4:",a),!1}p=e.y-l.y,i=e.x-l.x,u=(a.x-l.x)*p-(a.y-l.y)*i,y=(t.x-e.x)*p-(t.y-e.y)*i,p=u/r,i=y/r,h={x:e.x+p*(t.x-e.x),y:e.y+p*(t.y-e.y)};let o=!1;return p>0&&p<1&&i>0&&i<1&&(o=!0),!(n&&!o)&&h}function b(e,t){return g((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y))}function A(e,t){return(t.x-e.x)**2+(t.y-e.y)**2}function C(e,t,l,a=!1){let n={x:(t.x-e.x)*l+e.x,y:(t.y-e.y)*l+e.y};return a&&(n.angle=m(e,t),n.angle<0&&(n.angle+=2*d)),n}function w(e,t=.5,l=!1,a=!1){let n;return n=e.length>2?((e,t,l=!1)=>{let n=4===e.length,s=e[0],r=e[1],p=n?e[2]:e[1],i=e[e.length-1],u={x:0,y:0};if(l||a){let e,l,y,h,o,c=s.x===r.x&&s.y===r.y,x=i.x===p.x&&i.y===p.y;0!==t||c?1!==t||x?(c&&(t+=1e-7),x&&(t-=1e-7),e=C(s,r,t),n?(l=C(r,p,t),y=C(p,i,t),h=C(e,l,t),o=C(l,y,t),u=C(h,o,t),u.angle=m(h,o),a&&(u.cpts=[l,y,h,o])):(l=C(s,r,t),y=C(r,i,t),u=C(l,y,t),u.angle=m(l,y),a&&(u.cpts=[l,y]))):(u.x=i.x,u.y=i.y,u.angle=m(p,i)):(u.x=s.x,u.y=s.y,u.angle=m(s,r))}else{let e=1-t;u=n?{x:e**3*s.x+3*e**2*t*r.x+3*e*t**2*p.x+t**3*i.x,y:e**3*s.y+3*e**2*t*r.y+3*e*t**2*p.y+t**3*i.y}:{x:e*e*s.x+2*e*t*r.x+t**2*i.x,y:e*e*s.y+2*e*t*r.y+t**2*i.y}}return u})(e,t,l):C(e[0],e[1],t,l),l&&n.angle<0&&(n.angle+=2*d),n}function L(t,l,a,s,p,i,u,y,h){const o=(e,t,l,a)=>n(a-t,l-e);let c={cx:0,cy:0,rx:a=e(a),ry:s=e(s),startAngle:0,endAngle:0,deltaAngle:0,clockwise:u,xAxisRotation:p,largeArc:i,sweep:u};if(0==a||0==s)throw Error("rx and ry can not be 0");if(a===s){let e=Math.abs(y-t),a=Math.abs(h-l),n=e,s=Math.min(t,y),r=Math.min(l,h),p=.5*Math.PI;if(0===e&&a||0===a&&e)return n=0===e&&a?a/2:e/2,c.rx=n,c.ry=n,0===e&&a?(c.cx=t,c.cy=r+a/2,c.startAngle=l>h?p:-p,c.endAngle=l>h?-p:p,c.deltaAngle=u?Math.PI:-Math.PI):0===a&&e&&(c.cx=s+e/2,c.cy=l,c.startAngle=t>y?Math.PI:0,c.endAngle=t>y?-Math.PI:Math.PI,c.deltaAngle=u?Math.PI:-Math.PI),c}let x,v,m=a===s?0:p*d/180,M=m?f(m):0,b=m?r(m):1,A=(t-y)/2,C=(l-h)/2,w=(t+y)/2,L=(l+h)/2,k=m?b*A+M*C:A,P=m?b*C-M*A:C,S=k*k/(a*a)+P*P/(s*s);S>1&&(a*=g(S),s*=g(S),c.rx=a,c.ry=s);let $=a*s,F=a*P,I=s*k,z=F**2+I**2;if(!z)throw Error("start point can not be same as end point");let E=g(e(($*$-z)/z));i==u&&(E=-E);let Q=E*F/s,T=-E*I/a;x=m?b*Q-M*T+w:w+Q,v=m?M*Q+b*T+L:L+T,c.cy=v,c.cx=x;let q=o(x,v,t,l),j=o(x,v,y,h);!u&&j>q&&(j-=2*Math.PI),u&&q>j&&(j=j<=0?j+2*Math.PI:j);let D=j-q;return c.startAngle=q,c.endAngle=j,c.deltaAngle=D,c}function k(e,t,l,n,s,p=0,i=!0,u=!1){if(s=u?s*d/180:s,p=u?p*d/180:p,p=l!==n&&p!==2*d?p:0,i&&l!==n){let e=a(v(s=p?s-p:s)*(l/n));s=r(s)<0?e+d:e}let y=e+l*r(s),h=t+n*f(s),o={x:y,y:h};return p&&(o.x=e+(y-e)*r(p)-(h-t)*f(p),o.y=t+(y-e)*f(p)+(h-t)*r(p)),o}function P(e,t=[],l=.05){let a=3===t.length,n=t[0]||null,s=a?t[1]:null,r=a?t[2]:t[1],p=.5*Math.PI,i=!1,u=!1,y=n?m(r,n,!0):null;if(i=Math.abs(y%p)<l||Math.abs(y%p-p)<l,a){let e=s?m(s,r,!0):0;u=Math.abs(e%p)<=l||Math.abs(e%p-p)<=l}return i||u}function S(e){return 4===e.length?function(e,t,l,a){let[n,s,r,p,i,u,y,h]=[e.x,e.y,t.x,t.y,l.x,l.y,a.x,a.y],o=Math.min(e.y,a.y),c=Math.min(e.x,a.x),x=Math.max(e.x,a.x),f=Math.max(e.y,a.y);if(t.y>=o&&t.y<=f&&l.y>=o&&l.y<=f&&t.x>=c&&t.x<=x&&l.x>=c&&l.x<=x)return[];let g,v,d,m,M,b,A,C,w=[];for(let e=0;e<2;++e)if(0==e?(v=6*n-12*r+6*i,g=-3*n+9*r-9*i+3*y,d=3*r-3*n):(v=6*s-12*p+6*u,g=-3*s+9*p-9*u+3*h,d=3*p-3*s),Math.abs(g)<1e-12){if(Math.abs(v)<1e-12)continue;m=-d/v,0<m&&m<1&&w.push(m)}else A=v*v-4*d*g,A<0?Math.abs(A)<1e-12&&(m=-v/(2*g),0<m&&m<1&&w.push(m)):(C=Math.sqrt(A),M=(-v+C)/(2*g),0<M&&M<1&&w.push(M),b=(-v-C)/(2*g),0<b&&b<1&&w.push(b));let L=w.length;for(;L--;)m=w[L];return w}(e[0],e[1],e[2],e[3]):function(e,t,l){let a,n,s,r=Math.min(e.y,l.y),p=Math.min(e.x,l.x),i=Math.max(e.x,l.x),u=Math.max(e.y,l.y);if(t.y>=r&&t.y<=u&&t.x>=p&&t.x<=i)return[];let[y,h,o,c,x,f]=[e.x,e.y,t.x,t.y,l.x,l.y],g=[];for(let e=0;e<2;++e)a=0==e?y-2*o+x:h-2*c+f,n=0==e?-2*y+2*o:-2*h+2*c,Math.abs(a)>1e-12&&(s=-n/(2*a),s>0&&s<1&&g.push(s));return g}(e[0],e[1],e[2])}function $(e,t){const l=(e,t,l,a,n,s)=>{var r=Math.cos(s),p=Math.sin(s),i=a*Math.cos(e),u=n*Math.sin(e);return{x:t+r*i-p*u,y:l+p*i+r*u}};let a,n,s,r,p,i=L(e.x,e.y,t[0],t[1],t[2],t[3],t[4],t[5],t[6]),{rx:u,ry:y,cx:h,cy:o,endAngle:c,deltaAngle:x}=i,f=t[2],g={x:t[5],y:t[6]},v=[g],d=f*Math.PI/180,m=Math.tan(d);p=Math.atan2(-y*m,u);let M=p,b=p+Math.PI,A=Math.atan2(y,u*m),C=A+Math.PI,w=[e.x,g.x],k=[e.y,g.y],P=Math.min(...w),S=Math.max(...w),$=Math.min(...k),F=Math.max(...k),I=l(c-.001*x,h,o,u,y,d),z=l(c-.999*x,h,o,u,y,d);return(I.x>S||z.x>S)&&(a=l(M,h,o,u,y,d),v.push(a)),(I.x<P||z.x<P)&&(n=l(b,h,o,u,y,d),v.push(n)),(I.y<$||z.y<$)&&(r=l(C,h,o,u,y,d),v.push(r)),(I.y>F||z.y>F)&&(s=l(A,h,o,u,y,d),v.push(s)),v}function F(e,t){return(Math.abs(t.x-e.x)+Math.abs(t.y-e.y))/2}function I(e){let t=[],l=[e[0]],a=e.length;for(let n=1;n<a;n++){let a=e[n];"M"!==a.type&&"m"!==a.type||(t.push(l),l=[]),l.push(a)}return l.length&&t.push(l),t}function z(e,t){let l,a,n,s,r,p,i=[],u=[],y=e[0],h=e[1],o=e[e.length-2],c=e[e.length-1];return 4===e.length?(l=w([y,h],t),a=w([h,o],t),n=w([o,c],t),s=w([l,a],t),r=w([a,n],t),p=w([s,r],t),i.push({x:y.x,y:y.y},{x:l.x,y:l.y},{x:s.x,y:s.y},{x:p.x,y:p.y}),u.push({x:p.x,y:p.y},{x:r.x,y:r.y},{x:n.x,y:n.y},{x:c.x,y:c.y})):3===e.length?(a=w([y,h],t),n=w([h,c],t),p=w([a,n],t),i.push({x:y.x,y:y.y},{x:a.x,y:a.y},{x:p.x,y:p.y}),u.push({x:p.x,y:p.y},{x:n.x,y:n.y},{x:c.x,y:c.y})):2===e.length&&(a=w([y,c],t),i.push({x:y.x,y:y.y},{x:a.x,y:a.y}),u.push({x:a.x,y:a.y},{x:c.x,y:c.y})),[i,u]}function E(e,t,l=0,a=1){let n=[],s=6===t.length?"C":"Q",r={x:t[0],y:t[1]},p="C"===s?{x:t[2],y:t[3]}:r,i={x:t[4],y:t[5]},u=Math.max(i.x,e.x),y=Math.min(i.x,e.x),h=Math.max(i.y,e.y),o=Math.min(i.y,e.y),c=0;if(r.x<y||r.x>u||r.y<o||r.y>h||p.x<y||p.x>u||p.y<o||p.y>h){let u=S("C"===s?[e,r,p,i]:[e,r,i]).sort();if(u=u.filter(e=>e>l&&e<a),u.length){let l=function(e,t,l,a=!0){let n=[];if(!l.length)return!1;let s,r,p,i=t.length,u={x:t[i-2],y:t[i-1]};2===t.length?p=[e,u]:4===t.length?(s={x:t[0],y:t[1]},p=[e,s,u]):6===t.length&&(s={x:t[0],y:t[1]},r={x:t[2],y:t[3]},p=[e,s,r,u]);if(l.length)if(1===l.length){let e=z(p,l[0]),t=e[0],a=e[1];n.push(t,a)}else{let e=l[0],t=z(p,e),a=t[0];n.push(a),p=t[1];for(let t=1;t<l.length;t++){e=l[t-1];let a=z(p,(l[t]-e)/(1-e));n.push(a[0]),t===l.length-1&&n.push(a[a.length-1]),p=a[1]}}if(a){let e,t,l=[];return n.forEach(a=>{e={type:"",values:[]},a.shift(),t=a.map(e=>Object.values(e)).flat(),e.values=t,3===a.length?e.type="C":2===a.length?e.type="Q":1===a.length&&(e.type="L"),l.push(e)}),l}return n}(e,t,u);n.push(...l),c+=l.length}else n.push({type:s,values:t})}else n.push({type:s,values:t});return{pathData:n,count:c}}function Q(e,t=0,l=1){let a=[e[0]],n={x:e[0].values[0],y:e[0].values[1]},s={x:e[0].values[0],y:e[0].values[1]},r=e.length;for(let p=1;r&&p<r;p++){let r=e[p],{type:i,values:u}=r,y=u.slice(-2);if(y[0],y[1],"C"!==i&&"Q"!==i)a.push(r);else if("C"===i||"Q"===i){let e=E(n,u,t,l).pathData;a.push(...e)}n={x:y[0],y:y[1]},"z"===i.toLowerCase()?n=s:"M"===i&&(s={x:y[0],y:y[1]})}return a}function T(e,t=-1){let l=e.map(e=>e.x),a=e.map(e=>e.y),n=Math.min(...l),s=Math.max(...l),r=Math.min(...a),p=Math.max(...a),i={x:n,left:n,right:s,y:r,top:r,bottom:p,width:s-n,height:p-r};if(t>-1)for(let e in i)i[e]=+i[e].toFixed(t);return i}function q(e){let t=[];return e.forEach(e=>{let l=function(e){let t=function(e){let t=[];for(let l=0;l<e.length;l++){let a=e[l],n=l>0?e[l-1]:e[l],{type:s,values:r}=a,p={x:n.values[n.values.length-2],y:n.values[n.values.length-1]},i=r.length?{x:r[r.length-2],y:r[r.length-1]}:"",u=r.length?{x:r[0],y:r[1]}:"";switch(s){case"A":if("function"!=typeof arcToBezier){let e=b(p,i)/2,l=C(p,i,.5),a=k(l.x,l.y,e,e,0),n=k(l.x,l.y,e,e,Math.PI);t.push(a,n,i);break}arcToBezier(p,r).forEach(e=>{let l=e.values,a={x:l[0],y:l[1]},n={x:l[2],y:l[3]},s={x:l[4],y:l[5]};t.push(a,n,s)});break;case"C":let e={x:r[2],y:r[3]};t.push(u,e);break;case"Q":t.push(u)}"z"!==s.toLowerCase()&&t.push(i)}return t}(e),l=T(t);return l}(e);t.push(l)}),t}function j(e,t){let[l,a,n,s,r,p]=[e.x,e.y,e.width,e.height,e.x+e.width,e.y+e.height],[i,u,y,h,o,c]=[t.x,t.y,t.width,t.height,t.x+t.width,t.y+t.height],x=!1;return n*s!=y*h&&n*s>y*h&&l<i&&r>o&&a<u&&p>c&&(x=!0),x}function D(e,t=9){let l=0,a=[],n=I(e),s=n.length>1,r=[];if(s){let e=q(n);e.forEach(function(t,l){for(let l=0;l<e.length;l++){let a=e[l];if(t!=a){j(t,a)&&r.push(l)}}})}return n.forEach((e,t)=>{a=[];let n=0,s=0,p=1,i=[];e.forEach(function(t,l){let[s,r]=[t.type,t.values],p=r.length;if(r.length){let u=(l>0?e[l-1]:e[0]).values,y=u.length,h={x:u[y-2],y:u[y-1]},o={x:r[p-2],y:r[p-1]};if("C"===s||"Q"===s){let e={x:r[0],y:r[1]};i="C"===s?[h,e,{x:r[2],y:r[3]},o]:[h,e,o];let t=Math.abs(function(e,t=!1){let l,[a,n,s,r]=[e[0],e[1],e[2],e[e.length-1]];if(e.length<3)return 0;3===e.length&&(n={x:1*e[0].x/3+2*e[1].x/3,y:1*e[0].y/3+2*e[1].y/3},s={x:1*e[2].x/3+2*e[1].x/3,y:1*e[2].y/3+2*e[1].y/3});return l=3*(a.x*(-2*n.y-s.y+3*r.y)+n.x*(2*a.y-s.y-r.y)+s.x*(a.y+n.y-2*r.y)+r.x*(-3*a.y+n.y+2*s.y))/20,t?Math.abs(l):l}(i));n+=t,a.push(h,o)}else if("A"===s){let e=L(h.x,h.y,t.values[0],t.values[1],t.values[2],t.values[3],t.values[4],o.x,o.y),{cx:l,cy:s,rx:r,ry:p,startAngle:i,endAngle:u,deltaAngle:y}=e,c=Math.abs(function(e,t,l,a){const n=Math.PI*e*t;let s=(a-l+2*Math.PI)%(2*Math.PI);if(e===t)return n*(s/(2*Math.PI));const r=l=>Math.atan2(e*Math.sin(l),t*Math.cos(l));return l=r(l),a=r(a),s=(a-l+2*Math.PI)%(2*Math.PI),n*(s/(2*Math.PI))}(r,p,i,u));c-=Math.abs(B([h,{x:l,y:s},o])),a.push(h,o),n+=c}else a.push(h,o)}});let u=B(a);-1!==r.indexOf(t)&&(p=-1),s=u<0&&n<0?(Math.abs(n)-Math.abs(u))*p:(Math.abs(n)+Math.abs(u))*p,l+=s}),l}function B(e,t=!1){let l=0;for(let t=0,a=e.length;a&&t<a;t++){l+=e[t].x*e[t===e.length-1?0:t+1].y*.5-e[t===e.length-1?0:t+1].x*e[t].y*.5}return t&&(l=Math.abs(l)),l}function Z(e,t=0){t=parseFloat(t);let l=e.length,a=t>1,n=!a&&!t,s="",r=a?"\n":n?"":" ",p=n?"":" ";s=`${e[0].type}${p}${e[0].values.join(" ")}${r}`;for(let t=1;t<l;t++){let l=e[t-1],a=e[t],{type:i,values:u}=a;if(!n||"A"!==i&&"a"!==i||(u=[u[0],u[1],u[2],`${u[3]}${u[4]}${u[5]}`,u[6]]),i=n&&l.type===a.type&&"m"!==a.type.toLowerCase()||n&&"M"===l.type&&"L"===a.type?" ":a.type,n){let e="",t=!1;for(let l=0,a=u.length;l<a;l++){let a=u[l],n=a.toString(),s=n.includes(".")&&Math.abs(a)<1;s&&t&&(n=n.replace(/^0\./,".")),!(l>0)||t&&s||(e+=" "),e+=n,t=s}s+=`${i}${p}${e}${r}`}else s+=`${i}${p}${u.join(" ")}${r}`}return n&&(s=s.replace(/ 0\./g," .").replace(/ -/g,"-").replace(/-0\./g,"-.").replace(/Z/g,"z")),s}function N(e,t,l=0,a=1,n=!1){const s=(e,t,l,a,n)=>{let s=1-n;return{x:3*s*s*(t.x-e.x)+6*s*n*(l.x-t.x)+3*n*n*(a.x-l.x),y:3*s*s*(t.y-e.y)+6*s*n*(l.y-t.y)+3*n*n*(a.y-l.y)}};let r=[e,t],p=F(e.p0,e.p)>F(t.p0,t.p),i=JSON.parse(JSON.stringify(e)),u=JSON.parse(JSON.stringify(t)),y=M(i.p0,i.cp1,u.p,u.cp2,!1);if(!y)return r;if(p){let l={p0:{x:e.p.x,y:e.p.y},cp1:{x:e.cp2.x,y:e.cp2.y},cp2:{x:e.cp1.x,y:e.cp1.y},p:{x:e.p0.x,y:e.p0.y}};e={p0:{x:t.p.x,y:t.p.y},cp1:{x:t.cp2.x,y:t.cp2.y},cp2:{x:t.cp1.x,y:t.cp1.y},p:{x:t.p0.x,y:t.p0.y}},t=l}let h=(e,t)=>({x:e.x-t.x,y:e.y-t.y}),o=(e,t)=>({x:e.x*t,y:e.y*t}),c=(e,t)=>e.x*t.x+e.y*t.y,x=t.p0,f=s(t.p0,t.cp1,t.cp2,t.p,0),g=c(h(e.p0,x),f)/c(f,f),v=w([t.p0,t.cp1,t.cp2,t.p],g),d=s(t.p0,t.cp1,t.cp2,t.p,g);g-=c(h(v,e.p0),d)/c(d,d);let m=w([t.p0,t.cp1,t.cp2,t.p],g),b=t.p,A=s(t.p0,t.cp1,t.cp2,t.p,g),L=s(t.p0,t.cp1,t.cp2,t.p,1),k=1-g,P=(S=m,$=o(A,k/3),{x:S.x+$.x,y:S.y+$.y});var S,$;let I=h(b,o(L,k/3)),z={p0:m,cp1:P,cp2:I,p:b,t0:g};p&&(z={p0:b,cp1:I,cp2:P,p:m,t0:g});let E=.5*(1-g),Q=w([z.p0,z.cp1,z.cp2,z.p],E,!1,!0),T=Q.cpts[2],q=M(Q,T,z.p0,y,!1),j=M(Q,T,z.p,y,!1),B=C(z.p0,q,1.333),N=C(z.p,j,1.333);if(M(i.p0,B,u.p,N,!0))return r;n&&function(e,t,l="red",a="1%",n="1",s="",r=!0,p="",i=""){Array.isArray(t)&&(t={x:t[0],y:t[1]});let u=`<circle class="${i}" opacity="${n}" id="${p}" cx="${t.x}" cy="${t.y}" r="${a}" fill="${l}">\n <title>${s}</title></circle>`;if(!r)return u;e.insertAdjacentHTML("beforeend",u)}(markers,Q,"purple"),z.cp1=B,z.cp2=N;let O=F(i.p0,z.p0)+F(u.p,z.p);if(z.p0=i.p0,z.p=u.p,z.extreme=u.extreme,z.corner=u.corner,z.dimA=u.dimA,z.directionChange=u.directionChange,z.type="C",z.values=[z.cp1.x,z.cp1.y,z.cp2.x,z.cp2.y,z.p.x,z.p.y],O<l){let t=p?1+g:Math.abs(g),s=1+Math.abs(g);if(t=p?1+g:Math.abs(g)/s,F(w([z.p0,z.cp1,z.cp2,z.p],t),e.p)>l*a)return r;let y=D([{type:"M",values:[i.p0.x,i.p0.y]},{type:"C",values:[i.cp1.x,i.cp1.y,i.cp2.x,i.cp2.y,i.p.x,i.p.y]},{type:"C",values:[u.cp1.x,u.cp1.y,u.cp2.x,u.cp2.y,u.p.x,u.p.y]}]),h=[{type:"M",values:[z.p0.x,z.p0.y]},{type:"C",values:[z.cp1.x,z.cp1.y,z.cp2.x,z.cp2.y,z.p.x,z.p.y]}],o=D(h),c=Math.abs(o/y-1);if(z.error=5*c*a,n){let e=Z(h);!function(e,t="",l="green",a="1%",n=!0){let s=`<path d="${t}" fill="none" stroke="${l}" stroke-width="${a}" /> `;if(!n)return s;e.insertAdjacentHTML("beforeend",s)}(markers,e,"orange")}c<.05*a&&(r=[z])}return r}function O(e,{keepExtremes:t=!0,keepInflections:l=!0,keepCorners:a=!0,extrapolateDominant:n=!0,tolerance:s=1}={}){let r=[e[0]],p=e.length;for(let n=2;p&&n<=p;n++){let i=e[n-1],u=n<p?e[n]:null,y=u?.type||null,h=i?.directionChange||null,o=u?.directionChange||null,{type:c,values:x,p0:f,p:g,cp1:v=null,cp2:d=null,extreme:m=!1,corner:M=!1,dimA:b=0}=i;if("C"===c&&"C"===y)if(l&&o||a&&M||!h&&t&&m)r.push(i);else{let y=H(i,u,{tolerance:s}),h=0;if(1===y.length){i=y[0];let u=1;h+=i.error;for(let r=n+1;h<s&&r<p;r++){let n=e[r];if("C"!==n.type||l&&n.directionChange||a&&i.corner||t&&i.extreme)break;let p=H(i,n,{tolerance:s});1===p.length&&(h+=.5*p[0].error,u++),i=p[0]}r.push(i),n<p&&(n+=u)}else r.push(i)}else r.push(i)}return r}function H(e,t,{tolerance:l=1}={}){let a=[e,t],n=function(e,t){let l=b(e.cp2,e.p),a=b(e.cp2,t.cp1),n=Math.min(l)/a;return n}(e,t),s=F(e.p0,e.p),r=F(t.p0,t.p),p=.06*Math.max(0,Math.min(s,r))*l,i=function(e,t,l=0){let{p0:a,cp1:n}=e,{p:s,cp2:r}=t;return n={x:(n.x-(1-l)*a.x)/l,y:(n.y-(1-l)*a.y)/l},r={x:(r.x-l*s.x)/(1-l),y:(r.y-l*s.y)/(1-l)},{p0:a,cp1:n,cp2:r,p:s}}(e,t,n),u=w([i.p0,i.cp1,i.cp2,i.p],n),y=F(e.p,u),h=0,o=0,c=!1,x=y;if(y<p){let l=.5*(1+n);if(h=F(w([t.p0,t.cp1,t.cp2,t.p],.5),w([i.p0,i.cp1,i.cp2,i.p],l)),x+=h,h<p){let t=.5*n;o=F(w([e.p0,e.cp1,e.cp2,e.p],.5),w([i.p0,i.cp1,i.cp2,i.p],t)),h+o<p&&(c=!0),x+=o}}return c&&(i.p0=e.p0,i.p=t.p,i.dimA=F(i.p0,i.p),i.type="C",i.extreme=t.extreme,i.directionChange=t.directionChange,i.corner=t.corner,i.values=[i.cp1.x,i.cp1.y,i.cp2.x,i.cp2.y,i.p.x,i.p.y],i.error=x/p,a=[i]),a}function R(e,{tolerance:t=1,debug:l=!1}={}){let a=!1,n={flat:!0,steepness:0},s=e[0],r=e[e.length-1],p=new Set([...e.map(e=>+e.x.toFixed(8))]),i=new Set([...e.map(e=>+e.y.toFixed(8))]);if(1===p.size||1===i.size)return!l||n;let u=A(s,r),y=u/1e3*t,h=B(e,!0);return h<y&&(a=!0),l&&(n.flat=a,n.steepness=h/u*10),l?n:a}function U(e=[]){let t,l=[],a=function(e){let t=[],l={x:e[0].values[0],y:e[0].values[1]};return e.forEach(e=>{let{type:a,values:n}=e;if(n.length){let e=n.length>1?{x:n[n.length-2],y:n[n.length-1]}:"V"===a?{x:l.x,y:n[0]}:{x:n[0],y:l.y};t.push(e),l=e}}),t}(e),n=T(a),{left:s,right:r,top:p,bottom:i,width:u,height:y}=n,h=e[0].values[0],o=e[0].values[1],c={x:e[0].values[0],y:e[0].values[1]},x={x:e[0].values[0],y:e[0].values[1]};e[0].idx=0,e[0].p0=c,e[0].p=c,e[0].lineto=!1,e[0].corner=!1,e[0].extreme=!1,e[0].directionChange=!1,e[0].closePath=!1,e[0].dimA=0;let f=[e[0]],g=0,v=e.length;for(let l=2;v&&l<=v;l++){let a=e[l-1],{type:n,values:u}=a,y=u.slice(-2),v=[x];a.idx=l-1,a.lineto=!1,a.corner=!1,a.extreme=!1,a.directionChange=!1,a.closePath=!1,a.dimA=0;let d,M,b,C,w,L,k=.05;t=y.length?{x:y[0],y:y[1]}:c,"M"===n?(c=t,x=t):"z"===n.toLowerCase()&&(t=c),a.p0=x,a.p=t;let S=F(x,t);a.dimA=S,"L"===n&&(a.lineto=!0),"Z"===n&&(a.closePath=!0,c.x!==h&&c.y!==o&&(a.lineto=!0)),"Q"!==n&&"C"!==n||(d={x:u[0],y:u[1]},M="C"===n?{x:u[2],y:u[3]}:null,a.cp1=d,M&&(a.cp2=M)),u.length>2&&("Q"!==n&&"C"!==n||v.push(d),"C"===n&&v.push(M),v.push(t)),"L"===n||t.x!==s&&t.y!==p&&t.x!==r&&t.y!==i||(a.extreme=!0);let $=e[l]?e[l]:null,I=$?$.values.slice(-2):null;w=$?$.type:null,!$||"Q"!==$.type&&"C"!==$.type||(C=$?{x:I[0],y:I[1]}:null,b={x:$.values[0],y:$.values[1]},"C"===$.type&&($.values[2],$.values[3])),L=B(v);let z=g<0&&L>0||g>0&&L<0;if(g=L,z&&(a.directionChange=!0),("Q"===n||"C"===n)&&("Q"===n&&"Q"===w||"C"===n&&"C"===w)){let e=v.slice(1);if(C&&Math.abs(C.x-x.x),C&&Math.abs(C.y-x.y),!!a.extreme||P(0,e,k))a.extreme=!0;else{let e=M?[M,t]:[d,t],l=[t,b],n=m(...e,!0),s=m(...l,!0),r=180*Math.abs(n-s)/Math.PI,p=A(...e),i=A(...l);r>10&&p&&i&&(a.corner=!0)}}f.push(a),x=t}return l={pathData:f,bb:n,dimA:(u+y)/2},l}function V(e){let t={x:e[0].values[0],y:e[0].values[1]},l=t,a=t;e[0].decimals=0;let n=[];for(let s=0,r=e.length;s<r;s++){let r=e[s],{type:p,values:i}=r,u=i.length?i.slice(-2):[t.x,t.y];a={x:u[0],y:u[1]};let y=r.dimA?+r.dimA.toFixed(8):"M"!==p?+F(l,a).toFixed(8):0;y&&n.push(y),"M"===p&&(t=a),l=a}let s=n.sort(),r=Math.ceil(s.length/10);s=s.slice(0,r);let p=s.reduce((e,t)=>e+t,0)/r,i=p>60?0:Math.floor(40/p).toString().length;return Math.min(Math.max(0,i),8)}function J(e,t=-1){let l=e.length;for(let a=0;a<l;a++){let l=e[a].values,n=l.length;if(n&&t>-1)for(let s=0;s<n;s++)e[a].values[s]=+l[s].toFixed(t)}return e}function W(e={},t={},l={},a={}){let n=C(e,t,1.5),s=C(a,l,1.5),r=.01*F(e,a),p=F(n,s),i=null,u={type:"C",values:[t.x,t.y,l.x,l.y,a.x,a.y]};return p&&r&&p<r&&(i=M(e,t,a,l,!1),i&&(u.type="Q",u.values=[i.x,i.y,a.x,a.y],u.p0=e,u.cp1=i,u.p=a)),u}function X(e,{toShorthands:t=!0,toRelative:l=!0,decimals:a=3}={}){return t&&(e=function(e,t=-1,l=!1){let a;if(l){let t=e.map(e=>e.type).join("");a=/[astvqmhlc]/g.test(t)}e=l&&a?G(e):e;let n=e.length,s=new Array(n),r={type:"M",values:e[0].values};s[0]=r;let p,i={x:e[0].values[0],y:e[0].values[1]},u=.01;for(let l=1;l<n;l++){let a=e[l],{type:n,values:y}=a,h=y.length,o=[y[h-2],y[h-1]],c=e[l-1],x=c.type;p={x:o[0],y:o[1]};let f,g,v,d,m={x:y[0],y:y[1]},M=Math.abs(p.x-i.x),b=Math.abs(p.y-i.y),A=(M+b)/2*u;switch(n){case"L":r=0===b||b<A&&M>A?{type:"H",values:[y[0]]}:0===M||b>A&&M<A?{type:"V",values:[y[1]]}:a;break;case"Q":if("Q"!==x){i={x:o[0],y:o[1]},s[l]=a;continue}let e={x:c.values[0],y:c.values[1]};d={x:2*i.x-e.x,y:2*i.y-e.y},f=Math.abs(m.x-d.x),g=Math.abs(m.y-d.y),v=(f+g)/2,r=v<A?{type:"T",values:[p.x,p.y]}:a;break;case"C":let t={x:y[2],y:y[3]};if("C"!==x){s[l]=a,i={x:o[0],y:o[1]};continue}let u={x:c.values[2],y:c.values[3]};d={x:2*i.x-u.x,y:2*i.y-u.y},f=Math.abs(m.x-d.x),g=Math.abs(m.y-d.y),v=(f+g)/2,r=v<A?{type:"S",values:[t.x,t.y,p.x,p.y]}:a;break;default:r={type:n,values:y}}(a.decimals||0===a.decimals)&&(r.decimals=a.decimals),t>-1&&(r.values=r.values.map(e=>+e.toFixed(t))),i={x:o[0],y:o[1]},s[l]=r}return s}(e)),a>-1&&l&&(e=J(e,a)),l&&(e=function(e,t=-1){return G(e,!0,t)}(e)),a>-1&&(e=J(e,a)),e}function Y(e,t){Array.isArray(e)&&(e={x:e[0],y:e[1]});let l={x:e.x+2/3*(t[0]-e.x),y:e.y+2/3*(t[1]-e.y)},a={x:t[2]+2/3*(t[0]-t[2]),y:t[3]+2/3*(t[1]-t[3])};return{type:"C",values:[l.x,l.y,a.x,a.y,t[2],t[3]]}}function G(e,t=!1,l=-1){l>=0&&(e[0].values=e[0].values.map(e=>+e.toFixed(l)));let a=e[0].values,n=a[0],s=a[1],r=n,p=s;for(let a=1,i=e.length;a<i;a++){let i=e[a],{type:u,values:y}=i,h=t?u.toLowerCase():u.toUpperCase();if(u!==h)switch(u=h,i.type=u,u){case"a":case"A":y[5]=t?y[5]-n:y[5]+n,y[6]=t?y[6]-s:y[6]+s;break;case"v":case"V":y[0]=t?y[0]-s:y[0]+s;break;case"h":case"H":y[0]=t?y[0]-n:y[0]+n;break;case"m":case"M":t?(y[0]-=n,y[1]-=s):(y[0]+=n,y[1]+=s),r=t?y[0]+n:y[0],p=t?y[1]+s:y[1];break;default:if(y.length)for(let e=0;e<y.length;e++)y[e]=t?y[e]-(e%2?s:n):y[e]+(e%2?s:n)}let o=y.length;switch(u){case"z":case"Z":n=r,s=p;break;case"h":case"H":n=t?n+y[0]:y[0];break;case"v":case"V":s=t?s+y[0]:y[0];break;case"m":case"M":r=y[o-2]+(t?n:0),p=y[o-1]+(t?s:0);default:n=y[o-2]+(t?n:0),s=y[o-1]+(t?s:0)}l>=0&&(i.values=i.values.map(e=>+e.toFixed(l)))}return e}function K(e,t=-1,l=!0){let a=!1;if(l){let t=e.map(e=>e.type).join(""),l=/[hstv]/gi.test(t);if(a=/[astvqmhlc]/g.test(t),!l)return e}e=l&&a?function(e,t=-1){return G(e,!1,t)}(e,t):e;let n=[],s={type:"M",values:e[0].values};n.push(s);for(let l=1,a=e.length;l<a;l++){let a,r,p,i,u,y,h,o,c=e[l],{type:x,values:f}=c,g=f.length,v=s.values,d=v.length,[m,M]=[f[g-2],f[g-1]],[b,A]=[v[d-2],v[d-1]];switch(x){case"H":s={type:"L",values:[f[0],A]};break;case"V":s={type:"L",values:[b,f[0]]};break;case"T":[a,r]=[v[0],v[1]],[b,A]=[v[d-2],v[d-1]],p=b+(b-a),i=A+(A-r),s={type:"Q",values:[p,i,m,M]};break;case"S":[a,r]=[v[0],v[1]],[b,A]=[v[d-2],v[d-1]],[h,o]=d>2&&"A"!==s.type?[v[2],v[3]]:[b,A],p=2*b-h,i=2*A-o,u=f[0],y=f[1],s={type:"C",values:[p,i,u,y,m,M]};break;default:s={type:x,values:f}}t>-1&&(s.values=s.values.map(e=>+e.toFixed(t))),n.push(s)}return n}function _(e,t,l=1){const a=2*Math.PI;let[n,s,r,p,i,u,y]=t;if(0===n||0===s)return[];let h=r?r*a/360:0,o=h?Math.sin(h):0,c=h?Math.cos(h):1,x=c*(e.x-u)/2+o*(e.y-y)/2,f=-o*(e.x-u)/2+c*(e.y-y)/2;if(0===x&&0===f)return[];n=Math.abs(n),s=Math.abs(s);let g=x*x/(n*n)+f*f/(s*s);if(g>1){let e=Math.sqrt(g);n*=e,s*=e}let v=n*n,d=n===s?v:s*s,m=x*x,M=f*f,b=v*d-v*M-d*m;b<=0?b=0:(b/=v*M+d*m,b=Math.sqrt(b)*(p===i?-1:1));let A=b?b*n/s*f:0,C=b?b*-s/n*x:0,w=c*A-o*C+(e.x+u)/2,L=o*A+c*C+(e.y+y)/2,k=(x-A)/n,P=(f-C)/s,S=(-x-A)/n,$=(-f-C)/s;const F=(e,t,l,a)=>{let n=+(e*l+t*a).toFixed(9);return 1===n||-1===n?1===n?0:Math.PI:(n=n>1?1:n<-1?-1:n,(e*a-t*l<0?-1:1)*Math.acos(n))};let I=F(1,0,k,P),z=F(k,P,S,$);0===i&&z>0?z-=2*Math.PI:1===i&&z<0&&(z+=2*Math.PI);let E=(+(Math.abs(z)/(a/4)).toFixed(0)||1)*l;z/=E;let Q=[];const T=1.5707963267948966,q=.551785;let j=z===T?q:z===-T?-q:4/3*Math.tan(z/4),D=z?Math.cos(z):1,B=z?Math.sin(z):0;const Z=(e,t,l,a,n)=>{let s=e!=t?Math.cos(e):a,r=e!=t?Math.sin(e):n,p=Math.cos(e+t),i=Math.sin(e+t);return[{x:s-r*l,y:r+s*l},{x:p+i*l,y:i-p*l},{x:p,y:i}]};for(let e=0;e<E;e++){let e={type:"C",values:[]};Z(I,z,j,D,B).forEach(t=>{let l=t.x*n,a=t.y*s;e.values.push(c*l-o*a+w,o*l+c*a+L)}),Q.push(e),I+=z}return Q}function ee(e,t,l,a,n=7.5){let s={type:"C",values:[t.x,t.y,l.x,l.y,a.x,a.y]},r=0,p=!1,i=m(e,t,!0),u=m(a,l,!0),y=180*Math.abs(i-u)/Math.PI;if(Math.abs(y%180-90)<3){let i=M(e,t,a,l,!1);if(i){let u=b(e,i),y=b(a,i),h=+Math.max(u,y).toFixed(8),o=+Math.min(u,y).toFixed(8),c=o,x=h,f=B([e,t,l,a])<0?0:1,g=Math.abs(a.x-e.x)>Math.abs(a.y-e.y);100/c*Math.abs(c-x)<5&&(c=h,x=c),g&&(c=h,x=o);let v=D([{type:"M",values:[e.x,e.y]},{type:"C",values:[t.x,t.y,l.x,l.y,a.x,a.y]}]),d={type:"A",values:[c,x,0,0,f,a.x,a.y]};r=Math.PI*(c*x)/4,r-=Math.abs(B([e,a,i])),function(e,t){let l=Math.abs(e-t);return Math.abs(100-100/e*(e+l))}(v,r)<n&&(p=!0,s=d)}}return{com:s,isArc:p,area:r}}function te(e){let t,l=[[]],a=0,n=[[]],s={x:e[0].values[0],y:e[0].values[1]};for(let r=0,p=e.length;r<p;r++){let p=e[r],{type:i,values:u}=p;if("A"===i){let i=e[r-1].values.slice(-2);s={x:i[0],y:i[1]};let[y,h,o,c,x,f,g]=u,v=100/y*Math.abs(y-h)<5;t={x:u[5],y:u[6]},p.p0=s,p.p=t,p.circular=v;let d=e[r+1];if(!l[a].length&&d&&"A"===d.type&&(l[a].push(p),n[a].push(r)),d&&"A"===d.type){let[e,p,i,u,o,c,x]=d.values,f=y!=e?100/y*Math.abs(y-e):0,g=h!=p?100/h*Math.abs(h-p):0;t={x:d.values[5],y:d.values[6]},d.p0=s,d.p=t,f<5&&g<5?(l[a].push(d),n[a].push(r+1)):(l.push([]),n.push([]),a++)}else l.push([]),n.push([]),a++}}if(!n.length)return e;l=l.filter(e=>e.length),n=n.filter(e=>e.length);for(let t=l.length-1;t>=0;t--){const a=l[t],s=n[t][0],r=a.length;let p=0,i=0;a.forEach(({values:e})=>{const[t,l]=e;p+=t,i+=l}),p/=r,i/=r;let u=100/p*Math.abs(p-i)<5;u&&(p=(p+i)/2,i=p);let y=e[s-1].values.slice(-2);if(y[0],y[1],4===r){let[t,l,n,y,h,o,c]=a[1].values,[,,,,,x,f]=a[3].values;u&&(p=1,i=1);let g={type:"A",values:[p,i,n,y,h,o,c]},v={type:"A",values:[p,i,n,y,h,x,f]};e.splice(s,r,g,v)}else if(3===r){let[t,l,n,u,y,h,o]=a[0].values,[c,x,,,,f,g]=a[2].values;u=1;let v={type:"A",values:[p,i,n,u,y,f,g]};e.splice(s,r,v)}else if(2===r){let[t,l,n,y,h,o,c]=a[0].values,[x,f,,,,g,v]=a[1].values;u&&(p=1,i=1,n=0);let{p0:d,p:m}=a[0],[M,b]=[a[1].p0,a[1].p];if(d.x!==b.x||d.y!==b.y){let t={type:"A",values:[p,i,n,y,h,g,v]};e.splice(s,r,t)}}}return e}function le(e=[],{toAbsolute:t=!0,toLonghands:l=!0,quadraticToCubic:a=!1,arcToCubic:n=!1,arcAccuracy:s=2,hasRelatives:r=!0,hasShorthands:p=!0,hasQuadratics:i=!0,hasArcs:u=!0,testTypes:y=!1}={}){if(y){let t=Array.from(new Set(e.map(e=>e.type))).join("");r=/[lcqamts]/gi.test(t),i=/[qt]/gi.test(t),u=/[a]/gi.test(t),p=/[vhst]/gi.test(t),isPoly=/[mlz]/gi.test(t)}return(i&&a||u&&n)&&(l=!0,t=!0),r&&t&&(e=G(e,!1)),p&&l&&(e=K(e,-1,!1)),u&&n&&(e=function(e,{arcAccuracy:t=1}={}){let l=[e[0]];for(let a=1,n=e.length;a<n;a++){let n=e[a],s=e[a-1].values,r=s.length,p={x:s[r-2],y:s[r-1]};"A"===n.type?_(p,n.values,t).forEach(e=>{l.push(e)}):l.push(n)}return l}(e,s)),i&&a&&(e=function(e){let t=[e[0]];for(let l=1,a=e.length;l<a;l++){let a=e[l],n=e[l-1].values,s=n.length,r={x:n[s-2],y:n[s-1]};"Q"===a.type?t.push(Y(r,a.values)):t.push(a)}return t}(e)),e}function ae(e,{toAbsolute:t=!0,toLonghands:l=!0,quadraticToCubic:a=!1,arcToCubic:n=!1,arcAccuracy:s=4}={}){let r=Array.isArray(e),p=r&&"object"==typeof e[0]&&"function"==typeof e[0].constructor,i=r?e:function(e,t=!0){if(e=e.trim(),""===e)return{pathData:[],hasRelatives:!1,hasShorthands:!1,hasQuadratics:!1,hasArcs:!1};const l=new Set([5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279]),a=e=>32===e||44===e||10===e||13===e||8232===e||8233===e||9===e||11===e||12===e||160===e||e>=5760&&l.has(e);let n,s=0,r=e.length,p="",i=[],u=-1,y="",h=!1,o=0,c=0,x=0,f=!1,g=new Set([]),v=[];const d=()=>{f&&("M"===p?p="L":"m"===p&&(p="l"),i.push({type:p,values:[]}),u++,c=0,f=!1)},m=(e=!1)=>{(e?o>0:""!==y)&&(t&&-1===u&&(n="Pathdata must start with M command",v.push(n),p="M",i.push({type:p,values:[]}),x=2,c=0,u++),"A"===p||"a"===p?(y=M(),i[u].values.push(...y)):(t&&y[1]&&"."!==y[1]&&"0"===y[0]&&(n=`${u}. command: Leading zeros not valid: ${y}`,v.push(n)),i[u].values.push(+y)),c++,y="",o=0,f=c>=x)},M=()=>{let e=y.length,t=!1;return 3===c&&2===e||4===c&&e>1?(y=[+y[0],+y[1]],t=!0,c++):3===c&&e>=3&&(y=[+y[0],+y[1],+y.substring(2)],t=!0,c+=2),t?y:[+y]},b=()=>{if(u>0){let e=i[u].values.length;if(e&&e<x||e&&e>x||("z"===p||"Z"===p)&&e>0){n=`${u}. command of type "${p}": ${x-e} values too few - ${x} expected`,v[v.length-1]!==n&&v.push(n)}}};let A=!1,C=!1,w=!1;for(;s<r;){let l=e.charCodeAt(s),r=l>47&&l<58;if(r||(A=101===l||69===l,C=45===l||43===l,w=46===l),r||C||w||A){if(h||45!==l&&46!==l)d();else{let e=46===l;m(e),d(),e&&o++}y+=e[s],h=A,s++}else if((l<48||l>5759)&&a(l))m(),s++;else{if(l>64){if(!ne.has(l)){n=`${u}. command "${e[s]}" is not a valid type`,v.push(n),s++;continue}""!==y&&(i[u].values.push(+y),c++,y=""),t&&b(),p=e[s],x=se[l];let a="M"===p||"m"===p,r=u>0&&("z"===i[u].type||"Z"===i[u].type);g.add(p),r&&!a&&(i.push({type:"m",values:[0,0]}),u++),i.push({type:p,values:[]}),u++,o=0,c=0,f=!1,s++;continue}r||(n=`${u}. ${e[s]} is not a valid separarator or token`,v.push(n),y=""),s++}}m(),t&&b();t&&v.length&&(n="Invalid path data:\n"+v.join("\n"),"log"===t?console.log(n):console.warn(n));i[0].type="M";let L=Array.from(g).join(""),k=/[lcqamts]/g.test(L),P=/[vhst]/gi.test(L),S=/[a]/gi.test(L),$=/[qt]/gi.test(L);return{pathData:i,hasRelatives:k,hasShorthands:P,hasQuadratics:$,hasArcs:S}}(e),{hasRelatives:u=!0,hasShorthands:y=!0,hasQuadratics:h=!0,hasArcs:o=!0}=i,c=p?i:i.pathData;return c=le(c,{toAbsolute:t,toLonghands:l,quadraticToCubic:a,arcToCubic:n,arcAccuracy:s,hasRelatives:u,hasShorthands:y,hasQuadratics:h,hasArcs:o}),c}const ne=new Set([77,109,65,97,67,99,76,108,81,113,83,115,84,116,72,104,86,118,90,122]),se=new Uint8Array(128);function re(e){if("path"===e.nodeName.toLowerCase())return e;let t=function(e,t=!1){let l,a,n,s,r,p,i,u,y,h,o,c,x,f,g,v,d=[],m=e.nodeName;const M=(e,t=9)=>{const l="svg"!==e.nodeName?e.closest("svg"):e,a=e=>{if(null===e)return 0;let l=96,a=e.match(/([a-z]+)/gi);a=a?a[0]:"";let n,s=parseFloat(e);if(!a)return s;switch(a){case"in":n=l;break;case"pt":n=1/72*96;break;case"cm":n=1/2.54*96;break;case"mm":n=1/2.54*96/10;break;case"em":case"rem":n=16;break;default:n=1}return+(s*n).toFixed(t)};let n=l.getAttribute("width");n=n?a(n):300;let s=l.getAttribute("height");s=n?a(s):150;let r=l.getAttribute("viewBox");r=r?r.replace(/,/g," ").split(" ").filter(Boolean).map(e=>+e):[];let p=r.length?r[2]:n,i=r.length?r[3]:s,u=p/100,y=i/100,h=Math.sqrt((Math.pow(u,2)+Math.pow(y,2))/2),o=["x","width","x1","x2","rx","cx","r"],c=["y","height","y1","y2","ry","cy"];e.getAttributeNames().forEach(t=>{let l=e.getAttribute(t),n=l;if(o.includes(t)||c.includes(t)){let s=o.includes(t)?u:y;s="r"===t&&p!=i?h:s;let r=l.match(/([a-z|%]+)/gi);r=r?r[0]:"",n=l.includes("%")?parseFloat(l)*s:a(l),e.setAttribute(t,+n)}})};M(e);const b=t=>(l={},t.forEach(t=>{l[t]=+e.getAttribute(t)}),l);switch(m){case"path":n=e.getAttribute("d"),d=ae(n);break;case"rect":a=["x","y","width","height","rx","ry"],({x:s,y:r,width:p,height:i,rx:y,ry:h}=b(a)),y||h?(y>p/2&&(y=p/2),h>i/2&&(h=i/2),d=[{type:"M",values:[s+y,r]},{type:"L",values:[s+p-y,r]},{type:"A",values:[y,h,0,0,1,s+p,r+h]},{type:"L",values:[s+p,r+i-h]},{type:"A",values:[y,h,0,0,1,s+p-y,r+i]},{type:"L",values:[s+y,r+i]},{type:"A",values:[y,h,0,0,1,s,r+i-h]},{type:"L",values:[s,r+h]},{type:"A",values:[y,h,0,0,1,s+y,r]},{type:"Z",values:[]}]):d=[{type:"M",values:[s,r]},{type:"L",values:[s+p,r]},{type:"L",values:[s+p,r+i]},{type:"L",values:[s,r+i]},{type:"Z",values:[]}];break;case"circle":case"ellipse":a=["cx","cy","rx","ry","r"],({cx:o,cy:c,r:u,rx:y,ry:h}=b(a));let t="circle"===m;t?(y=u,h=u):(y=y||u,h=h||u);let l=t&&u>=1?1:y,M=t&&u>=1?1:y;d=[{type:"M",values:[o+y,c]},{type:"A",values:[l,M,0,1,1,o-y,c]},{type:"A",values:[l,M,0,1,1,o+y,c]}];break;case"line":a=["x1","y1","x2","y2"],({x1:x,y1:g,x2:f,y2:v}=b(a)),d=[{type:"M",values:[x,g]},{type:"L",values:[f,v]}];break;case"polygon":case"polyline":let A=e.getAttribute("points").replaceAll(","," ").split(" ").filter(Boolean);for(let e=0;e<A.length;e+=2)d.push({type:0===e?"M":"L",values:[+A[e],+A[e+1]]});"polygon"===m&&d.push({type:"Z",values:[]})}return t?function(e){return e.map(e=>`${e.type} ${e.values.join(" ")}`).join(" ")}(d):d}(e),l=t.map(e=>`${e.type} ${e.values} `).join(" "),a=[...e.attributes].map(e=>e.name),n=document.createElementNS("http://www.w3.org/2000/svg","path");n.setAttribute("d",l);let s=["x","y","cx","cy","dx","dy","r","rx","ry","width","height","points"];return a.forEach(t=>{if(!s.includes(t)){let l=e.getAttribute(t);n.setAttribute(t,l)}}),n}function pe(e,{tolerance:t=1,flatBezierToLinetos:l=!0}={}){let a=[e[0]],n={x:e[0].values[0],y:e[0].values[1]},s=n,r=n;e[e.length-1].type.toLowerCase();for(let p=1,i=e.length;p<i;p++){let u=e[p],y=e[p+1]||e[i-1],h="z"===y.type.toLowerCase()?n:{x:y.values[y.values.length-2],y:y.values[y.values.length-1]},{type:o,values:c}=u,x=c.slice(-2);r="Z"!==o?{x:x[0],y:x[1]}:n;let f=B([s,r,h],!0),g=A(s,h),v=f<(g?g/333*t:0),d=!1;if(l||"C"!==o||(v=!1),l&&("C"===o||"Q"===o)){d=R([s,..."C"===o?[{x:c[0],y:c[1]},{x:c[2],y:c[3]}]:"Q"===o?[{x:c[0],y:c[1]}]:[],r],{tolerance:t}),d&&p<i-1&&(o="L",u.type="L",u.values=x)}v&&p<i-1&&("L"===o||l&&d)||(s=r,"M"===o?(n=r,s=n):"Z"===o&&(s=n),a.push(u))}return a}function ie(e){let t=[];for(let l=0,a=e.length;l<a;l++){let a=e[l];if(!a)continue;let{type:n=null,values:s=[]}=a,r=e[l+1]?e[l+1]:null;"M"!==n&&"m"!==n||r&&(!r||"Z"!==r.type&&"z"!==r.type)?t.push(a):r&&l++}return t}function ue(e){let t={x:e[0].values[0],y:e[0].values[1]},l=t,a=[e[0]];for(let n=1,s=e.length;n<s;n++){let s=e[n],r=e[n-1],p=e[n+1]||null,{type:i,values:u}=s,y="m"===r.type.toLowerCase()&&!p,h=u.length;if(l={x:u[h-2],y:u[h-1]},y||"L"!==i||l.x!==t.x||l.y!==t.y){if(!y&&("l"===i||"v"===i||"h"===i)){if("l"===i?"00"===u.join(""):0===u[0])continue}a.push(s),t=l}}return a}function ye(e){let t=e.length;if(!("z"===e[t-1].type.toLowerCase()))return e;let l=0,a=[];for(let l=0;l<t;l++){let t=e[l],{type:n,values:s}=t,r=s.length;if(r){let e={type:n,x:s[r-2],y:s[r-1],index:0};e.index=l,a.push(e)}}return a=a.sort((e,t)=>+e.y.toFixed(3)-+t.y.toFixed(3)),l=a[0].index,l?oe(e,l):e}function he(e,t=!0,l=!0){let a=[],n=e.length,s={x:+e[0].values[0].toFixed(8),y:+e[0].values[1].toFixed(8)},r="z"===e[n-1].type.toLowerCase(),p=e.filter(e=>"L"===e.type),i=e[n-2],u=i.type,y=i.values.slice(-2).map(e=>+e.toFixed(8)),h=y[0]===s.x&&y[1]===s.y,o="L"!==e[1].type&&(!h||"L"===u);if(o=!1,!r)return e;let c=0;{let t=[];for(let l=0,a=e.length;l<a;l++){let a=e[l],{type:n,values:s}=a;if(s.length){let a=s.slice(-2),r=e[l-1]&&"L"===e[l-1].type,p=e[l+1]&&"L"===e[l+1].type,i=e[l-1]?e[l-1].type.toUpperCase():null,u=e[l+1]?e[l+1].type.toUpperCase():null,y={type:n,x:a[0],y:a[1],dist:0,index:0,prevL:r,nextL:p,prevCom:i,nextCom:u};y.index=l,t.push(y)}}if(p.length){let e=t.filter(e=>"L"!==e.type&&"M"!==e.type&&e.prevCom&&"L"===e.prevCom||"M"===e.prevCom&&"L"===u).sort((e,t)=>e.y-t.y||e.x-t.x)[0];c=e?e.index-1:0}else t=t.sort((e,t)=>+e.y.toFixed(8)-+t.y.toFixed(8)||e.x-t.x),c=t[0].index;e=c?oe(e,c):e}return s={x:+e[0].values[0].toFixed(8),y:+e[0].values[1].toFixed(8)},n=e.length,i=e[n-2],u=i.type,y=i.values.slice(-2).map(e=>+e.toFixed(8)),h="L"===u&&y[0]===s.x&&y[1]===s.y,t&&h&&e.splice(n-2,1),a.push(...e),a}function oe(e,t){let l=0,a="z"===e[e.length-1].type.toLowerCase();if(!a||t<1||e.length<3)return e;let n=a?1:0;!function(e){let t=e.length,l="z"===e[t-1].type.toLowerCase(),a=e[0],[n,s]=[a.values[0],a.values[1]].map(e=>+e.toFixed(8)),r=l?e[t-2]:e[t-1],p=r.values.length,[i,u]=[r.values[p-2],r.values[p-1]].map(e=>+e.toFixed(8));!l||n==i&&s==u||(e.pop(),e.push({type:"L",values:[n,s]},{type:"Z",values:[]}))}(e),l=t+1<e.length-1?t+1:e.length-1-n;let s,r,p=e.slice(l),i=e.slice(0,l);return i.shift(),s=i[i.length-1].values||[],r=[s[s.length-2],s[s.length-1]],n&&(p.pop(),i.push({type:"Z",values:[]})),e=[{type:"M",values:r},...p,...i]}function ce(e,{threshold:t=null,tolerance:l=1}={}){if(!t){let l=function(e){let t=1/0,l=-1/0,a=1/0,n=-1/0;const s=e=>{e.x<t&&(t=e.x),e.x>l&&(l=e.x),e.y<a&&(a=e.y),e.y>n&&(n=e.y)};for(let t=0;t<e.length;t++){let l=e[t],{type:a,values:n}=l,r=n.length,p=(e[t-1]?e[t-1]:e[t]).values,i=p.length;if(r){let e={x:p[i-2],y:p[i-1]},t={x:n[r-2],y:n[r-1]};if(s(t),"C"===a||"Q"===a){let l={x:n[0],y:n[1]},r="C"===a?{x:n[2],y:n[3]}:l,p="C"===a?[e,l,r,t]:[e,l,t];S(p).forEach(e=>{let t=w(p,e);s(t)})}else"A"===a&&$(e,n).forEach(e=>{s(e)})}}return{x:t,y:a,width:l-t,height:n-a}}(e);t=(l.width+l.height)/2*.05}let a=e.length;for(let n=0;n<a;n++){let a=e[n],{type:s,values:r,extreme:p,corner:i=!1,dimA:u,p0:y,p:h}=a,o=e[n+1]?e[n+1]:null,c=e[n+2]?e[n+2]:null,x=(o?F(h,o.p):1/0)<t,f=(c?F(c.p,o.p):1/0)<t;if(o&&"C"===s&&"C"===o.type&&p&&c&&c.extreme&&(f||x)){let a=N(o,c,t,l,!1);if(1===a.length){e[n+1]=null,a=a[0],e[n+2].values=[a.cp1.x,a.cp1.y,a.cp2.x,a.cp2.y,a.p.x,a.p.y],e[n+2].cp1=a.cp1,e[n+2].cp2=a.cp2,e[n+2].p0=a.p0,e[n+2].p=a.p,e[n+2].extreme=a.extreme,n++;continue}}if(o&&"C"===s&&"C"===o.type&&p&&x){let t,l=a.cp1.x-o.p0.x,s=a.cp1.y-o.p0.y,r=Math.abs(s)<Math.abs(l),p=o.p,i=1,u=B([a.p0,a.p,o.p]),y=B([a.p0,a.cp1,a.cp2,a.p]);if(u<0&&y>0||u>0&&y<0)continue;if(o.extreme){r?(i=Math.abs(Math.abs(o.cp2.x-o.p.x)/Math.abs(a.cp2.x-a.p.x)),i=Math.min(1,i),t=C(o.p,a.cp2,1+i),a.cp2.x=t.x):(i=Math.abs(Math.abs(o.cp2.y-o.p.y)/Math.abs(a.cp2.y-a.p.y)),i=Math.min(1,i),t=C(o.p,a.cp2,1+i),a.cp2.y=t.y),e[n+1].values=[a.cp1.x,a.cp1.y,a.cp2.x,a.cp2.y,p.x,p.y],e[n+1].cp1=a.cp1,e[n+1].cp2=a.cp2,e[n+1].p0=a.p0,e[n+1].p=p,e[n+1].extreme=!0,e[n]=null;continue}}}a=(e=e.filter(Boolean)).length;let n="z"===e[a-1].type.toLowerCase()?a-2:a-1,s=e[n],r=e[n-1]||null,p={x:e[0].values[0],y:e[0].values[1]},i=s.values.slice(-2),u=+i[0].toFixed(8)===+p.x.toFixed(8)&&+i[1].toFixed(8)===+p.y.toFixed(8),y="C"===e[1].type&&e[1].extreme?e[1]:null,h=F(s.p0,s.p)<t;if(r&&"C"===r.type&&h&&u&&y){let a=N(r,s,t,l,!1);1===a.length&&(e[n-1]=a[0],e[n]=null,e=e.filter(Boolean))}return e}function xe(e){let t=(new XMLSerializer).serializeToString(e);return t=t.replace(/\t/g,"").replace(/[\n\r|]/g,"\n").replace(/\n\s*\n/g,"\n").replace(/ +/g," "),t}function fe(e,{threshold:t=0,tolerance:l=1}={}){let a=e.length,n=[e[0]],s="z"===e[a-1].type.toLowerCase(),r=s?2:1,p=e[a-r],i="L"===p.type,u="C"===p.type,y="L"===e[1].type,h="C"===e[1].type,o=s&&h;o&&(e[a-1].values=e[0].values,e[a-1].type="L",i=!0);for(let l=1;l<a;l++){let p=e[l],{type:c}=p,x=e[l+1]?e[l+1]:null;if("L"===c&&x&&"C"===x.type||"C"===c&&x&&"L"===x.type){let o=p,c=null,f=[],g=0;1===l&&h&&i&&(f=[e[1]],o=e[a-1],c=x),s&&u&&y&&l===a-r-1&&(c=e[1],f=[e[a-r]]);for(let t=l+1;t<a;t++){let l=e[t]?e[t]:null,a=e[t-1];if("C"===a.type&&f.push(a),"L"===l.type&&"C"===a.type){c=l;break}g++}if(c){let e=F(o.p0,o.p),a=F(c.p0,c.p),s=f.length,r=F(f[0].p0,f[s-1].p),p=B([o.p0,o.p,c.p0,c.p],!1),i=B([f[0].p0,f[0].cp1,f[0].cp2,f[0].p],!1);if(f&&!(p<0&&i>0||p>0&&i<0)&&r<t&&e>r&&a>r){let e=M(o.p0,o.p,c.p0,c.p,!1);if(e){let t={type:"Q",values:[e.x,e.y,c.p0.x,c.p0.y]};t.p0=o.p,t.cp1=e,t.p=c.p0,n.push(o,t),l+=g;continue}}}}o&&l===a-1&&"L"===c||n.push(p)}return o&&n.push({type:"Z",values:[]}),n}function ge(e="",{getObject:t=!1,toAbsolute:l=!0,toRelative:a=!0,toShorthands:n=!0,quadraticToCubic:s=!0,arcToCubic:r=!1,cubicToArc:p=!1,simplifyBezier:i=!0,optimizeOrder:u=!0,removeZeroLength:y=!0,removeColinear:h=!0,flatBezierToLinetos:o=!0,revertToQuadratics:c=!0,refineExtremes:x=!0,refineCorners:f=!1,keepExtremes:g=!0,keepCorners:v=!0,extrapolateDominant:d=!0,keepInflections:m=!1,addExtremes:M=!1,removeOrphanSubpaths:b=!1,decimals:A=3,autoAccuracy:C=!0,minifyD:w=0,tolerance:L=1,reverse:k=!1,mergePaths:P=!1,removeHidden:S=!0,removeUnused:$=!0,shapesToPaths:F=!0}={}){L=Math.max(.1,L);let z=function(e){let t="string";if(Array.isArray(e))return e[0]?.type&&e[0]?.values?"pathData":"array";if("string"==typeof e){let l=(e=e.trim()).includes("<svg")&&e.includes("</svg"),a=e.startsWith("M")||e.startsWith("m"),n=!isNaN(e.substring(0,1))&&!isNaN(e.substring(e.length-1,e.length));if(l)t="svgMarkup";else if(a)t="pathDataString";else if(n)t="polyString";else{let l=/^(file:|https?:\/\/|\/|\.\/|\.\.\/)/.test(e),a=e.startsWith("data:image");t=l||a?"url":"string"}return t}return t=typeof e,(e.constructor.name||t).toLowerCase()}(e),E="",T=0,q=0,j=0,D={},B="",N="svgMarkup"===z?1:0,H=[];if(T=e.length,N){if(E=function(e,{returnDom:t=!1,removeHidden:l=!0,removeUnused:a=!0}={}){e=(e=e.replace(/<\?xml[\s\S]*?\?>/gi,"").replace(/<!DOCTYPE[\s\S]*?>/gi,"").replace(/<!--[\s\S]*?-->/g,"").trim()).replaceAll("xlink:href=","href=");let n=(new DOMParser).parseFromString(e,"text/html").querySelector("svg");!function(e,t=["viewBox","xmlns","width","height","id","class"]){[...e.attributes].map(e=>e.name).forEach(l=>{t.includes(l)||e.removeAttribute(l)})}(n,["viewBox","xmlns","width","height","id","class","fill","stroke","stroke-width","stroke-linecap","stroke-linejoin"]);let s=["metadata","script"];if(n.querySelectorAll("*").forEach(e=>{let t=e.nodeName,a=e.getAttribute("style")||"",n=!!a&&a.trim().includes("display:none"),r=e.getAttribute("display")&&"none"===e.getAttribute("display")||n;t.includes(":")||s.includes(t)||l&&r?e.remove():function(e){[...e.attributes].map(e=>e.name).forEach(t=>{t.includes(":")&&e.removeAttribute(t)})}(e)}),t)return n;let r=xe(n);return console.log(r),r}(e,{returnDom:!0,removeHidden:S,removeUnused:$}),F){E.querySelectorAll("polygon, polyline, line, rect, circle, ellipse").forEach(e=>{let t=re(e);e.replaceWith(t)})}E.querySelectorAll("path").forEach(e=>{H.push({d:e.getAttribute("d"),el:e})})}else{if("pathDataString"===z)B=e;else if("polyString"===z)B="M"+e;else if("pathData"===z){B=e,T=B.map(e=>`${e.type} ${e.values.join(" ")}`).join(" ").length}H.push({d:B,el:null})}let R={toRelative:a,toShorthands:n,decimals:A},J=[];for(let e=0,t=H.length;t&&e<t;e++){let t=H[e],{d:a,el:n}=t,S=ae(a,{quadraticToCubic:s,toAbsolute:l,arcToCubic:r}),$=S.length;b&&(S=ie(S));let F=I(S),z=F.length,E=[];for(let e=0;e<z;e++){let t=F[e];(h||y)&&(t=ue(t)),M&&(t=Q(t,0,1)),u&&(t=ye(t)),h&&(t=pe(t,{tolerance:L,flatBezierToLinetos:!1}));let l=U(t),{pathData:a,bb:n,dimA:s}=l;if(a=i?O(a,{simplifyBezier:i,keepInflections:m,keepExtremes:g,keepCorners:v,extrapolateDominant:d,revertToQuadratics:c,tolerance:L,reverse:k}):a,x){a=ce(a,{threshold:(n.width+n.height)/2*.05,tolerance:L})}if(p){let e=1;for(let t=0,l=a.length;t<l;t++){let l=a[t],{type:n,values:s,p0:r,cp1:p=null,cp2:i=null,p:u=null}=l;if("C"===n){let l=ee(r,p,i,u,e);l.isArc&&(a[t]=l.com)}}a=te(a)}if(h&&o&&(a=pe(a,{tolerance:L,flatBezierToLinetos:o})),f){a=fe(a,{threshold:(n.width+n.height)/2*.1,tolerance:L})}if(c)for(let e=0,t=a.length;e<t;e++){let t=a[e],{type:l,values:n,p0:s,cp1:r=null,cp2:p=null,p:i=null}=t;if("C"===l){let l=W(s,r,p,i);"Q"===l.type&&(l.extreme=t.extreme,l.corner=t.corner,l.dimA=t.dimA,a[e]=l)}}u&&(a=he(a)),E.push(...a)}if(S=E,C&&(A=V(S),R.decimals=A),n&&P)J.push(...S);else{S=X(S,R),S=ue(S);let e=S.length,l=Z(S,w);q=l.length,j=+(100/T*q).toFixed(2),t.d=l,t.report={original:$,new:e,saved:$-e,compression:j,decimals:A},n&&n.setAttribute("d",l)}}if(N){if(J.length){let e=X(J,R);e=ue(e);let t=Z(e,w);H[0].el.setAttribute("d",t);for(let e=1;e<H.length;e++){let t=H[e].el;t&&t.remove()}!function(e){e.querySelectorAll("g, defs").forEach(e=>{e.children.length||e.remove()})}(E)}E=xe(E),q=E.length,j=+(100/T*q).toFixed(2),T=+(T/1024).toFixed(3),q=+(q/1024).toFixed(3),D={svgSize:T,svgSizeOpt:q,compression:j}}else({d:B,report:D}=H[0]);return t?{svg:E,d:B,report:D,inputType:z,mode:N}:B||E}se[77]=2,se[109]=2,se[65]=7,se[97]=7,se[67]=6,se[99]=6,se[76]=2,se[108]=2,se[81]=4,se[113]=4,se[83]=4,se[115]=4,se[84]=2,se[116]=2,se[72]=1,se[104]=1,se[86]=1,se[118]=1,se[90]=0,se[122]=0;const{abs:ve,acos:de,asin:me,atan:Me,atan2:be,ceil:Ae,cos:Ce,exp:we,floor:Le,log:ke,hypot:Pe,max:Se,min:$e,pow:Fe,random:Ie,round:ze,sin:Ee,sqrt:Qe,tan:Te,PI:qe}=Math;"undefined"!=typeof window&&(window.svgPathSimplify=ge);export{qe as PI,ve as abs,de as acos,me as asin,Me as atan,be as atan2,Ae as ceil,Ce as cos,we as exp,Le as floor,Pe as hypot,ke as log,Se as max,$e as min,Fe as pow,Ie as random,ze as round,Ee as sin,Qe as sqrt,ge as svgPathSimplify,Te as tan};