/* MIT License
Copyright © 2012 - 2021 jonobr1 / jonobr1.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ !function(e,t){“object”==typeof exports&&“undefined”!=typeof module?module.exports=t():“function”==typeof define&&define.amd?define(t):(e=“undefined”!=typeof globalThis?globalThis:e||self).Two=t()}(this,(function(){“use strict”;var e,t={move:“M”,line:“L”,curve:“C”,arc:“A”,close:“Z”};“undefined”!=typeof window?e=window:“undefined”!=typeof global?e=global:“undefined”!=typeof self&&(e=self);var i,r=e,s=2*Math.PI,n=.5*Math.PI,a=function(e,t,i,r,s,n){var a;return arguments.length<=1?(a=e.a,t=e.b,i=e.c,r=e.d,s=e.e,n=e.f):a=e,{translateX:s,translateY:n,scaleX:Math.sqrt(a*a+t*t),scaleY:Math.sqrt(i*i+r*r),rotation:180*Math.atan2(t,a)/Math.PI}},o=function(e){i=e},h=function(e,t){t=t&&t.identity()||new i;for(var r=e,s=[];r&&r._matrix;)s.push(r._matrix),r=r.parent;s.reverse();for(var n=0;n<s.length;n++){var a=s.elements;t.multiply(a,a,a,a,a,a,a,a,a,a)}return t},l=function(e,t,i){return i*(t-e)+e},c=,f=function(e){for(var t=0;c&&c<e;)t++;return c},d=function(e,t){for(;e<0;)e+=t;return e%t},_=r.Float32Array||Array,u=Math.floor,g=function(e){return u(1e6*e)/1e6},p=Object.freeze({__proto__:null,decomposeMatrix:a,getComputedMatrix:h,getPoT:f,setMatrix:o,lerp:l,mod:d,NumArray:_,toFixed:g,TWO_PI:s,HALF_PI:n}),m=Array.prototype.slice,y={isNaN:function(e){return“number”==typeof e&&e!==+e},isElement:function(e){return!(!e||1!==e.nodeType)},isObject:function(e){var t=typeof e;return“function”===t||“object”===t&&!!e},extend:function(e){for(var t=m.call(arguments,1),i=0;i<t.length;i++){var r=t;for(var s in r)e=r}return e},defaults:function(e){for(var t=m.call(arguments,1),i=0;i<t.length;i++){var r=t;for(var s in r)void 0===e&&(e=r)}return e},each:function(e,t,i){for(var r=i||this,s=!function(e){if(null==e)return!1;var t=e.length;return“number”==typeof t&&t>=0&&t<4294967296}(e)&&Object.keys(e),n=(s||e).length,a=0;a<n;a++){var o=s?s:a;t.call(r,e,o,e)}return e},performance:r.performance&&r.performance.now?r.performance:Date},v={on:b,off:x,trigger:function(e){var t=this;if(!t._events)return t;var i=Array.prototype.slice.call(arguments,1),r=t._events;return r&&k(t,r,i),t},listen:function(e,t,i){var r=this;if(e){var s=function(){i.apply(r,arguments)};s.obj=e,s.name=t,s.handler=i,e.on(t,s)}return r},ignore:function(e,t,i){return e.off(t,i),this},Types:{play:“play”,pause:“pause”,update:“update”,render:“render”,resize:“resize”,change:“change”,remove:“remove”,insert:“insert”,order:“order”,load:“load”}};function b(e,t){var i=this;return i._events||(i._events={}),(i._events||(i._events=[])).push(t),i}function x(e,t){var i=this;if(!i._events)return i;if(!e&&!t)return i._events={},i;for(var r=e?:Object.keys(i._events),s=0,n=r.length;s<n;s++){e=r;var a=i._events;if(a){var o=[];if(t)for(var h=0,l=a.length;h<l;h++){var c=a;c=c.handler?c.handler:c,t&&t!==c&&o.push©}i._events=o}}return i}function k(e,t,i){var r;switch(i.length){case 0:r=function®{t.call(e,i)};break;case 1:r=function®{t.call(e,i,i)};break;case 2:r=function®{t.call(e,i,i,i)};break;case 3:r=function®{t.call(e,i,i,i,i)};break;default:r=function®{t.apply(e,i)}}for(var s=0;s<t.length;s++)r(s)}function w(e,t){this.x=e||0,this.y=t||0}v.bind=b,v.unbind=x,y.extend(w,{zero:new w,add:function(e,t){return new w(e.x+t.x,e.y+t.y)},sub:function(e,t){return new w(e.x-t.x,e.y-t.y)},subtract:function(e,t){return w.sub(e,t)},ratioBetween:function(e,t){return(e.x*t.x+e.y*t.y)/(e.length()*t.length())},angleBetween:function(e,t){var i,r;return arguments.length>=4?(i=arguments-arguments,r=arguments-arguments,Math.atan2(r,i)):(i=e.x-t.x,r=e.y-t.y,Math.atan2(r,i))},distanceBetween:function(e,t){return Math.sqrt(w.distanceBetweenSquared(e,t))},distanceBetweenSquared:function(e,t){var i=e.x-t.x,r=e.y-t.y;return i*i+r*r},MakeObservable:function(e){e.bind=e.on=function(){return this._bound||(this._x=this.x,this._y=this.y,Object.defineProperty(this,“x”,S),Object.defineProperty(this,“y”,R),y.extend(this,A),this._bound=!0),v.bind.apply(this,arguments),this}}}),y.extend(w.prototype,v,{constructor:w,set:function(e,t){return this.x=e,this.y=t,this},copy:function(e){return this.x=e.x,this.y=e.y,this},clear:function(){return this.x=0,this.y=0,this},clone:function(){return new w(this.x,this.y)},add:function(e,t){return arguments.length<=0||(arguments.length<=1?“number”==typeof e?(this.x+=e,this.y+=e):e&&“number”==typeof e.x&&“number”==typeof e.y&&(this.x+=e.x,this.y+=e.y):(this.x+=e,this.y+=t)),this},addSelf:function(e){return this.add.apply(this,arguments)},sub:function(e,t){return arguments.length<=0||(arguments.length<=1?“number”==typeof e?(this.x-=e,this.y-=e):e&&“number”==typeof e.x&&“number”==typeof e.y&&(this.x-=e.x,this.y-=e.y):(this.x-=e,this.y-=t)),this},subtract:function(){return this.sub.apply(this,arguments)},subSelf:function(e){return this.sub.apply(this,arguments)},subtractSelf:function(e){return this.sub.apply(this,arguments)},multiply:function(e,t){return arguments.length<=0||(arguments.length<=1?“number”==typeof e?(this.x*=e,this.y*=e):e&&“number”==typeof e.x&&“number”==typeof e.y&&(this.x*=e.x,this.y*=e.y):(this.x*=e,this.y*=t)),this},multiplySelf:function(e){return this.multiply.apply(this,arguments)},multiplyScalar:function(e){return this.multiply(e)},divide:function(e,t){return arguments.length<=0||(arguments.length<=1?“number”==typeof e?(this.x/=e,this.y/=e):e&&“number”==typeof e.x&&“number”==typeof e.y&&(this.x/=e.x,this.y/=e.y):(this.x/=e,this.y/=t),y.isNaN(this.x)&&(this.x=0),y.isNaN(this.y)&&(this.y=0)),this},divideSelf:function(e){return this.divide.apply(this,arguments)},divideScalar:function(e){return this.divide(e)},negate:function(){return this.multiply(-1)},dot:function(e){return this.x*e.x+this.y*e.y},length:function(){return Math.sqrt(this.lengthSquared())},lengthSquared:function(){return this.x*this.x+this.y*this.y},normalize:function(){return this.divideScalar(this.length())},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var t=this.x-e.x,i=this.y-e.y;return t*t+i*i},setLength:function(e){return this.normalize().multiplyScalar(e)},equals:function(e,t){return t=void 0===t?1e-4:t,this.distanceTo(e)<t},lerp:function(e,t){var i=(e.x-this.x)*t+this.x,r=(e.y-this.y)*t+this.y;return this.set(i,r)},isZero:function(e){return e=void 0===e?1e-4:e,this.length()<e},toString:function(){return this.x+“, ”+this.y},toObject:function(){return{x:this.x,y:this.y}},rotate:function(e){var t=Math.cos(e),i=Math.sin(e);return this.x=this.x*t-this.y*i,this.y=this.x*i+this.y*t,this}});var A={constructor:w,set:function(e,t){return this._x=e,this._y=t,this.trigger(v.Types.change)},copy:function(e){return this._x=e.x,this._y=e.y,this.trigger(v.Types.change)},clear:function(){return this._x=0,this._y=0,this.trigger(v.Types.change)},clone:function(){return new w(this._x,this._y)},add:function(e,t){return arguments.length<=0?this:(arguments.length<=1?“number”==typeof e?(this._x+=e,this._y+=e):e&&“number”==typeof e.x&&“number”==typeof e.y&&(this._x+=e.x,this._y+=e.y):(this._x+=e,this._y+=t),this.trigger(v.Types.change))},sub:function(e,t){return arguments.length<=0?this:(arguments.length<=1?“number”==typeof e?(this._x-=e,this._y-=e):e&&“number”==typeof e.x&&“number”==typeof e.y&&(this._x-=e.x,this._y-=e.y):(this._x-=e,this._y-=t),this.trigger(v.Types.change))},multiply:function(e,t){return arguments.length<=0?this:(arguments.length<=1?“number”==typeof e?(this._x*=e,this._y*=e):e&&“number”==typeof e.x&&“number”==typeof e.y&&(this._x*=e.x,this._y*=e.y):(this._x*=e,this._y*=t),this.trigger(v.Types.change))},divide:function(e,t){return arguments.length<=0?this:(arguments.length<=1?“number”==typeof e?(this._x/=e,this._y/=e):e&&“number”==typeof e.x&&“number”==typeof e.y&&(this._x/=e.x,this._y/=e.y):(this._x/=e,this._y/=t),y.isNaN(this._x)&&(this._x=0),y.isNaN(this._y)&&(this._y=0),this.trigger(v.Types.change))},dot:function(e){return this._x*e.x+this._y*e.y},lengthSquared:function(){return this._x*this._x+this._y*this._y},distanceToSquared:function(e){var t=this._x-e.x,i=this._y-e.y;return t*t+i*i},lerp:function(e,t){var i=(e.x-this._x)*t+this._x,r=(e.y-this._y)*t+this._y;return this.set(i,r)},toString:function(){return this._x+“, ”+this._y},toObject:function(){return{x:this._x,y:this._y}},rotate:function(e){var t=Math.cos(e),i=Math.sin(e);return this._x=this._x*t-this._y*i,this._y=this._x*i+this._y*t,this}},S={enumerable:!0,get:function(){return this._x},set:function(e){this._x=e,this.trigger(v.Types.change,“x”)}},R={enumerable:!0,get:function(){return this._y},set:function(e){this._y=e,this.trigger(v.Types.change,“y”)}};function M(e,i,r,s,n,a,o){w.call(this,e,i),this._broadcast=function(){this.trigger(v.Types.change)}.bind(this),this._command=o||t.move,this._relative=!0;var h=“number”==typeof r,l=“number”==typeof s,c=“number”==typeof n,f=“number”==typeof a;(h||l||c||f)&&M.AppendCurveProperties(this),h&&(this.controls.left.x=r),l&&(this.controls.left.y=s),c&&(this.controls.right.x=n),f&&(this.controls.right.y=a)}w.MakeObservable(w.prototype),y.extend(M,{AppendCurveProperties:function(e){e.relative=!0,e.controls={},e.controls.left=new w(0,0),e.controls.right=new w(0,0)},MakeObservable:function(e){Object.defineProperty(e,“command”,{enumerable:!0,get:function(){return this._command},set:function(e){this._command=e,this._command!==t.curve||y.isObject(this.controls)||M.AppendCurveProperties(this),this.trigger(v.Types.change)}}),Object.defineProperty(e,“relative”,{enumerable:!0,get:function(){return this._relative},set:function(e){this._relative!=e&&(this._relative=!!e,this.trigger(v.Types.change))}}),y.extend(e,w.prototype,T),e.bind=e.on=function(){var e=this._bound;w.prototype.bind.apply(this,arguments),e||y.extend(this,T)}}});var T={constructor:M,listen:function(){return y.isObject(this.controls)||M.AppendCurveProperties(this),this.controls.left.bind(v.Types.change,this._broadcast),this.controls.right.bind(v.Types.change,this._broadcast),this},ignore:function(){return this.controls.left.unbind(v.Types.change,this._broadcast),this.controls.right.unbind(v.Types.change,this._broadcast),this},copy:function(e){return this.x=e.x,this.y=e.y,“string”==typeof e.command&&(this.command=e.command),y.isObject(e.controls)&&(y.isObject(this.controls)||M.AppendCurveProperties(this),this.controls.left.copy(e.controls.left),this.controls.right.copy(e.controls.right)),“boolean”==typeof e.relative&&(this.relative=e.relative),this.command===t.arc&&(this.rx=e.rx,this.ry=e.ry,this.xAxisRotation=e.xAxisRotation,this.largeArcFlag=e.largeArcFlag,this.sweepFlag=e.sweepFlag),this},clone:function(){var e=this.controls,t=new M(this.x,this.y,e&&e.left.x,e&&e.left.y,e&&e.right.x,e&&e.right.y,this.command);return t.relative=this._relative,t},toObject:function(){var e={x:this.x,y:this.y};return this._command&&(e.command=this._command),this._relative&&(e.relative=this._relative),this.controls&&(e.controls={left:this.controls.left.toObject(),right:this.controls.right.toObject()}),e},toString:function(){return this.controls?.join(“, ”):[this._x,this._y].join(“, ”)}};M.MakeObservable(M.prototype);var O=0,F={nextFrameID:null,Types:{webgl:“WebGLRenderer”,svg:“SVGRenderer”,canvas:“CanvasRenderer”},Version:“v0.7.9”,PublishDate:“2021-08-20T01:48:52.881Z”,Identifier:“two-”,Resolution:12,AutoCalculateImportedMatrices:!0,Instances:[],uniqueId:function(){return O++}},P={CollinearityEpsilon:Math.pow(10,-30),RecursionLimit:16,CuspLimit:0,Tolerance:{distance:.25,angle:0,epsilon:Number.EPSILON},abscissas:[,[0,.7745966692414834],,[0,.5384693101056831,.906179845938664],,[0,.4058451513773972,.7415311855993945,.9491079123427585],,[0,.3242534234038089,.6133714327005904,.8360311073266358,.9681602395076261],,[0,.26954315595234496,.5190961292068118,.7301520055740494,.8870625997680953,.978228658146057],,[0,.2304583159551348,.44849275103644687,.6423493394403402,.8015780907333099,.9175983992229779,.9841830547185881],,[0,.20119409399743451,.3941513470775634,.5709721726085388,.7244177313601701,.8482065834104272,.937273392400706,.9879925180204854],],weights:[,[.8888888888888888,.5555555555555556],,[.5688888888888889,.47862867049936647,.23692688505618908],,[.4179591836734694,.3818300505051189,.27970539148927664,.1294849661688697],,[.3302393550012598,.31234707704000286,.26061069640293544,.1806481606948574,.08127438836157441],,[.2729250867779006,.26280454451024665,.23319376459199048,.18629021092773426,.1255803694649046,.05566856711617366],,[.2325515532308739,.22628318026289723,.2078160475368885,.17814598076194574,.13887351021978725,.09212149983772845,.04048400476531588],,[.2025782419255613,.19843148532711158,.1861610000155622,.16626920581699392,.13957067792615432,.10715922046717194,.07036604748810812,.03075324199611727],]},E=function(e,t,i,r,s){var n=1-e;return n*n*n*t+3*n*n*e*i+3*n*e*e*r+e*e*e*s},C=function(e,t,i,r,s,n,a,o,h){var l=(h=h||P.RecursionLimit)+1;if(Math.abs(e-a)<.001&&Math.abs(t-o)<.001)return[new M(a,o)];for(var c=[],f=0;f<l;f++){var d=f/l,_=E(d,e,i,s,a),u=E(d,t,r,n,o);c.push(new M(_,u))}return c},L=function(e,t,i,r,s,n,a,o,h){if(e===i&&t===r&&s===a&&n===o){var l=a-e,c=o-t;return Math.sqrt(l*l+c*c)}var f=9*(i-s)+3*(a-e),d=6*(e+s)-12*i,_=3*(i-e),u=9*(r-n)+3*(o-t),g=6*(t+n)-12*r,p=3*(r-t);return I((function(e){var t=(f*e+d)*e+_,i=(u*e+g)*e+p;return Math.sqrt(t*t+i*i)}),0,1,h||P.RecursionLimit)},j=function(e,t,i,r,s,n,a,o){for(var h,l,c,f,d,_,u,g,p=[],m=[,[]],y=0;y<2;++y)if(0==y?(l=6*e-12*i+6*s,h=-3*e+9*i-9*s+3*a,c=3*i-3*e):(l=6*t-12*r+6*n,h=-3*t+9*r-9*n+3*o,c=3*r-3*t),Math.abs(h)<1e-12){if(Math.abs(l)<1e-12)continue;0<(f=-c/l)&&f<1&&p.push(f)}else u=l*l-4*c*h,g=Math.sqrt(u),u<0||(0<(d=(-l+g)/(2*h))&&d<1&&p.push(d),0<(_=(-l-g)/(2*h))&&_<1&&p.push(_));for(var v,b=p.length,x=b;b–;)v=1-(f=p),m[b]=v*v*v*e+3*v*v*f*i+3*v*f*f*s+f*f*f*a,m[b]=v*v*v*t+3*v*v*f*r+3*v*f*f*n+f*f*f*o;return m[x]=e,m[x]=t,m[x+1]=a,m[x+1]=o,m.length=m.length=x+2,{min:{x:Math.min.apply(0,m),y:Math.min.apply(0,m)},max:{x:Math.max.apply(0,m),y:Math.max.apply(0,m)}}},I=function(e,t,i,r){for(var s=P.abscissas,n=P.weights,a=.5*(i-t),o=a+t,h=0,l=r+1>>1,c=1&r?n*e(o):0;h<l;){var f=a*s;c+=n*(e(o+f)+e(o-f))}return a*c},N=function(e,i){for(var r=e.length,s=r-1,n=0;n<r;n++){var a=e;y.isObject(a.controls)||M.AppendCurveProperties(a);var o=i?d(n-1,r):Math.max(n-1,0),h=i?d(n+1,r):Math.min(n+1,s),l=e,c=a,f=e;B(l,c,f),c.command=0===n?t.move:t.curve}},B=function(e,t,i){var r=w.angleBetween(e,t),s=w.angleBetween(i,t),a=w.distanceBetween(e,t),o=w.distanceBetween(i,t),h=(r+s)/2;return a<1e-4||o<1e-4?(“boolean”!=typeof t.relative||t.relative||(t.controls.left.copy(t),t.controls.right.copy(t)),t):(a*=.33,o*=.33,s<r?h+=n:h-=n,t.controls.left.x=Math.cos(h)*a,t.controls.left.y=Math.sin(h)*a,h-=Math.PI,t.controls.right.x=Math.cos(h)*o,t.controls.right.y=Math.sin(h)*o,“boolean”!=typeof t.relative||t.relative||(t.controls.left.x+=t.x,t.controls.left.y+=t.y,t.controls.right.x+=t.x,t.controls.right.y+=t.y),t)},V=function(e,t,i){return new w(2*e.x-(t.x+e.x)-(i?e.x:0),2*e.y-(t.y+e.y)-(i?e.y:0))},z=Object.freeze({__proto__:null,Curve:P,getComponentOnCubicBezier:E,subdivide:C,getCurveLength:L,getCurveBoundingBox:j,integrate:I,getCurveFromPoints:N,getControlPoints:B,getReflection:V,getAnchorsFromArcData:function(e,i,r,s,n,a,o){for(var h=F.Resolution,l=0;l<h;l++){var c=(l+1)/h;o&&(c=1-c);var f=c*a+n,d=new M(r*Math.cos(f),s*Math.sin(f));M.AppendCurveProperties(d),d.command=t.line}}}),U=r.devicePixelRatio||1,D=function(e){return U/function(e){return e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1}(e)},X=Math.cos,Y=Math.sin,H=Math.tan,W=[];function G(e,t,i,r,s,n){this.elements=new _(9);var a=e;Array.isArray(a)||(a=Array.prototype.slice.call(arguments)),this.identity(),a.length>0&&this.set(a)}function q(){this.renderer={},this._renderer.flagMatrix=q.FlagMatrix.bind(this),this.isShape=!0,this.id=F.Identifier+F.uniqueId(),this.classList=[],this.matrix=new G,this.translation=new w,this.rotation=0,this.scale=1,this.skewX=0,this.skewY=0}function K(){Array.call(this),arguments&&Array.isArray(arguments)?arguments.length>0&&Array.prototype.push.apply(this,arguments):arguments.length>0&&Array.prototype.push.apply(this,arguments)}function J(e){K.apply(this,arguments),Object.defineProperty(this,“_events”,{value:{},enumerable:!1}),this.ids={},this.attach(Array.isArray(e)?e:Array.prototype.slice.call(arguments)),this.on(v.Types.insert,this.attach),this.on(v.Types.remove,this.detach)}o(G),y.extend(G,{Identity:,Multiply:function(e,t,i){if(t.length<=3){var r=e,s=t||0,n=t||0,a=t||0;return{x:r*s+r*n+r*a,y:r*s+r*n+r*a,z:r*s+r*n+r*a}}var o=e,h=e,l=e,c=e,f=e,d=e,u=e,g=e,p=e,m=t,y=t,v=t,b=t,x=t,k=t,w=t,A=t,S=t;return(i=i||new _(9))=o*m+h*b+l*w,i=o*y+h*x+l*A,i=o*v+h*k+l*S,i=c*m+f*b+d*w,i=c*y+f*x+d*A,i=c*v+f*k+d*S,i=u*m+g*b+p*w,i=u*y+g*x+p*A,i=u*v+g*k+p*S,i}}),y.extend(G.prototype,v,{constructor:G,manual:!1,set:function(e,t,i,r,s,n,a,o,h){var l;return void 0===t&&(e=(l=e),t=l,i=l,r=l,s=l,n=l,a=l,o=l,h=l),this.elements=e,this.elements=t,this.elements=i,this.elements=r,this.elements=s,this.elements=n,this.elements=a,this.elements=o,this.elements=h,this.trigger(v.Types.change)},copy:function(e){return this.elements=e.elements,this.elements=e.elements,this.elements=e.elements,this.elements=e.elements,this.elements=e.elements,this.elements=e.elements,this.elements=e.elements,this.elements=e.elements,this.elements=e.elements,this.manual=e.manual,this.trigger(v.Types.change)},identity:function(){return this.elements=G.Identity,this.elements=G.Identity,this.elements=G.Identity,this.elements=G.Identity,this.elements=G.Identity,this.elements=G.Identity,this.elements=G.Identity,this.elements=G.Identity,this.elements=G.Identity,this.trigger(v.Types.change)},multiply:function(e,t,i,r,s,n,a,o,h){if(void 0===t)return this.elements*=e,this.elements*=e,this.elements*=e,this.elements*=e,this.elements*=e,this.elements*=e,this.elements*=e,this.elements*=e,this.elements*=e,this.trigger(v.Types.change);if(void 0===r)return e=e||0,t=t||0,i=i||0,{x:(s=this.elements)*e+s*t+s*i,y:s*e+s*t+s*i,z:s*e+s*t+s*i};var l=this.elements,c=,f=l,d=l,_=l,u=l,g=l,p=l,m=l,y=l,b=l,x=c,k=c,w=c,A=c,S=c,R=c,M=c,T=c,O=c;return this.elements=f*x+d*A+_*M,this.elements=f*k+d*S+_*T,this.elements=f*w+d*R+_*O,this.elements=u*x+g*A+p*M,this.elements=u*k+g*S+p*T,this.elements=u*w+g*R+p*O,this.elements=m*x+y*A+b*M,this.elements=m*k+y*S+b*T,this.elements=m*w+y*R+b*O,this.trigger(v.Types.change)},inverse:function(e){var t=this.elements;e=e||new G;var i=t,r=t,s=t,n=t,a=t,o=t,h=t,l=t,c=t,f=c*a-o*l,d=-c*n+o*h,_=l*n-a*h,u=i*f+r*d+s*_;return u?(u=1/u,e.elements=f*u,e.elements=(-c*r+s*l)*u,e.elements=(o*r-s*a)*u,e.elements=d*u,e.elements=(c*i-s*h)*u,e.elements=(-o*i+s*n)*u,e.elements=_*u,e.elements=(-l*i+r*h)*u,e.elements=(a*i-r*n)*u,e):null},scale:function(e,t){var i=arguments.length;return i<=1&&(t=e),this.multiply(e,0,0,0,t,0,0,0,1)},rotate:function(e){var t=X(e),i=Y(e);return this.multiply(t,-i,0,i,t,0,0,0,1)},translate:function(e,t){return this.multiply(1,0,e,0,1,t,0,0,1)},skewX:function(e){var t=H(e);return this.multiply(1,t,0,0,1,0,0,0,1)},skewY:function(e){var t=H(e);return this.multiply(1,0,0,t,1,0,0,0,1)},toString:function(e){return W.length=0,this.toTransformArray(e,W),W.map(g).join(“ ”)},toTransformArray:function(e,t){var i=this.elements,r=!!t,s=i,n=i,a=i,o=i,h=i,l=i;if(e){var c=i,f=i,d=i;return r?(t=s,t=o,t=c,t=n,t=h,t=f,t=a,t=l,void(t=d)):}return r?(t=s,t=o,t=n,t=h,t=a,void(t=l)):},toArray:function(e,t){var i=this.elements,r=!!t,s=i,n=i,a=i,o=i,h=i,l=i;if(e){var c=i,f=i,d=i;return r?(t=s,t=n,t=a,t=o,t=h,t=l,t=c,t=f,void(t=d)):}return r?(t=s,t=n,t=a,t=o,t=h,void(t=l)):},toObject:function(){return{elements:this.toArray(!0),manual:!!this.manual}},clone:function(){return(new G).copy(this)}}),y.extend(q,{FlagMatrix:function(){this._flagMatrix=!0},MakeObservable:function(e){var t={enumerable:!1,get:function(){return this._translation},set:function(e){this._translation&&this._translation.unbind(v.Types.change,this._renderer.flagMatrix),this._translation=e,this._translation.bind(v.Types.change,this._renderer.flagMatrix),q.FlagMatrix.call(this)}};Object.defineProperty(e,“translation”,t),Object.defineProperty(e,“position”,t),Object.defineProperty(e,“rotation”,{enumerable:!0,get:function(){return this._rotation},set:function(e){this._rotation=e,this._flagMatrix=!0}}),Object.defineProperty(e,“scale”,{enumerable:!0,get:function(){return this._scale},set:function(e){this._scale instanceof w&&this._scale.unbind(v.Types.change,this._renderer.flagMatrix),this._scale=e,this._scale instanceof w&&this._scale.bind(v.Types.change,this._renderer.flagMatrix),this._flagMatrix=!0,this._flagScale=!0}}),Object.defineProperty(e,“skewX”,{enumerable:!0,get:function(){return this._skewX},set:function(e){this._skewX=e,this._flagMatrix=!0}}),Object.defineProperty(e,“skewY”,{enumerable:!0,get:function(){return this._skewY},set:function(e){this._skewY=e,this._flagMatrix=!0}}),Object.defineProperty(e,“matrix”,{enumerable:!0,get:function(){return this._matrix},set:function(e){this._matrix=e,this._flagMatrix=!0}}),Object.defineProperty(e,“id”,{enumerable:!0,get:function(){return this._id},set:function(e){var t=this._id;e!==this._id&&(this._id=e,this._flagId=!0,this.parent&&(delete this.parent.children.ids,this.parent.children.ids=this))}}),Object.defineProperty(e,“className”,{enumerable:!0,get:function(){return this._className},set:function(e){if(this._flagClassName=this._className!==e,this._flagClassName){for(var t=this._className.split(/s+?/),i=e.split(/s+?/),r=0;r<t.length;r++){var s=t,n=Array.prototype.indexOf.call(this.classList,s);n>=0&&this.classList.splice(n,1)}this.classList=this.classList.concat(i)}this._className=e}}),Object.defineProperty(e,“renderer”,{enumerable:!1,get:function(){return this._renderer},set:function(e){this._renderer=e}})}}),y.extend(q.prototype,v,{constructor:q,_flagId:!0,_flagMatrix:!0,_flagScale:!1,_flagClassName:!1,_id:“”,_translation:null,_rotation:0,_scale:1,_skewX:0,_skewY:0,_className:“”,addTo:function(e){return e.add(this),this},clone:function(e){var t=new q;return t.translation.copy(this.translation),t.rotation=this.rotation,t.scale=this.scale,t.skewX=this.skewX,t.skewY=this.skewY,this.matrix.manual&&t.matrix.copy(this.matrix),e&&e.add(t),t._update()},_update:function(e){return!this._matrix.manual&&this._flagMatrix&&(this._matrix.identity().translate(this.translation.x,this.translation.y),this._scale instanceof w?this._matrix.scale(this._scale.x,this._scale.y):this._matrix.scale(this._scale),this._matrix.rotate(this.rotation),this._matrix.skewX(this.skewX),this._matrix.skewY(this.skewY)),e&&this.parent&&this.parent._update&&this.parent._update(),this},flagReset:function(){return this._flagId=this._flagMatrix=this._flagScale=this._flagClassName=!1,this}}),q.MakeObservable(q.prototype),K.prototype=new Array,y.extend(K.prototype,v,{constructor:K,pop:function(){var e=Array.prototype.pop.apply(this,arguments);return this.trigger(v.Types.remove,),e},shift:function(){var e=Array.prototype.shift.apply(this,arguments);return this.trigger(v.Types.remove,),e},push:function(){var e=Array.prototype.push.apply(this,arguments);return this.trigger(v.Types.insert,arguments),e},unshift:function(){var e=Array.prototype.unshift.apply(this,arguments);return this.trigger(v.Types.insert,arguments),e},splice:function(){var e,t=Array.prototype.splice.apply(this,arguments);return this.trigger(v.Types.remove,t),arguments.length>2&&(e=this.slice(arguments,arguments+arguments.length-2),this.trigger(v.Types.insert,e),this.trigger(v.Types.order)),t},sort:function(){return Array.prototype.sort.apply(this,arguments),this.trigger(v.Types.order),this},reverse:function(){return Array.prototype.reverse.apply(this,arguments),this.trigger(v.Types.order),this},indexOf:function(){return Array.prototype.indexOf.apply(this,arguments)}}),J.prototype=new K,y.extend(J.prototype,{constructor:J,attach:function(e){for(var t=0;t<e.length;t++){var i=e;i&&i.id&&(this.ids=i)}return this},detach:function(e){for(var t=0;t<e.length;t++)delete this.ids[e.id];return this}});var $=Math.min,Z=Math.max;function Q(e){q.call(this,!0),this._renderer.type=“group”,this.additions=[],this.subtractions=,this.children=Array.isArray(e)?e:Array.prototype.slice.call(arguments)}function ee(e,t){var i,r=e.parent;function s(){t.subtractions.length>0&&(i=Array.prototype.indexOf.call(t.subtractions,e))>=0&&t.subtractions.splice(i,1),t.additions.length>0&&(i=Array.prototype.indexOf.call(t.additions,e))>=0&&t.additions.splice(i,1),e.parent=t,t.additions.push(e),t._flagAdditions=!0}function n(){(i=Array.prototype.indexOf.call(r.additions,e))>=0&&r.additions.splice(i,1),(i=Array.prototype.indexOf.call(r.subtractions,e))<0&&(r.subtractions.push(e),r._flagSubtractions=!0)}r!==t?(r&&r.children.ids&&(i=Array.prototype.indexOf.call(r.children,e),r.children.splice(i,1),n()),t?s():(n(),r._flagAdditions&&0===r.additions.length&&(r._flagAdditions=!1),r._flagSubtractions&&0===r.subtractions.length&&(r._flagSubtractions=!1),delete e.parent)):s()}y.extend(Q,{Children:J,InsertChildren:function(e){for(var t=0;t ).x,L=x.y,x.command){case t.close:e.closePath();break;case t.arc:var D=x.rx,X=x.ry,Y=x.xAxisRotation,H=x.largeArcFlag,W=x.sweepFlag,G=(b=g).x,q=b.y;fe.renderSvgArcCommand(e,G,q,D,X,H,W,Y,C,L);break;case t.curve:v=u?d(U-1,p):Math.max(U-1,0),y=u?d(U+1,p):Math.min(U+1,m),b=g,k=g,O=b.controls&&b.controls.right||w.zero,F=x.controls&&x.controls.left||w.zero,b._relative?(M=O.x+b.x,T=O.y+b.y):(M=O.x,T=O.y),x._relative?(S=F.x+x.x,R=F.y+x.y):(S=F.x,R=F.y),e.bezierCurveTo(M,T,S,R,C,L),U>=m&&u&&(k=A,P=x.controls&&x.controls.right||w.zero,E=k.controls&&k.controls.left||w.zero,x._relative?(M=P.x+x.x,T=P.y+x.y):(M=P.x,T=P.y),k._relative?(S=E.x+k.x,R=E.y+k.y):(S=E.x,R=E.y),C=k.x,L=k.y,e.bezierCurveTo(M,T,S,R,C,L));break;case t.line:e.lineTo(C,L);break;case t.move:A=x,e.moveTo(C,L)}return u&&e.closePath(),I||r||(fe.isHidden.test(o)||((B=o._renderer&&o._renderer.offset)&&(e.save(),e.translate(-o._renderer.offset.x,-o._renderer.offset.y),e.scale(o._renderer.scale.x,o._renderer.scale.y)),e.fill(),B&&e.restore()),fe.isHidden.test(n)||((B=n._renderer&&n._renderer.offset)&&(e.save(),e.translate(-n._renderer.offset.x,-n._renderer.offset.y),e.scale(n._renderer.scale.x,n._renderer.scale.y),e.lineWidth=a/n._renderer.scale.x),e.stroke(),B&&e.restore())),N||e.restore(),I&&!r&&e.clip(),V&&V.length>0&&e.setLineDash(ie),this.flagReset()}},points:{render:function(e,t,i){var r,n,o,l,c,f,d,_,u,g,p,m,y,v,b,x;if(x=this.parent&&this.parent._renderer?this.parent._renderer.opacity:1,c=this._opacity*(x||1),f=this._visible,!(t||f&&0!==c))return this;this._update(),r=this._matrix.elements,n=this._stroke,o=this._linewidth,l=this._fill,u=(_=this._renderer.collection).length,y=ce®,b=this.dashes,d=this._size,y||(e.save(),e.transform(r,r,r,r,r,r)),l&&(“string”==typeof l?e.fillStyle=l:(fe.render.call(l,e),e.fillStyle=l._renderer.effect)),n&&(“string”==typeof n?e.strokeStyle=n:(fe.render.call(n,e),e.strokeStyle=n._renderer.effect),o&&(e.lineWidth=o)),“number”==typeof c&&(e.globalAlpha=c),b&&b.length>0&&(e.lineDashOffset=b.offset||0,e.setLineDash(b)),e.beginPath();var k,w=.5*d;this._sizeAttenuation||(h(this,te),k=te.elements,k=a(k,k,k,k,k,k),w/=Math.max(k.scaleX,k.scaleY));for(var A=0;A).x,m=g.y,e.moveTo(p+w,m),e.arc(p,m,w,0,s);return i||(fe.isHidden.test(l)||((v=l._renderer&&l._renderer.offset)&&(e.save(),e.translate(-l._renderer.offset.x,-l._renderer.offset.y),e.scale(l._renderer.scale.x,l._renderer.scale.y)),e.fill(),v&&e.restore()),fe.isHidden.test(n)||((v=n._renderer&&n._renderer.offset)&&(e.save(),e.translate(-n._renderer.offset.x,-n._renderer.offset.y),e.scale(n._renderer.scale.x,n._renderer.scale.y),e.lineWidth=o/n._renderer.scale.x),e.stroke(),v&&e.restore())),y||e.restore(),b&&b.length>0&&e.setLineDash(ie),this.flagReset()}},text:{render:function(e,t,i){var r=this.parent&&this.parent._renderer?this.parent._renderer.opacity:1,s=this._opacity*r,n=this._visible,a=this._mask,o=this._clip;if(!t&&(!n||o||0===s))return this;this._update();var h,l,c,f,d,_,u,g,p,m,y,v=this._matrix.elements,b=this._stroke,x=this._linewidth,k=this._fill,w=this._decoration,A=ce(v),S=k._renderer&&k._renderer.offset&&b._renderer&&b._renderer.offset,R=this.dashes,M=fe.alignments||this._alignment,T=this._baseline;if(A||(e.save(),e.transform(v,v,v,v,v,v)),a&&fe.render.call(a,e,!0),S||(e.font=[this._style,this._weight,this._size+“px/”this._leading
“px”,this._family].join(“ ”)),e.textAlign=M,e.textBaseline=T,k&&(“string”==typeof k?e.fillStyle=k:(fe.render.call(k,e),e.fillStyle=k._renderer.effect)),b&&(“string”==typeof b?e.strokeStyle=b:(fe.render.call(b,e),e.strokeStyle=b._renderer.effect),x&&(e.lineWidth=x)),“number”==typeof s&&(e.globalAlpha=s),R&&R.length>0&&(e.lineDashOffset=R.offset||0,e.setLineDash(R)),o||i||(fe.isHidden.test(k)||(k._renderer&&k._renderer.offset?(_=k._renderer.scale.x,u=k._renderer.scale.y,e.save(),e.translate(-k._renderer.offset.x,-k._renderer.offset.y),e.scale(_,u),h=this._size/k._renderer.scale.y,l=this._leading/k._renderer.scale.y,e.font=.join(“ ”),c=k._renderer.offset.x/k._renderer.scale.x,f=k._renderer.offset.y/k._renderer.scale.y,e.fillText(this.value,c,f),e.restore()):e.fillText(this.value,0,0)),fe.isHidden.test(b)||(b._renderer&&b._renderer.offset?(_=b._renderer.scale.x,u=b._renderer.scale.y,e.save(),e.translate(-b._renderer.offset.x,-b._renderer.offset.y),e.scale(_,u),h=this._size/b._renderer.scale.y,l=this._leading/b._renderer.scale.y,e.font=.join(“ ”),c=b._renderer.offset.x/b._renderer.scale.x,f=b._renderer.offset.y/b._renderer.scale.y,d=x/b._renderer.scale.x,e.lineWidth=d,e.strokeText(this.value,c,f),e.restore()):e.strokeText(this.value,0,0))),/(underline|strikethrough)/i.test(w)){var O=e.measureText(this.value),F=1;switch(w){case“underline”:p=O.actualBoundingBoxAscent,y=O.actualBoundingBoxAscent;break;case“strikethrough”:p=0,y=0,F=.5}switch(T){case“top”:p+=this._size*F,y+=this._size*F;break;case“baseline”:case“bottom”:p-=this._size*F,y-=this._size*F}switch(M){case“left”:case“start”:g=0,m=O.width;break;case“right”:case“end”:g=-O.width,m=0;break;default:g=-O.width/2,m=O.width/2}e.lineWidth=Math.max(Math.floor(this._size/15),1),e.strokeStyle=e.fillStyle,e.beginPath(),e.moveTo(g,p),e.lineTo(m,y),e.stroke()}return A||e.restore(),o&&!i&&e.clip(),R&&R.length>0&&e.setLineDash(ie),this.flagReset()}},“linear-gradient”:{render:function(e){if(this._update(),!this._renderer.effect||this._flagEndPoints||this._flagStops){this._renderer.effect=e.createLinearGradient(this.left._x,this.left._y,this.right._x,this.right._y);for(var t=0;t<this.stops.length;t++){var i=this.stops;this._renderer.effect.addColorStop(i._offset,i._color)}}return this.flagReset()}},“radial-gradient”:{render:function(e){if(this._update(),!this._renderer.effect||this._flagCenter||this._flagFocal||this._flagRadius||this._flagStops){this._renderer.effect=e.createRadialGradient(this.center._x,this.center._y,0,this.focal._x,this.focal._y,this._radius);for(var t=0;t<this.stops.length;t++){var i=this.stops;this._renderer.effect.addColorStop(i._offset,i._color)}}return this.flagReset()}},texture:{render:function(e){this._update();var t=this.image;return(!this._renderer.effect||(this._flagLoaded||this._flagImage||this._flagVideo||this._flagRepeat)&&this.loaded)&&(this._renderer.effect=e.createPattern(this.image,this._repeat)),(this._flagOffset||this._flagLoaded||this._flagScale)&&(this._renderer.offset instanceof w||(this._renderer.offset=new w),this._renderer.offset.x=-this._offset.x,this._renderer.offset.y=-this._offset.y,t&&(this._renderer.offset.x+=t.width/2,this._renderer.offset.y+=t.height/2,this._scale instanceof w?(this._renderer.offset.x*=this._scale.x,this._renderer.offset.y*=this._scale.y):(this._renderer.offset.x*=this._scale,this._renderer.offset.y*=this._scale))),(this._flagScale||this._flagLoaded)&&(this._renderer.scale instanceof w||(this._renderer.scale=new w),this._scale instanceof w?this._renderer.scale.copy(this._scale):this._renderer.scale.set(this._scale,this._scale)),this.flagReset()}},renderSvgArcCommand:function(e,t,i,r,n,a,o,h,l,c){h=h*Math.PI/180,r=ne®,n=ne(n);var f=(t-l)/2,_=(i-c)/2,u=oe(h)*f+ae(h)*_,g=-ae(h)*f+oe(h)*_,p=r*r,m=n*n,y=u*u,v=g*g,b=y/p+v/m;if(b>1){var x=le(b);p=(r*=x)*r,m=(n*=x)*n}var k=p*v+m*y,w=le(re(0,(p*m-k)/k));a===o&&(w=-w);var A=w*r*g/n,S=-w*n*u/r,R=oe(h)*A-ae(h)*S+(t+l)/2,M=ae(h)*A+oe(h)*S+(i+c)/2,T=_e(1,0,(u-A)/r,(g-S)/n);!function(e,t,i,r,n,a,o,h,l){var c=P.Tolerance.epsilon,f=o-a,_=Math.abs(f)<c;(f=d(f,s))<c&&(f=_?0:s);!0!==h||_||(f===s?f=-s:f-=s);for(var u=0;u<F.Resolution;u++){var g=a+u/(F.Resolution-1)*f,p=t+r*Math.cos(g),m=i+n*Math.sin(g);if(0!==l){var y=Math.cos(l),v=Math.sin(l),b=p-t,x=m-i;p=b*y-x*v+t,m=b*v+x*y+i}e.lineTo(p,m)}}(e,R,M,r,n,T,T+_e((u-A)/r,(g-S)/n,(-u-A)/r,(-g-S)/n)%s,0===o,h)}};function de(e){var t=!1!==e.smoothing;this.domElement=e.domElement||document.createElement(“canvas”),this.ctx=this.domElement.getContext(“2d”),this.overdraw=e.overdraw||!1,void 0!==this.ctx.imageSmoothingEnabled&&(this.ctx.imageSmoothingEnabled=t),this.scene=new Q,this.scene.parent=this}function _e(e,t,i,r){var s=e*i+t*r,n=le(e*e+t*t)*le(i*i+r*r),a=he(re(-1,se(1,s/n)));return e*r-t*i<0&&(a=-a),a}y.extend(de,{Utils:fe}),y.extend(de.prototype,v,{constructor:de,setSize:function(e,t,i){return this.width=e,this.height=t,this.ratio=void 0===i?D(this.ctx):i,this.domElement.width=e*this.ratio,this.domElement.height=t*this.ratio,this.domElement.style&&y.extend(this.domElement.style,{width:e+“px”,height:t+“px”}),this.trigger(v.Types.resize,e,t,i)},render:function(){var e=1===this.ratio;return e||(this.ctx.save(),this.ctx.scale(this.ratio,this.ratio)),this.overdraw||this.ctx.clearRect(0,0,this.width,this.height),fe.group.render.call(this.scene,this.ctx),e||this.ctx.restore(),this}});var ue={Image:null,isHeadless:!1,shim:function(e,t){return de.Utils.shim(e),void 0!==t&&(ue.Image=t),ue.isHeadless=!0,e}},ge={hasEventListeners:“function”==typeof r.addEventListener,bind:function(e,t,i,r){return this.hasEventListeners?e.addEventListener(t,i,!!r):e.attachEvent(“on”+t,i),ge},unbind:function(e,t,i,r){return ge.hasEventListeners?e.removeEventListeners(t,i,!!r):e.detachEvent(“on”+t,i),ge},getRequestAnimationFrame:function(){var e,t=0,i=,s=r.requestAnimationFrame;if(!s){for(var n=0;nDate
).getTime(),n=Math.max(0,16-(s-t)),a=r.setTimeout((function(){e(s+n)}),n);return t=s+n,a}}return s}},pe=r.document?r.document.createElement(“div”):{};function me(e){this.name=“Two.js”,this.message=e}pe.id=“help-two-load”,Object.defineProperty(ge,“temp”,{enumerable:!0,get:function(){return y.isElement(pe)&&!r.document.head.contains(pe)&&(y.extend(pe.style,{display:“none”}),r.document.head.appendChild(pe)),pe}}),me.prototype=new Error,y.extend(me.prototype,{constructor:me});var ye,ve=function(e){var t=“_”+e,i=“_flag”+e.charAt(0).toUpperCase()+e.slice(1);Object.defineProperty(this,e,{enumerable:!0,get:function(){return this},set:function(e){this=e,this=!0}})};function be(){this.map={}}function xe(e,t,i){this.renderer={},this._renderer.type=“stop”,this.offset=“number”==typeof e?e:xe.Index<=0?0:1,this.opacity=“number”==typeof i?i:1,this.color=“string”==typeof t?t:xe.Index<=0?“#fff”:“#000”,xe.Index=(xe.Index+1)%2}function ke(e){this.renderer={},this._renderer.type=“gradient”,this.id=F.Identifier+F.uniqueId(),this.classList=[],this._renderer.flagStops=ke.FlagStops.bind(this),this._renderer.bindStops=ke.BindStops.bind(this),this._renderer.unbindStops=ke.UnbindStops.bind(this),this.spread=“pad”,e&&(this.stops=e)}function we(e,t,i,r,s){ke.call(this,s),this._renderer.type=“linear-gradient”;var n=we.FlagEndPoints.bind(this);this.left=(new w).bind(v.Types.change,n),this.right=(new w).bind(v.Types.change,n),“number”==typeof e&&(this.left.x=e),“number”==typeof t&&(this.left.y=t),“number”==typeof i&&(this.right.x=i),“number”==typeof r&&(this.right.y=r)}function Ae(e,t,i,r,s,n){ke.call(this,r),this._renderer.type=“radial-gradient”,this.center=(new w).bind(v.Types.change,function(){this._flagCenter=!0}.bind(this)),this.radius=“number”==typeof i?i:20,this.focal=(new w).bind(v.Types.change,function(){this._flagFocal=!0}.bind(this)),“number”==typeof e&&(this.center.x=e),“number”==typeof t&&(this.center.y=t),this.focal.copy(this.center),“number”==typeof s&&(this.focal.x=s),“number”==typeof n&&(this.focal.y=n)}y.extend(be.prototype,{constructor:be,add:function(e,t){return this.map=t,this},remove:function(e){return delete this.map,this},get:function(e){return this.map},contains:function(e){return e in this.map}}),y.extend(xe,{Index:0,Properties:,MakeObservable:function(e){y.each(xe.Properties,(function(e){var t=“_”+e,i=“_flag”+e.charAt(0).toUpperCase()+e.slice(1);Object.defineProperty(this,e,{enumerable:!0,get:function(){return this},set:function(e){this=e,this=!0,this.parent&&(this.parent._flagStops=!0)}})}),e),Object.defineProperty(e,“renderer”,{enumerable:!1,get:function(){return this._renderer},set:function(e){this._renderer=e}})}}),y.extend(xe.prototype,v,{constructor:xe,clone:function(){var e=new xe;return y.each(xe.Properties,(function(t){e=this}),this),e},toObject:function(){var e={};return y.each(xe.Properties,(function(t){e=this}),this),e},flagReset:function(){return this._flagOffset=this._flagColor=this._flagOpacity=!1,this}}),xe.MakeObservable(xe.prototype),y.extend(ke,{Stop:xe,Properties:,MakeObservable:function(e){y.each(ke.Properties,ve,e),Object.defineProperty(e,“stops”,{enumerable:!0,get:function(){return this._stops},set:function(e){var t=this._renderer.bindStops,i=this._renderer.unbindStops;this._stops&&this._stops.unbind(v.Types.insert,t).unbind(v.Types.remove,i),this._stops=new K((e||[]).slice(0)),this._stops.bind(v.Types.insert,t).bind(v.Types.remove,i),t(this._stops)}}),Object.defineProperty(e,“renderer”,{enumerable:!1,get:function(){return this._renderer},set:function(e){this._renderer=e}}),Object.defineProperty(e,“id”,{enumerable:!0,get:function(){return this._id},set:function(e){this._id=e}})},FlagStops:function(){this._flagStops=!0},BindStops:function(e){for(var t=e.length;t–;)e.bind(v.Types.change,this._renderer.flagStops),e.parent=this;this._renderer.flagStops()},UnbindStops:function(e){for(var t=e.length;t–;)e.unbind(v.Types.change,this._renderer.flagStops),delete e.parent;this._renderer.flagStops()}}),y.extend(ke.prototype,v,{constructor:ke,_flagId:!1,_flagStops:!1,_flagSpread:!1,_id:“”,clone:function(e){var t=new ke(this.stops.map((function(e){return e.clone()})));return y.each(ke.Properties,(function(e){t=this}),this),e&&e.add(t),t},toObject:function(){var e={stops:this.stops.map((function(e){return e.toObject()}))};return y.each(ke.Properties,(function(t){e=this}),this),e},_update:function(){return(this._flagSpread||this._flagStops)&&this.trigger(v.Types.change),this},flagReset:function(){return this._flagSpread=this._flagStops=!1,this}}),ke.MakeObservable(ke.prototype),y.extend(we,{Stop:xe,MakeObservable:function(e){ke.MakeObservable(e)},FlagEndPoints:function(){this._flagEndPoints=!0}}),y.extend(we.prototype,ke.prototype,{constructor:we,_flagEndPoints:!1,clone:function(e){var t=this.stops.map((function(e){return e.clone()})),i=new we(this.left._x,this.left._y,this.right._x,this.right._y,t);return y.each(ke.Properties,(function(e){i=this}),this),e&&e.add(i),i},toObject:function(){var e=ke.prototype.toObject.call(this);return e.left=this.left.toObject(),e.right=this.right.toObject(),e},_update:function(){return(this._flagEndPoints||this._flagSpread||this._flagStops)&&this.trigger(v.Types.change),this},flagReset:function(){return this._flagEndPoints=!1,ke.prototype.flagReset.call(this),this}}),we.MakeObservable(we.prototype),y.extend(Ae,{Stop:xe,Properties:,MakeObservable:function(e){ke.MakeObservable(e),y.each(Ae.Properties,ve,e)}}),y.extend(Ae.prototype,ke.prototype,{constructor:Ae,_flagRadius:!1,_flagCenter:!1,_flagFocal:!1,clone:function(e){var t=this.stops.map((function(e){return e.clone()})),i=new Ae(this.center._x,this.center._y,this._radius,t,this.focal._x,this.focal._y);return y.each(ke.Properties.concat(Ae.Properties),(function(e){i=this}),this),e&&e.add(i),i},toObject:function(){var e=ke.prototype.toObject.call(this);return y.each(Ae.Properties,(function(t){e=this}),this),e.center=this.center.toObject(),e.focal=this.focal.toObject(),e},_update:function(){return(this._flagRadius||this._flatCenter||this._flagFocal||this._flagSpread||this._flagStops)&&this.trigger(v.Types.change),this},flagReset:function(){return this._flagRadius=this._flagCenter=this._flagFocal=!1,ke.prototype.flagReset.call(this),this}}),Ae.MakeObservable(Ae.prototype);var Se={video:/.(mp4|webm|ogg)$/i,image:/.(jpe?g|png|gif|tiff|webp)$/i,effect:/texture|gradient/i};function Re(e,t){if(this.renderer={},this._renderer.type=“texture”,this._renderer.flagOffset=Re.FlagOffset.bind(this),this._renderer.flagScale=Re.FlagScale.bind(this),this.id=F.Identifier+F.uniqueId(),this.classList=[],this.loaded=!1,this.repeat=“no-repeat”,this.offset=new w,“function”==typeof t){var i=function(){this.unbind(v.Types.load,i),“function”==typeof t&&t()}.bind(this);this.bind(v.Types.load,i)}if(“string”==typeof e)this.src=e;else if(“object”==typeof e){var r=Object.prototype.toString.call(e);“[object HTMLImageElement]”!==r&&“[object HTMLCanvasElement]”!==r&&“[object HTMLVideoElement]”!==r&&“[object Image]”!==r||(this.image=e)}this._update()}r.document&&(ye=document.createElement(“a”)),y.extend(Re,{Properties:,RegularExpressions:Se,ImageRegistry:new be,getAbsoluteURL:function(e){return ye?(ye.href=e,ye.href):e},loadHeadlessBuffer:function(e,t){e.image.onload=t,e.image.src=e.src},getTag:function(e){return e&&e.nodeName&&e.nodeName.toLowerCase()||“img”},getImage:function(e){var t,i=Re.getAbsoluteURL(e);return Re.ImageRegistry.contains(i)?Re.ImageRegistry.get(i):(ue.Image?(t=new ue.Image,de.Utils.shim(t,“img”)):r.document?t=Se.video.test(i)?document.createElement(“video”):document.createElement(“img”):console.warn(“Two.js: no prototypical image defined for Two.Texture”),t.crossOrigin=“anonymous”,t)},Register:{canvas:function(e,t){e._src=“#”+e.id,Re.ImageRegistry.add(e.src,e.image),“function”==typeof t&&t()},img:function(e,t){var i=e.image,r=function(e){!ue.isHeadless&&i.removeEventListener&&“function”==typeof i.removeEventListener&&(i.removeEventListener(“load”,r,!1),i.removeEventListener(“error”,s,!1)),“function”==typeof t&&t()},s=function(t){throw ue.isHeadless||“function”!=typeof i.removeEventListener||(i.removeEventListener(“load”,r,!1),i.removeEventListener(“error”,s,!1)),new me(“unable to load ”+e.src)};“number”==typeof i.width&&i.width>0&&“number”==typeof i.height&&i.height>0?r():ue.isHeadless||“function”!=typeof i.addEventListener||(i.addEventListener(“load”,r,!1),i.addEventListener(“error”,s,!1)),e._src=Re.getAbsoluteURL(e._src),!ue.isHeadless&&i&&i.getAttribute(“two-src”)||(ue.isHeadless||i.setAttribute(“two-src”,e.src),Re.ImageRegistry.add(e.src,i),ue.isHeadless?Re.loadHeadlessBuffer(e,r):e.image.src=e.src)},video:function(e,t){if(ue.isHeadless)throw new me(“video textures are not implemented in headless environments.”);var i=function(s){e.image.removeEventListener(“canplaythrough”,i,!1),e.image.removeEventListener(“error”,r,!1),e.image.width=e.image.videoWidth,e.image.height=e.image.videoHeight,“function”==typeof t&&t()},r=function(t){throw e.image.removeEventListener(“canplaythrough”,i,!1),e.image.removeEventListener(“error”,r,!1),new me(“unable to load ”+e.src)};e._src=Re.getAbsoluteURL(e._src),e.image.getAttribute(“two-src”)||(e.image.setAttribute(“two-src”,e.src),Re.ImageRegistry.add(e.src,e.image)),e.image.readyState>=4?i():(e.image.addEventListener(“canplaythrough”,i,!1),e.image.addEventListener(“error”,r,!1),e.image.src=e.src,e.image.load())}},load:function(e,t){var i=e.image,r=Re.getTag(i);e._flagImage&&(/canvas/i.test®?Re.Register.canvas(e,t):(e._src=!ue.isHeadless&&i.getAttribute(“two-src”)||i.src,Re.Register(e,t))),e._flagSrc&&(i||(i=Re.getImage(e.src),e.image=i),r=Re.getTag(i),Re.Register(e,t))},FlagOffset:function(){this._flagOffset=!0},FlagScale:function(){this._flagScale=!0},MakeObservable:function(e){y.each(Re.Properties,ve,e),Object.defineProperty(e,“image”,{enumerable:!0,get:function(){return this._image},set:function(e){var t;switch(Re.getTag(e)){case“canvas”:t=“#”+e.id;break;default:t=e.src}Re.ImageRegistry.contains(t)?this._image=Re.ImageRegistry.get(e.src):this._image=e,this._flagImage=!0}}),Object.defineProperty(e,“offset”,{enumerable:!0,get:function(){return this._offset},set:function(e){this._offset&&this._offset.unbind(v.Types.change,this._renderer.flagOffset),this._offset=e,this._offset.bind(v.Types.change,this._renderer.flagOffset),this._flagOffset=!0}}),Object.defineProperty(e,“scale”,{enumerable:!0,get:function(){return this._scale},set:function(e){this._scale instanceof w&&this._scale.unbind(v.Types.change,this._renderer.flagScale),this._scale=e,this._scale instanceof w&&this._scale.bind(v.Types.change,this._renderer.flagScale),this._flagScale=!0}}),Object.defineProperty(e,“renderer”,{enumerable:!1,get:function(){return this._renderer},set:function(e){this._renderer=e}})}}),y.extend(Re.prototype,v,q.prototype,{constructor:Re,_flagId:!1,_flagSrc:!1,_flagImage:!1,_flagVideo:!1,_flagLoaded:!1,_flagRepeat:!1,_flagOffset:!1,_flagScale:!1,_id:“”,_src:“”,_image:null,_loaded:!1,_repeat:“no-repeat”,_scale:1,_offset:null,clone:function(){var e=new Re(this.src);return e.repeat=this.repeat,e.offset.copy(this.origin),e.scale=this.scale,e},toObject:function(){return{src:this.src,repeat:this.repeat,origin:this.origin.toObject(),scale:“number”==typeof this.scale?this.scale:this.scale.toObject()}},_update:function(){return(this._flagSrc||this._flagImage)&&(this.trigger(v.Types.change),(this._flagSrc||this._flagImage)&&(this.loaded=!1,Re.load(this,function(){this.loaded=!0,this.trigger(v.Types.change).trigger(v.Types.load)}.bind(this)))),this._image&&this._image.readyState>=4&&(this._flagVideo=!0),this},flagReset:function(){return this._flagSrc=this._flagImage=this._flagLoaded=this._flagVideo=this._flagScale=this._flagOffset=!1,this}}),Re.MakeObservable(Re.prototype);var Me=Math.min,Te=Math.max,Oe=Math.ceil,Fe=Math.floor;function Pe(e,t,i,r){q.call(this),this._renderer.type=“path”,this._renderer.flagVertices=Pe.FlagVertices.bind(this),this._renderer.bindVertices=Pe.BindVertices.bind(this),this._renderer.unbindVertices=Pe.UnbindVertices.bind(this),this._renderer.flagFill=Pe.FlagFill.bind(this),this._renderer.flagStroke=Pe.FlagStroke.bind(this),this._renderer.vertices=[],this._renderer.collection=,this._closed=!!t,this._curved=!!i,this.beginning=0,this.ending=1,this.fill=“#fff”,this.stroke=“#000”,this.linewidth=1,this.opacity=1,this.className=“”,this.visible=!0,this.cap=“butt”,this.join=“miter”,this.miter=4,this.vertices=e,this.automatic=!r,this.dashes=[],this.dashes.offset=0}function Ee(e,t){if(0===t||1===t)return!0;for(var i=e._length*t,r=0,s=0;s<e._lengths.length;s++){var n=e._lengths;if(r>=i)return i-r>=0;r+=n}return!1}function Ce(e,t){var i=e._length;if(t<=0)return 0;if(t>=i)return e._lengths.length-1;for(var r=0,s=0;r<e._lengths.length;r++){if(s+e._lengths>=t)return t-=s,Math.max(r-1,0)+t/e._lengths;s+=e._lengths}return-1}function Le(e,t,i){var r,s,n,a,o,h,l,c,f=t.controls&&t.controls.right,d=e.controls&&e.controls.left;return r=t.x,o=t.y,s=(f||t).x,h=(f||t).y,n=(d||e).x,l=(d||e).y,a=e.x,c=e.y,f&&t._relative&&(s+=t.x,h+=t.y),d&&e._relative&&(n+=e.x,l+=e.y),L(r,o,s,h,n,l,a,c,i)}function je(e,t,i){var r,s,n,a,o,h,l,c,f=t.controls&&t.controls.right,d=e.controls&&e.controls.left;return r=t.x,o=t.y,s=(f||t).x,h=(f||t).y,n=(d||e).x,l=(d||e).y,a=e.x,c=e.y,f&&t._relative&&(s+=t.x,h+=t.y),d&&e._relative&&(n+=e.x,l+=e.y),C(r,o,s,h,n,l,a,c,i)}function Ie(e,t,i,r){Pe.call(this,[new M,new M,new M,new M],!0,!1,!0),this.width=i,this.height=r,this.origin=new w,this.translation.set(e,t),this._update()}function Ne(e,t,i,r,s,n){Pe.call(this,[new M,new M,new M,new M],!0),this.noStroke(),this.noFill(),e instanceof Re?this.texture=e:“string”==typeof e&&(this.texture=new Re(e)),this.origin=new w,this._update(),this.translation.set(t||0,i||0),“number”==typeof r&&(this.columns=r),“number”==typeof s&&(this.rows=s),“number”==typeof n&&(this.frameRate=n),this.index=0}y.extend(Pe,{Properties:,Utils:{getCurveLength:Le},FlagVertices:function(){this._flagVertices=!0,this._flagLength=!0,this.parent&&(this.parent._flagLength=!0)},BindVertices:function(e){for(var t=e.length;t–;)e.bind(v.Types.change,this._renderer.flagVertices);this._renderer.flagVertices()},UnbindVertices:function(e){for(var t=e.length;t–;)e.unbind(v.Types.change,this._renderer.flagVertices);this._renderer.flagVertices()},FlagFill:function(){this._flagFill=!0},FlagStroke:function(){this._flagStroke=!0},MakeObservable:function(e){q.MakeObservable(e),y.each(Pe.Properties.slice(2,8),ve,e),Object.defineProperty(e,“fill”,{enumerable:!0,get:function(){return this._fill},set:function(e){(this._fill instanceof ke||this._fill instanceof we||this._fill instanceof Ae||this._fill instanceof Re)&&this._fill.unbind(v.Types.change,this._renderer.flagFill),this._fill=e,this._flagFill=!0,(this._fill instanceof ke||this._fill instanceof we||this._fill instanceof Ae||this._fill instanceof Re)&&this._fill.bind(v.Types.change,this._renderer.flagFill)}}),Object.defineProperty(e,“stroke”,{enumerable:!0,get:function(){return this._stroke},set:function(e){(this._stroke instanceof ke||this._stroke instanceof we||this._stroke instanceof Ae||this._stroke instanceof Re)&&this._stroke.unbind(v.Types.change,this._renderer.flagStroke),this._stroke=e,this._flagStroke=!0,(this._stroke instanceof ke||this._stroke instanceof we||this._stroke instanceof Ae||this._stroke instanceof Re)&&this._stroke.bind(v.Types.change,this._renderer.flagStroke)}}),Object.defineProperty(e,“length”,{get:function(){return this._flagLength&&this._updateLength(),this._length}}),Object.defineProperty(e,“closed”,{enumerable:!0,get:function(){return this._closed},set:function(e){this._closed=!!e,this._flagVertices=!0}}),Object.defineProperty(e,“curved”,{enumerable:!0,get:function(){return this._curved},set:function(e){this._curved=!!e,this._flagVertices=!0}}),Object.defineProperty(e,“automatic”,{enumerable:!0,get:function(){return this._automatic},set:function(e){if(e!==this._automatic){this._automatic=!!e;var t=this._automatic?“ignore”:“listen”;y.each(this.vertices,(function(e){e()}))}}}),Object.defineProperty(e,“beginning”,{enumerable:!0,get:function(){return this._beginning},set:function(e){this._beginning=e,this._flagVertices=!0}}),Object.defineProperty(e,“ending”,{enumerable:!0,get:function(){return this._ending},set:function(e){this._ending=e,this._flagVertices=!0}}),Object.defineProperty(e,“vertices”,{enumerable:!0,get:function(){return this._collection},set:function(e){var t=this._renderer.bindVertices,i=this._renderer.unbindVertices;this._collection&&this._collection.unbind(v.Types.insert,t).unbind(v.Types.remove,i),this._collection=e instanceof K?e:new K(e||[]),this._collection.bind(v.Types.insert,t).bind(v.Types.remove,i),t(this._collection)}}),Object.defineProperty(e,“mask”,{enumerable:!0,get:function(){return this._mask},set:function(e){this._mask=e,this._flagMask=!0,e.clip||(e.clip=!0)}}),Object.defineProperty(e,“clip”,{enumerable:!0,get:function(){return this._clip},set:function(e){this._clip=e,this._flagClip=!0}}),Object.defineProperty(e,“dashes”,{enumerable:!0,get:function(){return this._dashes},set:function(e){“number”!=typeof e.offset&&(e.offset=this.dashes&&this._dashes.offset||0),this._dashes=e}})}}),y.extend(Pe.prototype,q.prototype,{constructor:Pe,_flagVertices:!0,_flagLength:!0,_flagFill:!0,_flagStroke:!0,_flagLinewidth:!0,_flagOpacity:!0,_flagVisible:!0,_flagCap:!0,_flagJoin:!0,_flagMiter:!0,_flagMask:!1,_flagClip:!1,_length:0,_fill:“#fff”,_stroke:“#000”,_linewidth:1,_opacity:1,_visible:!0,_cap:“round”,_join:“round”,_miter:4,_closed:!0,_curved:!1,_automatic:!0,_beginning:0,_ending:1,_mask:null,_clip:!1,_dashes:null,clone:function(e){for(var t=new Pe,i=0;iF.Identifier
“applied”;break;case“class”:case“className”:t.classList=h.split(“ ”);break;case“x”:case“y”:if(t instanceof ke||t instanceof we||t instanceof Ae)break;if(h.match(“$”)&&!h.endsWith(“px”)){var x=new me(“only pixel values are supported with the ”o
“ attribute.”);console.warn(x.name,x.message)}t.translation=parseFloat(h);break;case“font-family”:t instanceof qe&&(t.family=h);break;case“font-size”:t instanceof qe&&(t.size=h);break;case“font-weight”:t instanceof qe&&(t.weight=h);break;case“font-style”:t instanceof qe&&(t.style=h);break;case“text-decoration”:t instanceof qe&&(t.decoration=h);break;case“line-height”:t instanceof qe&&(t.leading=h)}return p},st=function(e,t){for(var i=0,r=e.childNodes.length;i<r;i++){var s=e.childNodes;if(s.id)“#text”!==$e(e.nodeName)&&t.add(s.id,s)}},nt=function(e){for(;e.parent;)e=e.parent;return e.scene},at={svg:function(e){for(var t=at.defs.current=new be,i=e.getElementsByTagName(“defs”),r=0;rr
“.”),console.warn(i.name,i.message),null;for(var n=at.defs.current.get(s).cloneNode(!0),a=[“x”,“y”,“width”,“height”,“href”,“xlink:href”],o=0;ov
“ ”b
“ ”x
“ ”k
“ ”A
“ ”F
“ ”+P;break;case t.curve:u=T.controls&&T.controls.right||w.zero,p=S.controls&&S.controls.left||w.zero,T.relative?(l=g(u.x+T.x),c=g(u.y+T.y)):(l=g(u.x),c=g(u.y)),S.relative?(f=g(p.x+S.x),_=g(p.y+S.y)):(f=g(p.x),_=g(p.y)),h=(0===o?t.move:t.curve)+“ ”l
“ ”c
“ ”f
“ ”_
“ ”F
“ ”+P;break;case t.move:r=S,h=t.move+“ ”F
“ ”+P;break;default:h=S.command+“ ”F
“ ”+P}o>=n&&i&&(S.command===t.curve&&(O=r,m=S.controls&&S.controls.right||S,y=O.controls&&O.controls.left||O,S.relative?(l=g(m.x+S.x),c=g(m.y+S.y)):(l=g(m.x),c=g(m.y)),O.relative?(f=g(y.x+O.x),_=g(y.y+O.y)):(f=g(y.x),_=g(y.y)),h+=“ C ”l
“ ”c
“ ”f
“ ”_
“ ”+(F=g(O.x))+“ ”+(P=g(O.y))),S.command!==t.close&&(h+=“ Z”)),a+=h+“ ”}return a},pointsToString:function(e,i){for(var r=“”,s=.5*i,n=0;n<e.length;n++){var a=e.x,o=e.y;r+=t.move+“ ”a
“ ”o
“ ”,r+=“a ”s
“ ”s
“ 0 1 0 0.01 0 Z”}return r},getClip:function(e,t){var i=e._renderer.clip;return i||(i=e._renderer.clip=bt.createElement(“clipPath”,{“clip-rule”:“nonzero”}),t.defs.appendChild(i)),i},group:{appendChild:function(e){var t=e._renderer.elem;if(t){var i=t.nodeName;!i||/(radial|linear)gradient/i.test(i)||e._clip||this.elem.appendChild(t)}},removeChild:function(e){var t=e._renderer.elem;t&&t.parentNode==this.elem&&(t.nodeName&&(e._clip||this.elem.removeChild(t)))},orderChild:function(e){this.elem.appendChild(e._renderer.elem)},renderChild:function(e){bt.render.call(e,this)},render:function(e){if(!this._visible&&!this._flagVisible||0===this._opacity&&!this._flagOpacity)return this;this._update(),this._renderer.elem||(this._renderer.elem=bt.createElement(“g”,{id:this.id}),e.appendChild(this._renderer.elem));var t=this._matrix.manual||this._flagMatrix,i={domElement:e,elem:this._renderer.elem};t&&this._renderer.elem.setAttribute(“transform”,“matrix(”+this._matrix.toString()+“)”);for(var r=0;r<this.children.length;r++){var s=this.children;bt.render.call(s,e)}return this._flagId&&this._renderer.elem.setAttribute(“id”,this._id),this._flagOpacity&&this._renderer.elem.setAttribute(“opacity”,this._opacity),this._flagVisible&&this._renderer.elem.setAttribute(“display”,this._visible?“inline”:“none”),this._flagClassName&&this._renderer.elem.setAttribute(“class”,this.classList.join(“ ”)),this._flagAdditions&&this.additions.forEach(bt.group.appendChild,i),this._flagSubtractions&&this.subtractions.forEach(bt.group.removeChild,i),this._flagOrder&&this.children.forEach(bt.group.orderChild,i),this._flagMask&&(this._mask?(bt.render.call(this._mask,e),this._renderer.elem.setAttribute(“clip-path”,“url(#”this._mask.id
“)”)):this._renderer.elem.removeAttribute(“clip-path”)),this.flagReset()}},path:{render:function(e){if(0===this._opacity&&!this._flagOpacity)return this;this._update();var t={};if((this._matrix.manual||this._flagMatrix)&&(t.transform=“matrix(”+this._matrix.toString()+“)”),this._flagId&&(t.id=this._id),this._flagVertices){var i=bt.toString(this._renderer.vertices,this._closed);t.d=i}if(this._fill&&this._fill._renderer&&(this._fill._update(),bt.render.call(this._fill,e,!0)),this._flagFill&&(t.fill=this._fill&&this._fill.id?“url(#”this._fill.id
“)”:this._fill),this._stroke&&this._stroke._renderer&&(this._stroke._update(),bt.render.call(this._stroke,e,!0)),this._flagStroke&&(t.stroke=this._stroke&&this._stroke.id?“url(#”this._stroke.id
“)”:this._stroke),this._flagLinewidth&&(t=this._linewidth),this._flagOpacity&&(t=this._opacity,t=this._opacity),this._flagClassName&&(t.class=this.classList.join(“ ”)),this._flagVisible&&(t.visibility=this._visible?“visible”:“hidden”),this._flagCap&&(t=this._cap),this._flagJoin&&(t=this._join),this._flagMiter&&(t=this._miter),this.dashes&&this.dashes.length>0&&(t=this.dashes.join(“ ”),t=this.dashes.offset||0),this._renderer.elem?bt.setAttributes(this._renderer.elem,t):(t.id=this._id,this._renderer.elem=bt.createElement(“path”,t),e.appendChild(this._renderer.elem)),this._flagClip){var r=bt.getClip(this,e),s=this._renderer.elem;this._clip?(s.removeAttribute(“id”),r.setAttribute(“id”,this.id),r.appendChild(s)):(r.removeAttribute(“id”),s.setAttribute(“id”,this.id),this.parent._renderer.elem.appendChild(s))}return this._flagMask&&(this._mask?(bt.render.call(this._mask,e),this._renderer.elem.setAttribute(“clip-path”,“url(#”this._mask.id
“)”)):this._renderer.elem.removeAttribute(“clip-path”)),this.flagReset()}},points:{render:function(e){if(0===this._opacity&&!this._flagOpacity)return this;this._update();var t={};if((this._matrix.manual||this._flagMatrix)&&(t.transform=“matrix(”+this._matrix.toString()+“)”),this._flagId&&(t.id=this._id),this._flagVertices||this._flagSize||this._flagSizeAttenuation){var i=this._size;if(!this._sizeAttenuation){h(this,vt);var r=vt.elements,s=a(r,r,r,r,r,r);i/=Math.max(s.scaleX,s.scaleY)}var n=bt.pointsToString(this._renderer.collection,i);t.d=n}return this._fill&&this._fill._renderer&&(this._fill._update(),bt.render.call(this._fill,e,!0)),this._flagFill&&(t.fill=this._fill&&this._fill.id?“url(#”this._fill.id
“)”:this._fill),this._stroke&&this._stroke._renderer&&(this._stroke._update(),bt.render.call(this._stroke,e,!0)),this._flagStroke&&(t.stroke=this._stroke&&this._stroke.id?“url(#”this._stroke.id
“)”:this._stroke),this._flagLinewidth&&(t=this._linewidth),this._flagOpacity&&(t=this._opacity,t=this._opacity),this._flagClassName&&(t.class=this.classList.join(“ ”)),this._flagVisible&&(t.visibility=this._visible?“visible”:“hidden”),this.dashes&&this.dashes.length>0&&(t=this.dashes.join(“ ”),t=this.dashes.offset||0),this._renderer.elem?bt.setAttributes(this._renderer.elem,t):(t.id=this._id,this._renderer.elem=bt.createElement(“path”,t),e.appendChild(this._renderer.elem)),this.flagReset()}},text:{render:function(e){this._update();var t={};if((this._matrix.manual||this._flagMatrix)&&(t.transform=“matrix(”+this._matrix.toString()+“)”),this._flagId&&(t.id=this._id),this._flagFamily&&(t=this._family),this._flagSize&&(t=this._size),this._flagLeading&&(t=this._leading),this._flagAlignment&&(t=bt.alignments||this._alignment),this._flagBaseline&&(t=t=this._baseline),this._flagStyle&&(t=this._style),this._flagWeight&&(t=this._weight),this._flagDecoration&&(t=this._decoration),this._fill&&this._fill._renderer&&(this._fill._update(),bt.render.call(this._fill,e,!0)),this._flagFill&&(t.fill=this._fill&&this._fill.id?“url(#”this._fill.id
“)”:this._fill),this._stroke&&this._stroke._renderer&&(this._stroke._update(),bt.render.call(this._stroke,e,!0)),this._flagStroke&&(t.stroke=this._stroke&&this._stroke.id?“url(#”this._stroke.id
“)”:this._stroke),this._flagLinewidth&&(t=this._linewidth),this._flagOpacity&&(t.opacity=this._opacity),this._flagClassName&&(t.class=this.classList.join(“ ”)),this._flagVisible&&(t.visibility=this._visible?“visible”:“hidden”),this.dashes&&this.dashes.length>0&&(t=this.dashes.join(“ ”),t=this.dashes.offset||0),this._renderer.elem?bt.setAttributes(this._renderer.elem,t):(t.id=this._id,this._renderer.elem=bt.createElement(“text”,t),e.defs.appendChild(this._renderer.elem)),this._flagClip){var i=bt.getClip(this,e),r=this._renderer.elem;this._clip?(r.removeAttribute(“id”),i.setAttribute(“id”,this.id),i.appendChild®):(i.removeAttribute(“id”),r.setAttribute(“id”,this.id),this.parent._renderer.elem.appendChild®)}return this._flagMask&&(this._mask?(bt.render.call(this._mask,e),this._renderer.elem.setAttribute(“clip-path”,“url(#”this._mask.id
“)”)):this._renderer.elem.removeAttribute(“clip-path”)),this._flagValue&&(this._renderer.elem.textContent=this._value),this.flagReset()}},“linear-gradient”:{render:function(e,t){t||this._update();var i={};if(this._flagId&&(i.id=this._id),this._flagEndPoints&&(i.x1=this.left._x,i.y1=this.left._y,i.x2=this.right._x,i.y2=this.right._y),this._flagSpread&&(i.spreadMethod=this._spread),this._renderer.elem?bt.setAttributes(this._renderer.elem,i):(i.id=this._id,i.gradientUnits=“userSpaceOnUse”,this._renderer.elem=bt.createElement(“linearGradient”,i),e.defs.appendChild(this._renderer.elem)),this._flagStops){var r=this._renderer.elem.childNodes.length!==this.stops.length;if®for(;this._renderer.elem.lastChild;)this._renderer.elem.removeChild(this._renderer.elem.lastChild);for(var s=0;s<this.stops.length;s++){var n=this.stops,a={};n._flagOffset&&(a.offset=100*n._offset+“%”),n._flagColor&&(a=n._color),n._flagOpacity&&(a=n._opacity),n._renderer.elem?bt.setAttributes(n._renderer.elem,a):n._renderer.elem=bt.createElement(“stop”,a),r&&this._renderer.elem.appendChild(n._renderer.elem),n.flagReset()}}return this.flagReset()}},“radial-gradient”:{render:function(e,t){t||this._update();var i={};if(this._flagId&&(i.id=this._id),this._flagCenter&&(i.cx=this.center._x,i.cy=this.center._y),this._flagFocal&&(i.fx=this.focal._x,i.fy=this.focal._y),this._flagRadius&&(i.r=this._radius),this._flagSpread&&(i.spreadMethod=this._spread),this._renderer.elem?bt.setAttributes(this._renderer.elem,i):(i.id=this._id,i.gradientUnits=“userSpaceOnUse”,this._renderer.elem=bt.createElement(“radialGradient”,i),e.defs.appendChild(this._renderer.elem)),this._flagStops){var r=this._renderer.elem.childNodes.length!==this.stops.length;if®for(;this._renderer.elem.lastChild;)this._renderer.elem.removeChild(this._renderer.elem.lastChild);for(var s=0;s<this.stops.length;s++){var n=this.stops,a={};n._flagOffset&&(a.offset=100*n._offset+“%”),n._flagColor&&(a=n._color),n._flagOpacity&&(a=n._opacity),n._renderer.elem?bt.setAttributes(n._renderer.elem,a):n._renderer.elem=bt.createElement(“stop”,a),r&&this._renderer.elem.appendChild(n._renderer.elem),n.flagReset()}}return this.flagReset()}},texture:{render:function(e,t){t||this._update();var i={},r={x:0,y:0},s=this.image;if(this._flagId&&(i.id=this._id),this._flagLoaded&&this.loaded)switch(s.nodeName.toLowerCase()){case“canvas”:r.href=r[“xlink:href”]=s.toDataURL(“image/png”);break;case“img”:case“image”:r.href=r[“xlink:href”]=this.src}if((this._flagOffset||this._flagLoaded||this._flagScale)&&(i.x=this._offset.x,i.y=this._offset.y,s&&(i.x-=s.width/2,i.y-=s.height/2,this._scale instanceof w?(i.x*=this._scale.x,i.y*=this._scale.y):(i.x*=this._scale,i.y*=this._scale)),i.x>0&&(i.x*=-1),i.y>0&&(i.y*=-1)),(this._flagScale||this._flagLoaded||this._flagRepeat)&&(i.width=0,i.height=0,s)){switch(r.width=i.width=s.width,r.height=i.height=s.height,this._repeat){case“no-repeat”:i.width+=1,i.height+=1}this._scale instanceof w?(i.width*=this._scale.x,i.height*=this._scale.y):(i.width*=this._scale,i.height*=this._scale)}return(this._flagScale||this._flagLoaded)&&(this._renderer.image?bt.setAttributes(this._renderer.image,r):this._renderer.image=bt.createElement(“image”,r)),this._renderer.elem?0!==Object.keys(i).length&&bt.setAttributes(this._renderer.elem,i):(i.id=this._id,i.patternUnits=“userSpaceOnUse”,this._renderer.elem=bt.createElement(“pattern”,i),e.defs.appendChild(this._renderer.elem)),this._renderer.elem&&this._renderer.image&&!this._renderer.appended&&(this._renderer.elem.appendChild(this._renderer.image),this._renderer.appended=!0),this.flagReset()}}};function xt(e){this.domElement=e.domElement||bt.createElement(“svg”),this.scene=new Q,this.scene.parent=this,this.defs=bt.createElement(“defs”),this.domElement.appendChild(this.defs),this.domElement.defs=this.defs,this.domElement.style.overflow=“hidden”}y.extend(xt,{Utils:bt}),y.extend(xt.prototype,v,{constructor:xt,setSize:function(e,t){return this.width=e,this.height=t,bt.setAttributes(this.domElement,{width:e,height:t}),this.trigger(v.Types.resize,e,t)},render:function(){return bt.group.render.call(this.scene,this.domElement),this}});var kt={create:function(e,t,i){var r,s;if(r=e.createShader(e),e.shaderSource(r,t),e.compileShader®,!e.getShaderParameter(r,e.COMPILE_STATUS))throw s=e.getShaderInfoLog®,e.deleteShader®,new me(“unable to compile shader ”r
“: ”+s);return r},types:{vertex:“VERTEX_SHADER”,fragment:“FRAGMENT_SHADER”},path:{vertex:“n precision mediump float;n attribute vec2 a_position;nn uniform mat3 u_matrix;n uniform vec2 u_resolution;n uniform vec4 u_rect;nn varying vec2 v_textureCoords;nn void main() {n vec2 rectCoords = (a_position * (u_rect.zw - u_rect.xy)) + u_rect.xy;n vec2 projected = (u_matrix * vec3(rectCoords, 1.0)).xy;n vec2 normal = projected / u_resolution;n vec2 clipspace = (normal * 2.0) - 1.0;nn gl_Position = vec4(clipspace * vec2(1.0, -1.0), 0.0, 1.0);n v_textureCoords = a_position;n }n ”,fragment:“n precision mediump float;nn uniform sampler2D u_image;n varying vec2 v_textureCoords;nn void main() {n vec4 texel = texture2D(u_image, v_textureCoords);n if (texel.a == 0.0) {n discard;n }n gl_FragColor = texel;n }n ”},points:{vertex:“n precision mediump float;n attribute vec2 a_position;nn uniform float u_size;n uniform mat3 u_matrix;n uniform vec2 u_resolution;nn varying vec2 v_textureCoords;nn void main() {n vec2 projected = (u_matrix * vec3(a_position, 1.0)).xy;n vec2 normal = projected / u_resolution;n vec2 clipspace = (normal * 2.0) - 1.0;nn gl_PointSize = u_size;n gl_Position = vec4(clipspace * vec2(1.0, -1.0), 0.0, 1.0);n v_textureCoords = a_position;n }n ”,fragment:“n precision mediump float;nn uniform sampler2D u_image;nn void main() {n vec4 texel = texture2D(u_image, gl_PointCoord);n if (texel.a == 0.0) {n discard;n }n gl_FragColor = texel;n }n ”}},wt=G.Multiply,At=,St=new _(9),Rt=de.Utils,Mt=new _(),Tt={precision:.9,isHidden:/(undefined|none|transparent)/i,canvas:r.document?r.document.createElement(“canvas”):{getContext:function(){}},alignments:{left:“start”,middle:“center”,right:“end”},matrix:new G,group:{removeChild:function(e,t){if(e.children)for(var i=0;ie._leading
“px”,e._family].join(“ ”)),i.textAlign=“center”,i.textBaseline=“middle”,a&&(“string”==typeof a?i.fillStyle=a:(Tt.render.call(a,i,e),i.fillStyle=a._renderer.effect)),s&&(“string”==typeof s?i.strokeStyle=s:(Tt.render.call(s,i,e),i.strokeStyle=s._renderer.effect),n&&(i.lineWidth=n)),“number”==typeof o&&(i.globalAlpha=o),h&&h.length>0&&(i.lineDashOffset=h.offset||0,i.setLineDash(h)),i.save(),i.scale(r.x,r.y),i.translate(k,w),Tt.isHidden.test(a)||(a._renderer&&a._renderer.offset?(g=a._renderer.scale.x,p=a._renderer.scale.y,i.save(),i.translate(-a._renderer.offset.x,-a._renderer.offset.y),i.scale(g,p),c=e._size/a._renderer.scale.y,f=e._leading/a._renderer.scale.y,i.font=.join(“ ”),d=a.renderer.offset.x/a._renderer.scale.x,=a._renderer.offset.y/a._renderer.scale.y,i.fillText(e.value,d,_),i.restore()):i.fillText(e.value,0,0)),Tt.isHidden.test(s)||(s._renderer&&s._renderer.offset?(g=s._renderer.scale.x,p=s._renderer.scale.y,i.save(),i.translate(-s._renderer.offset.x,-s._renderer.offset.y),i.scale(g,p),c=e._size/s._renderer.scale.y,f=e._leading/s._renderer.scale.y,i.font=.join(“ ”),d=s.renderer.offset.x/s._renderer.scale.x,=s._renderer.offset.y/s._renderer.scale.y,u=n/s._renderer.scale.x,i.lineWidth=u,i.strokeText(e.value,d,_),i.restore()):i.strokeText(e.value,0,0)),/(underline|strikethrough)/i.test(l)){var S=i.measureText(e.value);switch(l){case“underline”:y=S.actualBoundingBoxAscent,b=S.actualBoundingBoxAscent;break;case“strikethrough”:y=0,b=0}m=-S.width/2,v=S.width/2,i.lineWidth=Math.max(Math.floor(e._size/15),1),i.strokeStyle=i.fillStyle,i.beginPath(),i.moveTo(m,y),i.lineTo(v,b),i.stroke()}i.restore()},getBoundingClientRect:function(e,t){var i=Tt.ctx;i.font=[e._style,e._weight,e._size+“px/”e._leading
“px”,e._family].join(“ ”),i.textAlign=“center”,i.textBaseline=e._baseline;var r=1.25*i.measureText(e._value).width,s=1.25*Math.max(e._size,e._leading);this._linewidth&&!Tt.isHidden.test(this._stroke)&&(r+=2*this._linewidth,s+=2*this._linewidth);var n=r/2,a=s/2;switch(Tt.alignments||e._alignment){case Tt.alignments.left:t.left=0,t.right=r;break;case Tt.alignments.right:t.left=-r,t.right=0;break;default:t.left=-n,t.right=n}switch(e._baseline){case“bottom”:t.top=-s,t.bottom=0;break;case“top”:t.top=0,t.bottom=s;break;default:t.top=-a,t.bottom=a}t.width=r,t.height=s,t.centroid||(t.centroid={}),t.centroid.x=n,t.centroid.y=a},render:function(e,t,i){if(!this._visible||!this._opacity)return this;this._update();var r=i||this.parent,s=t,n=r._matrix.manual||r._flagMatrix,a=this._matrix.manual||this._flagMatrix,o=this._renderer.parent!==r,h=this._flagVertices||this._flagFill||this._fill instanceof we&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagEndPoints)||this._fill instanceof Ae&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagRadius||this._fill._flagCenter||this._fill._flagFocal)||this._fill instanceof Re&&(this._fill._flagLoaded&&this._fill.loaded||this._fill._flagImage||this._fill._flagVideo||this._fill._flagRepeat||this._fill._flagOffset||this._fill._flagScale)||this._stroke instanceof we&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagEndPoints)||this._stroke instanceof Ae&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagRadius||this._stroke._flagCenter||this._stroke._flagFocal)||this._stroke instanceof Re&&(this._stroke._flagLoaded&&this._stroke.loaded||this._stroke._flagImage||this._stroke._flagVideo||this._stroke._flagRepeat||this._stroke._flagOffset||this._fill._flagScale)||this._flagStroke||this._flagLinewidth||this._flagOpacity||r._flagOpacity||this._flagVisible||this._flagScale||this._flagValue||this._flagFamily||this._flagSize||this._flagLeading||this._flagAlignment||this._flagBaseline||this._flagStyle||this._flagWeight||this._flagDecoration||this.dashes&&this.dashes.length>0||!this._renderer.texture;if((n||a||o)&&(this._renderer.matrix||(this._renderer.matrix=new _(9)),this._matrix.toTransformArray(!0,St),wt(St,r._renderer.matrix,this._renderer.matrix),this._renderer.scale instanceof w||(this._renderer.scale=new w),this._scale instanceof w?(this._renderer.scale.x=this._scale.x*r._renderer.scale.x,this._renderer.scale.y=this._scale.y*r._renderer.scale.y):(this._renderer.scale.x=this._scale*r._renderer.scale.x,this._renderer.scale.y=this._scale*r._renderer.scale.y),o&&(this._renderer.parent=r)),this._mask&&(e.clear(e.STENCIL_BUFFER_BIT),e.enable(e.STENCIL_TEST),e.stencilFunc(e.ALWAYS,1,0),e.stencilOp(e.KEEP,e.KEEP,e.REPLACE),e.colorMask(!1,!1,!1,!1),Tt.render.call(this._mask,e,t,this),e.stencilFunc(e.EQUAL,1,255),e.stencilOp(e.KEEP,e.KEEP,e.KEEP),e.colorMask(!0,!0,!0,!0)),h?(this._renderer.rect||(this._renderer.rect={}),this._renderer.opacity=this._opacity*r._renderer.opacity,Tt.text.getBoundingClientRect(this,this._renderer.rect),Tt.updateTexture.call(Tt,e,this)):(this._fill&&this._fill._update&&this._fill._update(),this._stroke&&this._stroke._update&&this._stroke._update()),this._clip&&!i||!this._renderer.texture)return this;t.current!==s&&(e.useProgram(s),e.bindBuffer(e.ARRAY_BUFFER,t.buffers.position),e.vertexAttribPointer(s.position,2,e.FLOAT,!1,0,0),e.enableVertexAttribArray(s.position),e.bufferData(e.ARRAY_BUFFER,Mt,e.STATIC_DRAW),t.resolution.flagged||e.uniform2f(e.getUniformLocation(s,“u_resolution”),t.resolution.width,t.resolution.height),t.current=s),t.resolution.flagged&&e.uniform2f(e.getUniformLocation(s,“u_resolution”),t.resolution.width,t.resolution.height),e.bindTexture(e.TEXTURE_2D,this._renderer.texture);var l=this._renderer.rect;return e.uniformMatrix3fv(s.matrix,!1,this._renderer.matrix),e.uniform4f(s.rect,l.left,l.top,l.right,l.bottom),e.drawArrays(e.TRIANGLES,0,6),this._mask&&e.disable(e.STENCIL_TEST),this.flagReset()}},“linear-gradient”:{render:function(e,t){if(e.canvas.getContext(“2d”)){if(this._update(),!this._renderer.effect||this._flagEndPoints||this._flagStops){this._renderer.effect=e.createLinearGradient(this.left._x,this.left._y,this.right._x,this.right._y);for(var i=0;i<this.stops.length;i++){var r=this.stops;this._renderer.effect.addColorStop(r._offset,r._color)}}return this.flagReset()}}},“radial-gradient”:{render:function(e,t){if(e.canvas.getContext(“2d”)){if(this._update(),!this._renderer.effect||this._flagCenter||this._flagFocal||this._flagRadius||this._flagStops){this._renderer.effect=e.createRadialGradient(this.center._x,this.center._y,0,this.focal._x,this.focal._y,this._radius);for(var i=0;i<this.stops.length;i++){var r=this.stops;this._renderer.effect.addColorStop(r._offset,r._color)}}return this.flagReset()}}},texture:{render:function(e,t){if(e.canvas.getContext(“2d”)){this._update();var i=this.image;if((this._flagLoaded||this._flagImage||this._flagVideo||this._flagRepeat)&&this.loaded)this._renderer.effect=e.createPattern(i,this._repeat);else if(!this._renderer.effect)return this.flagReset();return(this._flagOffset||this._flagLoaded||this._flagScale)&&(this._renderer.offset instanceof w||(this._renderer.offset=new w),this._renderer.offset.x=-this._offset.x,this._renderer.offset.y=-this._offset.y,i&&(this._renderer.offset.x+=i.width/2,this._renderer.offset.y+=i.height/2,this._scale instanceof w?(this._renderer.offset.x*=this._scale.x,this._renderer.offset.y*=this._scale.y):(this._renderer.offset.x*=this._scale,this._renderer.offset.y*=this._scale))),(this._flagScale||this._flagLoaded)&&(this._renderer.scale instanceof w||(this._renderer.scale=new w),this._scale instanceof w?this._renderer.scale.copy(this._scale):this._renderer.scale.set(this._scale,this._scale)),this.flagReset()}}},updateTexture:function(e,t){if(this.updateCanvas.call(Tt,t),this.canvas.width<=0||this.canvas.height<=0)return t._renderer.texture&&e.deleteTexture(t._renderer.texture),void delete t._renderer.texture;t._renderer.texture||(t._renderer.texture=e.createTexture()),e.bindTexture(e.TEXTURE_2D,t._renderer.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.canvas)},program:{create:function(e,t){var i,r;if(i=e.createProgram(),y.each(t,(function(t){e.attachShader(i,t)})),e.linkProgram(i),!e.getProgramParameter(i,e.LINK_STATUS))throw r=e.getProgramInfoLog(i),e.deleteProgram(i),new me(“unable to link program: ”+r);return i}},TextureRegistry:new be};function Ot(e){var t,i,r,s;if(this.domElement=e.domElement||document.createElement(“canvas”),void 0!==e.offscreenElement&&(Tt.canvas=e.offscreenElement,Tt.ctx=Tt.canvas.getContext(“2d”)),this.scene=new Q,this.scene.parent=this,this._renderer={type:“renderer”,matrix:new _(At),scale:1,opacity:1},this._flagMatrix=!0,e=y.defaults(e||{},{antialias:!1,alpha:!0,premultipliedAlpha:!0,stencil:!0,preserveDrawingBuffer:!0,overdraw:!1}),this.overdraw=e.overdraw,t=this.ctx=this.domElement.getContext(“webgl”,e)||this.domElement.getContext(“experimental-webgl”,e),!this.ctx)throw new me(“unable to create a webgl context. Try using another renderer.”);r=kt.create(t,kt.path.vertex,kt.types.vertex),s=kt.create(t,kt.path.fragment,kt.types.fragment),this.programs={current:null,buffers:{position:t.createBuffer()},resolution:{width:0,height:0,ratio:1,flagged:!1}},i=this.programs.path=Tt.program.create(t,),this.programs.text=this.programs.path,i.position=t.getAttribLocation(i,“a_position”),i.matrix=t.getUniformLocation(i,“u_matrix”),i.rect=t.getUniformLocation(i,“u_rect”);var n=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,n),t.vertexAttribPointer(i.position,2,t.FLOAT,!1,0,0),t.enableVertexAttribArray(i.position),t.bufferData(t.ARRAY_BUFFER,Mt,t.STATIC_DRAW),r=kt.create(t,kt.points.vertex,kt.types.vertex),s=kt.create(t,kt.points.fragment,kt.types.fragment),(i=this.programs.points=Tt.program.create(t,)).position=t.getAttribLocation(i,“a_position”),i.matrix=t.getUniformLocation(i,“u_matrix”),i.size=t.getUniformLocation(i,“u_size”),t.enable(t.BLEND),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.blendEquation(t.FUNC_ADD),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA)}function Ft(e){var t=y.defaults(e||{},{fullscreen:!1,fitted:!1,width:640,height:480,type:Ft.Types.svg,autostart:!1});if(y.each(t,(function(e,t){/fullscreen/i.test(t)||/autostart/i.test(t)||(this=e)}),this),y.isElement(t.domElement)){var i=t.domElement.tagName.toLowerCase();/^(CanvasRenderer-canvas|WebGLRenderer-canvas|SVGRenderer-svg)$/.test(this.type+“-”+i)||(this.type=Ft.Types)}this.renderer=new Ft(this),this.setPlaying(t.autostart),this.frameCount=0,t.fullscreen?(this.fit=Pt.bind(this),this.fit.domElement=window,this.fit.attached=!0,y.extend(document.body.style,{overflow:“hidden”,margin:0,padding:0,top:0,left:0,right:0,bottom:0,position:“fixed”}),y.extend(this.renderer.domElement.style,{display:“block”,top:0,left:0,right:0,bottom:0,position:“fixed”}),ge.bind(this.fit.domElement,“resize”,this.fit),this.fit()):t.fitted?(this.fit=Et.bind(this),y.extend(this.renderer.domElement.style,{display:“block”})):y.isElement(t.domElement)||(this.renderer.setSize(t.width,t.height,this.ratio),this.width=t.width,this.height=t.height),this.renderer.bind(v.Types.resize,Ct.bind(this)),this.scene=this.renderer.scene,Ft.Instances.push(this),t.autostart&&Lt.init()}function Pt(){var e=document.body.getBoundingClientRect(),t=this.width=e.width,i=this.height=e.height;this.renderer.setSize(t,i,this.ratio)}function Et(){var e=this.renderer.domElement.parentElement;if(e){var t=e.getBoundingClientRect(),i=this.width=t.width,r=this.height=t.height;this.renderer.setSize(i,r,this.ratio)}else console.warn(“Two.js: Attempting to fit to parent, but no parent found.”)}function Ct(e,t){this.width=e,this.height=t,this.trigger(v.Types.resize,e,t)}Tt.ctx=Tt.canvas.getContext(“2d”),y.extend(Ot,{Utils:Tt}),y.extend(Ot.prototype,v,{constructor:Ot,setSize:function(e,t,i){var r,s,n=this.ctx;return this.width=e,this.height=t,this.ratio=void 0===i?D(n):i,this.domElement.width=e*this.ratio,this.domElement.height=t*this.ratio,y.isObject(this.domElement.style)&&y.extend(this.domElement.style,{width:e+“px”,height:t+“px”}),this._renderer.matrix=this._renderer.matrix=this._renderer.scale=this.ratio,this._flagMatrix=!0,r=e*this.ratio,s=t*this.ratio,n.viewport(0,0,r,s),this.programs.resolution.width=r,this.programs.resolution.height=s,this.programs.resolution.ratio=this.ratio,this.programs.resolution.flagged=!0,this.trigger(v.Types.resize,e,t,i)},render:function(){var e=this.ctx;return this.overdraw||e.clear(e.COLOR_BUFFER_BIT),Tt.group.render.call(this.scene,e,this.programs),this._flagMatrix=!1,this.programs.resolution.flagged=!0,this}}),y.extend(Ft,F),y.extend(Ft.prototype,v,{constructor:Ft,type:“”,renderer:null,scene:null,width:0,height:0,frameCount:0,timeDelta:0,playing:!1,appendTo:function(e){return e.appendChild(this.renderer.domElement),this.fit&&(this.fit.domElement!==window&&(this.fit.domElement=e,this.fit.attached=!1),this.update()),this},play:function(){return this.playing=!0,Lt.init(),this.trigger(v.Types.play)},pause:function(){return this.playing=!1,this.trigger(v.Types.pause)},setPlaying:function(e){this.playing=e},release:function(e){var t,i,r;if(!y.isObject(e))return this.release(this.scene);if(“function”==typeof e.unbind&&e.unbind(),e.vertices)for(“function”==typeof e.vertices.unbind&&e.vertices.unbind(),t=0;t