PageSourceSearch

https://www.glypho.app/_next/static/chunks/52484146.eff1d8ae5036a177.js

js glypho.app collected 2026-10-07 17:36:48 UTC 112,470 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3361],{89909:(e,t,n)=>{!function(e){e.version="debug",e.environmentTypes={BrowserUI:"browser",NodeJs:"node",WebWorker:"worker",Unknown:"unknown"};var t,r=Number.EPSILON||2220446049250313e-31;e.environment=(t=function(){return"undefined"!=typeof self?self:void 0!==n.g?n.g:this||{}}()).self&&t.WorkerGlobalScope&&!t.window?e.environmentTypes.WebWorker:t.window&&t.document?e.environmentTypes.BrowserUI:t.global&&t.process?e.environmentTypes.NodeJs:e.environmentTypes.Unknown,e.unitType={Centimeter:"cm",Foot:"foot",Inch:"inch",Meter:"m",Millimeter:"mm"},e.splitDecimal=function(e){var t,n,r=e.toString();return r.indexOf("e")>0&&(r=e.toFixed(20).match(/.*[^(0+$)]/)[0]),(n=(t=r).indexOf("."))<0?[t]:n>0?[t.substr(0,n),t.substr(n+1)]:["",t]},e.round=function(e,t){if(void 0===t&&(t=1e-7),e%1==0)return e;var n=1/t;return Math.round((e+r)*n)/n},e.createRouteKey=function(e){for(var t=[],n=0;n<e.length;n++){var r,i=e[n];r=n%2==0?(n>0?".":"")+i:JSON.stringify([i]),t.push(r)}return t.join("")},e.travel=function(t,n){if(!t||!n)return null;for(var r=Array.isArray(n)?n:JSON.parse(n),i=r.slice(),a=t,o=t.origin||[0,0];i.length;){if(!(a=a[i.shift()]))return null;a.origin&&i.length&&(o=e.point.add(o,a.origin))}return{result:a,offset:o}};var i=n(49786);function a(e){return"number"==typeof e}function o(e){return"object"==typeof e}function s(e){return e&&Array.isArray(e)&&2==e.length&&a(e[0])&&a(e[1])}function l(e){return e&&e.type&&s(e.origin)}function u(t){return l(t)&&t.type==e.pathType.Arc&&a(t.radius)&&a(t.startAngle)&&a(t.endAngle)}function c(e){return e&&(e.paths||e.models)}e.cloneObject=function(e){return i(e)},e.extendObject=function(e,t){if(e&&t){for(var n in t)if(t.hasOwnProperty(n)&&void 0!==t[n]){if("__proto__"===n||"constructor"===n||"prototype"===n)continue;e[n]=t[n]}}return e},e.isFunction=function(e){return"function"==typeof e},e.isNumber=a,e.isObject=o,e.isPoint=s,e.isPath=l,e.isPathLine=function(t){return l(t)&&t.type==e.pathType.Line&&s(t.end)},e.isPathCircle=function(t){return l(t)&&t.type==e.pathType.Circle&&a(t.radius)},e.isPathArc=u,e.isPathArcInBezierCurve=function(e){return u(e)&&o(e.bezierData)&&a(e.bezierData.startT)&&a(e.bezierData.endT)},e.pathType={Line:"line",Circle:"circle",Arc:"arc",BezierSeed:"bezier-seed"},e.isModel=c,e.isChain=function(e){return e&&e.links&&Array.isArray(e.links)&&a(e.pathLength)};var p=function(){function e(e,t){for(var n in this._module=e,this.$initial=t,this._module)this._shadow(n);this.$result=t}return e.prototype._shadow=function(e){var t=this;this[e]=function(){return t._apply(t._module[e],arguments)}},e.prototype._apply=function(e,t){var n=[].slice.call(t);return n.unshift(this.$result),this.$result=e.apply(void 0,n),this},e.prototype.$reset=function(){return this.$result=this.$initial,this},e}();e.$=function(t){return c(t)?new p(e.model,t):l(t)?new p(e.path,t):s(t)?new p(e.point,t):void 0}}(eq||(eq={})),e.exports=eq,function(e){function t(e,t){if(e<0&&t<0||e>0&&t>0){var n;return(n=r.splitDecimal(e)[1])?+(r.splitDecimal(t)[0]+"."+n):t}return t}function n(e){var n=Math.floor(e/360);return 0===n?e:t(e,e-360*n)}function i(e){return 180*e/Math.PI}function a(t){var i=e.ofArcEnd(t)-t.startAngle;return r.round(i)>360?n(i):i}function o(e){return n(i(s(e.origin,e.end)))}function s(e,t){var n=r.point.subtract(t,e),i=n[0];return Math.atan2(-n[1],-i)+Math.PI}e.noRevolutions=n,e.toRadians=function(e){return n(e)*Math.PI/180},e.toDegrees=i,e.ofArcEnd=function(e){if(e.endAngle<e.startAngle){var n=360*Math.ceil((e.startAngle-e.endAngle)/360)+e.endAngle;return t(e.endAngle,n)}return e.endAngle},e.ofArcMiddle=function(e,t){return void 0===t&&(t=.5),e.startAngle+a(e)*t},e.ofArcSpan=a,e.ofLineInDegrees=o,e.ofPointInDegrees=function(e,t){return i(s(e,t))},e.ofPointInRadians=s,e.mirror=function(e,t,n){return n&&(e=360-e),t&&(e=(e<180?180:540)-e),e};var l={};l[r.pathType.Arc]=function(e,t,n){var i=t!=n,a=i?e.endAngle-90:e.startAngle+90,o=r.point.fromArc(e)[+!!i],s=r.point.rotate(r.point.add(o,[e.radius,0]),a,o);return new r.paths.Line(t?[s,o]:[o,s])},l[r.pathType.Line]=function(e,t,n){return n?new r.paths.Line(e.end,e.origin):e},e.ofChainLinkJoint=function(e,t){if(arguments.length<2)return null;var r=[e,t].map(function(e,t){if(e){var n=e.walkedPath.pathContext,r=l[n.type];if(r)return r(n,0===t,e.reversed)}}),i=n(o(r[1])-o(r[0]));return i>180&&(i-=360),i}}((r=eq||(eq={})).angle||(r.angle={})),function(e){function t(e,t,r){var i=n(e);if(!t)return i;for(var a=2;a--;)r?i[a]-=t[a]:i[a]+=t[a];return i}function n(t){return t?[t[0],t[1]]:e.zero()}e.add=t,e.average=function(e,t){function n(n){return(e[n]+t[n])/2}return[n(0),n(1)]},e.clone=n,e.closest=function(e,t){for(var n={index:0,distance:-1},r=0;r<t.length;r++){var a=i.measure.pointDistance(e,t[r]);(-1==n.distance||a<n.distance)&&(n.distance=a,n.index=r)}return t[n.index]};var r={};r[Math.PI/2]=!0,r[3*Math.PI/2]=!0;var a={};function o(e,t){return[e in r?0:i.round(t*Math.cos(e)),e in a?0:i.round(t*Math.sin(e))]}function s(e,n){return t(n.origin,o(i.angle.toRadians(e),n.radius))}a[Math.PI]=!0,a[2*Math.PI]=!0,e.fromPolar=o,e.fromAngleOnCircle=s,e.fromArc=function(e){return[s(e.startAngle,e),s(e.endAngle,e)]};var l={};function u(e,t){var n=e.origin[0],r=t.slope*n+t.yIntercept;return[n,r]}function c(t,n){return e.add(t.origin,e.fromPolar(i.angle.toRadians(n),t.radiu
1s))}l[i.pathType.Arc]=function(t){return e.fromArc(t)},l[i.pathType.Line]=function(e){return[e.origin,e.end]},l[i.pathType.BezierSeed]=l[i.pathType.Line],e.fromPathEnds=function(e,n){var r=null,i=l[e.type];return i&&(r=i(e),n&&(r=r.map(function(e){return t(e,n)}))),r},e.fromSlopeIntersection=function(e,t,n){void 0===n&&(n={});var r,a=i.measure.lineSlope(e),o=i.measure.lineSlope(t);if(i.measure.isSlopeParallel(a,o))return i.measure.isSlopeEqual(a,o)&&(n.out_AreOverlapped=i.measure.isLineOverlapping(e,t,n.excludeTangents)),null;if(a.hasSlope)if(o.hasSlope){var s=(o.yIntercept-a.yIntercept)/(a.slope-o.slope),l=a.slope*s+a.yIntercept;r=[s,l]}else r=u(t,a);else r=u(e,o);return r};var p={};p[i.pathType.Arc]=function(e,t){var n=i.angle.ofArcMiddle(e,t);return c(e,n)},p[i.pathType.Circle]=function(e,t){return c(e,360*t)},p[i.pathType.Line]=function(e,t){var n,r;return[(n=e.origin[0])+(e.end[0]-n)*t,(r=e.origin[1])+(e.end[1]-r)*t]},p[i.pathType.BezierSeed]=function(e,t){return i.models.BezierCurve.computePoint(e,t)},e.middle=function(e,t){void 0===t&&(t=.5);var n=null,r=p[e.type];return r&&(n=r(e,t)),n},e.mirror=function(e,t,r){var i=n(e);return t&&(i[0]=-i[0]),r&&(i[1]=-i[1]),i},e.rounded=function(e,t){return[i.round(e[0],t),i.round(e[1],t)]},e.rotate=function(e,n,r){void 0===r&&(r=[0,0]);var a=i.angle.ofPointInRadians(r,e),s=i.measure.pointDistance(r,e);return t(r,o(a+i.angle.toRadians(n),s))},e.scale=function(e,t){for(var r=n(e),i=2;i--;)r[i]*=t;return r},e.distort=function(e,t,n){return[e[0]*t,e[1]*n]},e.subtract=function(e,n){return t(e,n,!0)},e.zero=function(){return[0,0]}}((i=eq||(eq={})).point||(i.point={})),function(e){function t(e,t){e&&t&&void 0!==e.layer&&(t.layer=e.layer),e&&t&&"bezierData"in e&&(t.bezierData=e.bezierData)}e.addTo=function(e,t,n,r){return void 0===r&&(r=!1),a.model.addPath(t,e,n,r),e};var n={};n[a.pathType.Circle]=function(e,t,n){t.radius=e.radius},n[a.pathType.Arc]=function(e,t,r){n[a.pathType.Circle](e,t,r),t.startAngle=e.startAngle,t.endAngle=e.endAngle},n[a.pathType.Line]=function(e,t,n){t.end=a.point.add(e.end,n)},n[a.pathType.BezierSeed]=function(e,t,r){n[a.pathType.Line](e,t,r),t.controls=e.controls.map(function(e){return a.point.add(e,r)})},e.clone=function(e,r){var i={type:e.type,origin:a.point.add(e.origin,r)},o=n[e.type];return o&&o(e,i,r),t(e,i),i},e.copyProps=function(e,r){var i=n[e.type];return i&&(r.origin=a.point.clone(e.origin),i(e,r)),t(e,r),e};var r={};r[a.pathType.Line]=function(e,t,n,r){return new a.paths.Line(t,a.point.mirror(e.end,n,r))},r[a.pathType.Circle]=function(e,t,n,r){return new a.paths.Circle(t,e.radius)},r[a.pathType.Arc]=function(e,t,n,r){var i=a.angle.mirror(e.startAngle,n,r),o=a.angle.mirror(a.angle.ofArcEnd(e),n,r),s=n!=r;return new a.paths.Arc(t,e.radius,s?o:i,s?i:o)},r[a.pathType.BezierSeed]=function(e,t,n,i){var o=r[a.pathType.Line](e,t,n,i);return o.type=a.pathType.BezierSeed,o.controls=e.controls.map(function(e){return a.point.mirror(e,n,i)}),o},e.layer=function(e,t){return e.layer=t,e},e.mirror=function(e,n,i){var o=null;if(e){var s=a.point.mirror(e.origin,n,i),l=r[e.type];l&&(o=l(e,s,n,i))}return t(e,o),o};var i={};function o(e,t){if(e){var n=i[e.type];n&&n(e,t),e.origin=t}return e}i[a.pathType.Line]=function(e,t){var n=a.point.subtract(e.end,e.origin);e.end=a.point.add(t,n)},e.move=o;var s={};function l(e,t,n){if(e&&t){e.origin=a.point.add(e.origin,t,n);var r=s[e.type];r&&r(e,t,n)}return e}s[a.pathType.Line]=function(e,t,n){e.end=a.point.add(e.end,t,n)},s[a.pathType.BezierSeed]=function(e,t,n){s[a.pathType.Line](e,t,n),e.controls=e.controls.map(function(e){return a.point.add(e,t,n)})},e.moveRelative=l,e.moveTemporary=function(e,t,n){var r=!1;function i(e,n){t[n]&&l(e,t[n],r)}e.map(i),n(),r=!0,e.map(i)};var u={};u[a.pathType.Line]=function(e,t,n){e.end=a.point.rotate(e.end,t,n)},u[a.pathType.Arc]=function(e,t,n){e.startAngle=a.angle.noRevolutions(e.startAngle+t),e.endAngle=a.angle.noRevolutions(e.endAngle+t)},u[a.pathType.BezierSeed]=function(e,t,n){u[a.pathType.Line](e,t,n),e.controls=e.controls.map(function(e){return a.point.rotate(e,t,n)})},e.rotate=function(e,t,n){if(void 0===n&&(n=[0,0]),!e||!t)return e;e.origin=a.point.rotate(e.origin,t,n);var r=u[e.type];return r&&r(e,t,n),e};var c={};c[a.pathType.Line]=function(e,t){e.end=a.point.scale(e.end,t)},c[a.pathType.BezierSeed]=function(e,t){c[a.pathType.Line](e,t),e.controls=e.controls.map(function(e){return a.point.scale(e,t)})},c[a.pathType.Circle]=function(e,t){e.radius*=t},c[a.pathType.Arc]=c[a.pathType.Circle],e.scale=function(e,t){if(!e||1===t||!t)return e;e.origin=a.point.scale(e.origin,t);var n=c[e.type];return n&&n(e,t),e};var p={};p[a.pathType.Arc]=function(e,t,n){return new a.models.EllipticArc(e,t,n
1)},p[a.pathType.Circle]=function(e,t,n){var r=new a.models.Ellipse(e.radius*t,e.radius*n);return r.origin=a.point.distort(e.origin,t,n),r},p[a.pathType.Line]=function(e,t,n){return new a.paths.Line([e.origin,e.end].map(function(e){return a.point.distort(e,t,n)}))},p[a.pathType.BezierSeed]=function(e,t,n){var r=a.point.distort;return{type:a.pathType.BezierSeed,origin:r(e.origin,t,n),controls:e.controls.map(function(e){return r(e,t,n)}),end:r(e.end,t,n)}},e.distort=function(e,t,n){if(!e||!t||!n)return null;var r=p[e.type];if(r){var i=r(e,t,n);return void 0!==e.layer&&(i.layer=e.layer),i}return null},e.converge=function(e,t,n,r){var i=a.point.fromSlopeIntersection(e,t);if(i){var o=[e,t],s=[n,r];2==arguments.length&&o.forEach(function(e,t){s[t]=a.point.closest(i,[e.origin,e.end])===e.origin}),o.forEach(function(e,t){var n;(n=s[t]?e.origin:e.end)[0]=i[0],n[1]=i[1]})}return i};var h={};function d(e,t){if(1==t)return[a.point.middle(e)];var n=[],r=t;e.type!=a.pathType.Circle&&r--;for(var i=0;i<t;i++)n.push(a.point.middle(e,i/r));return n}h[a.pathType.Arc]=function(e,t,n,r){var i=a.angle.ofArcSpan(e),o=(t+n)*i/t-i;r?e.startAngle-=o:e.endAngle+=o},h[a.pathType.Circle]=function(e,t,n,r){e.radius*=(t+n)/t},h[a.pathType.Line]=function(e,t,n,r){var i=a.point.scale(a.point.subtract(e.end,e.origin),n/t);r?e.origin=a.point.subtract(e.origin,i):e.end=a.point.add(e.end,i)},e.alterLength=function(e,t,n){if(void 0===n&&(n=!1),!e||!t)return null;var r=h[e.type];if(r){var i=a.measure.pathLength(e);return!i||-t>=i?null:(r(e,i,t,n),e)}return null},e.toPoints=d;var f={};f[a.pathType.Line]=function(e){return 2},f[a.pathType.Circle]=function(e,t){var n=a.measure.pathLength(e);return n?(t=t||n,Math.max(8,Math.ceil(n/(t||n)))):0},f[a.pathType.Arc]=function(e,t){var n=a.measure.pathLength(e);return n?Math.max(Math.ceil(a.angle.ofArcSpan(e)/45)+1,Math.ceil(n/(t||n))):0},e.toKeyPoints=function e(t,n){if(t.type==a.pathType.BezierSeed){var r,i=new a.models.BezierCurve(t);return a.model.findChains(i,function(t,n,i){if(1==t.length){var o=t[0];switch(o.links[0].walkedPath.pathId){case"arc_0":case"line_0":break;default:a.chain.reverse(o)}r=a.chain.toKeyPoints(o)}else 1===n.length&&(r=e(n[0].pathContext))}),r}var o=f[t.type];if(o){var s=o(t,n);if(s)return d(t,s)}return[]},e.center=function(e){var t=a.measure.pathExtents(e),n=a.point.average(t.high,t.low),r=a.point.subtract(e.origin||[0,0],n);return o(e,r),e},e.zero=function(e){var t=a.measure.pathExtents(e),n=a.point.subtract(e.origin||[0,0],t.low);return o(e,n),e}}((a=eq||(eq={})).path||(a.path={})),s=(o=eq||(eq={})).path||(o.path={}),(l={})[o.pathType.Arc]=function(e,t){var n=o.angle.ofPointInDegrees(e.origin,t);if(o.measure.isAngleEqual(n,e.startAngle)||o.measure.isAngleEqual(n,e.endAngle))return null;var r=function(){for(var t=o.angle.noRevolutions(e.startAngle),r=t+o.angle.ofArcEnd(e)-e.startAngle,i=[0,1,-1],a=0;a<i.length;a++){var s=360*i[a];if(o.measure.isBetween(n+s,t,r,!0))return e.startAngle+n+s-t}return null}();if(null==r)return null;var i=e.endAngle;e.endAngle=r;var a=o.cloneObject(e);return a.startAngle=r,a.endAngle=i,a},l[o.pathType.Circle]=function(e,t){e.type=o.pathType.Arc;var n=o.angle.ofPointInDegrees(e.origin,t);return e.startAngle=n,e.endAngle=n+360,null},l[o.pathType.Line]=function(e,t){if(!o.measure.isBetweenPoints(t,e,!0))return null;var n=e.end;e.end=t;var r=o.cloneObject(e);return r.origin=t,r.end=n,r},s.breakAtPoint=function(e,t){if(e&&t){var n=l[e.type];if(n){var r=n(e,t);return r&&"layer"in e&&(r.layer=e.layer),r}}return null},(c=(u=eq||(eq={})).paths||(u.paths={})).Arc=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];function n(t){var n=u.angle.ofPointInDegrees(t,e[+!!c]),r=u.angle.ofPointInDegrees(t,e[+!c]);return r<n&&(r+=360),{origin:t,startAngle:n,endAngle:r,size:r-n}}switch(e.length){case 5:var r,i,a,o=e[0],s=e[1];this.radius=e[2];var l=e[3],c=e[4],h=u.measure.pointDistance(o,s)/2;if(0>=u.round(this.radius-h))this.radius=h,a=n(u.point.average(o,s));else{for(var d=null!=(i=null==(r=u.path.intersection(new p(o,this.radius),new p(s,this.radius)))?void 0:r.intersectionPoints)?i:[o,s],f=[],v=d.length;v--;)a=n(d[v]),0==f.length||a.size>f[0].size?f.push(a):f.unshift(a);a=f[+!!l]}this.origin=a.origin,this.startAngle=a.startAngle,this.endAngle=a.endAngle;break;case 4:this.origin=e[0],this.radius=e[1],this.startAngle=e[2],this.endAngle=e[3];break;case 3:if(u.isPoint(e[2])){p.apply(this,e);for(var g=[],m=0;m<3;m++)g.push(u.angle.ofPointInDegrees(this.origin,e[m]));this.startAngle=g[0],this.endAngle=g[2],u.measure.isBetweenArcAngles(g[1],this,!1)||(this.startAngle=g[2],this.endAngle=g[0]);break}case 2:var c=e[2];p.call(this,e[0],e[1]),this.startAngle=u.angle.ofPointInDegrees(this.origin,e[+!!c]),this.endAngle=u.angle.ofPointInDegrees(this.origin,e[+!c])}this.type=u.pathType.Arc},c.Circle=p=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];switch(this.type=u.pathType.Circle,e.length){case 1:this.origin=[0,0],this.radius=e[0];break;case 2:u.isNumber(e[1])?(this.origin=e[0],this.radius=e[1]):(this.origin=u.point.average(e[0],e[1]),this.radius=u.measure.pointDistance(this.origin,e[0]));break;default:for(var n=[new h(e[0],e[1]),new h(e[1],e[2])],r=[],i=2;i--;){var a=u.point.middle(n[i]);r.push(u.path.rotate(n[i],90,a))}var o=u.point.fromSlopeIntersection(r[0],r[1]);if(o)this.origin=o,this.radius=u.measure.pointDistance(this.origin,e[0]);else throw"invalid parameters - attempted to construct a circle from 3 points on a line: "+JSON.stringify(e)}},c.Line=h=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];switch(this.type=u.pathType.Line,e.length){case 1:var n=e[0];this.origin=n[0],this.end=n[1];break;case 2:this.origin=e[0],this.end=e[1]}},c.Chord=function(e){var t=u.point.fromArc(e);this.type=u.pathType.Line,this.origin=t[0],this.end=t[1]},c.Parallel=function(e,t,n){this.type=u.pathType.Line,this.origin=u.point.clone(e.origin),this.end=u.point.clone(e.end);var r=u.angle.ofLineInDegrees(this);function i(i){var a=u.point.add(e.origin,u.point.fromPolar(u.angle.toRadians(r+i),t));return{origin:a,nearness:u.measure.pointDistance(a,n)}}var a=[i(-90),i(90)],o=a[0].nearness<a[1].nearness?a[0].origin:a[1].origin;u.path.move(this,o)},function(e){function t(e,t,n,r){void 0===r&&(r=!1);var i=r?n:a(e,n);return e.paths=e.paths||{},e.paths[i]=t,e}function n(e,t,n,r){void 0===r&&(r=!1);var a=r?n:i(e,n);return e.models=e.models||{},e.models[a]=t,e}function r(e,t){if(!e)return t;for(var n=0,r=t;r in e;)r=[t,++n].join("_");return r}function i(e,t){return r(e.models,t)}function a(e,t){return r(e.paths,t)}function o(e,t,n){if(void 0===n&&(n=!1),n&&e.origin&&(e.origin=d.point.scale(e.origin,t)),e.type===d.models.BezierCurve.typeName&&d.path.scale(e.seed,t),e.paths)for(var r in e.paths)d.path.scale(e.paths[r],t);if(e.models)for(var r in e.models)o(e.models[r],t,!0);return e.caption&&d.path.scale(e.caption.anchor,t),e}function s(e,r,i,a,o,s,l){var u=d.path.distort(r,o,s);(a=a||r.layer)&&(u.layer=a),d.isPath(u)?u.type===d.pathType.BezierSeed?n(e,new d.models.BezierCurve(u,l),i):t(e,u,i):n(e,u,i)}function l(e,t){if(e)return function e(n,r,i,a,o){var s=d.point.add(n.origin,i);if(r=void 0!=r?r:"",n.paths)for(var l in n.paths){var u=n.paths[l];if(u){var c={modelContext:n,layer:void 0!=u.layer?u.layer:r,offset:s,pathContext:u,pathId:l,route:a.concat(["paths",l]),routeKey:o+(o?".":"")+"paths"+JSON.stringify([l])};t.onPath&&t.onPath(c)}}if(n.models)for(var p in n.models){var h=n.models[p];if(h){var f={parentModel:n,layer:void 0!=h.layer?h.layer:r,offset:s,route:a.concat(["models",p]),routeKey:o+(o?".":"")+"models"+JSON.stringify([p]),childId:p,childModel:h};(!t.beforeChildWalk||t.beforeChildWalk(f))&&(e(f.childModel,f.layer,s,f.route,f.routeKey),t.afterChildWalk&&t.afterChildWalk(f))}}}(e,e.layer,[0,0],[],""),e}e.addCaption=function(e,t,n,r){return n||(n=d.point.zero()),r||(r=d.point.clone(n)),e.caption={text:t,anchor:new d.paths.Line(n,r)},e},e.addPath=t,e.addModel=n,e.addTo=function(e,t,r,i){return void 0===i&&(i=!1),n(t,e,r,i),e},e.clone=function(e){return d.cloneObject(e)},e.countChildModels=function(e){var t=0;if(e.models)for(var n in e.models)t++;return t},e.getAllCaptionsOffset=function(t){var n=[];function r(e,t,r){e.caption&&n.push({text:e.caption.text,anchor:d.path.
1clone(e.caption.anchor,d.point.add(e.origin,t)),layer:e.caption.anchor.layer||r})}return r(t,t.origin,t.layer),e.walk(t,{afterChildWalk:function(e){return r(e.childModel,e.offset,e.layer)}}),n},e.getSimilarModelId=i,e.getSimilarPathId=a,e.layer=function(e,t){return e.layer=t,e},e.originate=function(e,t){return!function e(t,n){if(t){var r=d.point.add(t.origin,n);if(t.type===d.models.BezierCurve.typeName&&d.path.moveRelative(t.seed,r),t.paths)for(var i in t.paths)d.path.moveRelative(t.paths[i],r);if(t.models)for(var i in t.models)e(t.models[i],r);t.caption&&d.path.moveRelative(t.caption.anchor,r),t.origin=d.point.zero()}}(e,t?d.point.subtract([0,0],t):[0,0]),t&&(e.origin=t),e},e.center=function(e,t,n){void 0===t&&(t=!0),void 0===n&&(n=!0);var r=d.measure.modelExtents(e),i=e.origin||[0,0];return t&&(i[0]-=r.center[0]),n&&(i[1]-=r.center[1]),e.origin=i,e},e.mirror=function e(t,n,r){var i={};if(!t)return null;if(t.origin&&(i.origin=d.point.mirror(t.origin,n,r)),t.type&&(i.type=t.type),"layer"in t&&(i.layer=t.layer),t.units&&(i.units=t.units),t.type===d.models.BezierCurve.typeName&&(i.type=d.models.BezierCurve.typeName,i.seed=d.path.mirror(t.seed,n,r)),t.paths)for(var a in i.paths={},t.paths){var o=t.paths[a];if(o){var s=d.path.mirror(o,n,r);s&&(i.paths[a]=s)}}if(t.models)for(var a in i.models={},t.models){var l=t.models[a];if(l){var u=e(l,n,r);u&&(i.models[a]=u)}}return t.caption&&(i.caption=d.cloneObject(t.caption),i.caption.anchor=d.path.mirror(t.caption.anchor,
1n,r)),i},e.move=function(e,t){return e.origin=d.point.clone(t),e},e.moveRelative=function(e,t){return e&&(e.origin=d.point.add(e.origin||d.point.zero(),t)),e},e.prefixPathIds=function(e,t){var n=[];l(e,{onPath:function(e){n.push(e)}});for(var r=0;r<n.length;r++){var i=n[r];delete i.modelContext.paths[i.pathId],i.modelContext.paths[t+i.pathId]=i.pathContext}return e},e.rotate=function e(t,n,r){if(void 0===r&&(r=[0,0]),!t||!n)return t;var i=d.point.subtract(r,t.origin);if(t.type===d.models.BezierCurve.typeName&&d.path.rotate(t.seed,n,i),t.paths)for(var a in t.paths)d.path.rotate(t.paths[a],n,i);if(t.models)for(var a in t.models)e(t.models[a],n,i);return t.caption&&d.path.rotate(t.caption.anchor,n,i),t},e.scale=o,e.distort=function e(t,r,i,a,o){void 0===a&&(a=!1);var l={};if(t.layer&&(l.layer=t.layer),a&&t.origin&&(l.origin=d.point.distort(t.origin,r,i)),t.type===d.models.BezierCurve.typeName){var u=d.models.BezierCurve.getBezierSeeds(t,{byLayers:!0,pointMatchingDistance:o}),c=function(e){u[e].forEach(function(t,n){s(l,t,n.toString(),e,r,i,o)})};for(var p in u)c(p)}else if(t.paths)for(var h in t.paths)s(l,t.paths[h],h,null,r,i,o);if(t.models)for(var f in t.models)n(l,e(t.models[f],r,i,!0,o),f);return t.caption&&(l.caption=d.cloneObject(t.caption),l.caption.anchor=d.path.distort(t.caption.anchor,r,i)),l},e.convertUnits=function(e,t){if(e.units&&d.units.isValidUnit(e.units)&&d.units.isValidUnit(t)){var n=d.units.conversionScale(e.units,t);1!=n&&(o(e,n),e.units=t)}return e},e.walkPaths=function e(t,n){if(t.paths)for(var r in t.paths)t.paths[r]&&n(t,r,t.paths[r]);if(t.models)for(var i in t.models)t.models[i]&&e(t.models[i],n)},e.walk=l,e.zero=function(e,t,n){void 0===t&&(t=!0),void 0===n&&(n=!0);var r=d.measure.modelExtents(e),i=e.origin||[0,0];return t&&(i[0]-=r.low[0]),n&&(i[1]-=r.low[1]),e.origin=i,e}}((d=eq||(eq={})).model||(d.model={})),function(e){function t(t,n,r,i,a,o){var s=[],l=[];return e.walk(t,{onPath:function(t){var u={absolutePath:f.path.clone(t.pathContext,t.offset),pathId:t.pathId,overlapped:!1,uniqueForeignIntersectionPoints:[]};if(t.broken=!1,t.segments=[u],e.walk(n,{onPath:function(e){t.pathContext!==e.pathContext&&f.measure.isMeasurementOverlapping(i.pathMap[t.routeKey],a.pathMap[e.routeKey])&&function(e,t,n){var r=n.pathContext,i=e.segments;if(f.measure.isPathEqual(i[0].absolutePath,r,1e-4,null,n.offset)){i[0].overlapped=!0,i[0].duplicate=!0,t.push(i[0]);return}for(var a={},o={path1Offset:e.offset,path2Offset:n.offset},s=f.path.intersection(e.pathContext,r,o),l=s?s.intersectionPoints:null,u=f.point.fromPathEnds(r,n.offset)||[],c=0;c<i.length;c++){var p=function(e,t,n){var r=[];return e.forEach(function(e){f.measure.isPointOnPath(e,t,1e-5,null,n)&&r.push(e)}),r}(l?u.concat(l):u,i[c].absolutePath,a);if(o.out_AreOverlapped&&(i[c].overlapped=!0,t.push(i[c])),p.length>0){for(var h=null,d=0;!h&&d<p.length;)h=function(e,t){var n=f.cloneObject(e);if(!n)return null;var r=f.path.breakAtPoint(n,t);if(r){for(var i=[n,r],a=2;a--;)if(0==f.round(f.measure.pathLength(i[a]),1e-4))return null;return i}return e.type==f.pathType.Circle?[n]:null}(i[c].absolutePath,p[d]),d++;if(h){if(e.broken=!0,i[c].absolutePath=h[0],h[1]){var v={absolutePath:h[1],pathId:i[0].pathId,overlapped:i[c].overlapped,uniqueForeignIntersectionPoints:[]};i[c].overlapped&&t.push(v),i.push(v)}c--}}}}(t,l,e)},beforeChildWalk:function(e){var n=a.modelMap[e.routeKey];return n&&f.measure.isMeasurementOverlapping(i.pathMap[t.routeKey],n)}}),r)for(var c=0;c<t.segments.length;c++){var p=f.point.middle(t.segments[c].absolutePath),h={measureAtlas:a,farPoint:o};t.segments[c].isInside=f.measure.isPointInsideModel(p,n,h),t.segments[c].uniqueForeignIntersectionPoints=h.out_intersectionPoints}s.push(t)}}),{crossedPaths:s,overlappedSegments:l}}function n(t,n,r,i,a,o){function s(n,r,i){var o=e.getSimilarPathId(n,r),s=o==r?t.routeKey:f.createRouteKey(t.route.slice(0,-1).concat([o]));if(i.addedPath=f.cloneObject(t.pathContext),i.addedPath.type=i.absolutePath.type,f.path.copyProps(i.absolutePath,i.addedPath),f.path.moveRelative(i.addedPath,t.offset,!0),n.paths[o]=i.addedPath,t.broken){var l=f.measure.pathExtents(i.absolutePath);a.pathMap[s]=l,a.modelsMeasured=!1}else a.pathMap[s]=p}var l,u,c,p=a.pathMap[t.routeKey];delete t.modelContext.paths[t.pathId],delete a.pathMap[t.routeKey];for(var h=0;h<t.segments.length;h++)t.segments[h].duplicate?i?s(t.modelContext,t.pathId,t.segments[h]):o(t.segments[h].absolutePath,t.routeKey,"segment is duplicate"):(l=t.modelContext,u=t.pathId,(c=t.segments[h]).isInside&&n||!c.isInside&&r?s(l,u,c):(a.modelsMeasured=!1,o(c.absolutePath,t.routeKey,"segment is "+(c.isInside?"inside":"outside")+" intersectionPoints="+JSON.stringify(c.uniqueForeignIntersectionPoints))))}function r(r,i,a,o,s,l,u){void 0===a&&(a=!1),void 0===o&&(o=!0),void 0===s&&(s=!1),void 0===l&&(l=!0);var c,p={trimDeadEnds:!0,pointMatchingDistance:.005,out_deleted:[{paths:{}},{paths:{}}]};if(f.extendObject(p,u),p.measureA=p.measureA||new f.measure.Atlas(r),p.measureB=p.measureB||new f.measure.Atlas(i),p.measureA.measureModels(),p.measureB.measureModels(),!p.farPoint){var h=f.measure.increase(f.measure.increase({high:[null,null],low:[null,null]},p.measureA.modelMap[""]),p.measureB.modelMap[""]);p.farPoint=f.point.add(h.high,[1,1])}var d=t(r,i,!0,p.measureA,p.measureB,p.farPoint),v=t(i,r,!0,p.measureB,p.measureA,p.farPoint);function g(t,n,r,i){e.addPath(p.out_deleted[t],n,"deleted"),n.reason=i,n.routeKey=r}!function(e,t,n){for(var r=0;r<e.length;r++)!function(e){for(var r,i=0;i<t.length;i++)r=t[i],f.measure.isPathEqual(r.absolutePath,e.absolutePath,n)&&(r.duplicate=e.duplicate=!0)}(e[r])}(d.overlappedSegments,v.overlappedSegments,p.pointMatchingDistance);for(var m=0;m<d.crossedPaths.length;m++)n(d.crossedPaths[m],a,o,!0,p.measureA,function(e,t,n){return g(0,e,t,n)});for(var m=0;m<v.crossedPaths.length;m++)n(v.crossedPaths[m],s,l,!1,p.measureB,function(e,t,n){return g(1,e,t,n)});var y={models:{a:r,b:i}};return p.trimDeadEnds&&(a||s||(c=function(e){for(var t=0;t<d.overlappedSegments.length;t++)if(d.overlappedSegments[t].duplicate&&e.pathContext===d.overlappedSegments[t].addedPath)return!1;return!0}),e.removeDeadEnds(y,null,c,function(e,t){g(+("a"!==e.route[1]),e.pathContext,e.routeKey,t)})),f.extendObject(u,p),y}e.isPathInsideModel=function(e,t,n,r,i){var a=f.point.add(f.point.middle(e),n);return f.measure.isPointInsideModel(a,t,{farPoint:r,measureAtlas:i})},e.breakPathsAtIntersections=function(e,n){var r,i=new f.measure.Atlas(e);return i.measureModels(),n?(r=new f.measure.Atlas(n)).measureModels():(n=e,r=i),t(e,n||e,!1,i,r),e},e.combine=r,e.combineIntersection=function(e,t){return r(e,t,!0,!1,!0,!1)},e.combineSubtraction=function(e,t){return r(e,t,!1,!0,!0,!1)},e.combineUnion=function(e,t){return r(e,t,!1,!0,!1,!0)}}((f=eq||(eq={})).model||(f.model={})),(v=eq||(eq={})).Collector=function(){function e(e){this.comparer=e,this.collections=[]}return e.prototype.addItemToCollection=function(e,t){var n=this.findCollection(e);n?n.push(t):this.collections.push({key:e,items:[t]})},e.prototype.findCollection=function(e,t){for(var n=0;n<this.collections.length;n++){var r=this.collections[n];if(this.comparer(e,r.key))return t&&t(n),r.items}return null},e.prototype.removeCollection=function(e){var t=this;return!!this.findCollection(e,function(e){t.collections.splice(e,1)})},e.prototype.removeItemFromCollection=function(e,t){var n=this.findCollection(e);if(n){for(var r=0;r<n.length;r++)if(n[r]===t)return n.splice(r,1),!0;return!1}},e.prototype.getCollectionsOfMultiple=function(e){for(var t=0;t<this.collections.length;t++){var n=this.collections[t];n.items.length>1&&e(n.key,n.items)}},e}(),m=(g=n(32370)).default||g,y=function(){function e(){this.reset()}return e.prototype.reset=function(){this.insertedCount=0,this.graph={},this.index={},this.merged={},this.values=[]},e.prototype.insertValue=function(e){return this.values.push(e),this.values.length-1},e.prototype.insertValueIdAtPoint=function(e,t){var n,r,i=t[0],a=t[1];this.graph[i]||(this.graph[i]={});var o=this.graph[i],s=a in o;return s?((r=o[a])in this.merged&&(r=this.merged[r]),(n=this.index[r]).valueIds.push(e)):(o[a]=r=this.insertedCount++,n={pointId:r,point:t,valueIds:[e]},this.index[r]=n),{existed:s,pointId:r}},e.prototype.mergePoints=function(e){var t=this,n=[],r=[];for(var i in this.index){var a=this.index[i],o=a.point;a.kdId=n.length,n.push(o),r.push(a)}this.kdbush=m(n);var s=this;for(var i in this.index)!function(n){if(!(n in s.merged)){var i=s.index[n];s.kdbush.within(i.point[0],i.point[1],e).forEach(function(e){e!==i.kdId&&t.mergeIndexElements(i,r[e])})}}(i)},e.prototype.mergeNearestSinglePoints=function(e){var t=this,n=[];for(var r in this.index){var i=this.index[r];1===i.valueIds.length&&n.push(i)}this.kdbush=m(n.map(function(e){return e.point}
1)),n.forEach(function(r){if(!(r.pointId in t.merged)){var i=t.kdbush.within(r.point[0],r.point[1],e),a=[];i.forEach(function(e){var t=n[e];t.pointId!==r.pointId&&a.push({el:t,distance:v.measure.pointDistance(t.point,r.point)})}),a.sort(function(e,t){return e.distance-t.distance});for(var o=0;o<a.length;o++){var s=a[o].el;if(!(s.pointId in t.merged))return void(s.merged&&s.merged.length>0?t.mergeIndexElements(s,r):t.mergeIndexElements(r,s))}}})},e.prototype.mergeIndexElements=function(e,t){return e.merged=e.merged||[],e.merged.push(t.pointId),this.merged[t.pointId]=e.pointId,e.valueIds.push.apply(e.valueIds,t.valueIds),delete this.index[t.pointId],e.pointId},e.prototype.forEachPoint=function(e){for(var t=this,n=0;n<this.insertedCount;n++){var r=this.index[n];r&&r.valueIds.length>0&&e(r.point,r.valueIds.map(function(e){return t.values[e]}),n,r)}},e.prototype.getIdOfPoint=function(e){var t=this.graph[e[0]];if(t){var n=t[e[1]];if(n>=0)if(n in this.merged)return this.merged[n];else return n}},e.prototype.getElementAtPoint=function(e){var t=this.getIdOfPoint(e);if(t>=0)return this.index[t]},e}(),v.PointGraph=y,function(e){var t=e.model||(e.model={});function n(e,t,n){var r=0;do{var i=e[r];do for(var a=!1,o=r+1;o<e.length;o++){var s=e[o];if(a=t(i.pathContext,s.pathContext,!1)){n(i.pathContext,s.pathContext),delete s.modelContext.paths[s.pathId],e.splice(o,1);break}}while(a);r++}while(r<e.length)}t.simplify=function(r,i){function a(t,n){return Math.abs(t.radius-n.radius)<=c.scalarMatchingDistance&&e.measure.pointDistance(t.origin,n.origin)<=c.pointMatchingDistance}var o=new e.Collector(a),s=new e.Collector(a),l=new e.Collector(e.measure.isSlopeEqual),u={};u[e.pathType.Arc]=function(e){o.addItemToCollection(e.pathContext,e)},u[e.pathType.Circle]=function(e){s.addItemToCollection(e.pathContext,e)},u[e.pathType.Line]=function(t){var n=e.measure.lineSlope(t.pathContext);l.addItemToCollection(n,t)};var c={scalarMatchingDistance:.001,pointMatchingDistance:.005};return e.extendObject(c,i),t.walk(r,{onPath:function(e){var t=u[e.pathContext.type];t&&t(e)}}),o.getCollectionsOfMultiple(function(t,r){n(r,e.measure.isArcOverlapping,function(t,n){var r=e.measure.isBetweenArcAngles(t.endAngle,n,!1),i=e.measure.isBetweenArcAngles(n.endAngle,t,!1);if(r&&i){t.endAngle=t.startAngle+360;return}var a=r?[t,n]:[n,t];t.startAngle=e.angle.noRevolutions(a[0].startAngle),t.endAngle=a[1].endAngle})}),s.getCollectionsOfMultiple(function(e,t){for(var n=1;n<t.length;n++){var r=t[n];delete r.modelContext.paths[r.pathId]}}),l.getCollectionsOfMultiple(function(t,r){n(r,e.measure.isLineOverlapping,function(n,r){var i=e.measure.modelExtents({paths:{lineA:n,lineB:r}});t.hasSlope?t.slope<0?(n.origin=[i.low[0],i.high[1]],n.end=[i.high[0],i.low[1]]):t.slope>0?(n.origin=i.low,n.end=i.high):(n.origin[0]=i.low[0],n.end[0]=i.high[0]):(n.origin[1]=i.low[1],n.end[1]=i.high[1])})}),r}}(eq||(eq={})),P=(A=eq||(eq={})).path||(A.path={}),(T={})[A.pathType.Arc]=function(e,t,n){return new A.models.OvalArc(e.startAngle,e.endAngle,e.radius,t,!1,n)},T[A.pathType.Circle]=function(e,t,n){return new A.models.Ring(e.radius+t,e.radius-t)},T[A.pathType.Line]=function(e,t,n){return new A.models.Slot(e.origin,e.end,t,n)},P.expand=function(e,t,n){if(!e)return null;var r=null,i=T[e.type];return i&&((r=i(e,t,n)).origin=e.origin),r},P.straighten=function(e,t,n,r){var i=A.angle.ofArcSpan(e),a=1;i>=270?a=4:i>180?a=3:(i>150||t)&&(a=2);for(var o=A.angle.toRadians(i/a),s=A.models.Polygon.circumscribedRadius(e.radius,o),l=A.point.fromArc(e),u=[A.point.subtract(l[0],e.origin)],c=A.angle.toRadians(e.startAngle)+o/2,p=0;p<a;p++)u.push(A.point.fromPolar(c,s)),c+=o;u.push(A.point.subtract(l[1],e.origin));var h=new A.models.ConnectTheDots(r,u);return h.origin=e.origin,"string"==typeof n&&n.length&&A.model.prefixPathIds(h,n),h},function(e){var t=e.model||(e.model={});function n(n,r,i,a){if(void 0===i&&(i=0),void 0===a&&(a={}),r<=0)return null;var o={models:{expansions:{models:{}},caps:{models:{}}}},s=!0,l=a.farPoint;if(t.walk(n,{onPath:function(n){if(!(a.pointMatchingDistance&&e.measure.pathLength(n.pathContext)<a.pointMatchingDistance)){var i=e.path.expand(n.pathContext,r,!0);if(i){t.moveRelative(i,n.offset);var u=t.getSimilarModelId(o.models.expansions,n.pathId);if(t.prefixPathIds(i,n.pathId+"_"),t.originate(i),s||(t.combine(o,i,!1,!0,!1,!0,a),a.measureA.modelsMeasured=!1,l=a.farPoint,delete a.farPoint,delete a.measureB),o.models.expansions.models[u]=i,i.models){var c=i.models.Caps;c&&(delete i.models.Caps,o.models.caps.models[u]=c)}s=!1}}}}),i){var u=o.models.caps,c={models:{}};for(var p in o.models.straightcaps=c,t.simplify(u),u.models)c.models[p]={models:{}},t.walk(u.models[p],{onPath:function(n){var r=n.pathContext,s=e.path.straighten(r,2==i,n.pathId+"_",!0);t.combine(o,s,!1,!0,!1,!0,a),a.measureA.modelsMeasured=!1,l=a.farPoint,delete a.farPoint,delete a.measureB,c.models[p].models[n.pathId]=s,delete n.modelContext.paths[n.pathId]}});delete o.models.caps}return a.farPoint=l,o}function r(e){var n=[];return t.findChains(e,function(e,t,r){n=e.filter(function(e){return e.endless})}),n}t.expandPaths=n,t.outline=function(t,i,a,o,s){void 0===a&&(a=0),void 0===o&&(o=!1),void 0===s&&(s={});var l=n(t,i,a,s);if(!l)return null;var u=function(t){var n=r(t);if(0==n.length)return null;var i={models:{}};
1return n.forEach(function(t,n){i.models[n]=e.chain.toNewModel(t)}),i}(t);if(!u)return l;var c=0,p={models:{}};return r(l).forEach(function(t){var n=t.links[0].walkedPath,r=e.measure.isPointInsideModel(e.point.middle(n.pathContext),u,n.offset);(o&&r||!o&&!r)&&(p.models[c++]=e.chain.toNewModel(t))}),p}}(eq||(eq={})),function(e){var t,n=x.unitType.Millimeter;function r(e,n,r){function i(e){return t[e]||(t[e]={}),t[e]}i(e)[n]=r,i(n)[e]=1/r}e.conversionScale=function(e,i){var a,o,s,l,u,c;return e==i?1:(t||(t={},a=x.unitType.Centimeter,o=10,r(a,n,10),s=x.unitType.Meter,l=1e3,r(s,n,1e3),u=x.unitType.Inch,c=25.4,r(u,n,25.4),r(x.unitType.Foot,n,25.4*12)),t[e][i]||r(e,i,t[e][n]*t[n][i]),t[e]&&t[e][i])},e.isValidUnit=function(e){for(var t in x.unitType)if(x.unitType[t]==e)return!0;return!1}}((x=eq||(eq={})).units||(x.units={})),function(e){function t(e,t,n){void 0===n&&(n=1e-4);var r=w.angle.noRevolutions(e),i=w.angle.noRevolutions(t);return 0==w.angle.noRevolutions(w.round(i-r,n))}e.isAngleEqual=t;var n={};function r(t,n,r){return r?!!t&&!!n&&e.pointDistance(t,n)<=r:0==w.round(t[0]-n[0])&&0==w.round(t[1]-n[1])}function i(e,t,n){return(void 0===n&&(n=0),t.hasSlope)?Math.abs(e[1]-(t.slope*e[0]+t.yIntercept))<=n:Math.abs(e[0]-t.line.origin[0])<=n}function a(t,n,r){return void 0===r&&(r=0),Math.abs(e.pointDistance(t,n.origin)-n.radius)<=r}n[w.pathType.Line]=function(e,t,n){return r(e.origin,t.origin,n)&&r(e.end,t.end,n)||r(e.origin,t.end,n)&&r(e.end,t.origin,n)},n[w.pathType.Circle]=function(e,t,n){return r(e.origin,t.origin,n)&&e.radius==t.radius},n[w.pathType.Arc]=function(e,r,i){return n[w.pathType.Circle](e,r,i)&&t(e.startAngle,r.startAngle)&&t(e.endAngle,r.endAngle)},e.isPathEqual=function(e,t,r,i,a){var o=!1;if(e.type==t.type){var s=n[e.type];if(s){function l(){o=s(e,t,r)}i||a?w.path.moveTemporary([e,t],[i,a],l):l()}}return o},e.isPointEqual=r,e.isPointDistinct=function(e,t,n){for(var i=0;i<t.length;i++)if(r(t[i],e,n))return!1;return!0},e.isPointOnSlope=i,e.isPointOnCircle=a;var o={};function s(e,t){return!e.hasSlope&&!t.hasSlope||!!e.hasSlope&&!!t.hasSlope&&0==w.round(e.slope-t.slope,1e-5)}o[w.pathType.Circle]=function(e,t,n){return a(e,t,n)},o[w.pathType.Arc]=function(t,n,r){if(o[w.pathType.Circle](t,n,r)){var i=w.angle.ofPointInDegrees(n.origin,t);return e.isBetweenArcAngles(i,n,!1)}return!1},o[w.pathType.Line]=function(t,n,r,a){var o=a&&a.cachedLineSlope||e.lineSlope(n);return a&&!a.cachedLineSlope&&(a.cachedLineSlope=o),i(t,o,r)&&e.isBetweenPoints(t,n,!1)},e.isPointOnPath=function(e,t,n,r,i){void 0===n&&(n=0);var a=o[t.type];return!!a&&a(e,r?w.path.clone(t,r):t,n,i)},e.isSlopeEqual=function(e,t){if(!s(e,t))return!1;if(!e.hasSlope&&!t.hasSlope)return 0==w.round(e.line.origin[0]-t.line.origin[0]);var n=[e,t],r=n.map(function(e){return w.angle.toDegrees(Math.atan(e.slope))}),i=n.map(function(e){return w.path.clone(e.line)}),a=i[0].origin;i.forEach(function(e,t){return w.path.rotate(e,-r[t],a)});var o=i.map(function(e){return(e.origin[1]+e.end[1])/2});return 0==w.round(o[0]-o[1],1e-5)},e.isSlopeParallel=s}((w=eq||(eq={})).measure||(w.measure={})),function(e){function t(e,t,n){function r(e,t,n){if(t)for(var r=2;r--;)null!=t[r]&&(null==e[r]?e[r]=t[r]:e[r]=n(e[r],t[r]))}return t&&(r(e.low,t.low,Math.min),r(e.high,t.high,Math.max)),n&&y(e),e}function r(e,t,n){function r(e,t){return a(t.startAngle,e,n)||a(t.endAngle,e,n)}return r(e,t)||r(t,e)||e.startAngle==t.startAngle&&e.endAngle==t.endAngle}function i(e,t,n,r){return r?Math.min(t,n)<e&&e<Math.max(t,n):Math.min(t,n)<=e&&e<=Math.max(t,n)}function a(e,t,n){var r=C.angle.noRevolutions(t.startAngle),a=r+C.angle.ofArcSpan(t);return i(e=C.angle.noRevolutions(e),r,a,n)||i(e,r+360,a+360,n)||i(e,r-360,a-360,n)}function o(e,t,n){for(var r=!1,a=2;a--;){if(0==C.round(t.origin[a]-t.end[a],1e-6)){if(r)return!1;r=!0;continue}var o=C.round(t.origin[a]),s=C.round(t.end[a]);if(!i(C.round(e[a]),o,s,n))return!1}return!0}e.increase=t,e.isArcConcaveTowardsPoint=function(e,t){if(p(e.origin,t)<=e.radius)return!0;var n=new C.paths.Line(C.point.middle(e),t),r={};return!!C.path.intersection(n,new C.paths.Chord(e),r)||!!r.out_AreOverlapped}
1,e.isArcOverlapping=function(e,t,n){return r(e,t,n)},e.isArcSpanOverlapping=r,e.isBetween=i,e.isBetweenArcAngles=a,e.isBetweenPoints=o,e.isBezierSeedLinear=function(t,n){for(var r=c(t),i=0;i<t.controls.length;i++)if(!e.isPointOnSlope(t.controls[i],r)&&(!n||o(t.controls[i],t,!1)))return!1;return!0};var s=n(51828);function l(e,t){var n=new s,r=[];e.forEach(function(e){n.addPoint(e[0],e[1]),r.push(e.join(","))});var i=n.getHull(),a=i.slice(0,3).map(function(e){return[e.x,e.y].join(",")}),o=[];switch(r.forEach(function(e){~a.indexOf(e)&&o.push(e)}),o.indexOf(a[1])){case 0:o.unshift(o.pop());break;case 2:o.push(o.shift())}return t&&(t.hullPoints=i.map(function(e){return[e.x,e.y]}),t.keyPoints=e),a[0]!=o[0]}function u(e,t){for(var n=2;n--;)if(!(0>=C.round(e.low[n]-t.high[n])&&C.round(e.high[n]-t.low[n])>=0))return!1;return!0}function c(e){var t=e.end[0]-e.origin[0];if(0==C.round(t,1e-6))return{line:e,hasSlope:!1};var n=(e.end[1]-e.origin[1])/t,r=e.origin[1]-n*e.origin[0];return{line:e,hasSlope:!0,slope:n,yIntercept:r}}function p(e,t){var n=t[0]-e[0],r=t[1]-e[1];return Math.sqrt(n*n+r*r)}function h(e,t,n){return[n(e[0],t[0]),n(e[1],t[1])]}e.isChainClockwise=function(e,t){return e.endless&&1!==e.links.length?l(C.chain.toKeyPoints(e),t):null},e.isPointArrayClockwise=l,e.isLineOverlapping=function(e,t,n){function r(e,t,r){return o(r.origin,t,n)||o(r.end,t,n)}return r(0,e,t)||r(1,t,e)},e.isMeasurementOverlapping=u,e.lineSlope=c,e.pointDistance=p;var d={};function f(e,t){if(e){var n=d[e.type];if(n){var r=n(e);return t&&(r.high=C.point.add(r.high,t),r.low=C.point.add(r.low,t)),r}}return{low:null,high:null}}d[C.pathType.Line]=function(e){return{low:h(e.origin,e.end,Math.min),high:h(e.origin,e.end,Math.max)}},d[C.pathType.Circle]=function(e){var t=e.radius;return{low:C.point.add(e.origin,[-t,-t]),high:C.point.add(e.origin,[t,t])}},d[C.pathType.Arc]=function(e){var t=e.radius,n=C.point.fromArc(e);function r(t,r,i){for(var o=h(n[0],n[1],i),s=2;s--;)a(t[s],e,!1)&&(o[s]=r+e.origin[s]);return o}return{low:r([180,270],-t,Math.min),high:r([360,90],t,Math.max)}},e.pathExtents=f;var v={};function g(e){if(e){var t=v[e.type];if(t)return t(e)}return 0}function m(e,n){function r(e,r){if(r){var i=e.slice(0,-2),a=C.createRouteKey(i);a in n.modelMap?t(n.modelMap[a],r):n.modelMap[a]={high:C.point.clone(r.high),low:C.point.clone(r.low)}}}n||(n=new A(e)),C.model.walk(e,{onPath:function(e){e.routeKey in n.pathMap||(n.pathMap[e.routeKey]=f(e.pathContext,e.offset)),r(e.route,n.pathMap[e.routeKey])},afterChildWalk:function(e){r(e.route,n.modelMap[e.routeKey])}}),n.modelsMeasured=!0;var i=n.modelMap[""];return i?y(i):null}function y(e){return e.center=C.point.average(e.high,e.low),e.width=e.high[0]-e.low[0],e.height=e.high[1]-e.low[1],e}v[C.pathType.Line]=function(e){return p(e.origin,e.end)},v[C.pathType.Circle]=function(e){return 2*Math.PI*e.radius},v[C.pathType.Arc]=function(e){var t=v[C.pathType.Circle](e);return t*(C.angle.ofArcSpan(e)/360)},v[C.pathType.BezierSeed]=function(e){return C.models.BezierCurve.computeLength(e)},e.pathLength=g,e.modelPathLength=function(e){var t=0;return C.model.walk(e,{onPath:function(e){t+=g(e.pathContext)}}),t},e.modelExtents=m,e.augment=y;var A=function(){function e(e){this.modelContext=e,this.modelsMeasured=!1,this.modelMap={},this.pathMap={}}return e.prototype.measureModels=function(){this.modelsMeasured||m(this.modelContext,this)},e}();e.Atlas=A,e.boundingHexagon=function(t){var n,r=C.cloneObject(t);C.model.originate(r);var i=m(r),a=[],o={paths:{}};function s(e,t,n){return{radius:e,paths:new C.models.Polygon(6,e,30).paths,origin:C.point.add(t,i.center),notes:n}}C.model.center(r);for(var l=[[90,-90],[-60,-30],[-60,30]];l.length;){var u=l.shift(),p=function(e,t,n,r){C.model.rotate(t,n);var i=m(t),a={index:e,rotation:r,center:C.point.rotate(i.center,r),width:i.height,height:i.width,bottom:new C.paths.Line(i.low,[i.high[0],i.low[1]]),middle:new C.paths.Line([i.low[0],i.center[1]],[i.high[0],i.center[1]]),top:new C.paths.Line(i.high,[i.low[0],i.high[1]])};return[a.top,a.middle,a.bottom].forEach(function(e){return C.path.rotate(e,r)}),a}(a.length,r,u[0],u[1]),h=C.solvers.equilateralSide(p.width/2);if(h>=p.height)return s(h,p.center,"solved by bound "+a.length);a.push(p)}if(function(t){for(var n=1;n<3;n++)if(!e.isPointEqual(t[0].center,t[n].center,1e-6)||0!==C.round(t[0].width-t[n].width))return!1;return!0}(a))return s(C.solvers.equilateralSide(a[0].width/2),a[0].center,"solved as circular");var d=a.map(function(e){return e.top}).concat(a.map(function(e){return e.bottom}));d.forEach(function(e,t){var n;o.paths[t]=e,C.path.converge(d[(n=t+2)>=6?n-6:n<0?n+6:n],e,!0)}),a.forEach(function(e,t){o.paths["m"+t]=e.middle});for(var f=a.slice(),v=0;v<6;v++){v>
10&&(d.push(d.shift()),f.push(f.shift()),C.model.rotate(o,-60));var g=function(e,t){var n=e[1].origin,r=n[0],i=e[3].origin[0],a=e[0].origin[0],o=r-a;if(a-i>2*o)return null;var s=(r-i)/3;if(o<s)return null;var l=Math.min(s,o),u=C.solvers.equilateralSide(l),p=[C.point.fromSlopeIntersection(e[1],e[2]),C.point.fromSlopeIntersection(e[4],e[5])].map(function(e){return Math.abs(e[1]-n[1])}),h=p[0]>p[1]?0:1,d=p[h];if(!(d>u))return{origin:[r-2*l,n[1]],radius:u,type:"side"};var f,v,g,m=C.solvers.equilateralAltitude(d),y=r-2*m;if(a>y+m||i<y-m)return null;var A=2*m-t[h+1].width,P=Math.min(i-y+m,A)/2;return{origin:(f=t[2-h].middle,[v=y+P,(g=c(f),g.slope*v+g.yIntercept)]),radius:d,type:"peak "+h}}(d,f);g&&(!n||g.radius<n.radius)&&((n=g).index=v)}var y=C.point.rotate(n.origin,60*n.index);return s(n.radius,y,"solved by "+n.index+" as "+n.type)},e.isPointInsideModel=function(t,n,r){void 0===r&&(r={}),r.farPoint||(r.farPoint=function(e,t,n){if(t)return t;var r=m(e).high;return r?C.point.add(r,[1,1]):[7654321,1234567]}(n,r.farPoint,r.measureAtlas)),r.out_intersectionPoints=[];var i,a=new C.paths.Line(t,r.farPoint),o=f(a);return C.model.walk(n,{onPath:function(t){if(!r.measureAtlas||u(o,r.measureAtlas.pathMap[t.routeKey])){var n,s,l,c={path2Offset:t.offset},p=C.path.intersection(a,t.pathContext,c);p&&(n=r.out_intersectionPoints,s=p.intersectionPoints,l=0,s.forEach(function(t){e.isPointDistinct(t,n,1e-8)&&(n.push(t),l++)}),l%2==1&&(i=!i))}},beforeChildWalk:function(e){if(!r.measureAtlas)return!0;var t=r.measureAtlas.modelMap[e.routeKey];return t&&u(o,t)}}),!!i}}((C=eq||(eq={})).measure||(C.measure={})),(k=(b=eq||(eq={})).exporter||(b.exporter={})).toJson=function(e,t){return void 0===t&&(t={}),JSON.stringify(e,t.accuracy&&function(e,n){return b.isNumber(n)?b.round(n,t.accuracy):b.isPoint(n)?b.point.rounded(n,t.accuracy):n},t.indentation)},k.tryGetModelUnits=function(e){if(b.isModel(e))return e.units},k.colors={black:0,red:1,yellow:2,lime:3,aqua:4,blue:5,fuchsia:6,white:7,gray:9,maroon:14,orange:30,olive:58,green:94,teal:134,navy:174,purple:214,silver:254},((L=eq||(eq={})).importer||(L.importer={})).parseNumericList=function(e){for(var t,n=[],r=/-?(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+\-]?\d+)?/g;null!==(t=r.exec(e));)t.index===r.lastIndex&&r.lastIndex++,""!==t[0]&&n.push(parseFloat(t[0]));return n},(I=(M=eq||(eq={})).exporter||(M.exporter={})).toDXF=function(e,t){void 0===t&&(t={});var n,r,i,a={fontSize:9},o=[],s={entities:[],header:{},tables:{}};if(M.extendObject(a,t),M.isModel(e)){var l=e;l.exporterOptions&&M.extendObject(a,l.exporterOptions.toDXF)}function u(e){return a.layerOptions&&a.layerOptions[e]?a.layerOptions[e]:e in I.colors?{color:I.colors[e]}:void 0}function c(e){return a.layerOptions&&a.layerOptions[e]&&a.layerOptions[e].lineType?a.layerOptions[e].lineType:"CONTINUOUS"}function p(e,t){var n=e&&e.layer||t||"0";return 0>o.indexOf(n)&&o.push(n),n}var h={};function d(e,t,n){return{type:"VERTEX",layer:p(null,t),x:M.round(e[0],a.accuracy),y:M.round(e[1],a.accuracy),bulge:n}}if(h[M.pathType.Line]=function(e,t,n){var r=p(e,n),i={type:"LINE",layer:r,vertices:[{x:M.round(e.origin[0]+t[0],a.accuracy),y:M.round(e.origin[1]+t[1],a.accuracy)},{x:M.round(e.end[0]+t[0],a.accuracy),y:M.round(e.end[1]+t[1],a.accuracy)}]};return i.lineType=c(r),i},h[M.pathType.Circle]=function(e,t,n){var r=p(e,n),i={type:"CIRCLE",layer:r,center:{x:M.round(e.origin[0]+t[0],a.accuracy),y:M.round(e.origin[1]+t[1],a.accuracy)},radius:M.round(e.radius,a.accuracy)};return i.lineType=c(r),i},h[M.pathType.Arc]=function(e,t,n){var r=p(e,n),i={type:"ARC",layer:r,center:{x:M.round(e.origin[0]+t[0],a.accuracy),y:M.round(e.origin[1]+t[1],a.accuracy)},radius:M.round(e.radius,a.accuracy),startAngle:M.round(e.startAngle,a.accuracy),endAngle:M.round(e.endAngle,a.accuracy)};return i.lineType=c(r),i},!a.units){var f=I.tryGetModelUnits(e);f&&(a.units=f)}M.extendObject(t,a);var v=[],g=[];if(a.usePOLYLINE?M.model.findChains(l,function(e,t,n){e.forEach(function(e){e.endless&&1===e.links.length&&e.links[0].walkedPath.pathContext.type===M.pathType.Circle?g.push(e.links[0].walkedPath):v.push({chain:e,layer:n})}
1),g.push.apply(g,t)},{byLayers:!0,pointMatchingDistance:a.pointMatchingDistance}):M.model.walk(l,{onPath:function(e){g.push(e)}}),n=M.model.getAllCaptionsOffset(l),(r=s.entities).push.apply(r,v.map(function(e){var t={type:"POLYLINE",layer:p(null,e.layer),shape:e.chain.endless,vertices:[]};if(t.lineType=c(t.layer),e.chain.links.forEach(function(n,r){if(n.walkedPath.pathContext.type===M.pathType.Arc){var i,o=n.walkedPath.pathContext;i=M.round(Math.tan(M.angle.toRadians(M.angle.ofArcSpan(o))/4),a.accuracy),n.reversed&&(i*=-1)}var s=n.endPoints[+!!n.reversed];t.vertices.push(d(s,e.layer,i))}),!e.chain.endless){var n=e.chain.links[e.chain.links.length-1],r=n.endPoints[+!n.reversed];t.vertices.push(d(r,e.layer))}return t})),g.forEach(function(e){var t=h[e.pathContext.type];if(t){var n=t(e.pathContext,e.offset,e.layer);r.push(n)}}),r.push.apply(r,n.map(function(e){var t=p(null,e.layer),n=u(t),r=M.point.middle(e.anchor);return{type:"TEXT",startPoint:d(r,null),endPoint:d(r,null),layer:t,textHeight:n&&n.fontSize||a.fontSize,text:e.text,halign:4,valign:0,rotation:M.angle.ofPointInDegrees(e.anchor.origin,e.anchor.end)}})),a.units){var m=S[a.units];s.header.$INSUNITS=m}return s.tables.lineType={lineTypes:{CONTINUOUS:{name:"CONTINUOUS",description:"______",patternLength:0,elements:[]},DASHED:{name:"DASHED",description:"_ _ _ ",elements:[5,-2.5],patternLength:7.5},DOTTED:{name:"DOTTED",description:". . . ",elements:[.5,-1],patternLength:1.5}}},i={layers:{}},o.forEach(function(e){var t,n=u(e);n&&(i.layers[e]=((t={name:e,color:n.color}).lineType=c(e),t))}),s.tables.layer=i,function(e){var t=[];function n(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];t.push.apply(t,e)}function r(e){var t=e.lineType;t&&n("6",t)}var i={};function a(e){n("0","SECTION"),e(),n("0","ENDSEC")}function o(e){n("0","TABLE"),e(),n("0","ENDTAB")}function s(){var t=e.tables.lineType;for(var r in n("2","LTYPE"),t.lineTypes)!function(e){var t=e.elements||[];n("0","LTYPE","72","65","70","0","2",e.name,"3",e.description,"73",t.length,"40",e.patternLength),t.forEach(function(e){return n("49",e)})}(t.lineTypes[r])}function l(){var t=e.tables.layer;for(var r in n("2","LAYER"),t.layers)!function(e){var t=e.lineType||"CONTINUOUS";n("0","LAYER","2",e.name,"70","0","62",e.color,"6",t)}(t.layers[r])}return i.LINE=function(e){n("0","LINE","8",e.layer),r(e),n("10",e.vertices[0].x,"20",e.vertices[0].y,"11",e.vertices[1].x,"21",e.vertices[1].y)},i.CIRCLE=function(e){n("0","CIRCLE","8",e.layer),r(e),n("10",e.center.x,"20",e.center.y,"40",e.radius)},i.ARC=function(e){n("0","ARC","8",e.layer),r(e),n("10",e.center.x,"20",e.center.y,"40",e.radius,"50",e.startAngle,"51",e.endAngle)},i.VERTEX=function(e){n("0","VERTEX","8",e.layer,"10",e.x,"20",e.y),void 0!==e.bulge&&n("42",e.bulge)},i.POLYLINE=function(e){n("0","POLYLINE","8",e.layer),r(e),n("66",1,"70",+!!e.shape),e.vertices.forEach(function(e){return i.VERTEX(e)}),n("0","SEQEND")},i.TEXT=function(e){n("0","TEXT","10",e.startPoint.x,"20",e.startPoint.y,"11",e.endPoint.x,"21",e.endPoint.y,"40",e.textHeight,"1",e.text,"50",e.rotation,"8",e.layer,"72",e.halign,"73",e.valign)},a(function(){for(var t in n("2","HEADER"),e.header){var r=e.header[t];n("9",t,"70",r)}}),a(function(){n("2","TABLES"),o(s),o(l)}),a(function(){var t;return t=e.entities,void(n("2","ENTITIES"),t.forEach(function(e){var t=i[e.type];t&&t(e)}))}),n("0","EOF"),t.join("\n")}(s)},(S={})[""]=0,S[M.unitType.Inch]=1,S[M.unitType.Foot]=2,S[M.unitType.Millimeter]=4,S[M.unitType.Centimeter]=5,S[M.unitType.Meter]=6,O=(E=eq||(eq={})).solvers||(E.solvers={}),D=Math.sqrt(3)/2,O.equilateralAltitude=function(e){return e*D},O.equilateralSide=function(e){return e/D},O.solveTriangleSSS=function(e,t,n){return E.angle.toDegrees(Math.acos((t*t+n*n-e*e)/(2*t*n)))},O.solveTriangleASA=function(e,t,n){return t*Math.sin(E.angle.toRadians(e))/Math.sin(E.angle.toRadians(180-e-n))},O.circleTangentAngles=function(e,t,n){void 0===n&&(n=!1);var r,i=new E.paths.Line(e.origin,t.origin),a=E.measure.pointDistance(e.origin,t.origin);if(e.radius>=a+t.radius||t.radius>=a+e.radius||n&&e.radius+t.radius>=a)return null;if(n||0!=E.round(e.radius-t.radius)){var o=a/2,s=new E.paths.Circle([o,0],o),l=new E.paths.Circle(e.radiu
1s>t.radius?[0,0]:[a,0],n?e.radius+t.radius:Math.abs(e.radius-t.radius)),u=E.path.intersection(l,s);if(!u||!u.path1Angles)return null;r=u.path1Angles}else r=[90,270];var c=E.angle.ofLineInDegrees(i);return r.map(function(e){return E.angle.noRevolutions(e+c)})},function(e){var t={};function n(t,n,r,i){var a=r?[n.path2Offset,n.path1Offset]:[n.path1Offset,n.path2Offset];e.moveTemporary(t,a,i)}function r(e){var t=e.path1Angles;return e.path2Angles?e.path1Angles=e.path2Angles:delete e.path1Angles,t&&(e.path2Angles=t),e}function i(e,t){for(var n=[],r=0;r<e.length;r++)n.push(z.point.fromAngleOnCircle(e[r],t));return n}function a(e,t,n){if(!e)return null;for(var r=[],i=0;i<e.length;i++)z.measure.isBetweenArcAngles(e[i],t,n.excludeTangents)&&r.push(e[i]);return 0==r.length?null:r}function o(t,n,r){var i=z.round(n.radius);if(n.radius<=0)return null;var a=new z.paths.Line(z.point.subtract(t.origin,n.origin),z.point.subtract(t.end,n.origin)),o=z.angle.ofLineInDegrees(t),s=o>=180?o-360:o;function l(e){return z.round(z.angle.noRevolutions(e+s))}e.rotate(a,-s,z.point.zero());var u=z.round(a.origin[1]),c=Math.abs(u);if(c>i)return null;var p=[];if(c==i){if(r.excludeTangents)return null;p.push(l(u>0?90:270))}else{function h(e,t){z.measure.isBetween(z.round(e),z.round(a.origin[0]),z.round(a.end[0]),r.excludeTangents)&&p.push(l(t))}var d=Math.asin(u/i),f=z.angle.toDegrees(d),v=Math.cos(d)*i;h(-v,180-f),h(v,f)}return p.length>0?p:null}function s(t,n,r){if(t.radius<=0||n.radius<=0)return null;if(t.radius==n.radius&&z.measure.isPointEqual(t.origin,n.origin,1e-4))return r.out_AreOverlapped=!0,null;z.point.subtract(z.point.zero(),t.origin);var i=new z.paths.Circle(z.point.zero(),t.radius),a=new z.paths.Circle(z.point.subtract(n.origin,t.origin),n.radius),o=z.angle.ofPointInDegrees(z.point.zero(),a.origin);function s(e){return z.angle.noRevolutions(e+o)}e.rotate(a,-o,z.point.zero());var l=a.origin[0];if(0==z.round(a.radius-l-i.radius))return r.excludeTangents?null:[[s(180)],[s(180)]];if(0==z.round(a.radius+l-i.radius))return r.excludeTangents?null:[[s(0)],[s(0)]];if(0==z.round(l-a.radius-i.radius))return r.excludeTangents?null:[[s(0)],[s(180)]];if(z.round(l-a.radius)>i.radius||z.round(l+a.radius)<i.radius||z.round(l-a.radius)<-i.radius)return null;function u(e){return[s(e),s(z.angle.mirror(e,!1,!0))]}var c=z.solvers.solveTriangleSSS(a.radius,i.radius,l),p=z.solvers.solveTriangleSSS(i.radius,l,a.radius);return[u(c),u(180-p)]}t[z.pathType.Arc]={},t[z.pathType.Circle]={},t[z.pathType.Line]={},t[z.pathType.Arc][z.pathType.Arc]=function(e,t,r,o){var l=null;return n([e,t],r,o,function(){var n=s(e,t,r);if(n){var o=a(n[0],e,r),u=a(n[1],t,r);if(o&&u)if(1===o.length||1===u.length)for(var c=0;c<o.length;c++)for(var p=0;p<u.length;p++){var h=z.point.fromAngleOnCircle(o[c],e),d=z.point.fromAngleOnCircle(u[p],t);if(z.measure.isPointEqual(h,d,1e-4)){l={intersectionPoints:[h],path1Angles:[o[c]],path2Angles:[u[p]]};return}}else l={intersectionPoints:i(o,e),path1Angles:o,path2Angles:u}}else r.out_AreOverlapped&&(r.out_AreOverlapped=z.measure.isArcOverlapping(e,t,r.excludeTangents))}),l},t[z.pathType.Arc][z.pathType.Circle]=function(e,t,r,o){var l=null;return n([e,t],r,o,function(){var n=s(e,t,r);if(n){var o,u=a(n[0],e,r);if(u){if(2==u.length)o=n[1];else{var c=function(e,t){for(var n=2;n--;)if(e[n]===t)return n}(n[0],u[0]);o=[n[1][c]]}l={intersectionPoints:i(u,e),path1Angles:u,path2Angles:o}}}}),l},t[z.pathType.Arc][z.pathType.Line]=function(e,t,r,s){var l=null;return n([e,t],r,s,function(){var n=o(t,e,r);if(n){var s=a(n,e,r);s&&(l={intersectionPoints:i(s,e),path1Angles:s})}}),l},t[z.pathType.Circle][z.pathType.Arc]=function(e,n,i){var a=t[z.pathType.Arc][z.pathType.Circle](n,e,i,!0);return a?r(a):null},t[z.pathType.Circle][z.pathType.Circle]=function(e,t,r,a){var o=null;return n([e,t],r,a,function(){var n=s(e,t,r);n&&(o={intersectionPoints:i(n[0],e),path1Angles:n[0],path2Angles:n[1]})}),o},t[z.pathType.Circle][z.pathType.Line]=function(e,t,r,a){var s=null;return n([e,t],r,a,function(){var n=o(t,e,r);n&&(s={intersectionPoints:i(n,e),path1Angles:n})}),s},t[z.pathType.Line][z.pathType.Arc]=function(e,n,i){var a=t[z.pathType.Arc][z.pathType.Line](n,e,i,!0);return a?r(a):null},t[z.pathType.Line][z.pathType.Circle]=function(e,n,i){var a=t[z.pathType.Circle][z.pathType.Line](n,e,i,!0);return a?r(a):null},t[z.pathType.Line][z.pathType.Line]=function(e,t,r,i){var a=null;return n([e,t],r,i,function(){var n=z.point.fromSlopeIntersection(e,t,r);n&&z.measure.isBetweenPoints(n,e,r.excludeTangents)&&z.measure.isBetweenPoints(n,t,r.excludeTangents)&&(a={intersectionPoints:[n]})}),a},e.intersection=function(e,n,r){if(void 0===r&&(r={}),e&&n){var i=t[e.type][n.type];if(i)return i(e,n,r)}return null}}((z=eq||(eq={})).path||(z.path={})),function(e){var t={};function n(e){var n=R.point.fromPathEnds(e);if(n){function r(e){return{point:n[e],propertyName:i[e]}}var i=null,a=t[e.type];if(a)return i=a(e),[r(0),r(1)]}return null}function r(e,t,r){var i=n(e),a=n(t),o=null;function s(e,t,n){return{path:e,isStart:0==n,propertyName:t[n].propertyName,point:t[n].point,oppositePoint:t[1-n].point}}function l(n,r){return!!R.measure.isPointEqual(i[n].point,a[r].point,1e-4)&&(o=[s(e,i,n),s(t,a,r)],!0)}return l(0,0)||l(0,1)||l(1,0)||l(1,1),o}function i(t,n,r,i){for(var a=new R.paths.Circle(n,t),o=0;o<2;o++){var s=e.intersection(a,r[o].path);if(!s)return!1;if(r[o].shardPoint=s.intersectionPoints[0],R.measure.isPointEqual(r[o].point,s.intersectionPoints[0],1e-4))if(!(s.intersectionPoints.length>1))return!1;else r[o].shardPoint=s.intersectionPoints[1]}return!0}t[R.pathType.Arc]=function(e){return["startAngle","endAngle"]},t[R.pathType.Line]=function(e){return["origin","end"]};var a={};a[R.pathType.Arc]=function(t,n,r,i,a){var o,s,l=t.radius,u=(o=e.clone(t),s=e.breakAtPoint(o,i),[o,s])[+!a];return u?(R.measure.isArcConcaveTowardsPoint(u,r)?l-=n:l+=n,0>
1=R.round(l))?null:new R.paths.Arc(t.origin,l,t.startAngle,t.endAngle):null},a[R.pathType.Line]=function(e,t,n,r,i){return new R.paths.Parallel(e,t,n)};var o={};function s(e,t){var n=!1;if(t){var r=e.path[e.propertyName];t.clipPath(),R.measure.pathLength(e.path)>0&&(n=!0),e.path[e.propertyName]=r}return n}o[R.pathType.Arc]=function(e,t,n,r){var i=new R.paths.Line(e.origin,r),a=R.angle.ofLineInDegrees(i),o=a;return R.measure.isArcConcaveTowardsPoint(e,r)||(o+=180),{filletAngle:R.angle.noRevolutions(o),clipPath:function(){e[t]=a}}},o[R.pathType.Line]=function(t,n,r,i){var a=new R.paths.Line([0,0],[0,1]),o=R.angle.ofLineInDegrees(t);e.rotate(a,o,[0,0]),e.moveRelative(a,i);var s=R.point.fromSlopeIntersection(t,a);return s?{filletAngle:R.angle.ofPointInDegrees(i,s),clipPath:function(){t[n]=s}}:null},e.dogbone=function(e,t,n,a){if(R.isPathLine(e)&&R.isPathLine(t)&&n&&n>0){var o={pointMatchingDistance:.005};R.extendObject(o,a);var l=r(e,t,a);if(l){var u=function(e){for(var t=0,n=[],r=0;r<e.length;r++){var i=R.measure.pathLength(e[r]);n.push(i),t+=i}return n[0]/t}([e,t]),c=new R.paths.Line(l[0].oppositePoint,l[1].oppositePoint),p=R.point.middle(c,u),h=R.angle.ofPointInDegrees(l[0].point,p),d=R.point.add(l[0].point,R.point.fromPolar(R.angle.toRadians(h),n));if(!i(n,d,l,o))return null;for(var f=[],v=0;v<2;v++){var g=function(e,t){var n={filletAngle:R.angle.ofPointInDegrees(t,e.shardPoint),clipPath:function(){e.path[e.propertyName]=e.shardPoint}};return s(e,n)||(n=null),n}(l[v],d);if(!g)return null;f.push(g)}var m=new R.paths.Arc(d,n,f[0].filletAngle,f[1].filletAngle);return R.round(R.angle.noRevolutions(R.angle.ofArcMiddle(m)))==R.round(h)&&(m.startAngle=f[1].filletAngle,m.endAngle=f[0].filletAngle),f[0].clipPath(),f[1].clipPath(),m}}return null},e.fillet=function(t,n,l,u){if(t&&n&&l&&l>0){var c={pointMatchingDistance:.005};R.extendObject(c,u);var p=r(t,n,u);if(p){if(!i(l,p[0].point,p,c))return null;for(var h=[],d=0;d<2;d++){var f=p[1-d].shardPoint;if(!f)return null;var v=function(e,t,n){var r=null,i=a[e.path.type];return i&&(r=i(e.path,t,n,e.shardPoint,e.isStart)),r}(p[d],l,f);h.push(v)}var g=e.intersection(h[0],h[1]);if(g){for(var m=1==g.intersectionPoints.length?g.intersectionPoints[0]:R.point.closest(p[0].point,g.intersectionPoints),y=[],d=0;d<2;d++){var A=function(e,t,n){var r=null,i=o[e.path.type];return i&&(r=i(e.path,e.propertyName,t,n)),s(e,r)||(r=null),r}(p[d],l,m);if(!A)return null;y.push(A)}if(0==R.round(y[0].filletAngle-y[1].filletAngle))return null;var P=new R.paths.Arc(m,l,y[0].filletAngle,y[1].filletAngle),T=R.angle.ofArcSpan(P);return 180==T?null:(T>180&&(P.startAngle=y[1].filletAngle,P.endAngle=y[0].filletAngle),y[0].clipPath(),y[1].clipPath(),P)}}}return null}}((R=eq||(eq={})).path||(R.path={})),function(e){var t=e.chain||(e.chain={});function n(t,n,r){var i={paths:{}},a=0,o=n.links;function s(n,s){var l=o[n].walkedPath,u=o[s].walkedPath;(l.modelContext!==u.modelContext||l.modelContext.type!=e.models.BezierCurve.typeName)&&e.path.moveTemporary([l.pathContext,u.pathContext],[l.offset,u.offset],function(){if(e.isObject(r)){var c,p,h=e.angle.ofChainLinkJoint(o[n],o[s]);if(0===e.round(h))return;c=h>0?r.left:r.right}else c=r;c&&!(c<0)&&(p=t?e.path.fillet(l.pathContext,u.pathContext,c):e.path.dogbone(l.pathContext,u.pathContext,c))&&(i.paths["fillet"+a]=p,a++)})}for(var l=1;l<o.length;l++)s(l-1,l);return(n.endless&&s(l-1,0),a)?i:null}t.dogbone=function(e,t){return n(!1,e,t)},t.fillet=function(e,t){return n(!0,e,t)}}(eq||(eq={})),(N=(B=eq||(eq={})).kit||(B.kit={})).construct=function(e,t){function n(){return e.apply(this,t)}return n.prototype=e.prototype,new n},N.getParameterValues=function(e){var t=[],n=e.metaParameters;if(n)for(var r=0;r<n.length;r++){var i=n[r].value;Array.isArray(i)&&(i=i[0]),t.push(i)}return t},function(e){function t(e,t){var n=+(t===e.reversed);return e.endPoints[n]}function n(n){for(var i,a,o,s,l,u,c=[],p=1;p<arguments.length;p++)c[p-1]=arguments[p];switch(c.length){case 1:"function"==typeof c[0]?a=c[0]:i=c[0];break;case 2:a=c[0],i=c[1]}var h={pointMatchingDistance:.005};_.extendObject(h,i);var d={},f={},v={},g={onPath:function(e){var t=h.byLayers?e.layer:"";d[t]||(d[t]=new _.PointGraph);var n=d[t],r=_.measure.pathLength(e.pathContext);if(e.pathContext.type===_.pathType.Circle||e.pathContext.type===_.pathType.Arc&&0===_.round(_.angle.ofArcSpan(e.pathContext)-360)||e.pathContext.type===_.pathType.BezierSeed&&_.measure.isPointEqual(e.pathContext.origin,e.pathContext.end,h.pointMatchingDistance))f[t]||(f[t]=[]),f[t].push({links:[{walkedPath:e,reversed:null,endPoints:null,pathLength:r}],endless:!0,pathLength:r});
1else{if(r<h.pointMatchingDistance/5){v[t]||(v[t]=[]),v[t].push(e);return}for(var i=_.point.fromPathEnds(e.pathContext,e.offset),a=0;a<2;a++){var o={walkedPath:e,endPoints:i,reversed:0!=a,pathLength:r},s=n.insertValue(o);n.insertValueIdAtPoint(s,i[a])}}}};h.shallow&&(g.beforeChildWalk=function(){return!1}),h.unifyBeziers&&r(o=function(t){var n=[];function r(e){e.childModel.type===_.models.BezierCurve.typeName&&n.push(e)}return r({childId:"",childModel:t,layer:t.layer,offset:t.origin,parentModel:null,route:[],routeKey:""}),e.walk(t,{beforeChildWalk:function(e){return r(e),!0}}),n}(n),!0,h.pointMatchingDistance),e.walk(n,g);var m=function(e){var n,r,i,o,c,p=d[e];p.mergeNearestSinglePoints(h.pointMatchingDistance),s=[],f[e]||(f[e]=[]),function(e,t,n){function r(t,n,r){for(;t;){n.links.push(t),n.pathLength+=t.pathLength;var i,a,o=+!t.reversed,s=t.endPoints[o],l=e.getElementAtPoint(s);if(!l||0===l.valueIds.length)break;var u=(i=l.valueIds.map(function(t){return e.values[t]}),a=t.walkedPath.pathContext,i[0].walkedPath.pathContext===a?i[1]:i[0]);if(l.valueIds.splice(0,2),!u)break;if(u.walkedPath.pathContext===r.walkedPath.pathContext){n.links.length>1&&(n.endless=!0);break}t=u}}e.forEachPoint(function(e,i,a,o){if(o.valueIds.length>0){var s={links:[],pathLength:0};if(r(i[0],s,i[0]),s.endless)t(s,!1);else{s.links.reverse();var l=s.links[0];s.links.map(function(e){e.reversed=!e.reversed}),s.pathLength-=s.links[s.links.length-1].pathLength,r(s.links.pop(),s,l),s.links.length>1?t(s,!0):n(s.links[0].walkedPath)}}})}(p,function(n,r){r?n.endless=_.measure.isPointEqual(t(n.links[0],!0),t(n.links[n.links.length-1],!1),h.pointMatchingDistance):n.endless=!!n.endless,f[e].push(n)},function(e){s.push(e)}),f[e].sort(function(e,t){return t.pathLength-e.pathLength}),h.contain&&(l=_.isObject(h.contain)?h.contain:{alternateDirection:!1},n=f[e],r=l,i=n.map(function(e){return _.chain.toNewModel(e)}),o=[],n.forEach(function(e,t){if(e.endless){var r=e.links[0].walkedPath,a=_.path.clone(r.pathContext,r.offset);n.forEach(function(n,r){e===n||n.endless&&_.measure.isPointInsideModel(_.point.middle(a),i[r])&&(o[t]=n)})}}),c=[],n.forEach(function(e,t){var n=o[t];n?(n.contains||(n.contains=[]),n.contains.push(e)):c.push(e)}),r.alternateDirection&&function e(t,n){t.forEach(function(t,r){var i=_.measure.isChainClockwise(t);null!==i&&(!i&&n||i&&!n)&&_.chain.reverse(t),t.contains&&e(t.contains,!n)})}(c,!0),u=c,f[e]=u),a&&a(f[e],s,e,v[e])};for(var y in d)m(y);return(o&&r(o,!1,h.pointMatchingDistance),h.byLayers)?f:f[""]}function r(e,t,n){var r="tempPaths",i="tempLayer";e.forEach(function(e){var a=e.childModel;if(t){void 0!=e.layer&&""!==e.layer&&(a[i]=a.layer,a.layer=e.layer);var o=_.models.BezierCurve.getBezierSeeds(a,{byLayers:!0,pointMatchingDistance:n});for(var s in o){var l=o[s];if(l.length>0){a[r]=a.paths;var u={};l.forEach(function(e,t){e.layer=s,u["seed_"+t]=e}),a.paths=u}}}else r in a&&(a.paths=a[r],delete a[r]),i in a&&(void 0==a[i]?delete a.layer:a.layer=a[i],delete a[i])})}e.findSingleChain=function(e){var t=null;return n(e,function(e,n,r){t=e[0]},{byLayers:!1}),t},e.findChains=n}((_=eq||(eq={})).model||(_.model={})),function(e){var t=e.chain||(e.chain={});function n(e,t){if(void 0===t&&(t=1),e.endless){for(var n=Math.abs(t),r=0;r<n;r++)t<0?e.links.push(e.links.shift()):e.links.unshift(e.links.pop());return e}}function r(t,n){t&&!(n.length<2)&&e.measure.isPointEqual(n[0],n[n.length-1],1e-5)&&n.pop()}t.cycle=n,t.reverse=function(e){return e.links.reverse(),e.links.forEach(function(e){return e.reversed=!e.reversed}),e},t.startAt=function(e,t){if(e.endless){for(var r=-1,i=0;i<e.links.length;i++)if(e.links[i].walkedPath.routeKey==t){r=i;break}return r>0&&n(e,r),e}},t.toNewModel=function(t,n){void 0===n&&(n=!1);for(var r={paths:{}},i=0;i<t.links.length;i++){var a=t.links[i].walkedPath;if(a.pathContext.type===e.pathType.BezierSeed){n&&delete a.modelContext.paths[a.pathId],r.models||(r.models={});var o=e.model.getSimilarModelId(r,a.pathId);r.models[o]=e.model.moveRelative(new e.models.BezierCurve(a.pathContext),a.offset)}else{n?(s=a.pathContext,delete a.modelContext.paths[a.pathId]):s=e.path.clone(a.pathContext);var s,l=e.model.getSimilarPathId(r,a.pathId);r.paths[l]=e.path.moveRelative(s,a.offset)}}return r},t.toPoints=function(t,n,i){var a=[],o=0,s=0;Array.isArray(n)&&(h=n);for(var l=0;l<t.links.length;l++){for(var u=t.links[l],c=u.walkedPath,p=u.pathLength;e.round(p-s)>0;){var h,d,f=s/p;if(u.reversed&&(f=1-f),a.push(e.point.add(e.point.middle(c.pathContext,f),c.offset)),i&&a.length>=i)return a;
1if(h){if(d=h[o],++o>h.length)return a}else d=n;s+=d}s-=p}return r(t.endless,a),a},t.toKeyPoints=function(t,n){for(var i=[],a=0;a<t.links.length;a++){var o=t.links[a],s=o.walkedPath,l=e.path.toKeyPoints(s.pathContext,n);if(l.length>0){o.reversed&&l.reverse(),a>0&&l.shift();var u=l.map(function(t){return e.point.add(t,s.offset)});i.push.apply(i,u)}}return r(t.endless,i),i}}(eq||(eq={})),q=(j=eq||(eq={})).model||(j.model={}),U=function(){function e(e,t){this.modelContext=e,this.options=t,this.pointMap=new j.PointGraph,this.list=[],this.removed=[],this.ordinals={},this.load()}return e.prototype.load=function(){var e=this;q.walk(this.modelContext,{onPath:function(t){var n=j.point.fromPathEnds(t.pathContext,t.offset);if(n){t.endPoints=n;for(var r=e.pointMap.insertValue(t),i=2;i--;)e.pointMap.insertValueIdAtPoint(r,n[i])}}}),this.options.pointMatchingDistance&&this.pointMap.mergePoints(this.options.pointMatchingDistance)},e.prototype.findDeadEnds=function(){var e=this,t=0;this.pointMap.forEachPoint(function(n,r,i,a){e.ordinals[i]=t++,e.list.push(a)}),t=0;for(var n=this;t<this.list.length;)!function(){var r=n.list[t];1===r.valueIds.length?n.removePath(r,r.valueIds[0],t):n.options.keep&&r.valueIds.length%2&&r.valueIds.forEach(function(n){var i=e.pointMap.values[n];e.options.keep(i)||e.removePath(r,n,t)}),t++}();return this.removed},e.prototype.removePath=function(e,t,n){var r=this.pointMap.values[t],i=this.getOtherPointId(r.endPoints,e.pointId),a=this.pointMap.index[i];this.removed.push(r),this.removeValue(e,t),this.removeValue(a,t),a.valueIds.length>0&&this.appendQueue(a,n)},e.prototype.removeValue=function(e,t){var n=e.valueIds.indexOf(t);n>=0&&e.valueIds.splice(n,1)},e.prototype.appendQueue=function(e,t){var n=this.ordinals[e.pointId];n<t&&(this.list[n]=null,this.list.push(e),this.ordinals[e.pointId]=this.list.length)},e.prototype.getOtherPointId=function(e,t){for(var n=0;n<e.length;n++){var r=this.pointMap.getIdOfPoint(e[n]);if(t!==r)return r}},e}(),q.removeDeadEnds=function(e,t,n,r){var i=new U(e,{pointMatchingDistance:t||.005,keep:n}),a=i.findDeadEnds();return a.length<i.pointMap.values.length&&a.forEach(function(e){r(e,"dead end"),delete e.modelContext.paths[e.pathId]}),e},((K=eq||(eq={})).exporter||(K.exporter={})).XmlTag=function(){function e(e,t){this.name=e,this.attrs=t,this.innerText=""}return e.escapeString=function(e){var t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};for(var n in t)e=e.split(n).join(t[n]);return e},e.prototype.getOpeningTag=function(t){var n,r="";for(var i in this.attrs)null!=(n=this.attrs[i])&&void 0!==n&&((Array.isArray(n)||"object"==typeof n)&&(n=JSON.stringify(n)),"string"==typeof n&&(n=e.escapeString(n)),r+=" "+i+'="'+n+'"');return"<"+this.name+r+(t?"/":"")+">"},e.prototype.getInnerText=function(){return this.innerTextEscaped?this.innerText:e.escapeString(this.innerText)},e.prototype.getClosingTag=function(){return"</"+this.name+">"},e.prototype.toString=function(){return this.innerText||this.closingTags?this.getOpeningTag(!1)+this.getInnerText()+this.getClosingTag():this.getOpeningTag(!0)},e}(),function(e){function t(e,t,n){return n?e+"("+t+")":t}function n(e,t){if(t){var n=new X.paths.Circle([0,0],e.radius),r=X.measure.pathLength(n);if(r)return Math.ceil(r/t)}}function r(e,t,n){return function(r){e&&e({progress:t+r.progress*n/100})}}function i(e,t,n){return a(function(t,n){var r=X.chain.toKeyPoints(t,n);return r.push(r[0]),e.fromPoints(r)},function(e,t){return e.union(t)},function(e,t){return e.subtract(t)},t,n)}function a(e,t,n,r,i){void 0===i&&(i={});var a={},o={total:0,complete:0};function s(e,n,r){var a=r.shift();return r.forEach(function(e){return a=t(a,e)}),o.complete++,i.statusCallback&&i.statusCallback({progress:e+n*o.complete/o.total}),a}function l(t,n){n.forEach(function(n){if(n.endless){var r={cag:e(n,i.maxArcFacet),subtracts:[]};if(n.contains){var s,u,c=(s=n.contains,u=[],s.forEach(function(n){n.endless&&(n.contains&&l(t,n.contains),o.total++,u.unshift(e(n,i.maxArcFacet)))}),u);c.length>0&&r.subtracts.push(c)}o.total++,t in a||(a[t]=[]),a[t].unshift(r)}})}var u={pointMatchingDistance:i.pointMatchingDistance,byLayers:i.byLayers,contain:!0};i.statusCallback&&i.statusCallback({progress:25});var c=X.model.findChains(r,u);if(Array.isArray(c))l("",c);else for(var p in c)l(p,c[p]);i.statusCallback&&i.statusCallback({progress:50});var h=0;for(var p in a)h+=a[p].length;if(0===h)throw i.statusCallback&&i.statusCallback({progress:100}),"No closed geometries found.";var d={};for(var p in a){var f=a[p].map(function(e){var t=e.cag;
1return e.subtracts.forEach(function(e){var r=s(50,50,e);t=n(t,r)}),t});d[p]=s(50,50,f)}return i.statusCallback&&i.statusCallback({progress:100}),u.byLayers?d:d[""]}function o(e,t,n){return s(function(n){return i(e,t,n)},function(e,t,n){var r=e.extrude({offset:[0,0,t]});return n&&(r=r.translate([0,0,n])),r},function(e,t){return e.union(t)},t,n)}function s(e,t,n,i,a){void 0===a&&(a={});var o=a.statusCallback;i.exporterOptions&&X.extendObject(a,i.exporterOptions.toJscadCSG),a.byLayers=a.byLayers||a.layerOptions&&!0,a.statusCallback=r(o,0,50);var s=e(a),l=[];if(a.byLayers)for(var u in s){var c,p,h=a.layerOptions[u],d=t(s[u],h.extrude||a.extrude,(c=h.z,p=a.z,X.isNumber(c)?c:p));l.push(d)}else{var d=t(s,a.extrude,a.z);l.push(d)}a.statusCallback=r(o,50,100);var f={total:l.length-1,complete:0},v=l.shift();return l.forEach(function(e,t){v=n(v,e),f.complete++,a.statusCallback({progress:f.complete/f.total})}),v}e.toJscadCAG=i,e.toJscadCSG=o,e.toJscadScript=function(e,r){function i(e,i){return u(function(e,r,i){var a="",o="",s=!0,l=!1,u=!1,c={};c[X.pathType.Circle]=function(e,o){a=t("CAG.circle",JSON.stringify({center:X.point.rounded(X.point.add(e.origin,o.walkedPath.offset),i),radius:X.round(e.radius,i),resolution:n(e,r)}),!0),l=!0},c[X.pathType.Line]=function(e,n){var r=n.endPoints.map(function(e){return X.point.rounded(e,i)});n.reversed&&r.reverse(),a=t("new CSG.Path2D",JSON.stringify(r),!0)},c[X.pathType.Arc]=function(e,o){var s=X.angle.ofArcEnd(e);o.reversed&&(u=!0),a=t("new CSG.Path2D.arc",JSON.stringify({center:X.point.rounded(X.point.add(e.origin,o.walkedPath.offset),i),radius:X.round(e.radius,i),startangle:X.round(e.startAngle,i),endangle:X.round(s,i),resolution:n(e,r)}),!0)};var p={};function h(e){u?o=e+o:o+=e}p[X.pathType.Line]=function(e,n){var r=u!=n.reversed;h(t(".appendPoint",JSON.stringify(X.point.rounded(n.endPoints[+!r],i)),!0))},p[X.pathType.Arc]=function(e,a){var o=u!=a.reversed,s=X.angle.ofArcEnd(e),l={radius:X.round(e.radius,i),clockwise:o,large:Math.abs(s-e.startAngle)>180,resolution:n(e,r)};h(t(".appendArc",JSON.stringify(X.point.rounded(a.endPoints[+!o],i))+","+JSON.stringify(l),!0))};for(var d=0;d<e.links.length;d++){var f=e.links[d],v=f.walkedPath.pathContext,g=s?c[v.type]:p[v.type];if(g&&g(v,f),l)return a;s=!1}return a+o+".close().innerToCAG()"}(e,i,r.accuracy))}function o(e,t){return e+".union(".concat(t,")")}function l(e,t){return e+".subtract(".concat(t,")")}function u(e){return"".concat(p).concat(c).concat(e).concat(p)}void 0===r&&(r={});var c=Array((r.indent||0)+1).join(" "),p=r.indent?"\n":"",h=s(function(t){return a(i,o,l,e,r)},function(e,t,n){var r=e+".extrude({ offset: [0, 0, ".concat(t,"] })");return n&&(r+=".translate([0, 0, ".concat(n,"])")),r},o,e,r).trim();return"function ".concat(r.functionName||"main","(){").concat(u("return ".concat(h,";")),"}").concat(p)},e.toJscadSTL=function(e,t,n,i){var a=i.statusCallback;i.statusCallback=r(a,0,50);var s=o(e,n,i);return t.serialize(s,{binary:!1,statusCallback:r(a,50,50)})}}((X=eq||(eq={})).exporter||(X.exporter={})),(V=(G=eq||(eq={})).exporter||(G.exporter={})).toPDF=function(e,t,n){if(t){var r={fontName:"Courier",fontSize:9,origin:[0,0],stroke:"#000"};G.extendObject(r,n);var i=1,a=r.units||t.units;i=(a?G.units.conversionScale(a,G.unitType.Inch):.01)*72;var o=G.model.scale(G.cloneObject(t),i),s=G.measure.modelExtents(o),l=[-s.low[0],s.high[1]];l=G.point.add(l,r.origin),G.model.findChains(o,function(t,n,i){function a(t){var n=V.pathToSVGPathData(t.pathContext,t.offset,l);e.path(n).stroke(r.stroke)}t.map(function(t){if(t.links.length>1){var n=V.chainToSVGPathData(t,l);e.path(n).stroke(r.stroke)}else{var i,o=t.links[0].walkedPath;o.pathContext.type===G.pathType.Circle?(G.path.moveTemporary([o.pathContext],[o.offset],function(){i=G.path.mirror(o.pathContext,!1,!0)}),G.path.moveRelative(i,l),e.circle(i.origin[0],i.origin[1],o.pathContext.radius).stroke(r.stroke)):a(o)}}),n.map(a)},{byLayers:!1}),e.font(r.fontName).fontSize(r.fontSize),G.model.getAllCaptionsOffset(o).forEach(function(t){var n=G.angle.ofLineInDegrees(t.anchor),r=G.path.mirror(t.anchor,!1,!0);G.path.moveRelative(r,l);var i=t.text,a=[e.widthOfString(i)/2,e.heightOfString(i)/2],o=G.point.middle(r),s=G.point.subtract(o,a);e.rotate(-n,{origin:o}),e.text(i,s[0],s[1]),e.rotate(n,{origin:o})})}},function(e){var t={};function n(e){return J.point.mirror(e,!1,!0)}function r(e){var t=J.angle.ofArcSpan(e);e.startAngle=J.angle.noRevolutions(e.startAngle),e.endAngle=e.startAngle+t}function i(e,r,i,a){function o(e){return J.point.add(e,r)}if(void 0!==a){var s=J.measure.isChainClockwise(e);null!==s&&s!==a&&(e=J.cloneObject(e),J.chain.reverse(e))}for(var l=e.links[0],u=o(n(l.endPoints[+!!l.reversed])),c=["M",J.round(u[0],i),J.round(u[1],i)],p=0;p<e.links.length;p++){var h,d=e.links[p],f=d.walkedPath.pathContext,v=t[f.type];v&&(J.path.moveTemporary([f],[d.walkedPath.offset],function(){h=J.path.mirror(f,!1,!0)}),J.path.moveRelative(h,r),v(h,o(n(d.endPoints[+!d.reversed])),d.reversed,c,i))}return e.endless&&c.push("Z"),c.join(" ")}function a(e,t,n){return["M",J.round(e[0],n),J.round(e[1],n)].concat(t)}t[J.pathType.Arc]=function(e,t,n,r,i){r.push("A"),p(r,e.radius,t,i,J.angle.ofArcSpan(e)>180,n?e.startAngle>e.endAngle:e.startAngle<e.endAngle)},t[J.pathType.Line]=function(e,t,n,r,i){r.push("L",J.round(t[0],i),J.round(t[1],i))},t[J.pathType.BezierSeed]=function(e,t,n,r,i){c(r,e,i,n)},e.chainToSVGPathData=i;var o={};function s(e,t,n,r,i){var a,s=o[e.type];return s?(J.path.moveTemporary([e],[t],function(){a=J.path.mirror(e,!1,!0)}),J.path.moveRelative(a,n),s(a,r,i).join(" ")):""}function l(e,t,n,r){var a={};return n.unifyBeziers=!0,J.model.findChains(e,function(e,n,o){function l(e,n){var i=s(e.pathContext,e.offset,t,r,n);a[o].push(i)}
1a[o]=[],!function e(n,s){n.forEach(function(n){if(n.links.length>1){var u=i(n,t,r,s);a[o].push(u)}else l(n.links[0].walkedPath,s);n.contains&&e(n.contains,!s)})}(e,!0),n.forEach(function(e){return l(e)})},n),a}function u(e,t,n){var r=J.round(e,t),i=["m",-r,0];function a(e){i.push("a"),p(i,r,[2*r*e,0],t,!1,!n)}return a(1),a(-1),i.push("z"),i}function c(e,t,n,r){if(1===t.controls.length)e.push("Q",J.round(t.controls[0][0],n),J.round(t.controls[0][1],n));else{var i=r?[t.controls[1],t.controls[0]]:t.controls;e.push("C",J.round(i[0][0],n),J.round(i[0][1],n),J.round(i[1][0],n),J.round(i[1][1],n))}var a=r?t.origin:t.end;e.push(J.round(a[0],n),J.round(a[1],n))}function p(e,t,n,r,i,a){var o=J.round(t,r);e.push(o,o),e.push(0),e.push(+!!i),e.push(+!a),e.push(J.round(n[0],r),J.round(n[1],r))}o[J.pathType.Line]=function(e,t){return a(e.origin,J.point.rounded(e.end,t),t)},o[J.pathType.Circle]=function(e,t,n){return a(e.origin,u(e.radius,t,n),t)},o[J.pathType.Arc]=function(e,t){r(e);var n=J.point.fromArc(e);if(J.measure.isPointEqual(n[0],n[1]))return o[J.pathType.Circle](e,t);var i=["A"];return p(i,e.radius,n[1],t,J.angle.ofArcSpan(e)>180,e.startAngle>e.endAngle),a(n[0],i,t)},o[J.pathType.BezierSeed]=function(e,t){var n=[];return c(n,e,t),a(e.origin,n,t)},e.pathToSVGPathData=s,e.toSVGPathData=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r={fillRule:"evenodd"};"boolean"==typeof t[0]?(r.byLayers=t[0],r.origin=t[1],r.accuracy=t[2]):J.isObject(t[0])&&J.extendObject(r,t[0]);var i={byLayers:r.byLayers,contain:!1};"nonzero"===r.fillRule&&(i.contain={alternateDirection:!0});var a=J.measure.modelExtents(e);r.origin||(r.origin=[-a.low[0],a.high[1]]);var o=l(e,r.origin,i,r.accuracy),s={};for(var u in o)s[u]=o[u].join(" ");return i.byLayers?s:s[""]},e.toSVG=function(t,i){function a(e,t,n){void 0===n&&(n=!1),!n&&"string"==typeof t&&t.length>0?(t in y||(y[t]=[]),y[t].push(e)):m.push(e)}function o(e,t){t&&J.extendObject(e,{stroke:t.stroke,"stroke-width":t.strokeWidth,fill:t.fill,style:t.cssStyle||function(e){var t=[];function n(e,n){void 0!==n&&t.push(e+":"+n)}return n("stroke",e.stroke),n("stroke-width",e.strokeWidth),n("fill",e.fill),t.join(";")}(t),class:t.className})}function s(t){return v.layerOptions&&v.layerOptions[t]?v.layerOptions[t]:t in e.colors?{stroke:t}:void 0}function h(t,n,r,i,l){void 0===i&&(i=null),void 0===l&&(l=!1),"text"!==t&&o(n,s(r)),v.scalingStroke||(n["vector-effect"]="non-scaling-stroke");var u=new e.XmlTag(t,n);u.closingTags=v.closingTags,i&&(u.innerText=i),a(u.toString(),r,l)}function d(e,t){var n=J.path.mirror(e,!1,!0);return J.path.moveRelative(J.path.scale(n,v.scale),t)}var f,v={accuracy:.001,annotate:!1,origin:null,scale:1,stroke:"#000",strokeLineCap:"round",strokeWidth:"0.25mm",fill:"none",fillRule:"evenodd",fontSize:"9pt",useSvgPathOnly:!0,viewBox:!0};J.extendObject(v,i);var g=J.isModel(t);g&&(f=t).exporterOptions&&J.extendObject(v,f.exporterOptions.toSVG);var m=[],y={};if(g)f=t;else if(Array.isArray(t)){var A={};t.forEach(function(e,t){A[t]=e}),f={paths:A}}else J.isPath(t)&&(f={paths:{modelToMeasure:t}});var P=J.measure.modelExtents(f),T=J.model.getAllCaptionsOffset(f);if(T.forEach(function(e){J.measure.increase(P,J.measure.pathExtents(e.anchor),!0)}),!v.units){var x=e.tryGetModelUnits(t);x&&(v.units=x)}var w=e.svgUnit[v.units];if(w&&v.viewBox&&(v.scale*=w.scaleConversion),P&&!v.origin){var C=-P.low[0]*v.scale;v.origin=[C,P.high[1]*v.scale]}J.extendObject(i,v);var b={};if(P&&v.viewBox){var k=J.round(P.width*v.scale,v.accuracy),L=J.round(P.height*v.scale,v.accuracy),M=w?w.svgUnitType:"";b={width:k+M,height:L+M,viewBox:["0 0",k,L].join(" ")}}b.xmlns="http://www.w3.org/2000/svg";var I=new e.XmlTag("svg",J.extendObject(b,v.svgAttrs));a(I.getOpeningTag(!1));var S={id:"svgGroup","stroke-linecap":v.strokeLineCap,"fill-rule":v.fillRule,"font-size":v.fontSize};o(S,v);var E=new e.XmlTag("g",S);if(a(E.getOpeningTag(!1)),v.useSvgPathOnly){var O={byLayers:!0};"nonzero"===v.fillRule&&(O.contain={alternateDirection:!0});var D=l(f,v.origin,O,v.accuracy);for(var z in D){var R={d:D[z].join(" ")};z.length>0&&(R.id=z),h("path",R,z,null,!0)}}else{function B(e,t,n){h("text",{id:e+"_text",x:J.round(t[0],v.accuracy),y:J.round(t[1],v.accuracy)},n,e)}function N(e,t,n,r,i,a,o,s,l){h("path",{id:e,"data-route":a,d:["M",J.round(t,v.accuracy),J.round(n,v.accuracy)].concat(r).join(" ")},i),s&&B(e,o,i)}var _={};function j(e,t,n,r,i){var a="flow";_[J.pathType.Circle]("",new J.paths.Circle(n,e.size/2),t,a,null,!1,null);var o=[-1*e.size,e.size/2];[o,J.point.mirror(o,!1,!0)].map(function(e){return new J.paths.Line(J.point.add(J.point.rotate(e,i),r),r)}
1).forEach(function(e){return _[J.pathType.Line]("",e,t,a,null,!1,null)})}function q(e,t){K.attrs={id:e},a(K.getOpeningTag(!1),t.layer)}function U(e){a(K.getClosingTag(),e.layer)}_[J.pathType.Line]=function(e,t,n,r,i,a,o){var s=t.origin,l=t.end;h("line",{id:e,class:r,"data-route":i,x1:J.round(s[0],v.accuracy),y1:J.round(s[1],v.accuracy),x2:J.round(l[0],v.accuracy),y2:J.round(l[1],v.accuracy)},n),a&&B(e,J.point.middle(t),n),o&&j(o,n,t.origin,t.end,J.angle.ofLineInDegrees(t))},_[J.pathType.Circle]=function(e,t,n,r,i,a,o){var s=t.origin;h("circle",{id:e,class:r,"data-route":i,r:t.radius,cx:J.round(s[0],v.accuracy),cy:J.round(s[1],v.accuracy)},n),a&&B(e,s,n)},_[J.pathType.Arc]=function(e,t,n,i,a,o,s){r(t);var l,c,h,d=J.point.fromArc(t);if(J.measure.isPointEqual(d[0],d[1]))l=t.origin,c=t.radius,h=u(c,v.accuracy),N(e,l[0],l[1],h,n,a,l,o,s);else{var f=["A"];p(f,t.radius,d[1],v.accuracy,J.angle.ofArcSpan(t)>180,t.startAngle>t.endAngle),N(e,d[0][0],d[0][1],f,n,a,J.point.middle(t),o,s),s&&j(s,n,d[1],d[0],J.angle.noRevolutions(t.startAngle-90))}},_[J.pathType.BezierSeed]=function(e,t,n,r,i,a,o){var s=[];c(s,t,v.accuracy),N(e,t.origin[0],t.origin[1],s,n,i,J.point.middle(t),a,o)};var K=new e.XmlTag("g");for(var X in q("0",f),J.model.walk(f,{beforeChildWalk:function(e){return q(e.childId,e.childModel),!0},onPath:function(e){var t=_[e.pathContext.type];if(t){var r,i=J.point.add((r=n(e.offset),J.point.scale(r,v.scale)),v.origin);t(e.pathId,d(e.pathContext,i),e.layer,null,e.route,v.annotate,v.flow)}},afterChildWalk:function(e){U(e.childModel)}}),y){var G=new e.XmlTag("g",{id:X});o(G.attrs,s(X));for(var V=0;V<y[X].length;V++)G.innerText+=y[X][V];G.innerTextEscaped=!0,a(G.toString())}U(f)}var F=T.map(function(t){var n=d(t.anchor,v.origin),r=J.point.rounded(J.point.middle(n),v.accuracy),i=new e.XmlTag("text",{"alignment-baseline":"middle","text-anchor":"middle",transform:"rotate(".concat(J.angle.ofLineInDegrees(n),",").concat(r[0],",").concat(r[1],")"),x:r[0],y:r[1]});return o(i.attrs,s(t.layer)),i.innerText=t.text,i.toString()});if(F.length){var W=new e.XmlTag("g",{id:"captions"});o(W.attrs,s(W.attrs.id)),W.innerText=F.join(""),W.innerTextEscaped=!0,a(W.toString())}return a(E.getClosingTag()),a(I.getClosingTag()),m.join("")},e.svgUnit={},e.svgUnit[J.unitType.Inch]={svgUnitType:"in",scaleConversion:1},e.svgUnit[J.unitType.Millimeter]={svgUnitType:"mm",scaleConversion:1},e.svgUnit[J.unitType.Centimeter]={svgUnitType:"cm",scaleConversion:1},e.svgUnit[J.unitType.Foot]={svgUnitType:"in",scaleConversion:12},e.svgUnit[J.unitType.Meter]={svgUnitType:"cm",scaleConversion:100}}((J=eq||(eq={})).exporter||(J.exporter={})),(W=(F=eq||(eq={})).importer||(F.importer={})).fromSVGPathData=function(e,t){void 0===t&&(t={});var n,r,i={};function a(e){i.paths||(i.paths={}),i.paths["p_"+ ++h]=e}function o(e){i.models||(i.models={}),i.models["p_"+ ++h]=e}function s(e,t,n){void 0===t&&(t=0),void 0===n&&(n=e.from),t<0&&(t+=e.data.length);var r=F.point.mirror([e.data[0+t],e.data[1+t]],!1,!0);return e.absolute?r:F.point.add(r,n)}function l(e,t){return F.measure.isPointEqual(e.from,t)||a(new F.paths.Line(e.from,t)),t}var u={};u.M=function(e){if(c=s(e),!(e.data.length>2))return c;e.from=c;for(var t=2;t<e.data.length;t+=2)e.from=l(e,s(e,t));return e.from},u.Z=function(e){return l(e,c)},u.H=function(e){var t=F.point.clone(e.from);return e.absolute?t[0]=e.data[0]:t[0]+=e.data[0],l(e,t)},u.V=function(e){var t=F.point.clone(e.from);return e.absolute?t[1]=-e.data[0]:t[1]-=e.data[0],l(e,t)},u.L=function(e){for(var t,n=0;n<e.data.length;n+=2)t=s(e,n),e.from=l(e,t);return e.from},u.A=function(e){for(var n,r,i,l,u,c,p,h,d,f,v,g=0;g<e.data.length;g+=7)n=e.data[0+g],r=e.data[1+g],i=e.data[2+g],l=1===e.data[3+g],u=1===e.data[4+g],c=s(e,5+g),p=n!==r,h=new F.paths.Line(e.from,F.point.rotate(c,i,e.from)),p&&(h=F.path.distort(h,1,n/r)),d=new F.paths.Arc(h.origin,h.end,n,l,u),p?(n<d.radius&&(f=d.radius/n,n*=f,r*=f),v=new F.models.EllipticArc(d,1,r/n,t.bezierAccuracy),F.model.rotate(v,-i,e.from),o(v)):(F.path.rotate(d,-i,e.from),a(d)),e.from=c;return c},u.C=function(e){for(var n,r,i,a=e.from,l=0;l<e.data.length;l+=6)e.from=a,n=s(e,0+l,a),r=s(e,2+l,a),i=s(e,4+l,a),o(new F.models.BezierCurve(a,n,r,i,t.bezierAccuracy)),a=i;return i},u.S=function(e){var n,r,i,a,l=e.from;r="C"===e.prev.command||"S"===e.prev.command?s(e.prev,-4):e.from;for(var u=0;u<e.data.length;u+=4)e.from=l,n=F.point.rotate(r,180,l),i=s(e,0+u),a=s(e,2+u),o(new F.models.BezierCurve(l,n,i,a,t.bezierAccuracy)),l=a,r=i;return a},u.Q=function(e){for(var n,r,i=e.from,a=0;a<e.data.length;a+=4)e.from=i,n=s(e,0+a),r=s(e,2+a),o(new F.models.BezierCurve(i,n,r,t.bezierAccuracy)),i=r;return r},u.T=function(e){"Q"===e.prev.command?(r=s(e.prev,-4),n=F.point.rotate(r,180,e.from)):"T"===e.prev.command?(e.prev.absolute=!0,n=s(e.prev,-2)):n=e.from;for(var n,r,i,a=0;a<e.data.length;a+=2)i=s(e,0+a),o(new F.models.BezierCurve(e.from,n,i,t.bezierAccuracy)),e.from=i,n=F.point.rotate(n,180,e.from);var l=F.point.mirror(n,!1,!0);return e.data.push.apply(e.data,l),i};for(var c=[0,0],p=[0,0],h=0,d=/([achlmqstvz])([0-9e\.,\+-\s]*)/ig;null!==(r=d.exec(e));){r.index===d.lastIndex&&d.lastIndex++;var f=r[1],v=r[2],g={command:f.toUpperCase(),data:[],from:p,prev:n};f===g.command&&(g.absolute=!0),g.data=W.parseNumericList(v);var m=u[g.command];m&&(p=m(g)),n=g}return i},function(e){function t(e,t){var n=new H.measure.Atlas(e),r=H.measure.modelExtents(e,n),i=r.high[1],a=[],o={};H.model.walk(e,{beforeChildWalk:function(e){var s=e.childModel,l=n.modelMap[e.routeKey];if(l){var u=H.measure.augment(l);H.model.originate(s,[u.center[0],i*t]);var c=s.origin[0]-r.low[0];o[e.childId]=c;var p=c/r.width;return a.push({childId:e.childId,xRatio:p}),!1}}}),a.sort(function(e,t){return e.xRatio-t.xRatio});var s=a[0],l=a[a.length-1];if(a.length>1){var u=s.xRatio,c=l.xRatio-u;a.forEach(function(e){return e.xRatio=(e.xRatio-u)/c})}return{cpa:a,firstX:o[s.childId],lastX:r.width-o[l.childId]}}function n(e,t,n){t.forEach(function(t){var r=e.models[t.childId];r.origin=t.origin,n&&H.model.rotate(r,t.angle,t.origin)})}var r={};function i(e,t,n,r){var i,a,o,s={};H.isModel(t)?(a=H.measure.modelExtents,i=s.models={},o=H.model.move):(a=H.measure.pathExtents,i=s.paths={},o=H.path.move);for(var l=a(t),u=l.high[e]-l.low[e],c=0;c<n;c++){var p=[0,0];p[e]=c*(u+r),i[c]=o(H.cloneObject(t),p)}return s}function a(e,t,n){return void 0===n&&(n=0),i(1,e,t,n)}function o(e,t,n){return void 0===n&&(n=0),i(0,e,t,n)}function s(e){return Array.isArray(e)?e:[e,e]}function l(e,t,n,r){for(var i=H.isModel(e)?e:{paths:{0:e}},a=r(i),s={models:{}},l=0;l<n;l++){var u=l%2;s.models[l]=H.model.move(o(e,t+u,a.xMargin),[u*a.x,l*a.y])}return s}r[H.pathType.Arc]=function(e,t,n){var r=H.angle.ofArcSpan(e);
1n.forEach(function(n){return n.angle=t?e.endAngle-n.xRatio*r-90:e.startAngle+n.xRatio*r+90})},r[H.pathType.Line]=function(e,t,n){var r=H.angle.ofLineInDegrees(e);n.forEach(function(e){return e.angle=r})},e.childrenOnPath=function(e,i,a,o,s,l){void 0===a&&(a=0),void 0===o&&(o=!1),void 0===s&&(s=!1),void 0===l&&(l=!0);var u=t(e,a),c=u.cpa,p=i;if(s&&c.length>1){var h=H.measure.pathLength(i);u.firstX+u.lastX<h&&(p=H.path.clone(i),H.path.alterLength(p,-u.firstX,!0),H.path.alterLength(p,-u.lastX))}c.forEach(function(e){return e.origin=H.point.middle(p,o?1-e.xRatio:e.xRatio)});var d=r[p.type];return d&&d(p,o,c),n(e,c,l),e},e.childrenOnChain=function(e,r,i,a,o,s){void 0===i&&(i=0),void 0===a&&(a=!1),void 0===o&&(o=!1),void 0===s&&(s=!0);var l,u,c=t(e,i),p=c.cpa,h=r.pathLength;if(p.length>1){o&&(h-=c.firstX+c.lastX);var d,f,v=p.map(function(e){return(a?1-e.xRatio:e.xRatio)*h});if(a&&v.reverse(),f=v.map(function(e,t){return Math.abs(e-(0==t?0:v[t-1]))}),o?f[0]+=a?c.lastX:c.firstX:f.shift(),(d=H.chain.toPoints(r,f)).length<p.length){var g=r.links[r.links.length-1];d.push(g.endPoints[+!g.reversed])}o&&d.shift()}else(d=H.chain.toPoints(r,.5*h)).length=2,d.push(r.links[r.links.length-1].endPoints[+!r.links[r.links.length-1].reversed]);a&&d.reverse();var m=(l=d,u=new H.paths.Arc([0,0],0,0,0),l.map(function(e,t){var n;return 0===t?n=H.angle.ofPointInDegrees(e,l[t+1])+90:t===l.length-1?n=H.angle.ofPointInDegrees(l[t-1],e)+90:(u.origin=e,u.startAngle=H.angle.ofPointInDegrees(e,l[t+1]),u.endAngle=H.angle.ofPointInDegrees(e,l[t-1]),n=H.angle.ofArcMiddle(u)),n+-90}));return p.length>1?p.forEach(function(e,t){e.angle=m[t],e.origin=d[t]}):(p[0].angle=m[1],p[0].origin=d[1]),n(e,p,s),e},e.cloneToRadial=function(e,t,n,r){var i,a,o={};H.isModel(e)?(i=o.models={},a=H.model.rotate):(i=o.paths={},a=H.path.rotate);for(var s=0;s<t;s++)i[s]=a(H.cloneObject(e),s*n,r);return o},e.cloneToColumn=a,e.cloneToRow=o,e.cloneToGrid=function(e,t,n,r){var i=s(r);return a(o(e,t,i[0]),n,i[1])},e.cloneToBrick=function(e,t,n,r){var i=s(r);return l(e,t,n,function(e){var t=H.measure.modelExtents(e),n=i[0]||0,r=i[1]||0;return{x:-((t.width+n)/2),y:t.height+r,xMargin:n}})},e.cloneToHoneycomb=function(e,t,n,r){return void 0===r&&(r=0),l(e,t,n,function(e){var t=H.measure.boun
1dingHexagon(e),n=2*H.solvers.equilateralAltitude(t.radius)+r;return{x:-(n/2),y:H.solvers.equilateralAltitude(n),xMargin:r}})}}((H=eq||(eq={})).layout||(H.layout={})),function(e){var t,n=!1;function r(){if(!n)try{eU.prototype,n=!0}catch(e){throw"Bezier library not found. If you are using Node, try running 'npm install' or if you are in the browser, download http://pomax.github.io/bezierjs/bezier.js to your website and add a script tag."}}function i(e){var n=[e.origin];n.push.apply(n,e.controls),n.push(e.end);var i=n.map(function(e){return{x:e[0],y:e[1]}});return t?eU.apply(t,i):(r(),t=new eU(i)),t}function a(e,t){var n=new c(e.points.map(s));return t&&(n.parentRange=t),n}function o(e){var t=[];return t.push.apply(t,e.origin),t.push.apply(t,e.controls[0]),e.controls.length>1&&t.push.apply(t,e.controls[1]),t.push.apply(t,e.end),r(),new eU(t)}function s(e){return[e.x,e.y]}var l=function(e,t,n){this.t=t,this.point=Y.point.add(s(e.get(t)),n)};function u(e,t,n,r,a){var o=i(e.seed),s=[t.bezierData.startT,t.bezierData.endT].map(function(e){return new l(o,e,r)}),u=n.slice(),c=u.map(function(e){return Y.measure.pointDistance(e,s[0].point)});c[0]>c[1]&&u.reverse();for(var p=2;p--;)if(!Y.measure.isPointEqual(u[p],s[p].point,a))return null;return t.bezierData}var c=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];switch(this.type=Y.pathType.BezierSeed,e.length){case 1:var n=e[0];this.origin=n[0],3===n.length?(this.controls=[n[1]],this.end=n[2]):4===n.length?(this.controls=[n[1],n[2]],this.end=n[3]):this.end=n[1];break;case 3:Array.isArray(e[1])?this.controls=e[1]:this.controls=[e[1]],this.end=e[2];break;case 4:this.controls=[e[1],e[2]],this.end=e[3]}},p=function(){function e(){for(var t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];this.type=e.typeName;var i=Array.isArray(n[0]);switch(n.length){case 2:if(i)this.accuracy=n[1];else{this.seed=n[0],this.accuracy=n[1];break}case 1:if(i){var a=n[0];this.seed=new c(a)}else this.seed=n[0];break;default:switch(n.length){case 4:if(Y.isPoint(n[3])){this.seed=new c(n);break}this.accuracy=n[3];case 3:i&&(this.seed=new c(n.slice(0,3)));break;case 5:this.accuracy=n[4],this.seed=new c(n.slice(0,4))}}if(this.paths={},Y.measure.isBezierSeedLinear(this.seed)){var u=new Y.paths.Line(Y.point.clone(this.seed.origin),Y.point.clone(this.seed.end));u.bezierData={startT:0,endT:1},this.paths={0:u};return}var p=o(this.seed),h=0===(t=p.extrema().values.map(function(e){return Y.round(e)}).filter(function(e,t,n){return n.indexOf(e)===t}).sort()).length?[0,1]:(0!==t[0]&&t.unshift(0),1!==t[t.length-1]&&t.push(1),t);if(this.paths={},!this.accuracy){var d=p.length();this.accuracy=d/100}for(var f=0,v=1;v<h.length;v++){var g=h[v]-h[v-1];f+=function(e,t,n,r,i,a){for(var o,u=0;r<i;)r=(o=function(e,t,n,r){for(var i,a,o,u=new l(e,t),c=new l(e,n),p=u,h=0,d=c;h<100;){var f=s(e.get((u.t+d.t)/2));try{i=new Y.paths.Arc(u.point,f,d.point)}catch(e){if(a)return a;break}if(void 0===o&&(o=Y.measure.isPointEqual(u.point,Y.point.fromAngleOnCircle(i.endAngle,i))),function(e,t,n,r,i){var a=n-t;function o(n){var o=s(e.get(t+a*n)),l=Y.point.middle(r,i?1-n:n);return Y.measure.pointDistance(l,o)}return o(.25)+o(.75)}(e,t,d.t,i,o)<=r?(i.bezierData={startT:t,endT:d.t},p=d,a=i):c=d,p.t===c.t||a&&a!==i&&Y.angle.ofArcSpan(i)-Y.angle.ofArcSpan(a)<.5)return a;h++,d=new l(e,(p.t+c.t)/2)}var v=new Y.paths.Line(u.point,d.point);return v.bezierData={startT:t,endT:d.t},v}(t,r,i,n)).bezierData.endT,!(1e-4>Y.measure.pathLength(o))&&(e.paths[o.type+"_"+(a+u)]=o,u++);return u}(this,p,this.accuracy*g,h[v-1],h[v],f)}}return e.getBezierSeeds=function(e,t){void 0===t&&(t={}),t.shallow=!0,t.unifyBeziers=!1;var n={},r=function(e,t,r){void 0===r&&(r=!1),n[t]||(n[t]=[]),n[t].push(r?Y.path.clone(e):e)};return(Y.model.findChains(e,function(n,o,s){n.forEach(function(n){var o,l,c,p,h=(o=t.pointMatchingDistance,(l=[n.links[0],n.links[n.links.length-1]])[0].walkedPath.pathContext.bezierData.startT>l[1].walkedPath.pathContext.bezierData.startT&&(Y.chain.reverse(n),l.reverse()),null!==(p={startT:(c=l.map(function(t){return u(e,t.walkedPath.pathContext,t.endPoints,t.walkedPath.offset,o)}))[0]?c[0].startT:null,endT:c[1]?c[1].endT:null}).startT&&null!==p.endT?p:n.links.length>2?(null===p.startT&&(r(n.links[0].walkedPath.pathContext,s,!0),p.startT=n.links[1].walkedPath.pathContext.bezierData.startT),null===p.endT&&(r(n.links[n.links.length-1].walkedPath.pathContext,s,!0),p.endT=n.links[n.links.length-2].walkedPath.pathContext.bezierData.endT),p):null);h?r(a(i(e.seed).split(h.startT,h.endT)),s):n.links.forEach(function(e){return r(e.walkedPath.pathContext,s,!0)})}),o.forEach(function(n){if(n.pathContext.type===Y.pathType.Line)return r(n.pathContext,s,!0);var o=u(e,n.pathContext,Y.point.fromPathEnds(n.pathContext),n.offset,t.pointMatchingDistance);o?r(a(i(e.seed).split(o.startT,o.endT)),s):r(n.pathContext,s,!0)})},t),t.byLayers)?n:n[""]},e.computeLength=function(e){return o(e).length()},e.computePoint=function(e,t){return s(i(e).compute(t))},e.typeName="BezierCurve",e}();e.BezierCurve=p,p.metaParameters=[{title:"points",type:"select",value:[[[100,0],[-80,-60],[100,220],[100,60]],[[0,0],[100,0],[100,100]],[[0,0],[20,0],[80,100],[100,100]]]}]}((Y=eq||(eq={})).models||(Y.models={})),function(e){function t(e){if(90>=$.angle.ofArcSpan(e)){var t,n,r,i,a,o=$.point.fromPathEnds(e),s=(t=e,n=$.angle.ofArcSpan(t),r=Math.tan($.angle.toRadians(n)/4)/3*4,i=[t.radiu
1s,t.radius*r],a=$.point.rotate($.point.mirror(i,!1,!0),n,[0,0]),[i,a].map(function(e){return $.point.add(t.origin,$.point.rotate(e,t.startAngle,[0,0]))}));return{type:$.pathType.BezierSeed,origin:o[0],controls:s,end:o[1]}}return null}var n=function(){for(var n,r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];var a=this;this.models={};var o=$.isPoint(r[0]),s=function(i){switch(i){case 2:o&&(a.origin=r[0]);break;case 3:a.origin=r[0];break;case 4:a.origin=[r[0],r[1]]}for(var s=45,l=new $.paths.Arc([0,0],1,0,s),u=0;u<8;u++){var c=t(l);switch(i){case 1:c=$.path.scale(c,r[0]);break;case 2:c=o?$.path.scale(c,r[1]):$.path.distort(c,r[0],r[1]);break;case 3:c=$.path.distort(c,r[1],r[2]);break;case 4:c=$.path.distort(c,r[2],r[3])}a.models["Curve_"+(1+u)]=new e.BezierCurve(c,n),l.startAngle+=s,l.endAngle+=s}};switch(r.length){case 2:s(2);break;case 3:o?s(3):(n=r[2],s(2));break;case 4:o?(n=r[3],s(3)):s(4);break;case 5:n=r[4],s(4)}};e.Ellipse=n,n.metaParameters=[{title:"radiusX",type:"range",min:1,max:50,value:50},{title:"radiusY",type:"range",min:1,max:50,value:25}];var r=function(){for(var n,r,i,a,o=[],s=0;s<arguments.length;s++)o[s]=arguments[s];this.models={},$.isPathArc(o[0])?(n=o[0],i=o[1],a=o[2],r=o[3]):(n=new $.paths.Arc([0,0],1,o[0],o[1]),i=o[2],a=o[3],r=o[4]);for(var l=$.angle.ofArcSpan(n),u=Math.ceil(l/45),c=l/u,p=$.path.clone(n),h=0;h<u;h++){p.startAngle=n.startAngle+h*c,p.endAngle=p.startAngle+c;var d=t(p);d=$.path.distort(d,i,a),this.models["Curve_"+(1+h)]=new e.BezierCurve(d,r)}};e.EllipticArc=r,r.metaParameters=[{title:"startAngle",type:"range",min:0,max:90,value:0},{title:"endAngle",type:"range",min:90,max:360,value:180},{title:"radiusX",type:"range",min:1,max:50,value:50},{title:"radiusY",type:"range",min:1,max:50,value:25}]}(($=eq||(eq={})).models||($.models={})),function(e){var t=e.models||(e.models={});function n(t){if(Array.isArray(t)){if(e.isPoint(t[0]))return t;n=t}else n=e.importer.parseNumericList(t);for(var n,r=[],i=0;i<n.length;i+=2)r.push([n[i],n[i+1]]);return r}var r=function(){for(var t,r,i=[],a=0;a<arguments.length;a++)i[a]=arguments[a];var o=this;switch(this.paths={},i.length){case 1:t=!0,r=n(i[0]);break;case 2:t=i[0],r=n(i[1])}for(var s=function(t,n,i){void 0===i&&(i=!1),i&&0==e.measure.pointDistance(r[t],r[n])||(o.paths["ShapeLine"+l]=new e.paths.Line(r[t],r[n]))},l=1;l<r.length;l++)s(l-1,l);t&&r.length>2&&s(r.length-1,0,!0)};t.ConnectTheDots=r,r.metaParameters=[{title:"closed",type:"bool",value:!0},{title:"points",type:"select",value:[[[0,0],[40,40],[60,20],[100,100],[60,60],[40,80]],[[0,0],[100,0],[50,87]],[-10,0,10,0,0,20],"-10 0 10 0 0 20"]}]}(eq||(eq={})),Z=(Q=eq||(eq={})).models||(Q.models={}),ee=function(){function e(t,n,r,i){this.paths={},this.paths=new Z.ConnectTheDots(!0,e.getPoints(t,n,r,i)).paths}return e.circumscribedRadius=function(e,t){return e/Math.cos(t/2)},e.getPoints=function(t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=!1);var a=[],o=Q.angle.toRadians(r),s=2*Math.PI/t;i&&(n=e.circumscribedRadius(n,s));for(var l=0;l<t;l++)a.push(Q.point.fromPolar(s*l+o,n));return a},e}(),Z.Polygon=ee,ee.metaParameters=[{title:"number of sides",type:"range",min:3,max:24,value:6},{title:"radius",type:"range",min:1,max:100,value:50},{title:"offset angle",type:"range",min:0,max:180,value:0},{title:"radius on flats (vs radius on vertexes)",type:"bool",value:!1}],((et=eq||(eq={})).models||(et.models={})).Holes=en=function(e,t,n){this.paths={};for(var r=0;r<t.length;r++){var i=n?n[r]:r.toString();this.paths[i]=new et.paths.Circle(t[r],e)}},en.metaParameters=[{title:"holeRadius",type:"range",min:.1,max:10,step:.1,value:1},{title:"points",type:"select",value:[[[0,0],[10,10],[20,20],[30,30],[40,40],[50,50],[60,60],[70,70],[80,80]],[[0,0],[0,25],[0,50],[0,75],[0,100],[25,50],[50,50],[75,50],[100,100],[100,75],[100,50],[100,25],[100,0]]]}],ei=(er=eq||(eq={})).models||(er.models={}),ea=function(e,t,n,r){void 0===r&&(r=0),this.paths={};var i=ei.Polygon.getPoints(n,e,r),a=i.map(function(e,t){return"bolt "+t});this.paths=new ei.Holes(t,i,a).paths},ei.BoltCircle=ea,ea.metaParameters=[{title:"bolt circle radius",type:"range",min:1,max:100,value:50},{title:"hole radius",type:"range",min:1,max:50,value:5},{title:"bolt count",type:"range",min:3,max:24,value:12},{title:"offset angle",type:"range",min:0,max:180,value:0}],es=(eo=eq||(eq={})).models||(eo.models={}),el=function(e,t,n){this.paths={},this.paths=new es.Holes(n,[[0,0],[e,0],[e,t],[0,t]],["BottomLeft_bolt","BottomRight_bolt","TopRight_bolt","TopLeft_bolt"]).paths},es.BoltRectangle=el,el.metaParameters=[{title:"width",type:"range",min:1,max:100,value:100},{title:"height",type:"range",min:1,max:100,value:50},{title:"hole radius",type:"range",min:1,max:50,value:5}],((eu=eq||(eq={})).models||(eu.models={})).Dogbone=ec=function(e,t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=!1),this.paths={};var a,o,s,l,u,c,p=Math.min(t,e)/2;switch(r){case -1:case 1:a=p/2;break;default:a=p*Math.SQRT2/2}switch(n=Math.min(n,a),r){case -1:o=0,s=n,l=0,u=2*n,c=[180,0,0,180];break;case 1:o=n,s=0,l=2*n,u=0,c=[270,270,90,90];break;default:l=u=2*(o=s=n/Math.SQRT2),c=[225,315,45,135]}i?(this.paths.Left=new eu.paths.Line([0,0],[0,t-u]),this.paths.Right=new eu.paths.Line([e,0],[e,t-u])):(this.paths.Left=new eu.paths.Line([0,u],[0,t-u]),this.paths.Right=new eu.paths.Line([e,u],[e,t-u]),this.paths.Bottom=new eu.paths.Line([l,0],[e-l,0]),this.paths.BottomLeft=new eu.paths.Arc([o,s],n,c[0]-90,c[0]+90),this.paths.BottomRight=new eu.paths.Arc([e-o,s],n,c[1]-90,c[1]+90)),this.paths.TopRight=new eu.paths.Arc([e-o,t-s],n,c[2]-90,c[2]+90),this.paths.TopLeft=new eu.paths.Arc([o,t-s],n,c[3]-90,c[3]+90),this.paths.Top=new eu.paths.Line([l,t],[e-l,t])},ec.metaParameters=[{title:"width",type:"range",min:1,max:100,value:50},{title:"height",type:"range",min:1,max:100,value:100},{title:"radius",type:"range",min:0,max:50,value:5},{title:"style",type:"select",value:[0,1,-1]},{title:"bottomless",type:"bool",value:!1}],((ep=eq||(eq={})).models||(ep.models={})).Dome=eh=function(e,t,n,r){this.paths={};var i=e/2;n<0&&(n=0),void 0===n&&(n=i),n=Math.min(n=Math.min(n,i),t);var a=Math.max(i-n,0),o=Math.max(t-n,0);r||(this.paths.Bottom=new ep.paths.Line([-i,0],[i,0])),o&&(this.paths.Left=new ep.paths.Line([-i,0],[-i,o]),this.paths.Right=new ep.paths.Line([i,0],[i,o])),n>0&&(this.paths.TopLeft=new ep.paths.Arc([-a,o],n,90,180),this.paths.TopRight=new ep.paths.Arc([a,o],n,0,90)),a&&(this.paths.Top=new ep.paths.Line([-a,t],[a,t]))},eh.metaParameters=[{title:"width",type:"range",min:1,max:100,value:50},{title:"height",type:"range",min:1,max:100,value:100},{title:"radius",type:"range",min:0,max:50,value:25},{title:"bottomless",type:"bool",value:!1}],((ed=eq||(eq={})).models||(ed.models={})).RoundRectangle=ef=function(){for(var e,t,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];this.paths={};var i=0;switch(n.length){case 3:e=n[0],t=n[1],i=n[2];break;case 2:i=n[1];case 1:var a=ed.measure.modelExtents(n[0]);this.origin=ed.point.subtract(a.low,[i,i]),e=a.high[0]-a.low[0]+2*i,t=a.high[1]-a.low[1]+2*i}i=Math.min(i,Math.min(t,e)/2);var o=e-i,s=t-i;i>0&&(this.paths.BottomLeft=new ed.paths.Arc([i,i],i,180,270),this.paths.BottomRight=new ed.paths.Arc([o,i],i,270,0),this.paths.TopRight=new ed.paths.Arc([o,s],i,0,90),this.paths.TopLeft=new ed.paths.Arc([i,s],i,90,180)),o-i>0&&(this.paths.Bottom=new ed.paths.Line([i,0],[o,0]),this.paths.Top=new ed.paths.Line([o,t],[i,t])),s-i>0&&(this.paths.Right=new ed.paths.Line([e,i],[e,s]),this.paths.Left=new ed.paths.Line([0,s],[0,i]))},ef.metaParameters=[{title:"width",type:"range",min:1,max:100,value:50},{title:"height",type:"range",min:1,max:100,value:100},{title:"radius",type:"range",min:0,max:50,value:11}],eg=(ev=eq||(eq={})).models||(ev.models={}),em=function(e,t){this.paths={},this.paths=new eg.RoundRectangle(e,t,Math.min(t/2,e/2)).paths},eg.Oval=em,em.metaParameters=[{title:"width",type:"range",min:1,max:100,value:50},{title:"height",type:"range",min:1,max:100,value:100}],((ey=eq||(eq={})).models||(ey.models={})).OvalArc=eA=function(e,t,n,r,i,a){void 0===i&&(i=!1),void 0===a&&(a=!1);var o,s=this;if((this.paths={},a&&(o={models:{}},this.models={Caps:o}),!(r<=0)&&!(n<=0))&&(e=ey.angle.noRevolutions(e),t=ey.angle.noRevolutions(t),0!=ey.round(e-t))){t<e&&(t+=360);var l=function(e,t,i,l){var u;return a?(u={paths:{}},o.models[e]=u):u=s,u.paths[e]=new ey.paths.Arc(ey.point.fromPolar(ey.angle.toRadians(t),n),r,t+i,t+l)},u=function(r,i){return s.paths[r]=new ey.paths.Arc([0,0],n+i,e,t)};u("Outer",r);var c=n-r>0;c&&u("Inner",-r);var p=[];if(p.push(l("StartCap",e,180,0)),p.push(l("EndCap",t,0,180)),ey.measure.pointDistance(p[0].origin,p[1].origin)/2<r){var h=ey.path.intersection(p[0],p[1]);h&&(c&&i||(p[0].startAngle=h.path1Angles[0],p[1].endAngle=h.path2Angles[0]),!i&&c&&2==h.intersectionPoints.length&&(l("StartCap2",e,180,0).endAngle=h.path1Angles[1],l("EndCap2",t,0,180).startAngle=h.path2Angles[1]+360))}}},eA.metaParameters=[{title:"start angle",type:"range",min:-360,max:360,step:1,value:180},{title:"end angle",type:"range",min:-360,max:360,step:1,value:0},{title:"sweep",type:"range",min:0,max:100,step:1,value:50},{title:"radius",type:"range",min:0,max:100,step:1,value:15},{title:"self intersect",type:"bool",value:!1}],eT=(eP=eq||(eq={})).models||(eP.models={}),ex=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(this.paths={},2!==e.length||eP.isObject(e[0])){var n,r,i,a=0;eP.isModel(e[0])?(i=eP.measure.modelExtents(e[0]),2===e.length&&(a=e[1])):i=e[0],this.origin=eP.point.subtract(i.low,[a,a]),n=i.high[0]-i.low[0]+2*a,r=i.high[1]-i.low[1]+2*a}else n=e[0],r=e[1];this.paths=new eT.ConnectTheDots(!0,[[0,0],[n,0],[n,r],[0,r]]).paths},eT.Rectangle=ex,ex.metaParameters=[{title:"width",type:"range",min:1,max:100,value:50},{title:"height",type:"range",min:1,max:100,value:100}],((ew=eq||(eq={})).models||(ew.models={})).Ring=eC=function(e,t){this.paths={};var n={Ring_outer:e,Ring_inner:t};for(var r in n){var i=n[r];void 0===i||i<=0||(this.paths[r]=new ew.paths.Circle(ew.point.zero(),i))}},eC.metaParameters=[{title:"outer radius",type:"range",min:0,max:100,step:1,value:50},{title:"inner radius",type:"range",min:0,max:100,step:1,value:20}],((eb=eq||(eq={})).models||(eb.models={})).Belt=ek=function(e,t,n){this.paths={};var r=new eb.paths.Arc([0,0],e,0,360),i=new eb.paths.Arc([t,0],n,0,360),a=eb.s
1olvers.circleTangentAngles(r,i);a?(r.startAngle=(a=a.sort(function(e,t){return e-t}))[0],r.endAngle=a[1],i.startAngle=a[1],i.endAngle=a[0],this.paths.Left=r,this.paths.Right=i,this.paths.Top=new eb.paths.Line(eb.point.fromAngleOnCircle(a[0],r),eb.point.fromAngleOnCircle(a[0],i)),this.paths.Bottom=new eb.paths.Line(eb.point.fromAngleOnCircle(a[1],r),eb.point.fromAngleOnCircle(a[1],i))):this.paths.Belt=new eb.paths.Circle(Math.max(e,n))},ek.metaParameters=[{title:"left radius",type:"range",min:0,max:100,value:30},{title:"distance between centers",type:"range",min:0,max:100,value:50},{title:"right radius",type:"range",min:0,max:100,value:15}],((eL=eq||(eq={})).models||(eL.models={})).SCurve=eM=function(e,t){function n(e,t){return e+(t*t-e*e)/(2*e)}this.paths={};var r,i,a,o,s=t/2,l=e/2;e>t?(r=n(s,l),i=270,a=360-eL.angle.toDegrees(Math.acos(l/r)),o=[0,r]):(r=n(l,s),i=180-eL.angle.toDegrees(Math.asin(s/r)),a=180,o=[r,0]);var u=new eL.paths.Arc(o,r,i,a);this.paths.curve_start=u,this.paths.curve_end=eL.path.moveRelative(eL.path.mirror(u,!0,!0),[e,t])},eM.metaParameters=[{title:"width",type:"range",min:1,max:100,value:50},{title:"height",type:"range",min:1,max:100,value:100}],((eI=eq||(eq={})).models||(eI.models={})).Slot=eS=function(e,t,n,r){void 0===r&&(r=!1);var i,a=this;this.paths={},r&&(i={models:{}},this.models={Caps:i});var o=function(e,t){var n;r?(n={paths:{}},i.models[e]=n):n=a,n.paths[e]=t},s=eI.angle.ofPointInDegrees(e,t),l=eI.measure.pointDistance(e,t);this.paths.Top=new eI.paths.Line([0,n],[l,n]),this.paths.Bottom=new eI.paths.Line([0,-n],[l,-n]),o("StartCap",new eI.paths.Arc([0,0],n,90,270)),o("EndCap",new eI.paths.Arc([l,0],n,270,90)),eI.model.rotate(this,s,[0,0]),this.origin=e},eS.metaParameters=[{title:"origin",type:"select",value:[[0,0],[10,0],[10,10]]},{title:"end",type:"select",value:[[80,0],[0,30],[10,30]]},{title:"radius",type:"range",min:1,max:50,value:10}],eO=(eE=eq||(eq={})).models||(eE.models={}),eD=function(e){this.paths={},this.paths=new eO.Rectangle(e,e).paths},eO.Square=eD,eD.metaParameters=[{title:"side",type:"range",min:1,max:100,value:100}],eR=(ez=eq||(eq={})).models||(ez.models={}),eB=function(){function e(t,n,r,i){void 0===i&&(i=2),this.paths={},r||(r=n*e.InnerRadiusRatio(t,i));for(var a=eR.Polygon.getPoints(t,n),o=eR.Polygon.getPoints(t,r,180/t),s=[],l=0;l<t;l++)s.push(a[l]),s.push(o[l]);var u=new eR.ConnectTheDots(!0,s);this.paths=u.paths,delete u.paths}return e.InnerRadiusRatio=function(e,t){return e>0&&t>1&&t<e/2?Math.cos(Math.PI*t/e)/Math.cos(Math.PI*(t-1)/e):0},e}(),eR.Star=eB,eB.metaParameters=[{title:"number of sides",type:"range",min:3,max:24,value:8},{title:"outer radius",type:"range",min:1,max:100,value:50},{title:"inner radius",type:"range",min:0,max:100,value:15},{title:"skip points (when inner radius is zero)",type:"range",min:0,max:12,value:2}],e_=(eN=eq||(eq={})).models||(eN.models={}),ej=function(){function e(t,n,r,i,a,o,s){void 0===i&&(i=!1),void 0===a&&(a=!1);var l,u,c=this;this.models={};var p=0,h=function(n,r,s,h,d){var f=e.glyphToModel(n,h,o,t);if(f.origin=[r,0],a&&(f.paths||f.models)){var v=eN.measure.modelExtents(f);if(v){var g=v.high[0]-v.low[0];eN.model.originate(f,[v.low[0]+g/2,0])}}if(i&&p>0){var m,y={};m=l?{models:{deleted:l,char:u}}:u,eN.model.combine(m,f,!1,!0,!1,!0,y),l=y.out_deleted[1]}c.models[p]=f,p++,u=f};if(t.layout&&"function"==typeof t.layout)for(var d=t.layout(n,null==s?void 0:s.features,null==s?void 0:s.script,null==s?void 0:s.language,null==s?void 0:s.direction),f=r/t.unitsPerEm,v=0,g=0;g<d.glyphs.length;g++){var m=d.glyphs[g],y=d.positions[g];h(m,v+(y.xOffset||0)*f,(y.yOffset||0)*f,r,s),v+=(y.xAdvance||0)*f}else t.forEachGlyph(n,0,0,r,s,h)}return e.glyphToModel=function(t,n,r,i){var a,o,s,l={},u=0;function c(e,t){l.paths||(l.paths={}),t&&!l.layer&&(l.layer=t),l.paths["p_"+ ++u]=e}function p(e,t){l.models||(l.models={}),t&&!l.layer&&(l.layer=t),l.models["p_"+ ++u]=e}if(t.path&&!t.getPath&&i){var h=n/i.unitsPerEm;if(s=t.path,t.layers&&t.layers.length>0)return t.layers.forEach(function(t,n){var a=i.getGlyph(t.glyph).path;if(a&&a.commands){var o=void 0;if(i.COLR&&i.CPAL&&void 0!==t.color){var s=i.CPAL,l=s.colorPalettes||s.colorRecords;if(l&&l.length>0){var u=l[0];if(u&&u.length>t.color){var d=u[t.color];if(d){var f=void 0!==d.red?d.red:d.r||0,v=void 0!==d.green?d.green:d.g||0,g=void 0!==d.blue?d.blue:d.b||0;o="color_".concat(f.toString(16).padStart(2,"0")).concat(v.toString(16).padStart(2,"0")).concat(g.toString(16).padStart(2,"0"))}}}}for(var m=void 0,y=void 0,A=0,P=a.commands;A<P.length;A++){var T=P[A],x=e.convertFontkitCommand(T,h);switch(T.command){case"moveTo":m=x[0],y=x[0];break;case"closePath":x[0]=m;case"lineTo":y&&!eN.measure.isPointEqual(y,x[0])&&c(new eN.paths.Line(y,x[0]),o),y=x[0];break;case"bezierCurveTo":y&&p(new e_.BezierCurve(y,x[0],x[1],x[2],r),o),y=x[2];break;case"quadraticCurveTo":y&&p(new e_.BezierCurve(y,x[0],x[1],r),o),y=x[1]}}}}),l;if(!s||!s.commands)return l;for(var d=0,f=s.commands;d<f.length;d++){var v=f[d],g=e.convertFontkitCommand(v,h);switch(v.command){case"moveTo":a=g[0],o=g[0];break;case"closePath":g[0]=a;case"lineTo":eN.measure.isPointEqual(o,g[0])||c(new eN.paths.Line(o,g[0])),o=g[0];break;case"bezierCurveTo":p(new e_.BezierCurve(o,g[0],g[1],g[2],r)),o=g[2];break;case"quadraticCurveTo":p(new e_.BezierCurve(o,g[0],g[1],r)),o=g[1]}}}else(s=t.getPath(0,0,n)).commands.map(function(e,t){var n=[[e.x,e.y],[e.x1,e.y1],[e.x2,e.y2]].map(function(e){if(void 0!==e[0])return eN.point.mirror(e,!1,!0)});switch(e.type){case"M":a=n[0];break;case"Z":n[0]=a;case"L":eN.measure.isPointEqual(o,n[0])||c(new eN.paths.Line(o,n[0]));break;case"C":p(new e_.BezierCurve(o,n[1],n[2],n[0],r));break;case"Q":p(new e_.BezierCurve(o,n[1],n[0],r))}o=n[0]});return l},e.convertFontkitCommand=function(e,t){var n=[];switch(e.command){case"moveTo":case"lineTo":n.push([e.args[0]*t,e.args[1]*t]);break;case"quadraticCurveTo":n.push([e.args[0]*t,e.args[1]*t]),n.push([e.args[2]*t,e.args[3]*t]);break;case"bezierCurveTo":n.push([e.args[0]*t,e.args[1]*t]),n.push([e.args[2]*t,e.args[3]*t]),n.push([e.args[4]*t,e.args[5]*t])}return n},e}(),e_.Text=ej,ej.metaParameters=[{title:"font",type:"font",value:"*"},{title:"text",type:"text",value:"Hello"},{title:"font size",type:"range",min:10,max:200,value:72},{title:"combine",type:"bool",value:!1},{title:"center character origin",type:"bool",value:!1}],eq.version="0.19.2";var r,i,a,o,s,l,u,c,p,h,d,f,v,g,m,y,A,P,T,x,w,C,b,k,L,M,I,S,E,O,D,z,R,B,N,_,j,q,U,K,X,G,V,J,F,W,H,Y,$,Q,Z,ee,et,en,er,ei,ea,eo,es,el,eu,ec,ep,eh,ed,ef,ev,eg,em,ey,eA,eP,eT,ex,ew,eC,eb,ek,eL,eM,eI,eS,eE,eO,eD,ez,eR,eB,eN,e_,ej,eq,eU=n(28487)}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.