From bcedb8d462a42f9212208cf975bca14df4049cec Mon Sep 17 00:00:00 2001 From: kmkzt Date: Fri, 31 May 2019 13:45:58 +0900 Subject: [PATCH] feat: update svg-drawing library --- docs/main.bundle.js | 2 +- docs/main.bundle.js.map | 2 +- lib/index.min.js | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/main.bundle.js b/docs/main.bundle.js index accb353b..46c2d696 100644 --- a/docs/main.bundle.js +++ b/docs/main.bundle.js @@ -28,5 +28,5 @@ object-assign * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -Object.defineProperty(t,"__esModule",{value:!0});var n=null,r=!1,i=3,a=-1,s=-1,o=!1,l=!1;function u(){if(!o){var e=n.expirationTime;l?k():l=!0,w(f,e)}}function c(){var e=n,t=n.next;if(n===t)n=null;else{var r=n.previous;n=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var a=i,o=s;i=e,s=t;try{var l=r()}finally{i=a,s=o}if("function"==typeof l)if(l={callback:l,priorityLevel:e,expirationTime:t,next:null,previous:null},null===n)n=l.next=l.previous=l;else{r=null,e=n;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==n);null===r?r=n:r===n&&(n=l,u()),(t=r.previous).next=r.previous=l,l.next=r,l.previous=t}}function h(){if(-1===a&&null!==n&&1===n.priorityLevel){o=!0;try{do{c()}while(null!==n&&1===n.priorityLevel)}finally{o=!1,null!==n?u():l=!1}}}function f(e){o=!0;var i=r;r=e;try{if(e)for(;null!==n;){var a=t.unstable_now();if(!(n.expirationTime<=a))break;do{c()}while(null!==n&&n.expirationTime<=a)}else if(null!==n)do{c()}while(null!==n&&!S())}finally{o=!1,r=i,null!==n?u():l=!1,h()}}var d,p,g=Date,m="function"==typeof setTimeout?setTimeout:void 0,_="function"==typeof clearTimeout?clearTimeout:void 0,v="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,y="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function b(e){d=v(function(t){_(p),e(t)}),p=m(function(){y(d),e(t.unstable_now())},100)}if("object"==typeof performance&&"function"==typeof performance.now){var x=performance;t.unstable_now=function(){return x.now()}}else t.unstable_now=function(){return g.now()};var w,k,S,E=null;if("undefined"!=typeof window?E=window:void 0!==e&&(E=e),E&&E._schedMock){var C=E._schedMock;w=C[0],k=C[1],S=C[2],t.unstable_now=C[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var T=null,P=function(e){if(null!==T)try{T(e)}finally{T=null}};w=function(e){null!==T?setTimeout(w,0,e):(T=e,setTimeout(P,0,!1))},k=function(){T=null},S=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof v&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof y&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var R=null,A=!1,O=-1,M=!1,F=!1,N=0,U=33,L=33;S=function(){return N<=t.unstable_now()};var j=new MessageChannel,I=j.port2;j.port1.onmessage=function(){A=!1;var e=R,n=O;R=null,O=-1;var r=t.unstable_now(),i=!1;if(0>=N-r){if(!(-1!==n&&n<=r))return M||(M=!0,b(D)),R=e,void(O=n);i=!0}if(null!==e){F=!0;try{e(i)}finally{F=!1}}};var D=function(e){if(null!==R){b(D);var t=e-N+L;tt&&(t=8),L=tt?I.postMessage(void 0):M||(M=!0,b(D))},k=function(){R=null,A=!1,O=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=i,s=a;i=e,a=t.unstable_now();try{return n()}finally{i=r,a=s,h()}},t.unstable_next=function(e){switch(i){case 1:case 2:case 3:var n=3;break;default:n=i}var r=i,s=a;i=n,a=t.unstable_now();try{return e()}finally{i=r,a=s,h()}},t.unstable_scheduleCallback=function(e,r){var s=-1!==a?a:t.unstable_now();if("object"==typeof r&&null!==r&&"number"==typeof r.timeout)r=s+r.timeout;else switch(i){case 1:r=s+-1;break;case 2:r=s+250;break;case 5:r=s+1073741823;break;case 4:r=s+1e4;break;default:r=s+5e3}if(e={callback:e,priorityLevel:i,expirationTime:r,next:null,previous:null},null===n)n=e.next=e.previous=e,u();else{s=null;var o=n;do{if(o.expirationTime>r){s=o;break}o=o.next}while(o!==n);null===s?s=n:s===n&&(n=e,u()),(r=s.previous).next=s.previous=e,e.next=s,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)n=null;else{e===n&&(n=t);var r=e.previous;r.next=t,t.previous=r}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=i;return function(){var r=i,s=a;i=n,a=t.unstable_now();try{return e.apply(this,arguments)}finally{i=r,a=s,h()}}},t.unstable_getCurrentPriorityLevel=function(){return i},t.unstable_shouldYield=function(){return!r&&(null!==n&&n.expirationTime'+a.innerHTML+"":null},t.prototype.toSvgBase64=function(){var e=this.toSvgXml();return e?"data:image/svg+xml;base64,"+btoa(e):null},t.prototype.clearListner=function(){this.el.removeEventListener("mousedown",this.mouseDown),this.el.removeEventListener("touchstart",this.touchStart)},t.prototype.init=function(){return this.appendTo(this.el),this.el.addEventListener("mousedown",this.mouseDown,c(!1)),this.el.addEventListener("touchstart",this.touchStart,c(!1)),this},t.prototype.drawingStart=function(e){var t=e.x,n=e.y;this.current.set(t,n)},t.prototype.drawingMove=function(e){var t=this,n=e.x,r=e.y,i=this.el.getBoundingClientRect(),a=function(e,t){return new u.a.Vector(e-i.left,t-i.top)};if(this.line){if(this.line.linewidth!==this.penWidth||this.line.stroke!==this.penColor)return void this.drawingEnd();var s=a(n,r);this.line.vertices.push(s)}else{var o=a(this.current.x,this.current.y),l=a(n,r);this.current.set(n,r),this.line=this.makeCurve([o,l],!0),this.line.noFill().stroke=this.penColor,this.line.linewidth=this.penWidth,this.line.cap=this.strokeCap,this.line.join=this.strokeLineJoin,this.line.vertices.map(function(e){t.line&&e.addSelf(t.line.translation)}),this.line.translation.clear()}},t.prototype.drawingEnd=function(){this.line=null},t.prototype.mouseDown=function(e){e.preventDefault(),this.drawingStart({x:e.clientX,y:e.clientY}),this.el.addEventListener("mousemove",this.mouseMove,c(!1)),this.el.addEventListener("mouseup",this.mouseUp,c(!1))},t.prototype.mouseMove=function(e){e.preventDefault(),this.drawingMove({x:e.clientX,y:e.clientY})},t.prototype.mouseUp=function(e){e.preventDefault(),this.el.removeEventListener("mousemove",this.mouseMove),this.el.removeEventListener("mouseup",this.mouseUp),this.drawingEnd()},t.prototype.touchStart=function(e){e.preventDefault();var t=e.touches[0];this.drawingStart({x:t.pageX,y:t.pageY}),this.el.addEventListener("touchmove",this.touchMove,c(!1)),this.el.addEventListener("touchend",this.touchEnd,c(!1))},t.prototype.touchMove=function(e){e.preventDefault();var t=e.touches[0];this.drawingMove({x:t.pageX,y:t.pageY})},t.prototype.touchEnd=function(e){e.preventDefault(),this.el.removeEventListener("touchmove",this.touchMove),this.el.removeEventListener("touchend",this.touchEnd),this.drawingEnd()},t}(u.a),d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=a.next()).done;)s.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(i)throw i.error}}return s},m=function(e){return Math.floor(Math.random()*Math.floor(e))},_=function(){return"#"+Array.from({length:3},function(){return String(m(255).toString(16)).padStart(2,"0")}).join("")},v=document.createElement("div");document.body.appendChild(v),Object(s.render)(a.a.createElement(function(){var e=g(p({penWidth:3,penColor:"#000",width:500,height:500}),2),t=e[0],n=e[1],r=(n.two,n.clear),s=n.undo,o=n.getSvgXML,u=n.download,c=n.changePenColor,h=n.changePenWidth,f=g(Object(i.useState)(!1),2),d=(f[0],f[1],g(Object(i.useState)(""),2)),v=d[0],y=d[1],b=g(Object(i.useState)("normal"),2),x=b[0],w=b[1],k=g(Object(i.useState)(5),2),S=k[0],E=k[1],C=g(Object(i.useState)(0),2),T=C[0],P=C[1],R=Object(i.useCallback)(function(){c(_())},[c]),A=Object(i.useCallback)(function(e){E(Number(e.target.value)),h(Number(e.target.value))},[h]),O=Object(i.useCallback)(function(){y(o())},[o]),M=Object(i.useCallback)(function(e){w(e.target.value)},[]),F=Object(i.useCallback)(function(e){"rainbow"!==x?"random"!==x?("thinner"==x&&h(T),"normal"===x&&h(S)):h(m(50)+5):c(_())},[x,S,h,c,T]),N=Object(i.useCallback)(function(e,t){P(30-Math.floor(40*e))},[P]);return Object(i.useEffect)(function(){t.current&&l.a.set(t.current,{change:N})},[t,N]),a.a.createElement(i.Fragment,null,a.a.createElement("fieldset",null,a.a.createElement("label",null,a.a.createElement("input",{type:"checkbox",checked:"normal"===x,value:"normal",onChange:M}),"Normal pen."),a.a.createElement("label",null,a.a.createElement("input",{type:"checkbox",checked:"thinner"===x,value:"thinner",onChange:M}),"Pen becoming thinner."),a.a.createElement("label",null,a.a.createElement("input",{type:"checkbox",checked:"random"===x,value:"random",onChange:M}),"Pen becoming Random Width."),a.a.createElement("label",null,a.a.createElement("input",{type:"checkbox",checked:"rainbow"===x,value:"rainbow",onChange:M}),"Rainbow pen."),["normal","rainbow"].includes(x)&&a.a.createElement("div",null,"pen width",a.a.createElement("input",{type:"range",value:S,min:1,max:50,onChange:A})),"rainbow"!==x&&a.a.createElement("button",{onClick:R},"Change Color")),a.a.createElement("div",{style:{display:"flex",justifyContent:"flexWrap"}},a.a.createElement("div",null,a.a.createElement("div",{ref:t,style:{border:"1px solid #eee",margin:"auto"},onMouseMove:F,onTouchMove:F,onTouchEnd:O,onMouseLeave:O}),a.a.createElement("button",{onClick:s},"Undo"),a.a.createElement("button",{onClick:r},"Clear"),a.a.createElement("button",{onClick:u},"Download SVG"))),a.a.createElement("p",{style:{fontSize:"8px"}},v))},null),v)}]); +Object.defineProperty(t,"__esModule",{value:!0});var n=null,r=!1,i=3,a=-1,s=-1,o=!1,l=!1;function u(){if(!o){var e=n.expirationTime;l?k():l=!0,w(f,e)}}function c(){var e=n,t=n.next;if(n===t)n=null;else{var r=n.previous;n=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var a=i,o=s;i=e,s=t;try{var l=r()}finally{i=a,s=o}if("function"==typeof l)if(l={callback:l,priorityLevel:e,expirationTime:t,next:null,previous:null},null===n)n=l.next=l.previous=l;else{r=null,e=n;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==n);null===r?r=n:r===n&&(n=l,u()),(t=r.previous).next=r.previous=l,l.next=r,l.previous=t}}function h(){if(-1===a&&null!==n&&1===n.priorityLevel){o=!0;try{do{c()}while(null!==n&&1===n.priorityLevel)}finally{o=!1,null!==n?u():l=!1}}}function f(e){o=!0;var i=r;r=e;try{if(e)for(;null!==n;){var a=t.unstable_now();if(!(n.expirationTime<=a))break;do{c()}while(null!==n&&n.expirationTime<=a)}else if(null!==n)do{c()}while(null!==n&&!S())}finally{o=!1,r=i,null!==n?u():l=!1,h()}}var d,p,g=Date,m="function"==typeof setTimeout?setTimeout:void 0,_="function"==typeof clearTimeout?clearTimeout:void 0,v="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,y="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function b(e){d=v(function(t){_(p),e(t)}),p=m(function(){y(d),e(t.unstable_now())},100)}if("object"==typeof performance&&"function"==typeof performance.now){var x=performance;t.unstable_now=function(){return x.now()}}else t.unstable_now=function(){return g.now()};var w,k,S,E=null;if("undefined"!=typeof window?E=window:void 0!==e&&(E=e),E&&E._schedMock){var C=E._schedMock;w=C[0],k=C[1],S=C[2],t.unstable_now=C[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var T=null,P=function(e){if(null!==T)try{T(e)}finally{T=null}};w=function(e){null!==T?setTimeout(w,0,e):(T=e,setTimeout(P,0,!1))},k=function(){T=null},S=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof v&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof y&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var R=null,A=!1,O=-1,M=!1,F=!1,N=0,U=33,L=33;S=function(){return N<=t.unstable_now()};var j=new MessageChannel,I=j.port2;j.port1.onmessage=function(){A=!1;var e=R,n=O;R=null,O=-1;var r=t.unstable_now(),i=!1;if(0>=N-r){if(!(-1!==n&&n<=r))return M||(M=!0,b(D)),R=e,void(O=n);i=!0}if(null!==e){F=!0;try{e(i)}finally{F=!1}}};var D=function(e){if(null!==R){b(D);var t=e-N+L;tt&&(t=8),L=tt?I.postMessage(void 0):M||(M=!0,b(D))},k=function(){R=null,A=!1,O=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=i,s=a;i=e,a=t.unstable_now();try{return n()}finally{i=r,a=s,h()}},t.unstable_next=function(e){switch(i){case 1:case 2:case 3:var n=3;break;default:n=i}var r=i,s=a;i=n,a=t.unstable_now();try{return e()}finally{i=r,a=s,h()}},t.unstable_scheduleCallback=function(e,r){var s=-1!==a?a:t.unstable_now();if("object"==typeof r&&null!==r&&"number"==typeof r.timeout)r=s+r.timeout;else switch(i){case 1:r=s+-1;break;case 2:r=s+250;break;case 5:r=s+1073741823;break;case 4:r=s+1e4;break;default:r=s+5e3}if(e={callback:e,priorityLevel:i,expirationTime:r,next:null,previous:null},null===n)n=e.next=e.previous=e,u();else{s=null;var o=n;do{if(o.expirationTime>r){s=o;break}o=o.next}while(o!==n);null===s?s=n:s===n&&(n=e,u()),(r=s.previous).next=s.previous=e,e.next=s,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)n=null;else{e===n&&(n=t);var r=e.previous;r.next=t,t.previous=r}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=i;return function(){var r=i,s=a;i=n,a=t.unstable_now();try{return e.apply(this,arguments)}finally{i=r,a=s,h()}}},t.unstable_getCurrentPriorityLevel=function(){return i},t.unstable_shouldYield=function(){return!r&&(null!==n&&n.expirationTime'+a.innerHTML+"":null},t.prototype.toSvgBase64=function(){var e=this.toSvgXml();return e?"data:image/svg+xml;base64,"+btoa(e):null},t.prototype.clearListner=function(){this.el.removeEventListener("mousedown",this.mouseDown),this.el.removeEventListener("touchstart",this.touchStart)},t.prototype.init=function(){return this.appendTo(this.el),this.el.addEventListener("mousedown",this.mouseDown,c(!1)),this.el.addEventListener("touchstart",this.touchStart,c(!1)),this},t.prototype.drawingStart=function(e){var t=e.x,n=e.y;this.current.set(t,n)},t.prototype.drawingMove=function(e){var t=this,n=e.x,r=e.y,i=this.el.getBoundingClientRect(),a=function(e,t){return new u.a.Vector(e-i.left,t-i.top)};if(this.line){if(this.line.linewidth!==this.penWidth||this.line.stroke!==this.penColor)return void this.drawingEnd();var s=a(n,r);this.line.vertices.push(s)}else{var o=a(this.current.x,this.current.y),l=a(n,r);this.current.set(n,r),this.line=this.makeCurve([o,l],!0),this.line.noFill().stroke=this.penColor,this.line.linewidth=this.penWidth,this.line.cap=this.strokeCap,this.line.join=this.strokeLineJoin,this.line.vertices.map(function(e){t.line&&e.addSelf(t.line.translation)}),this.line.translation.clear()}},t.prototype.drawingEnd=function(){this.line=null},t.prototype.mouseDown=function(e){e.preventDefault(),this.drawingStart({x:e.clientX,y:e.clientY}),this.el.addEventListener("mousemove",this.mouseMove,c(!1)),this.el.addEventListener("mouseup",this.mouseUp,c(!1))},t.prototype.mouseMove=function(e){e.preventDefault(),this.drawingMove({x:e.clientX,y:e.clientY})},t.prototype.mouseUp=function(e){e.preventDefault(),this.el.removeEventListener("mousemove",this.mouseMove),this.el.removeEventListener("mouseup",this.mouseUp),this.drawingEnd()},t.prototype.touchStart=function(e){e.preventDefault();var t=e.touches[0];this.drawingStart({x:t.clientX,y:t.clientY}),this.el.addEventListener("touchmove",this.touchMove,c(!1)),this.el.addEventListener("touchend",this.touchEnd,c(!1))},t.prototype.touchMove=function(e){e.preventDefault();var t=e.touches[0];this.drawingMove({x:t.clientX,y:t.clientY})},t.prototype.touchEnd=function(e){e.preventDefault(),this.el.removeEventListener("touchmove",this.touchMove),this.el.removeEventListener("touchend",this.touchEnd),this.drawingEnd()},t}(u.a),d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=a.next()).done;)s.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(i)throw i.error}}return s},m=function(e){return Math.floor(Math.random()*Math.floor(e))},_=function(){return"#"+Array.from({length:3},function(){return String(m(255).toString(16)).padStart(2,"0")}).join("")},v=document.createElement("div");document.body.appendChild(v),Object(s.render)(a.a.createElement(function(){var e=g(p({penWidth:3,penColor:"#000",width:500,height:500}),2),t=e[0],n=e[1],r=(n.two,n.clear),s=n.undo,o=n.getSvgXML,u=n.download,c=n.changePenColor,h=n.changePenWidth,f=g(Object(i.useState)(!1),2),d=(f[0],f[1],g(Object(i.useState)(""),2)),v=d[0],y=d[1],b=g(Object(i.useState)("normal"),2),x=b[0],w=b[1],k=g(Object(i.useState)(5),2),S=k[0],E=k[1],C=g(Object(i.useState)(0),2),T=C[0],P=C[1],R=Object(i.useCallback)(function(){c(_())},[c]),A=Object(i.useCallback)(function(e){E(Number(e.target.value)),h(Number(e.target.value))},[h]),O=Object(i.useCallback)(function(){y(o())},[o]),M=Object(i.useCallback)(function(e){w(e.target.value)},[]),F=Object(i.useCallback)(function(e){"rainbow"!==x?"random"!==x?("thinner"==x&&h(T),"normal"===x&&h(S)):h(m(50)+5):c(_())},[x,S,h,c,T]),N=Object(i.useCallback)(function(e,t){P(30-Math.floor(40*e))},[P]);return Object(i.useEffect)(function(){t.current&&l.a.set(t.current,{change:N})},[t,N]),a.a.createElement(i.Fragment,null,a.a.createElement("fieldset",null,a.a.createElement("label",null,a.a.createElement("input",{type:"checkbox",checked:"normal"===x,value:"normal",onChange:M}),"Normal pen."),a.a.createElement("label",null,a.a.createElement("input",{type:"checkbox",checked:"thinner"===x,value:"thinner",onChange:M}),"Pen becoming thinner."),a.a.createElement("label",null,a.a.createElement("input",{type:"checkbox",checked:"random"===x,value:"random",onChange:M}),"Pen becoming Random Width."),a.a.createElement("label",null,a.a.createElement("input",{type:"checkbox",checked:"rainbow"===x,value:"rainbow",onChange:M}),"Rainbow pen."),["normal","rainbow"].includes(x)&&a.a.createElement("div",null,"pen width",a.a.createElement("input",{type:"range",value:S,min:1,max:50,onChange:A})),"rainbow"!==x&&a.a.createElement("button",{onClick:R},"Change Color")),a.a.createElement("div",{style:{display:"flex",justifyContent:"flexWrap"}},a.a.createElement("div",null,a.a.createElement("div",{ref:t,style:{border:"1px solid #eee",margin:"auto"},onMouseMove:F,onTouchMove:F,onTouchEnd:O,onMouseLeave:O}),a.a.createElement("button",{onClick:s},"Undo"),a.a.createElement("button",{onClick:r},"Clear"),a.a.createElement("button",{onClick:u},"Download SVG"))),a.a.createElement("p",{style:{fontSize:"8px"}},v))},null),v)}]); //# sourceMappingURL=main.bundle.js.map \ No newline at end of file diff --git a/docs/main.bundle.js.map b/docs/main.bundle.js.map index 9f288037..4e18c566 100644 --- a/docs/main.bundle.js.map +++ b/docs/main.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js","webpack:///./node_modules/two.js/build/two.module.js","webpack:///./node_modules/object-assign/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/pressure/dist/pressure.min.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/svg-drawing/lib/SvgDrawing.js","webpack:///./node_modules/svg-drawing/lib/utils/getPassiveOptions.js","webpack:///./node_modules/svg-drawing/lib/utils/svgFormatting.js","webpack:///./src/useDrawing.ts","webpack:///./src/utils/downloadBlob.ts","webpack:///./src/example/index.tsx"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","Two","_","Registry","window","previousTwo","root","toString","_indexAmount","natural","slice","Array","indexOf","keys","Function","identity","isArguments","obj","isFunction","isString","isNumber","isDate","isRegExp","isError","isFinite","isNaN","parseFloat","isBoolean","isNull","isUndefined","isEmpty","isArrayLike","isArray","length","isElement","nodeType","isObject","type","toArray","map","values","range","start","stop","step","Math","max","ceil","idx","list","item","has","func","ctx","apply","arguments","args","extend","base","sources","k","defaults","push","each","iteratee","context","this","result","once","init","after","times","uniqueId","prefix","id","sin","cos","sqrt","acos","atan2","abs","round","PI","HALF_PI","pow","min","count","perf","performance","now","Date","MAX_ARRAY_INDEX","collection","dom","temp","document","createElement","hasEventListeners","addEventListener","elem","event","bool","attachEvent","unbind","removeEventListeners","detachEvent","getRequestAnimationFrame","cancel","lastTime","vendors","request","requestAnimationFrame","callback","element","currTime","getTime","timeToCall","setTimeout","loop","options","params","fullscreen","width","height","Types","svg","autostart","v","test","domElement","tagName","toLowerCase","renderer","Utils","setPlaying","frameCount","fitted","fitToWindow","body","style","overflow","margin","padding","top","left","right","bottom","position","display","setSize","ratio","Events","resize","updateDimensions","scene","Instances","raf","nextFrameID","Float32Array","webgl","canvas","Version","PublishDate","Identifier","play","pause","update","render","change","remove","insert","order","load","Commands","move","line","curve","arc","close","Resolution","noConflict","secret","flag","charAt","toUpperCase","set","Image","isHeadless","shim","CanvasRenderer","release","vertices","children","xhr","path","XMLHttpRequest","open","onreadystatechange","readyState","status","responseText","send","Curve","CollinearityEpsilon","RecursionLimit","CuspLimit","Tolerance","distance","angle","epsilon","Number","EPSILON","abscissas","weights","devicePixelRatio","getBackingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","getRatio","b","playing","getComputedMatrix","matrix","Matrix","parent","matrices","_matrix","reverse","e","elements","multiply","deltaTransformPoint","x","y","dx","a","dy","Vector","decomposeMatrix","px","py","skewX","skewY","translateX","translateY","f","scaleX","scaleY","rotation","extractCSSText","text","styles","commands","command","split","replace","getSvgStyles","node","applySvgViewBox","translation","scale","applySvgAttributes","parentStyles","attr","attributes","extracted","getComputedStyle","computedStyles","nodeName","opacity","visible","visibility","transform","baseVal","getCTM","transforms","cap","join","miter","linewidth","Group","getById","classList","read","g","getAttribute","group","childNodes","tag","add","polygon","points","verts","match","p1","p2","Anchor","poly","Path","noStroke","fill","polyline","closed","control","coords","coord","relative","last","number","numbers","first","j","ct","bin","lower","items","trim","hasDoubleDecimals","lastIndexOf","splice","concat","x1","y1","x2","y2","x3","y3","x4","y4","reflection","n1","n2","undefined","point","addSelf","getReflection","controls","AppendCurveProperties","isZero","rx","ry","xAxisRotation","largeArcFlag","sweepFlag","anchor","rect","getBoundingClientRect","centroid","subSelf","circle","Circle","ellipse","Ellipse","w2","h2","Rectangle","rounded-rect","radius","RoundedRectangle","Line","noFill","lineargradient","ox","oy","stops","matches","child","offset","color","Gradient","Stop","gradient","LinearGradient","radialgradient","cx","cy","fx","fy","RadialGradient","subdivide","limit","amount","getComponentOnCubicBezier","getCurveLength","ax","bx","ay","by","integrate","getCurveBoundingBox","t1","t2","b2ac","sqrtb2ac","tvalues","bounds","mt","jlen","w","A","B","sum","Ax","getCurveFromPoints","prev","mod","next","getControlPoints","a1","angleBetween","a2","d1","distanceBetween","d2","mid","copy","getAnchorsFromArcData","center","ts","td","ccw","translate","rotate","pct","theta","lerp","toFixed","floor","Collection","Error","message","on","handler","_events","off","names","events","ev","trigger","listen","bound","ignore","method","constructor","pop","popped","shift","shifted","pushed","unshift","unshifted","inserted","spliced","sort","solveSegmentIntersection","decoupleShapes","wr","appendTo","appendChild","animated","_lastFrame","timeDelta","objects","clear","makeLine","makeRectangle","makeRoundedRectangle","sides","makeCircle","makeEllipse","makeStar","outerRadius","innerRadius","star","Star","makeCurve","makePolygon","Polygon","makeArcSegment","ir","or","sa","ea","res","arcSegment","ArcSegment","makePath","makeText","Text","makeLinearGradient","makeRadialGradient","makeSprite","cols","rows","frameRate","sprite","Sprite","makeImageSequence","paths","imageSequence","ImageSequence","makeTexture","Texture","makeGroup","interpret","svgNode","shallow","attach","data","innerHTML","define","contains","zero","v1","v2","sub","subtract","ratioBetween","distanceBetweenSquared","MakeObservable","_bound","_x","_y","xgs","ygs","BoundProto","clone","subtractSelf","multiplySelf","multiplyScalar","divide","divideSelf","divideScalar","negate","dot","lengthSquared","normalize","distanceTo","distanceToSquared","setLength","equals","eps","toObject","radians","lx","ly","_broadcast","_command","_relative","ilx","ily","irx","iry","AnchorProto","tan","fix","array","Identity","Multiply","C","z","A0","A1","A2","A3","A4","A5","A6","A7","A8","B0","B1","B2","B3","B4","B5","B6","B7","B8","manual","h","inverse","out","a00","a01","a02","a10","a11","a12","a20","a21","a22","b01","b11","b21","det","sx","sy","fullMatrix","output","hasOutput","version","xlink","alignments","attrs","createElementNS","setAttributes","setAttributeNS","setAttribute","removeAttributes","removeAttribute","string","vx","vy","ux","uy","ar","bl","br","cl","getClip","shape","clip","_renderer","defs","_clip","removeChild","parentNode","orderChild","renderChild","_update","_opacity","_flagOpacity","flagMatrix","_flagMatrix","_flagClassName","_className","_flagAdditions","additions","forEach","_flagSubtractions","subtractions","_flagOrder","_flagMask","_mask","flagReset","changed","_flagVertices","_closed","_fill","_flagFill","_stroke","_flagStroke","stroke","_flagLinewidth","_linewidth","_flagVisible","_visible","_flagCap","_cap","_flagJoin","_join","_flagMiter","_miter","dashes","_flagClip","_flagFamily","_family","_flagSize","_size","_flagLeading","_leading","_flagAlignment","_alignment","_flagBaseline","_baseline","_flagStyle","_style","_flagWeight","_weight","_flagDecoration","_decoration","_flagValue","textContent","_value","linear-gradient","silent","_flagEndPoints","_flagSpread","spreadMethod","_spread","gradientUnits","_flagStops","lengthChanged","_flagOffset","_offset","_flagColor","_color","radial-gradient","_flagCenter","_flagFocal","focal","_flagRadius","_radius","texture","image","_flagLoaded","loaded","href","toDataURL","src","_flagScale","_scale","_flagRepeat","_repeat","patternUnits","appended","Renderer","emptyArray","TWO_PI","isDefaultMatrix","isHidden","middle","prop","val","defaultMatrix","mask","save","restore","forced","parentClipped","isOffset","fillStyle","effect","strokeStyle","lineWidth","miterLimit","lineJoin","lineCap","globalAlpha","setLineDash","beginPath","closePath","renderSvgArcCommand","bezierCurveTo","lineTo","moveTo","font","textAlign","textBaseline","fillText","strokeText","createLinearGradient","addColorStop","createRadialGradient","_flagImage","_flagVideo","createPattern","dx2","dy2","x1p","y1p","rxs","rys","x1ps","y1ps","cr","dq","q","cxp","cyp","startAngle","svgAngle","endAngle","clockwise","deltaAngle","samePoints","tx","ty","renderArcEstimate","smoothing","getContext","overdraw","imageSmoothingEnabled","len","ang","isOne","clearRect","multiplyMatrix","transformation","CanvasUtils","uv","gl","deleteTexture","program","flagParentMatrix","enable","STENCIL_TEST","stencilFunc","ALWAYS","colorMask","stencilOp","KEEP","INCR","NOTEQUAL","DECR","disable","updateCanvas","border","Infinity","forcedParent","flagTexture","triangles","getTriangles","updateBuffer","updateTexture","bindBuffer","ARRAY_BUFFER","textureCoordsBuffer","vertexAttribPointer","textureCoords","FLOAT","bindTexture","TEXTURE_2D","uniformMatrix3fv","buffer","drawArrays","TRIANGLES","measureText","createTexture","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","texImage2D","RGBA","UNSIGNED_BYTE","deleteBuffer","createBuffer","enableVertexAttribArray","bufferData","STATIC_DRAW","shaders","error","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteProgram","source","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","deleteShader","types","vertex","fragment","TextureRegistry","vs","fs","antialias","alpha","premultipliedAlpha","stencil","preserveDrawingBuffer","useProgram","getAttribLocation","getUniformLocation","DEPTH_TEST","BLEND","blendEquationSeparate","FUNC_ADD","blendFuncSeparate","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","ONE","viewport","resolutionLocation","uniform2f","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","Shape","FlagMatrix","isShape","_translation","_rotation","addTo","bubbles","RegExp","curved","flagVertices","FlagVertices","bindVertices","BindVertices","unbindVertices","UnbindVertices","flagFill","FlagFill","flagStroke","FlagStroke","_curved","beginning","ending","className","automatic","target","_length","elapsed","_lengths","dist","getIdByLength","total","getSubdivisions","Properties","_flagLength","_updateLength","_automatic","_beginning","_ending","_collection","corner","v0","c0","c1","bb","getPointAt","ia","ib","t1x","t1y","t2x","t2y","t3x","t3y","brx","bry","alx","aly","plot","bid","eid","low","high","origin","_origin","_width","_height","_flagWidth","_flagHeight","xr","yr","resolution","rc","_sides","_flagSides","_flagStartAngle","_flagEndAngle","_flagInnerRadius","_flagOuterRadius","_startAngle","_endAngle","_innerRadius","_outerRadius","connected","punctured","amp","outerradius","flagRadius","FlagRadius","console","warn","Ratio","leading","size","alignment","baseline","Index","flagStops","FlagStops","bindStops","BindStops","unbindStops","UnbindStops","spread","_stops","flagEndPoints","FlagEndPoints","_flatCenter","regex","video","flagOffset","FlagOffset","flagScale","FlagScale","RegularExpressions","ImageRegistry","getAbsoluteURL","loadHeadlessBuffer","getImage","absoluteSrc","crossOrigin","Register","_src","img","removeEventListener","videoWidth","videoHeight","_flagSrc","_image","index","_loaded","columns","_flagTexture","_flagColumns","_flagRows","_flagFrameRate","flagIndex","_amount","_duration","_startTime","_playing","_firstFrame","_loop","_texture","_columns","_rows","_frameRate","_index","firstFrame","lastFrame","onLastFrame","_onLastFrame","duration","iw","ih","frames","flagTextures","FlagTextures","bindTextures","BindTextures","unbindTextures","UnbindTextures","textures","GenerateTexture","DefaultFrameRate","_flagTextures","_textures","_flagIndex","effects","Children","ids","detach","replaceParent","newParent","InsertChildren","RemoveChildren","OrderChildren","properties","_flagBeginning","_flagEnding","MakeGetterSetters","_children","insertChildren","removeChildren","orderChildren","MakeGetterSetter","search","found","getByClassName","getByType","grandparent","bd","ed","__webpack_exports__","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","err","shouldUseNative","from","symbols","to","TypeError","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","ReferenceError","writable","configurable","setPrototypeOf","__proto__","iterator","config","routeEvents","preventSelect","adapter","P","u","bindUnsupportedEvent","bindEvents","webkitTouchCallout","webkitUserSelect","khtmlUserSelect","MozUserSelect","msUserSelect","userSelect","el","block","pressed","deepPressed","nativeSupport","runningPolyfill","runKey","random","runPolyfill","runClosure","isPressed","setPressed","isDeepPressed","setDeepPressed","_endDeepPress","_startDeepPress","increment","decrement","loopPolyfillForce","deepPress","_endPress","getPrototypeOf","_startPress","support","fail","webkitForce","_changePress","normalizeForce","reachOne","startLegacy","touches","touch","selectTouch","force","initialForce","supportLegacy","loopForce","returnTouch","pressure","polyfill","polyfillSpeedUp","polyfillSpeedDown","only","querySelectorAll","HTMLElement","Touch","for","aa","ba","encodeURIComponent","framesToPop","ca","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","D","E","props","refs","updater","F","G","isReactComponent","setState","forceUpdate","H","isPureReactComponent","I","current","J","K","L","ref","__self","__source","M","defaultProps","$$typeof","_owner","N","O","Q","keyPrefix","R","U","S","T","done","=",":","escape","fa","V","da","W","X","createRef","Component","PureComponent","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","forwardRef","lazy","_ctor","_status","_result","memo","compare","useCallback","useContext","useEffect","useImperativeHandle","useDebugValue","useLayoutEffect","useMemo","useReducer","useRef","useState","Fragment","StrictMode","Suspense","cloneElement","createFactory","isValidElement","unstable_ConcurrentMode","unstable_Profiler","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentOwner","Y","default","Z","ha","onError","ja","la","ma","na","oa","extractEvents","eventTypes","pa","phasedRegistrationNames","qa","registrationName","ra","dependencies","ta","ua","va","wa","currentTarget","ka","xa","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","Ba","injectEventPluginOrder","injectEventPluginsByName","Ca","stateNode","disabled","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","return","Ma","dispatchConfig","Na","_targetInst","Oa","Pa","Qa","Ra","Sa","Ta","animationend","animationiteration","animationstart","transitionend","Ua","Va","Wa","animation","transition","Xa","Ya","Za","$a","ab","cb","db","eb","fb","gb","nativeEvent","Interface","isDefaultPrevented","defaultPrevented","returnValue","eventPool","jb","destructor","hb","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","cancelable","timeStamp","isTrusted","kb","lb","mb","nb","ob","documentMode","pb","qb","rb","sb","beforeInput","bubbled","captured","compositionEnd","compositionStart","compositionUpdate","tb","ub","keyCode","vb","detail","wb","zb","locale","which","xb","ctrlKey","altKey","metaKey","char","yb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","date","datetime","datetime-local","email","month","password","tel","time","url","week","Mb","Nb","srcElement","correspondingUseElement","Ob","Pb","Rb","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","Qb","Sb","checked","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","displayName","jc","_debugOwner","_debugSource","fileName","lineNumber","kc","lc","mc","nc","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sc","tc","pc","qc","oc","uc","vc","defaultChecked","defaultValue","_wrapperState","initialChecked","wc","initialValue","controlled","xc","yc","zc","Ac","ownerDocument","activeElement","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","_isInputEventSupported","Qc","view","Rc","Alt","Control","Meta","Shift","Sc","getModifierState","Tc","Uc","Vc","Wc","Xc","Yc","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Zc","pointerId","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","$c","mouseEnter","mouseLeave","pointerEnter","pointerLeave","ad","defaultView","parentWindow","alternate","cd","dd","effectTag","fd","hd","sibling","gd","animationName","elapsedTime","pseudoElement","jd","clipboardData","kd","ld","charCode","md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","nd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","od","location","repeat","pd","dataTransfer","qd","targetTouches","changedTouches","rd","sd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","ud","vd","wd","isInteractive","xd","isInteractiveTopLevelEventType","yd","zd","Ad","targetInst","ancestors","containerInfo","topLevelType","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","firstChild","Ld","nextSibling","Nd","HTMLIFrameElement","contentWindow","Od","contentEditable","Qd","focusedElem","selectionRange","Md","compareDocumentPosition","documentElement","end","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","Rd","Sd","select","Td","Ud","Vd","Wd","Xd","Yd","onSelect","$d","Zd","ae","selected","defaultSelected","be","dangerouslySetInnerHTML","ce","de","ee","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","fe","html","mathml","ge","he","ie","je","namespaceURI","MSApp","execUnsafeLocalFunction","ke","lastChild","nodeValue","le","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","me","ne","oe","setProperty","substring","pe","menuitem","area","col","embed","hr","input","keygen","link","meta","param","track","wbr","qe","re","is","se","blur","te","ue","ve","we","autoFocus","xe","__html","ye","ze","clearTimeout","Ae","unstable_scheduleCallback","Be","unstable_cancelCallback","De","Ee","Set","Fe","Ge","He","Ie","Je","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","Ke","Le","Me","Ne","getChildContext","Oe","__reactInternalMemoizedMergedChildContext","Pe","Qe","Re","Se","Ue","elementType","pendingProps","contextDependencies","memoizedState","updateQueue","memoizedProps","lastEffect","firstEffect","nextEffect","childExpirationTime","expirationTime","Ve","Xe","Ye","Ze","$e","af","bf","pendingChildren","implementation","cf","didError","earliestPendingTime","latestPendingTime","df","ff","latestPingedTime","earliestSuspendedTime","latestSuspendedTime","gf","nextExpirationTimeToWorkOn","jf","kf","baseState","tf","_reactInternalFiber","lf","nf","mf","payload","of","pf","qf","rf","sf","uf","shouldComponentUpdate","vf","contextType","state","wf","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","xf","yf","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","zf","Af","_stringRef","Bf","Cf","Map","delete","Df","Ef","Ff","Gf","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","queue","baseUpdate","ng","og","pg","lastRenderedReducer","dispatch","action","qg","lastRenderedState","eagerReducer","eagerState","rg","destroy","deps","sg","tg","ug","vg","wg","readContext","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","Qg","getDerivedStateFromError","Rg","pendingContext","Sg","timedOutAt","fallback","Tg","Ug","then","hf","We","hydrate","hidden","observedBits","unstable_observedBits","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstCapturedEffect","lastCapturedEffect","ch","dh","eh","fh","gh","hh","jh","stack","kh","lh","mh","nh","oh","onClick","onclick","ph","WeakSet","qh","rh","sh","th","vh","componentWillUnmount","wh","xh","yh","insertBefore","_reactRootContainer","zh","wasMultiple","multiple","Ce","uh","hi","Xh","Bh","WeakMap","Ch","Dh","Eh","componentDidCatch","Fh","componentStack","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","__reactInternalSnapshotBeforeUpdate","Vh","Zh","pendingCommitExpirationTime","ef","Pd","Yh","unstable_runWithPriority","unstable_NormalPriority","finishedWork","$h","ai","createTextNode","bi","ci","di","maxDuration","pingCache","ei","fi","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","unstable_UserBlockingPriority","unstable_LowPriority","unstable_IdlePriority","gi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","unstable_now","ui","vi","wi","xi","yi","zi","timeout","timeoutHandle","Bi","Ci","nextScheduledRoot","Di","Ei","unstable_shouldYield","_onComplete","Fi","firstBatch","_expirationTime","_defer","Gi","Hi","Ii","Ji","Ki","Li","Ni","_root","_callbacks","_next","_hasChildren","_didComplete","Oi","_didCommit","_onCommit","Pi","_internalRoot","Qi","Si","legacy_renderSubtreeIntoContainer","hasAttribute","Ri","Ti","Mi","JSON","stringify","form","commit","unmount","createBatch","Vi","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","unstable_interactiveUpdates","flushSync","unstable_createRoot","unstable_flushControlled","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Te","overrideProps","currentDispatcherRef","findHostInstanceByFiber","bundleType","rendererPackageName","Wi","Xi","previous","priorityLevel","cancelAnimationFrame","_schedMock","MessageChannel","port2","port1","onmessage","postMessage","unstable_next","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","originalModule","webpackPolyfill","__webpack_amd_options__","extendStatics","getPassiveOptions","passive","check","__extends","__","SvgDrawing_SvgDrawing","_super","SvgDrawing","_this","clearListner","toSvgXml","toSvgBase64","drawingStart","drawingMove","drawingEnd","mouseUp","mouseMove","mouseDown","touchStart","touchMove","touchEnd","two_module","penColor","penWidth","strokeCap","strokeLineJoin","clientWidth","clientHeight","svgString","doc","svgEle","originSvgEle","svgElement","outerHTML","DOMParser","parseFromString","querySelector","attrValue","svgXml","btoa","_a","makePoint","mx","my","vprev","vnext","__assign","useSvgDrawing","option","renderRef","react","drawingRef","getSvgXML","download","base64","filename","mimeType","atob","Uint8Array","charCodeAt","blob","Blob","navigator","msSaveBlob","URL","createObjectURL","click","downloadBlob","toISOString","changePenColor","changePenWidth","penSise","undo","drawingChildren","two","__read","getRandomInt","getRandomColor","padStart","app","react_dom","react_default","divRef","_b","drawingClear","_c","_d","xml","setXml","_e","penMode","setPenMode","_f","setPenWidth","_g","penThinnerWidth","setPenThinnerWidth","handleColor","handlePenWidth","handleChangeXML","handleChangeMode","handleUpdatePenConfig","pressureChange","pressure_min_default","onChange","includes","justifyContent","onMouseMove","onTouchMove","onTouchEnd","onMouseLeave","fontSize"],"mappings":"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","file":"main.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n\nMIT License\n\nCopyright (c) 2012 - 2017 jonobr1 / http://jonobr1.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n*/\n\n(this || window).Two = (function(previousTwo) {\n\n var root = typeof window != 'undefined' ? window : typeof global != 'undefined' ? global : null;\n var toString = Object.prototype.toString;\n /**\n * @name _\n * @interface\n * @private\n * @description A collection of useful functions borrowed and repurposed from Underscore.js.\n * @see {@link http://underscorejs.org/}\n */\n var _ = {\n // http://underscorejs.org/ • 1.8.3\n _indexAmount: 0,\n natural: {\n slice: Array.prototype.slice,\n indexOf: Array.prototype.indexOf,\n keys: Object.keys,\n bind: Function.prototype.bind,\n create: Object.create\n },\n identity: function(value) {\n return value;\n },\n isArguments: function(obj) {\n return toString.call(obj) === '[object Arguments]';\n },\n isFunction: function(obj) {\n return toString.call(obj) === '[object Function]';\n },\n isString: function(obj) {\n return toString.call(obj) === '[object String]';\n },\n isNumber: function(obj) {\n return toString.call(obj) === '[object Number]';\n },\n isDate: function(obj) {\n return toString.call(obj) === '[object Date]';\n },\n isRegExp: function(obj) {\n return toString.call(obj) === '[object RegExp]';\n },\n isError: function(obj) {\n return toString.call(obj) === '[object Error]';\n },\n isFinite: function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n },\n isNaN: function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n },\n isBoolean: function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n },\n isNull: function(obj) {\n return obj === null;\n },\n isUndefined: function(obj) {\n return obj === void 0;\n },\n isEmpty: function(obj) {\n if (obj == null) return true;\n if (isArrayLike && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n },\n isElement: function(obj) {\n return !!(obj && obj.nodeType === 1);\n },\n isArray: Array.isArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n },\n isObject: function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n },\n toArray: function(obj) {\n if (!obj) {\n return [];\n }\n if (_.isArray(obj)) {\n return slice.call(obj);\n }\n if (isArrayLike(obj)) {\n return _.map(obj, _.identity);\n }\n return _.values(obj);\n },\n range: function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n },\n indexOf: function(list, item) {\n if (!!_.natural.indexOf) {\n return _.natural.indexOf.call(list, item);\n }\n for (var i = 0; i < list.length; i++) {\n if (list[i] === item) {\n return i;\n }\n }\n return -1;\n },\n has: function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n },\n bind: function(func, ctx) {\n var natural = _.natural.bind;\n if (natural && func.bind === natural) {\n return natural.apply(func, slice.call(arguments, 1));\n }\n var args = slice.call(arguments, 2);\n return function() {\n func.apply(ctx, args);\n };\n },\n extend: function(base) {\n var sources = slice.call(arguments, 1);\n for (var i = 0; i < sources.length; i++) {\n var obj = sources[i];\n for (var k in obj) {\n base[k] = obj[k];\n }\n }\n return base;\n },\n defaults: function(base) {\n var sources = slice.call(arguments, 1);\n for (var i = 0; i < sources.length; i++) {\n var obj = sources[i];\n for (var k in obj) {\n if (base[k] === void 0) {\n base[k] = obj[k];\n }\n }\n }\n return base;\n },\n keys: function(obj) {\n if (!_.isObject(obj)) {\n return [];\n }\n if (_.natural.keys) {\n return _.natural.keys(obj);\n }\n var keys = [];\n for (var k in obj) {\n if (_.has(obj, k)) {\n keys.push(k);\n }\n }\n return keys;\n },\n values: function(obj) {\n var keys = _.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n values.push(obj[k]);\n }\n return values;\n },\n each: function(obj, iteratee, context) {\n var ctx = context || this;\n var keys = !isArrayLike(obj) && _.keys(obj);\n var length = (keys || obj).length;\n for (var i = 0; i < length; i++) {\n var k = keys ? keys[i] : i;\n iteratee.call(ctx, obj[k], k, obj);\n }\n return obj;\n },\n map: function(obj, iteratee, context) {\n var ctx = context || this;\n var keys = !isArrayLike(obj) && _.keys(obj);\n var length = (keys || obj).length;\n var result = [];\n for (var i = 0; i < length; i++) {\n var k = keys ? keys[i] : i;\n result[i] = iteratee.call(ctx, obj[k], k, obj);\n }\n return result;\n },\n once: function(func) {\n var init = false;\n return function() {\n if (!!init) {\n return func;\n }\n init = true;\n return func.apply(this, arguments);\n }\n },\n after: function(times, func) {\n return function() {\n while (--times < 1) {\n return func.apply(this, arguments);\n }\n }\n },\n uniqueId: function(prefix) {\n var id = ++_._indexAmount + '';\n return prefix ? prefix + id : id;\n }\n };\n\n // Constants\n\n var sin = Math.sin,\n cos = Math.cos,\n acos = Math.acos,\n atan2 = Math.atan2,\n sqrt = Math.sqrt,\n round = Math.round,\n abs = Math.abs,\n PI = Math.PI,\n TWO_PI = PI * 2,\n HALF_PI = PI / 2,\n pow = Math.pow,\n min = Math.min,\n max = Math.max;\n\n // Localized variables\n\n var count = 0;\n var slice = _.natural.slice;\n var perf = ((root.performance && root.performance.now) ? root.performance : Date);\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = function(obj) {\n return obj == null ? void 0 : obj['length'];\n };\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Cross browser dom events.\n\n var dom = {\n\n temp: (root.document ? root.document.createElement('div') : {}),\n\n hasEventListeners: _.isFunction(root.addEventListener),\n\n bind: function(elem, event, func, bool) {\n if (this.hasEventListeners) {\n elem.addEventListener(event, func, !!bool);\n } else {\n elem.attachEvent('on' + event, func);\n }\n return dom;\n },\n\n unbind: function(elem, event, func, bool) {\n if (dom.hasEventListeners) {\n elem.removeEventListeners(event, func, !!bool);\n } else {\n elem.detachEvent('on' + event, func);\n }\n return dom;\n },\n\n getRequestAnimationFrame: function() {\n\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n var request = root.requestAnimationFrame, cancel;\n\n if(!request) {\n for (var i = 0; i < vendors.length; i++) {\n request = root[vendors[i] + 'RequestAnimationFrame'] || request;\n cancel = root[vendors[i] + 'CancelAnimationFrame']\n || root[vendors[i] + 'CancelRequestAnimationFrame'] || cancel;\n }\n\n request = request || function(callback, element) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = root.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n // cancel = cancel || function(id) {\n // clearTimeout(id);\n // };\n }\n\n request.init = _.once(loop);\n\n return request;\n\n }\n\n };\n\n /**\n * @name Two\n * @class\n * @global\n * @param {Object} [options]\n * @param {Boolean} [options.fullscreen=false] - Set to `true` to automatically make the stage adapt to the width and height of the parent document. This parameter overrides `width` and `height` parameters if set to `true`.\n * @param {Number} [options.width=640] - The width of the stage on construction. This can be set at a later time.\n * @param {Number} [options.height=480] - The height of the stage on construction. This can be set at a later time.\n * @param {String} [options.type=Two.Types.svg] - The type of renderer to setup drawing with. See [`Two.Types`]{@link Two.Types} for available options.\n * @param {Boolean} [options.autostart=false] - Set to `true` to add the instance to draw on `requestAnimationFrame`. This is a convenient substitute for {@link Two#play}.\n * @description The entrypoint for Two.js. Instantiate a `new Two` in order to setup a scene to render to. `Two` is also the publicly accessible namespace that all other sub-classes, functions, and utilities attach to.\n */\n var Two = root.Two = function(options) {\n\n // Determine what Renderer to use and setup a scene.\n\n var params = _.defaults(options || {}, {\n fullscreen: false,\n width: 640,\n height: 480,\n type: Two.Types.svg,\n autostart: false\n });\n\n _.each(params, function(v, k) {\n if (/fullscreen/i.test(k) || /autostart/i.test(k)) {\n return;\n }\n this[k] = v;\n }, this);\n\n // Specified domElement overrides type declaration only if the element does not support declared renderer type.\n if (_.isElement(params.domElement)) {\n var tagName = params.domElement.tagName.toLowerCase();\n // TODO: Reconsider this if statement's logic.\n if (!/^(CanvasRenderer-canvas|WebGLRenderer-canvas|SVGRenderer-svg)$/.test(this.type+'-'+tagName)) {\n this.type = Two.Types[tagName];\n }\n }\n\n this.renderer = new Two[this.type](this);\n Two.Utils.setPlaying.call(this, params.autostart);\n this.frameCount = 0;\n\n if (params.fullscreen) {\n\n var fitted = _.bind(fitToWindow, this);\n _.extend(document.body.style, {\n overflow: 'hidden',\n margin: 0,\n padding: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n position: 'fixed'\n });\n _.extend(this.renderer.domElement.style, {\n display: 'block',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n position: 'fixed'\n });\n dom.bind(root, 'resize', fitted);\n fitted();\n\n\n } else if (!_.isElement(params.domElement)) {\n\n this.renderer.setSize(params.width, params.height, this.ratio);\n this.width = params.width;\n this.height = params.height;\n\n }\n\n this.renderer.bind(Two.Events.resize, _.bind(updateDimensions, this));\n this.scene = this.renderer.scene;\n\n Two.Instances.push(this);\n if (params.autostart) {\n raf.init();\n }\n\n };\n\n _.extend(Two, {\n\n // Access to root in other files.\n\n /**\n * @name Two.root\n * @description The root of the session context. In the browser this is the `window` variable. This varies in headless environments.\n */\n root: root,\n\n /**\n * @name Two.nextFrameID\n * @property {Integer}\n * @description The id of the next requestAnimationFrame function.\n */\n nextFrameID: null,\n\n // Primitive\n\n /**\n * @name Two.Array\n * @description A simple polyfill for Float32Array.\n */\n Array: root.Float32Array || Array,\n\n /**\n * @name Two.Types\n * @property {Object} - The different rendering types availabe in the library.\n */\n Types: {\n webgl: 'WebGLRenderer',\n svg: 'SVGRenderer',\n canvas: 'CanvasRenderer'\n },\n\n /**\n * @name Two.Version\n * @property {String} - The current working version of the library.\n */\n Version: 'v0.7.0-beta.3',\n\n /**\n * @name Two.PublishDate\n * @property {String} - The automatically generated publish date in the build process to verify version release candidates.\n */\n PublishDate: '2018-12-08T22:41:43+01:00',\n\n /**\n * @name Two.Identifier\n * @property {String} - String prefix for all Two.js object's ids. This trickles down to SVG ids.\n */\n Identifier: 'two-',\n\n /**\n * @name Two.Events\n * @property {Object} - Map of possible events in Two.js.\n */\n Events: {\n play: 'play',\n pause: 'pause',\n update: 'update',\n render: 'render',\n resize: 'resize',\n change: 'change',\n remove: 'remove',\n insert: 'insert',\n order: 'order',\n load: 'load'\n },\n\n /**\n * @name Two.Commands\n * @property {Object} - Map of possible path commands. Taken from the SVG specification.\n */\n Commands: {\n move: 'M',\n line: 'L',\n curve: 'C',\n arc: 'A',\n close: 'Z'\n },\n\n /**\n * @name Two.Resolution\n * @property {Number} - Default amount of vertices to be used for interpreting Arcs and ArcSegments.\n */\n Resolution: 12,\n\n /**\n * @name Two.Instances\n * @property {Array} - Registered list of all Two.js instances in the current session.\n */\n Instances: [],\n\n /**\n * @function Two.noConflict\n * @description A function to revert the global namespaced `Two` variable to its previous incarnation.\n * @returns {Two} Returns access to the top-level Two.js library for local use.\n */\n noConflict: function() {\n root.Two = previousTwo;\n return Two;\n },\n\n /**\n * @function Two.uniqueId\n * @description Simple method to access an incrementing value. Used for `id` allocation on all Two.js objects.\n * @returns {Number} Ever increasing integer.\n */\n uniqueId: function() {\n var id = count;\n count++;\n return id;\n },\n\n /**\n * @name Two.Utils\n * @interface\n * @implements {_}\n * @description A hodgepodge of handy functions, math, and properties are stored here.\n */\n Utils: _.extend(_, {\n\n /**\n * @name Two.Utils.performance\n * @property {Date} - A special `Date` like object to get the current millis of the session. Used internally to calculate time between frames.\n * e.g: `Two.Utils.performance.now() // milliseconds since epoch`\n */\n performance: perf,\n\n /**\n * @name Two.Utils.defineProperty\n * @function\n * @this Two#\n * @param {String} property - The property to add an enumerable getter / setter to.\n * @description Convenience function to setup the flag based getter / setter that most properties are defined as in Two.js.\n */\n defineProperty: function(property) {\n\n var object = this;\n var secret = '_' + property;\n var flag = '_flag' + property.charAt(0).toUpperCase() + property.slice(1);\n\n Object.defineProperty(object, property, {\n enumerable: true,\n get: function() {\n return this[secret];\n },\n set: function(v) {\n this[secret] = v;\n this[flag] = true;\n }\n });\n\n },\n\n Image: null,\n\n isHeadless: false,\n\n /**\n * @name Two.Utils.shim\n * @function\n * @param {canvas} canvas - The instanced `Canvas` object provided by `node-canvas`.\n * @param {Image} [Image] - The prototypical `Image` object provided by `node-canvas`. This is only necessary to pass if you're going to load bitmap imagery.\n * @returns {canvas} Returns the instanced canvas object you passed from with additional attributes needed for Two.js.\n * @description Convenience method for defining all the dependencies from the npm package `node-canvas`. See [node-canvas]{@link https://github.com/Automattic/node-canvas} for additional information on setting up HTML5 `` drawing in a node.js environment.\n */\n shim: function(canvas, Image) {\n Two.CanvasRenderer.Utils.shim(canvas);\n if (!_.isUndefined(Image)) {\n Two.Utils.Image = Image;\n }\n Two.Utils.isHeadless = true;\n return canvas;\n },\n\n /**\n * @name Two.Utils.release\n * @function\n * @param {Object} obj\n * @returns {Object} The object passed for event deallocation.\n * @description Release an arbitrary class' events from the Two.js corpus and recurse through its children and or vertices.\n */\n release: function(obj) {\n\n if (!_.isObject(obj)) {\n return;\n }\n\n if (_.isFunction(obj.unbind)) {\n obj.unbind();\n }\n\n if (obj.vertices) {\n if (_.isFunction(obj.vertices.unbind)) {\n obj.vertices.unbind();\n }\n _.each(obj.vertices, function(v) {\n if (_.isFunction(v.unbind)) {\n v.unbind();\n }\n });\n }\n\n if (obj.children) {\n _.each(obj.children, function(obj) {\n Two.Utils.release(obj);\n });\n }\n\n return obj;\n\n },\n\n /**\n * @name Two.Utils.xhr\n * @function\n * @param {String} path\n * @param {Function} callback\n * @returns {XMLHttpRequest} The constructed and called XHR request.\n * @description Canonical method to initiate `GET` requests in the browser. Mainly used by {@link Two#load} method.\n */\n xhr: function(path, callback) {\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path);\n\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4 && xhr.status === 200) {\n callback(xhr.responseText);\n }\n };\n\n xhr.send();\n return xhr;\n\n },\n\n /**\n * @name Two.Utils.Curve\n * @property {Object} - Additional utility constant variables related to curve math and calculations.\n */\n Curve: {\n\n CollinearityEpsilon: pow(10, -30),\n\n RecursionLimit: 16,\n\n CuspLimit: 0,\n\n Tolerance: {\n distance: 0.25,\n angle: 0,\n epsilon: Number.EPSILON\n },\n\n // Lookup tables for abscissas and weights with values for n = 2 .. 16.\n // As values are symmetric, only store half of them and adapt algorithm\n // to factor in symmetry.\n abscissas: [\n [ 0.5773502691896257645091488],\n [0,0.7745966692414833770358531],\n [ 0.3399810435848562648026658,0.8611363115940525752239465],\n [0,0.5384693101056830910363144,0.9061798459386639927976269],\n [ 0.2386191860831969086305017,0.6612093864662645136613996,0.9324695142031520278123016],\n [0,0.4058451513773971669066064,0.7415311855993944398638648,0.9491079123427585245261897],\n [ 0.1834346424956498049394761,0.5255324099163289858177390,0.7966664774136267395915539,0.9602898564975362316835609],\n [0,0.3242534234038089290385380,0.6133714327005903973087020,0.8360311073266357942994298,0.9681602395076260898355762],\n [ 0.1488743389816312108848260,0.4333953941292471907992659,0.6794095682990244062343274,0.8650633666889845107320967,0.9739065285171717200779640],\n [0,0.2695431559523449723315320,0.5190961292068118159257257,0.7301520055740493240934163,0.8870625997680952990751578,0.9782286581460569928039380],\n [ 0.1252334085114689154724414,0.3678314989981801937526915,0.5873179542866174472967024,0.7699026741943046870368938,0.9041172563704748566784659,0.9815606342467192506905491],\n [0,0.2304583159551347940655281,0.4484927510364468528779129,0.6423493394403402206439846,0.8015780907333099127942065,0.9175983992229779652065478,0.9841830547185881494728294],\n [ 0.1080549487073436620662447,0.3191123689278897604356718,0.5152486363581540919652907,0.6872929048116854701480198,0.8272013150697649931897947,0.9284348836635735173363911,0.9862838086968123388415973],\n [0,0.2011940939974345223006283,0.3941513470775633698972074,0.5709721726085388475372267,0.7244177313601700474161861,0.8482065834104272162006483,0.9372733924007059043077589,0.9879925180204854284895657],\n [ 0.0950125098376374401853193,0.2816035507792589132304605,0.4580167776572273863424194,0.6178762444026437484466718,0.7554044083550030338951012,0.8656312023878317438804679,0.9445750230732325760779884,0.9894009349916499325961542]\n ],\n\n weights: [\n [1],\n [0.8888888888888888888888889,0.5555555555555555555555556],\n [0.6521451548625461426269361,0.3478548451374538573730639],\n [0.5688888888888888888888889,0.4786286704993664680412915,0.2369268850561890875142640],\n [0.4679139345726910473898703,0.3607615730481386075698335,0.1713244923791703450402961],\n [0.4179591836734693877551020,0.3818300505051189449503698,0.2797053914892766679014678,0.1294849661688696932706114],\n [0.3626837833783619829651504,0.3137066458778872873379622,0.2223810344533744705443560,0.1012285362903762591525314],\n [0.3302393550012597631645251,0.3123470770400028400686304,0.2606106964029354623187429,0.1806481606948574040584720,0.0812743883615744119718922],\n [0.2955242247147528701738930,0.2692667193099963550912269,0.2190863625159820439955349,0.1494513491505805931457763,0.0666713443086881375935688],\n [0.2729250867779006307144835,0.2628045445102466621806889,0.2331937645919904799185237,0.1862902109277342514260976,0.1255803694649046246346943,0.0556685671161736664827537],\n [0.2491470458134027850005624,0.2334925365383548087608499,0.2031674267230659217490645,0.1600783285433462263346525,0.1069393259953184309602547,0.0471753363865118271946160],\n [0.2325515532308739101945895,0.2262831802628972384120902,0.2078160475368885023125232,0.1781459807619457382800467,0.1388735102197872384636018,0.0921214998377284479144218,0.0404840047653158795200216],\n [0.2152638534631577901958764,0.2051984637212956039659241,0.1855383974779378137417166,0.1572031671581935345696019,0.1215185706879031846894148,0.0801580871597602098056333,0.0351194603317518630318329],\n [0.2025782419255612728806202,0.1984314853271115764561183,0.1861610000155622110268006,0.1662692058169939335532009,0.1395706779261543144478048,0.1071592204671719350118695,0.0703660474881081247092674,0.0307532419961172683546284],\n [0.1894506104550684962853967,0.1826034150449235888667637,0.1691565193950025381893121,0.1495959888165767320815017,0.1246289712555338720524763,0.0951585116824927848099251,0.0622535239386478928628438,0.0271524594117540948517806]\n ]\n\n },\n\n devicePixelRatio: root.devicePixelRatio || 1,\n\n getBackingStoreRatio: function(ctx) {\n return ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio || 1;\n },\n\n /**\n * @name Two.Utils.getRatio\n * @function\n * @param {Canvas.context2D} ctx\n * @returns {Number} The ratio of a unit in Two.js to the pixel density of a session's screen.\n * @see [High DPI Rendering]{@link http://www.html5rocks.com/en/tutorials/canvas/hidpi/}\n */\n getRatio: function(ctx) {\n return Two.Utils.devicePixelRatio / getBackingStoreRatio(ctx);\n },\n\n /**\n * @name Two.Utils.setPlaying\n * @function\n * @this Two#\n * @returns {Two} The instance called with for potential chaining.\n * @description Internal convenience method to properly defer play calling until after all objects have been updated with their newest styles.\n */\n setPlaying: function(b) {\n\n this.playing = !!b;\n return this;\n\n },\n\n /**\n * @name Two.Utils.getComputedMatrix\n * @function\n * @param {Two.Shape} object - The Two.js object that has a matrix property to calculate from.\n * @param {Two.Matrix} [matrix] - The matrix to apply calculated transformations to if available.\n * @returns {Two.Matrix} The computed matrix of a nested object. If no `matrix` was passed in arguments then a `new Two.Matrix` is returned.\n * @description Method to get the world space transformation of a given object in a Two.js scene.\n */\n getComputedMatrix: function(object, matrix) {\n\n matrix = (matrix && matrix.identity()) || new Two.Matrix();\n var parent = object, matrices = [];\n\n while (parent && parent._matrix) {\n matrices.push(parent._matrix);\n parent = parent.parent;\n }\n\n matrices.reverse();\n\n for (var i = 0; i < matrices.length; i++) {\n\n var m = matrices[i];\n var e = m.elements;\n matrix.multiply(\n e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8], e[9]);\n\n }\n\n return matrix;\n\n },\n\n /**\n * @name Two.Utils.deltaTransformPoint\n * @function\n * @param {Two.Matrix} matrix\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector}\n * @description Used by {@link Two.Utils.decomposeMatrix}\n */\n deltaTransformPoint: function(matrix, x, y) {\n\n var dx = x * matrix.a + y * matrix.c + 0;\n var dy = x * matrix.b + y * matrix.d + 0;\n\n return new Two.Vector(dx, dy);\n\n },\n\n /**\n * @name Two.Utils.decomposeMatrix\n * @function\n * @param {Two.Matrix} matrix - The matrix to decompose.\n * @returns {Object} An object containing relevant skew values.\n * @description Decompose a 2D 3x3 Matrix to find the skew.\n * @see {@link https://gist.github.com/2052247}\n */\n decomposeMatrix: function(matrix) {\n\n // calculate delta transform point\n var px = Two.Utils.deltaTransformPoint(matrix, 0, 1);\n var py = Two.Utils.deltaTransformPoint(matrix, 1, 0);\n\n // calculate skew\n var skewX = ((180 / Math.PI) * Math.atan2(px.y, px.x) - 90);\n var skewY = ((180 / Math.PI) * Math.atan2(py.y, py.x));\n\n return {\n translateX: matrix.e,\n translateY: matrix.f,\n scaleX: Math.sqrt(matrix.a * matrix.a + matrix.b * matrix.b),\n scaleY: Math.sqrt(matrix.c * matrix.c + matrix.d * matrix.d),\n skewX: skewX,\n skewY: skewY,\n rotation: skewX // rotation is the same as skew x\n };\n\n },\n\n /**\n * @name Two.Utils.extractCSSText\n * @function\n * @param {String} text - The CSS text body to be parsed and extracted.\n * @param {Object} [styles] - The styles object to apply CSS key values to.\n * @returns {Object} styles\n * @description Parse CSS text body and apply them as key value pairs to a JavaScript object.\n */\n extractCSSText: function(text, styles) {\n\n var commands, command, name, value;\n\n if (!styles) {\n styles = {};\n }\n\n commands = text.split(';');\n\n for (var i = 0; i < commands.length; i++) {\n command = commands[i].split(':');\n name = command[0];\n value = command[1];\n if (_.isUndefined(name) || _.isUndefined(value)) {\n continue;\n }\n styles[name] = value.replace(/\\s/, '');\n }\n\n return styles;\n\n },\n\n /**\n * @name Two.Utils.getSvgStyles\n * @function\n * @param {SvgNode} node - The SVG node to parse.\n * @returns {Object} styles\n * @description Get the CSS comands from the `style` attribute of an SVG node and apply them as key value pairs to a JavaScript object.\n */\n getSvgStyles: function(node) {\n\n var styles = {};\n\n for (var i = 0; i < node.style.length; i++) {\n var command = node.style[i];\n styles[command] = node.style[command];\n }\n\n return styles;\n\n },\n\n /**\n * @name Two.Utils.applySvgViewBox\n * @function\n * @param {Two.Shape} node - The Two.js object to apply viewbox matrix to\n * @param {String} value - The viewBox value from the SVG attribute\n * @returns {Two.Shape} node\n @ @description\n */\n applySvgViewBox: function(node, value) {\n\n var elements = value.split(/\\s/);\n\n var x = parseFloat(elements[0]);\n var y = parseFloat(elements[1]);\n var width = parseFloat(elements[2]);\n var height = parseFloat(elements[3]);\n\n var s = Math.min(this.width / width, this.height / height);\n\n node.translation.x -= x * s;\n node.translation.y -= y * s;\n node.scale = s;\n\n return node;\n\n },\n\n /**\n * @name Two.Utils.applySvgAttributes\n * @function\n * @param {SvgNode} node - An SVG Node to extrapolate attributes from.\n * @param {Two.Shape} elem - The Two.js object to apply extrapolated attributes to.\n * @returns {Two.Shape} The Two.js object passed now with applied attributes.\n * @description This function iterates through an SVG Node's properties and stores ones of interest. It tries to resolve styles applied via CSS as well.\n * @TODO Reverse calculate `Two.Gradient`s for fill / stroke of any given path.\n */\n applySvgAttributes: function(node, elem, parentStyles) {\n\n var styles = {}, attributes = {}, extracted = {}, i, key, value, attr;\n\n // Not available in non browser environments\n if (root.getComputedStyle) {\n // Convert CSSStyleDeclaration to a normal object\n var computedStyles = root.getComputedStyle(node);\n i = computedStyles.length;\n\n while (i--) {\n key = computedStyles[i];\n value = computedStyles[key];\n // Gecko returns undefined for unset properties\n // Webkit returns the default value\n if (!_.isUndefined(value)) {\n styles[key] = value;\n }\n }\n }\n\n // Convert NodeMap to a normal object\n for (i = 0; i < node.attributes.length; i++) {\n attr = node.attributes[i];\n if (/style/i.test(attr.nodeName)) {\n Two.Utils.extractCSSText(attr.value, extracted);\n } else {\n attributes[attr.nodeName] = attr.value;\n }\n }\n\n // Getting the correct opacity is a bit tricky, since SVG path elements don't\n // support opacity as an attribute, but you can apply it via CSS.\n // So we take the opacity and set (stroke/fill)-opacity to the same value.\n if (!_.isUndefined(styles.opacity)) {\n styles['stroke-opacity'] = styles.opacity;\n styles['fill-opacity'] = styles.opacity;\n delete styles.opacity;\n }\n\n // Merge attributes and applied styles (attributes take precedence)\n if (parentStyles) {\n _.defaults(styles, parentStyles);\n }\n _.extend(styles, attributes, extracted);\n\n // Similarly visibility is influenced by the value of both display and visibility.\n // Calculate a unified value here which defaults to `true`.\n styles.visible = !(_.isUndefined(styles.display) && /none/i.test(styles.display))\n || (_.isUndefined(styles.visibility) && /hidden/i.test(styles.visibility));\n\n // Now iterate the whole thing\n for (key in styles) {\n value = styles[key];\n\n switch (key) {\n case 'transform':\n // TODO: Check this out https://github.com/paperjs/paper.js/blob/develop/src/svg/SvgImport.js#L315\n if (/none/i.test(value)) break;\n var m = (node.transform && node.transform.baseVal && node.transform.baseVal.length > 0)\n ? node.transform.baseVal[0].matrix\n : (node.getCTM ? node.getCTM() : null);\n\n // Might happen when transform string is empty or not valid.\n if (_.isNull(m)) break;\n\n // // Option 1: edit the underlying matrix and don't force an auto calc.\n // var m = node.getCTM();\n // elem._matrix.manual = true;\n // elem._matrix.set(m.a, m.b, m.c, m.d, m.e, m.f);\n\n // Option 2: Decompose and infer Two.js related properties.\n var transforms = Two.Utils.decomposeMatrix(m);\n\n elem.translation.set(transforms.translateX, transforms.translateY);\n elem.rotation = transforms.rotation;\n elem.scale = new Two.Vector(transforms.scaleX, transforms.scaleY);\n\n var x = parseFloat((styles.x + '').replace('px'));\n var y = parseFloat((styles.y + '').replace('px'));\n\n // Override based on attributes.\n if (x) {\n elem.translation.x = x;\n }\n\n if (y) {\n elem.translation.y = y;\n }\n\n break;\n case 'viewBox':\n Two.Utils.applySvgViewBox.call(this, elem, value);\n break;\n case 'visible':\n elem.visible = value;\n break;\n case 'stroke-linecap':\n elem.cap = value;\n break;\n case 'stroke-linejoin':\n elem.join = value;\n break;\n case 'stroke-miterlimit':\n elem.miter = value;\n break;\n case 'stroke-width':\n elem.linewidth = parseFloat(value);\n break;\n case 'opacity':\n case 'stroke-opacity':\n case 'fill-opacity':\n // Only apply styles to rendered shapes\n // in the scene.\n if (!(elem instanceof Two.Group)) {\n elem.opacity = parseFloat(value);\n }\n break;\n case 'fill':\n case 'stroke':\n if (/url\\(\\#.*\\)/i.test(value)) {\n elem[key] = this.getById(\n value.replace(/url\\(\\#(.*)\\)/i, '$1'));\n } else {\n elem[key] = (/none/i.test(value)) ? 'transparent' : value;\n }\n break;\n case 'id':\n elem.id = value;\n break;\n case 'class':\n case 'className':\n elem.classList = value.split(' ');\n break;\n }\n }\n\n return styles;\n\n },\n\n /**\n * @name Two.Utils.read\n * @property {Object} read - A map of functions to read any number of SVG node types and create Two.js equivalents of them. Primarily used by the {@link Two#interpret} method.\n */\n read: {\n\n svg: function(node) {\n\n var svg = Two.Utils.read.g.call(this, node);\n var viewBox = node.getAttribute('viewBox');\n // Two.Utils.applySvgViewBox(svg, viewBox);\n\n return svg;\n\n },\n\n g: function(node) {\n\n var styles, attrs;\n var group = new Two.Group();\n\n // Switched up order to inherit more specific styles\n styles = Two.Utils.getSvgStyles.call(this, node);\n\n for (var i = 0, l = node.childNodes.length; i < l; i++) {\n var n = node.childNodes[i];\n var tag = n.nodeName;\n if (!tag) return;\n\n var tagName = tag.replace(/svg\\:/ig, '').toLowerCase();\n\n if (tagName in Two.Utils.read) {\n var o = Two.Utils.read[tagName].call(group, n, styles);\n group.add(o);\n }\n }\n\n return group;\n\n },\n\n polygon: function(node, parentStyles) {\n\n var points = node.getAttribute('points');\n\n var verts = [];\n points.replace(/(-?[\\d\\.?]+)[,|\\s](-?[\\d\\.?]+)/g, function(match, p1, p2) {\n verts.push(new Two.Anchor(parseFloat(p1), parseFloat(p2)));\n });\n\n var poly = new Two.Path(verts, true).noStroke();\n poly.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, poly, parentStyles);\n\n return poly;\n\n },\n\n polyline: function(node, parentStyles) {\n var poly = Two.Utils.read.polygon.call(this, node, parentStyles);\n poly.closed = false;\n return poly;\n },\n\n path: function(node, parentStyles) {\n\n var path = node.getAttribute('d');\n\n // Create a Two.Path from the paths.\n\n var coord = new Two.Anchor();\n var control, coords;\n var closed = false, relative = false;\n var commands = path.match(/[a-df-z][^a-df-z]*/ig);\n var last = commands.length - 1;\n\n // Split up polybeziers\n\n _.each(commands.slice(0), function(command, i) {\n\n var number, fid, lid, numbers, first, s;\n var j, k, ct, l, times;\n\n var type = command[0];\n var lower = type.toLowerCase();\n var items = command.slice(1).trim().split(/[\\s,]+|(?=\\s?[+\\-])/);\n var pre, post, result = [], bin;\n var hasDoubleDecimals = false;\n\n // Handle double decimal values e.g: 48.6037.71.8\n // Like: https://m.abcsofchinese.com/images/svg/亼ji2.svg\n for (j = 0; j < items.length; j++) {\n\n number = items[j];\n fid = number.indexOf('.');\n lid = number.lastIndexOf('.');\n\n if (fid !== lid) {\n\n numbers = number.split('.');\n first = numbers[0] + '.' + numbers[1];\n\n items.splice(j, 1, first);\n\n for (s = 2; s < numbers.length; s++) {\n items.splice(j + s - 1, 0, '0.' + numbers[s]);\n }\n\n hasDoubleDecimals = true;\n\n }\n\n }\n\n if (hasDoubleDecimals) {\n command = type + items.join(',');\n }\n\n if (i <= 0) {\n commands = [];\n }\n\n switch (lower) {\n case 'h':\n case 'v':\n if (items.length > 1) {\n bin = 1;\n }\n break;\n case 'm':\n case 'l':\n case 't':\n if (items.length > 2) {\n bin = 2;\n }\n break;\n case 's':\n case 'q':\n if (items.length > 4) {\n bin = 4;\n }\n break;\n case 'c':\n if (items.length > 6) {\n bin = 6;\n }\n break;\n case 'a':\n if (items.length > 7) {\n bin = 7;\n }\n break;\n }\n\n // This means we have a polybezier.\n if (bin) {\n\n for (j = 0, l = items.length, times = 0; j < l; j+=bin) {\n\n ct = type;\n if (times > 0) {\n\n switch (type) {\n case 'm':\n ct = 'l';\n break;\n case 'M':\n ct = 'L';\n break;\n }\n\n }\n\n result.push(ct + items.slice(j, j + bin).join(' '));\n times++;\n\n }\n\n commands = Array.prototype.concat.apply(commands, result);\n\n } else {\n\n commands.push(command);\n\n }\n\n });\n\n // Create the vertices for our Two.Path\n\n var points = [];\n _.each(commands, function(command, i) {\n\n var result, x, y;\n var type = command[0];\n var lower = type.toLowerCase();\n\n coords = command.slice(1).trim();\n coords = coords.replace(/(-?\\d+(?:\\.\\d*)?)[eE]([+\\-]?\\d+)/g, function(match, n1, n2) {\n return parseFloat(n1) * pow(10, n2);\n });\n coords = coords.split(/[\\s,]+|(?=\\s?[+\\-])/);\n relative = type === lower;\n\n var x1, y1, x2, y2, x3, y3, x4, y4, reflection;\n\n switch (lower) {\n\n case 'z':\n if (i >= last) {\n closed = true;\n } else {\n x = coord.x;\n y = coord.y;\n result = new Two.Anchor(\n x, y,\n undefined, undefined,\n undefined, undefined,\n Two.Commands.close\n );\n // Make coord be the last `m` command\n for (var i = points.length - 1; i >= 0; i--) {\n var point = points[i];\n if (/m/i.test(point.command)) {\n coord = point;\n break;\n }\n }\n }\n break;\n\n case 'm':\n case 'l':\n\n control = undefined;\n\n x = parseFloat(coords[0]);\n y = parseFloat(coords[1]);\n\n result = new Two.Anchor(\n x, y,\n undefined, undefined,\n undefined, undefined,\n /m/i.test(lower) ? Two.Commands.move : Two.Commands.line\n );\n\n if (relative) {\n result.addSelf(coord);\n }\n\n // result.controls.left.copy(result);\n // result.controls.right.copy(result);\n\n coord = result;\n break;\n\n case 'h':\n case 'v':\n\n var a = /h/i.test(lower) ? 'x' : 'y';\n var b = /x/i.test(a) ? 'y' : 'x';\n\n result = new Two.Anchor(\n undefined, undefined,\n undefined, undefined,\n undefined, undefined,\n Two.Commands.line\n );\n result[a] = parseFloat(coords[0]);\n result[b] = coord[b];\n\n if (relative) {\n result[a] += coord[a];\n }\n\n // result.controls.left.copy(result);\n // result.controls.right.copy(result);\n\n coord = result;\n break;\n\n case 'c':\n case 's':\n\n x1 = coord.x;\n y1 = coord.y;\n\n if (!control) {\n control = new Two.Vector();//.copy(coord);\n }\n\n if (/c/i.test(lower)) {\n\n x2 = parseFloat(coords[0]);\n y2 = parseFloat(coords[1]);\n x3 = parseFloat(coords[2]);\n y3 = parseFloat(coords[3]);\n x4 = parseFloat(coords[4]);\n y4 = parseFloat(coords[5]);\n\n } else {\n\n // Calculate reflection control point for proper x2, y2\n // inclusion.\n\n reflection = getReflection(coord, control, relative);\n\n x2 = reflection.x;\n y2 = reflection.y;\n x3 = parseFloat(coords[0]);\n y3 = parseFloat(coords[1]);\n x4 = parseFloat(coords[2]);\n y4 = parseFloat(coords[3]);\n\n }\n\n if (relative) {\n x2 += x1;\n y2 += y1;\n x3 += x1;\n y3 += y1;\n x4 += x1;\n y4 += y1;\n }\n\n if (!_.isObject(coord.controls)) {\n Two.Anchor.AppendCurveProperties(coord);\n }\n\n coord.controls.right.set(x2 - coord.x, y2 - coord.y);\n result = new Two.Anchor(\n x4, y4,\n x3 - x4, y3 - y4,\n undefined, undefined,\n Two.Commands.curve\n );\n\n coord = result;\n control = result.controls.left;\n\n break;\n\n case 't':\n case 'q':\n\n x1 = coord.x;\n y1 = coord.y;\n\n if (!control) {\n control = new Two.Vector();//.copy(coord);\n }\n\n if (control.isZero()) {\n x2 = x1;\n y2 = y1;\n } else {\n x2 = control.x;\n y2 = control.y;\n }\n\n if (/q/i.test(lower)) {\n\n x3 = parseFloat(coords[0]);\n y3 = parseFloat(coords[1]);\n x4 = parseFloat(coords[2]);\n y4 = parseFloat(coords[3]);\n\n } else {\n\n reflection = getReflection(coord, control, relative);\n\n x3 = reflection.x;\n y3 = reflection.y;\n x4 = parseFloat(coords[0]);\n y4 = parseFloat(coords[1]);\n\n }\n\n if (relative) {\n x2 += x1;\n y2 += y1;\n x3 += x1;\n y3 += y1;\n x4 += x1;\n y4 += y1;\n }\n\n if (!_.isObject(coord.controls)) {\n Two.Anchor.AppendCurveProperties(coord);\n }\n\n coord.controls.right.set(x2 - coord.x, y2 - coord.y);\n result = new Two.Anchor(\n x4, y4,\n x3 - x4, y3 - y4,\n undefined, undefined,\n Two.Commands.curve\n );\n\n coord = result;\n control = result.controls.left;\n\n break;\n\n case 'a':\n\n x1 = coord.x;\n y1 = coord.y;\n\n var rx = parseFloat(coords[0]);\n var ry = parseFloat(coords[1]);\n var xAxisRotation = parseFloat(coords[2]);// * PI / 180;\n var largeArcFlag = parseFloat(coords[3]);\n var sweepFlag = parseFloat(coords[4]);\n\n x4 = parseFloat(coords[5]);\n y4 = parseFloat(coords[6]);\n\n if (relative) {\n x4 += x1;\n y4 += y1;\n }\n\n var anchor = new Two.Anchor(x4, y4);\n anchor.command = Two.Commands.arc;\n anchor.rx = rx;\n anchor.ry = ry;\n anchor.xAxisRotation = xAxisRotation;\n anchor.largeArcFlag = largeArcFlag;\n anchor.sweepFlag = sweepFlag;\n\n result = anchor;\n\n coord = anchor;\n control = undefined;\n\n break;\n\n }\n\n if (result) {\n if (_.isArray(result)) {\n points = points.concat(result);\n } else {\n points.push(result);\n }\n }\n\n });\n\n if (points.length <= 1) {\n return;\n }\n\n var path = new Two.Path(points, closed, undefined, true).noStroke();\n path.fill = 'black';\n\n var rect = path.getBoundingClientRect(true);\n\n // Center objects to stay consistent\n // with the rest of the Two.js API.\n rect.centroid = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n };\n\n _.each(path.vertices, function(v) {\n v.subSelf(rect.centroid);\n });\n\n path.translation.addSelf(rect.centroid);\n\n Two.Utils.applySvgAttributes.call(this, node, path, parentStyles);\n\n return path;\n\n },\n\n circle: function(node, parentStyles) {\n\n var x = parseFloat(node.getAttribute('cx'));\n var y = parseFloat(node.getAttribute('cy'));\n var r = parseFloat(node.getAttribute('r'));\n\n var circle = new Two.Circle(x, y, r).noStroke();\n circle.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, circle, parentStyles);\n\n return circle;\n\n },\n\n ellipse: function(node, parentStyles) {\n\n var x = parseFloat(node.getAttribute('cx'));\n var y = parseFloat(node.getAttribute('cy'));\n var width = parseFloat(node.getAttribute('rx'));\n var height = parseFloat(node.getAttribute('ry'));\n\n var ellipse = new Two.Ellipse(x, y, width, height).noStroke();\n ellipse.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, ellipse, parentStyles);\n\n return ellipse;\n\n },\n\n rect: function(node, parentStyles) {\n\n var rx = parseFloat(node.getAttribute('rx'));\n var ry = parseFloat(node.getAttribute('ry'));\n\n if (!_.isNaN(rx) || !_.isNaN(ry)) {\n return Two.Utils.read['rounded-rect'](node);\n }\n\n var x = parseFloat(node.getAttribute('x')) || 0;\n var y = parseFloat(node.getAttribute('y')) || 0;\n var width = parseFloat(node.getAttribute('width'));\n var height = parseFloat(node.getAttribute('height'));\n\n var w2 = width / 2;\n var h2 = height / 2;\n\n var rect = new Two.Rectangle(x + w2, y + h2, width, height)\n .noStroke();\n rect.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, rect, parentStyles);\n\n return rect;\n\n },\n\n 'rounded-rect': function(node, parentStyles) {\n\n var x = parseFloat(node.getAttribute('x')) || 0;\n var y = parseFloat(node.getAttribute('y')) || 0;\n var rx = parseFloat(node.getAttribute('rx')) || 0;\n var ry = parseFloat(node.getAttribute('ry')) || 0;\n\n var width = parseFloat(node.getAttribute('width'));\n var height = parseFloat(node.getAttribute('height'));\n\n var w2 = width / 2;\n var h2 = height / 2;\n var radius = new Two.Vector(rx, ry);\n\n var rect = new Two.RoundedRectangle(x + w2, y + h2, width, height, radius)\n .noStroke();\n rect.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, rect, parentStyles);\n\n return rect;\n\n },\n\n line: function(node, parentStyles) {\n\n var x1 = parseFloat(node.getAttribute('x1'));\n var y1 = parseFloat(node.getAttribute('y1'));\n var x2 = parseFloat(node.getAttribute('x2'));\n var y2 = parseFloat(node.getAttribute('y2'));\n\n var line = new Two.Line(x1, y1, x2, y2).noFill();\n\n Two.Utils.applySvgAttributes.call(this, node, line, parentStyles);\n\n return line;\n\n },\n\n lineargradient: function(node, parentStyles) {\n\n var x1 = parseFloat(node.getAttribute('x1'));\n var y1 = parseFloat(node.getAttribute('y1'));\n var x2 = parseFloat(node.getAttribute('x2'));\n var y2 = parseFloat(node.getAttribute('y2'));\n\n var ox = (x2 + x1) / 2;\n var oy = (y2 + y1) / 2;\n\n var stops = [];\n for (var i = 0; i < node.children.length; i++) {\n\n var child = node.children[i];\n\n var offset = parseFloat(child.getAttribute('offset'));\n var color = child.getAttribute('stop-color');\n var opacity = child.getAttribute('stop-opacity');\n var style = child.getAttribute('style');\n\n if (_.isNull(color)) {\n var matches = style ? style.match(/stop\\-color\\:\\s?([\\#a-fA-F0-9]*)/) : false;\n color = matches && matches.length > 1 ? matches[1] : undefined;\n }\n\n if (_.isNull(opacity)) {\n var matches = style ? style.match(/stop\\-opacity\\:\\s?([0-9\\.\\-]*)/) : false;\n opacity = matches && matches.length > 1 ? parseFloat(matches[1]) : 1;\n }\n\n stops.push(new Two.Gradient.Stop(offset, color, opacity));\n\n }\n\n var gradient = new Two.LinearGradient(x1 - ox, y1 - oy, x2 - ox,\n y2 - oy, stops);\n\n Two.Utils.applySvgAttributes.call(this, node, gradient, parentStyles);\n\n return gradient;\n\n },\n\n radialgradient: function(node, parentStyles) {\n\n var cx = parseFloat(node.getAttribute('cx')) || 0;\n var cy = parseFloat(node.getAttribute('cy')) || 0;\n var r = parseFloat(node.getAttribute('r'));\n\n var fx = parseFloat(node.getAttribute('fx'));\n var fy = parseFloat(node.getAttribute('fy'));\n\n if (_.isNaN(fx)) {\n fx = cx;\n }\n\n if (_.isNaN(fy)) {\n fy = cy;\n }\n\n var ox = abs(cx + fx) / 2;\n var oy = abs(cy + fy) / 2;\n\n var stops = [];\n for (var i = 0; i < node.children.length; i++) {\n\n var child = node.children[i];\n\n var offset = parseFloat(child.getAttribute('offset'));\n var color = child.getAttribute('stop-color');\n var opacity = child.getAttribute('stop-opacity');\n var style = child.getAttribute('style');\n\n if (_.isNull(color)) {\n var matches = style ? style.match(/stop\\-color\\:\\s?([\\#a-fA-F0-9]*)/) : false;\n color = matches && matches.length > 1 ? matches[1] : undefined;\n }\n\n if (_.isNull(opacity)) {\n var matches = style ? style.match(/stop\\-opacity\\:\\s?([0-9\\.\\-]*)/) : false;\n opacity = matches && matches.length > 1 ? parseFloat(matches[1]) : 1;\n }\n\n stops.push(new Two.Gradient.Stop(offset, color, opacity));\n\n }\n\n var gradient = new Two.RadialGradient(cx - ox, cy - oy, r,\n stops, fx - ox, fy - oy);\n\n Two.Utils.applySvgAttributes.call(this, node, gradient, parentStyles);\n\n return gradient;\n\n }\n\n },\n\n /**\n * @name Two.Utils.subdivide\n * @function\n * @param {Number} x1 - x position of first anchor point.\n * @param {Number} y1 - y position of first anchor point.\n * @param {Number} x2 - x position of first anchor point's \"right\" bezier handle.\n * @param {Number} y2 - y position of first anchor point's \"right\" bezier handle.\n * @param {Number} x3 - x position of second anchor point's \"left\" bezier handle.\n * @param {Number} y3 - y position of second anchor point's \"left\" bezier handle.\n * @param {Number} x4 - x position of second anchor point.\n * @param {Number} y4 - y position of second anchor point.\n * @param {Number} [limit=Two.Utils.Curve.RecursionLimit] - The amount of vertices to create by subdividing.\n * @returns {Two.Anchor[]} A list of anchor points ordered in between `x1`, `y1` and `x4`, `y4`\n * @description Given 2 points (a, b) and corresponding control point for each return an array of points that represent points plotted along the curve. The number of returned points is determined by `limit`.\n */\n subdivide: function(x1, y1, x2, y2, x3, y3, x4, y4, limit) {\n\n limit = limit || Two.Utils.Curve.RecursionLimit;\n var amount = limit + 1;\n\n // TODO: Abstract 0.001 to a limiting variable\n // Don't recurse if the end points are identical\n if (abs(x1 - x4) < 0.001 && abs(y1 - y4) < 0.001) {\n return [new Two.Anchor(x4, y4)];\n }\n\n var result = [];\n\n for (var i = 0; i < amount; i++) {\n var t = i / amount;\n var x = getComponentOnCubicBezier(t, x1, x2, x3, x4);\n var y = getComponentOnCubicBezier(t, y1, y2, y3, y4);\n result.push(new Two.Anchor(x, y));\n }\n\n return result;\n\n },\n\n /**\n * @name Two.Utils.getComponentOnCubicBezier\n * @function\n * @param {Number} t - Zero-to-one value describing what percentage to calculate.\n * @param {Number} a - The firt point's component value.\n * @param {Number} b - The first point's bezier component value.\n * @param {Number} c - The second point's bezier component value.\n * @param {Number} d - The second point's component value.\n * @returns {Number} The coordinate value for a specific component along a cubic bezier curve by `t`.\n */\n getComponentOnCubicBezier: function(t, a, b, c, d) {\n var k = 1 - t;\n return (k * k * k * a) + (3 * k * k * t * b) + (3 * k * t * t * c) +\n (t * t * t * d);\n },\n\n /**\n * @name Two.Utils.getCurveLength\n * @function\n * @param {Number} x1 - x position of first anchor point.\n * @param {Number} y1 - y position of first anchor point.\n * @param {Number} x2 - x position of first anchor point's \"right\" bezier handle.\n * @param {Number} y2 - y position of first anchor point's \"right\" bezier handle.\n * @param {Number} x3 - x position of second anchor point's \"left\" bezier handle.\n * @param {Number} y3 - y position of second anchor point's \"left\" bezier handle.\n * @param {Number} x4 - x position of second anchor point.\n * @param {Number} y4 - y position of second anchor point.\n * @param {Number} [limit=Two.Utils.Curve.RecursionLimit] - The amount of vertices to create by subdividing.\n * @returns {Number} The length of a curve.\n * @description Given 2 points (a, b) and corresponding control point for each, return a float that represents the length of the curve using Gauss-Legendre algorithm. Limit iterations of calculation by `limit`.\n */\n getCurveLength: function(x1, y1, x2, y2, x3, y3, x4, y4, limit) {\n\n // TODO: Better / fuzzier equality check\n // Linear calculation\n if (x1 === x2 && y1 === y2 && x3 === x4 && y3 === y4) {\n var dx = x4 - x1;\n var dy = y4 - y1;\n return sqrt(dx * dx + dy * dy);\n }\n\n // Calculate the coefficients of a Bezier derivative.\n var ax = 9 * (x2 - x3) + 3 * (x4 - x1),\n bx = 6 * (x1 + x3) - 12 * x2,\n cx = 3 * (x2 - x1),\n\n ay = 9 * (y2 - y3) + 3 * (y4 - y1),\n by = 6 * (y1 + y3) - 12 * y2,\n cy = 3 * (y2 - y1);\n\n var integrand = function(t) {\n // Calculate quadratic equations of derivatives for x and y\n var dx = (ax * t + bx) * t + cx,\n dy = (ay * t + by) * t + cy;\n return sqrt(dx * dx + dy * dy);\n };\n\n return integrate(\n integrand, 0, 1, limit || Two.Utils.Curve.RecursionLimit\n );\n\n },\n\n /**\n * @name Two.Utils.getCurveBoundingBox\n * @function\n * @param {Number} x1 - x position of first anchor point.\n * @param {Number} y1 - y position of first anchor point.\n * @param {Number} x2 - x position of first anchor point's \"right\" bezier handle.\n * @param {Number} y2 - y position of first anchor point's \"right\" bezier handle.\n * @param {Number} x3 - x position of second anchor point's \"left\" bezier handle.\n * @param {Number} y3 - y position of second anchor point's \"left\" bezier handle.\n * @param {Number} x4 - x position of second anchor point.\n * @param {Number} y4 - y position of second anchor point.\n * @returns {Object} Object contains min and max `x` / `y` bounds.\n * @see {@link https://github.com/adobe-webplatform/Snap.svg/blob/master/src/path.js#L856}\n */\n getCurveBoundingBox: function(x1, y1, x2, y2, x3, y3, x4, y4) {\n\n var tvalues = [];\n var bounds = [[], []];\n var a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n for (var i = 0; i < 2; ++i) {\n if (i == 0) {\n b = 6 * x1 - 12 * x2 + 6 * x3;\n a = -3 * x1 + 9 * x2 - 9 * x3 + 3 * x4;\n c = 3 * x2 - 3 * x1;\n } else {\n b = 6 * y1 - 12 * y2 + 6 * y3;\n a = -3 * y1 + 9 * y2 - 9 * y3 + 3 * y4;\n c = 3 * y2 - 3 * y1;\n }\n if (abs(a) < 1e-12) {\n if (abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x, y, j = tvalues.length;\n var jlen = j;\n var mt;\n\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x1 + 3 * mt * mt * t * x2 + 3 * mt * t * t * x3 + t * t * t * x4;\n bounds[1][j] = mt * mt * mt * y1 + 3 * mt * mt * t * y2 + 3 * mt * t * t * y3 + t * t * t * y4;\n }\n\n bounds[0][jlen] = x1;\n bounds[1][jlen] = y1;\n bounds[0][jlen + 1] = x4;\n bounds[1][jlen + 1] = y4;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return {\n min: { x: Math.min.apply(0, bounds[0]), y: Math.min.apply(0, bounds[1]) },\n max: { x: Math.max.apply(0, bounds[0]), y: Math.max.apply(0, bounds[1]) }\n };\n\n },\n\n /**\n * @name Two.Utils.integrate\n * @function\n * @param {Function} f\n * @param {Number} a\n * @param {Number} b\n * @param {Integer} n\n * @description Integration for `getCurveLength` calculations.\n * @see [Paper.js]{@link https://github.com/paperjs/paper.js/blob/master/src/util/Numerical.js#L101}\n */\n integrate: function(f, a, b, n) {\n var x = Two.Utils.Curve.abscissas[n - 2],\n w = Two.Utils.Curve.weights[n - 2],\n A = 0.5 * (b - a),\n B = A + a,\n i = 0,\n m = (n + 1) >> 1,\n sum = n & 1 ? w[i++] * f(B) : 0; // Handle odd n\n while (i < m) {\n var Ax = A * x[i];\n sum += w[i++] * (f(B + Ax) + f(B - Ax));\n }\n return A * sum;\n },\n\n /**\n * @name Two.Utils.getCurveFromPoints\n * @function\n * @param {Two.Anchor[]} points\n * @param {Boolean} closed\n * @description Sets the bezier handles on `Two.Anchor`s in the `points` list with estimated values to create a catmull-rom like curve. Used by {@link Two.Path#plot}.\n */\n getCurveFromPoints: function(points, closed) {\n\n var l = points.length, last = l - 1;\n\n for (var i = 0; i < l; i++) {\n\n var point = points[i];\n\n if (!_.isObject(point.controls)) {\n Two.Anchor.AppendCurveProperties(point);\n }\n\n var prev = closed ? mod(i - 1, l) : max(i - 1, 0);\n var next = closed ? mod(i + 1, l) : min(i + 1, last);\n\n var a = points[prev];\n var b = point;\n var c = points[next];\n getControlPoints(a, b, c);\n\n b.command = i === 0 ? Two.Commands.move : Two.Commands.curve;\n\n }\n\n },\n\n /**\n * @name Two.Utils.getControlPoints\n * @function\n * @param {Two.Anchor} a\n * @param {Two.Anchor} b\n * @param {Two.Anchor} c\n * @returns {Two.Anchor} Returns the passed middle point `b`.\n * @description Given three coordinates set the control points for the middle, b, vertex based on its position with the adjacent points.\n */\n getControlPoints: function(a, b, c) {\n\n var a1 = Two.Vector.angleBetween(a, b);\n var a2 = Two.Vector.angleBetween(c, b);\n\n var d1 = Two.Vector.distanceBetween(a, b);\n var d2 = Two.Vector.distanceBetween(c, b);\n\n var mid = (a1 + a2) / 2;\n\n // TODO: Issue 73\n if (d1 < 0.0001 || d2 < 0.0001) {\n if (_.isBoolean(b.relative) && !b.relative) {\n b.controls.left.copy(b);\n b.controls.right.copy(b);\n }\n return b;\n }\n\n d1 *= 0.33; // Why 0.33?\n d2 *= 0.33;\n\n if (a2 < a1) {\n mid += HALF_PI;\n } else {\n mid -= HALF_PI;\n }\n\n b.controls.left.x = cos(mid) * d1;\n b.controls.left.y = sin(mid) * d1;\n\n mid -= PI;\n\n b.controls.right.x = cos(mid) * d2;\n b.controls.right.y = sin(mid) * d2;\n\n if (_.isBoolean(b.relative) && !b.relative) {\n b.controls.left.x += b.x;\n b.controls.left.y += b.y;\n b.controls.right.x += b.x;\n b.controls.right.y += b.y;\n }\n\n return b;\n\n },\n\n /**\n * @name Two.Utils.getReflection\n * @function\n * @param {Two.Vector} a\n * @param {Two.Vector} b\n * @param {Boolean} [relative=false]\n * @returns {Two.Vector} New `Two.Vector` that represents the reflection point.\n * @description Get the reflection of a point `b` about point `a`. Where `a` is in absolute space and `b` is relative to `a`.\n * @see {@link http://www.w3.org/TR/SVG11/implnote.html#PathElementImplementationNotes}\n */\n getReflection: function(a, b, relative) {\n\n return new Two.Vector(\n 2 * a.x - (b.x + a.x) - (relative ? a.x : 0),\n 2 * a.y - (b.y + a.y) - (relative ? a.y : 0)\n );\n\n },\n\n /**\n * @name Two.Utils.getAnchorsFromArcData\n * @function\n * @param {Two.Vector} center\n * @param {Radians} xAxisRotation\n * @param {Number} rx - x radius\n * @param {Number} ry - y radius\n * @param {Radians} ts\n * @param {Radians} td\n * @param {Boolean} [ccw=false] - Set path traversal to counter-clockwise\n */\n getAnchorsFromArcData: function(center, xAxisRotation, rx, ry, ts, td, ccw) {\n\n var matrix = new Two.Matrix()\n .translate(center.x, center.y)\n .rotate(xAxisRotation);\n\n var l = Two.Resolution;\n\n return _.map(_.range(l), function(i) {\n\n var pct = (i + 1) / l;\n if (!!ccw) {\n pct = 1 - pct;\n }\n\n var theta = pct * td + ts;\n var x = rx * Math.cos(theta);\n var y = ry * Math.sin(theta);\n\n // x += center.x;\n // y += center.y;\n\n var anchor = new Two.Anchor(x, y);\n Two.Anchor.AppendCurveProperties(anchor);\n anchor.command = Two.Commands.line;\n\n // TODO: Calculate control points here...\n\n return anchor;\n\n });\n\n },\n\n /**\n * @name Two.Utils.lerp\n * @function\n * @param {Number} a - Start value.\n * @param {Number} b - End value.\n * @param {Number} t - Zero-to-one value describing percentage between a and b.\n * @returns {Number}\n * @description Linear interpolation between two values `a` and `b` by an amount `t`.\n */\n lerp: function(a, b, t) {\n return t * (b - a) + a;\n },\n\n /**\n * @name Two.Utils.toFixed\n * @function\n * @param {Number} v - Any float\n * @returns {Number} That float trimmed to the third decimal place.\n * @description A pretty fast toFixed(3) alternative.\n * @see {@link http://jsperf.com/parsefloat-tofixed-vs-math-round/18}\n */\n toFixed: function(v) {\n return Math.floor(v * 1000) / 1000;\n },\n\n /**\n * @name Two.Utils.mod\n * @param {Number} v - The value to modulo\n * @param {Number} l - The value to modulo by\n * @returns {Number}\n * @description Modulo with added functionality to handle negative values in a positive manner.\n */\n mod: function(v, l) {\n\n while (v < 0) {\n v += l;\n }\n\n return v % l;\n\n },\n\n /**\n * @name Two.Utils.Collection\n * @class\n * @extends Two.Utils.Events\n * @description An `Array` like object with additional event propagation on actions. `pop`, `shift`, and `splice` trigger `removed` events. `push`, `unshift`, and `splice` with more than 2 arguments trigger 'inserted'. Finally, `sort` and `reverse` trigger `order` events.\n */\n Collection: function() {\n\n Array.call(this);\n\n if (arguments.length > 1) {\n Array.prototype.push.apply(this, arguments);\n } else if (arguments[0] && Array.isArray(arguments[0])) {\n Array.prototype.push.apply(this, arguments[0]);\n }\n\n },\n\n /**\n * @name Two.Utils.Error\n * @class\n * @description Custom error throwing for Two.js specific identification.\n */\n Error: function(message) {\n this.name = 'two.js';\n this.message = message;\n },\n\n /**\n * @name Two.Utils.Events\n * @interface\n * @description Object inherited by many Two.js objects in order to facilitate custom events.\n */\n Events: {\n\n /**\n * @name Two.Utils.Events.on\n * @function\n * @param {String} name - The name of the event to bind a function to.\n * @param {Function} handler - The function to be invoked when the event is dispatched.\n * @description Call to add a listener to a specific event name.\n */\n on: function(name, handler) {\n\n this._events || (this._events = {});\n var list = this._events[name] || (this._events[name] = []);\n\n list.push(handler);\n\n return this;\n\n },\n\n /**\n * @name Two.Utils.Events.off\n * @function\n * @param {String} [name] - The name of the event intended to be removed.\n * @param {Function} [handler] - The handler intended to be reomved.\n * @description Call to remove listeners from a specific event. If only `name` is passed then all the handlers attached to that `name` will be removed. If no arguments are passed then all handlers for every event on the obejct are removed.\n */\n off: function(name, handler) {\n\n if (!this._events) {\n return this;\n }\n if (!name && !handler) {\n this._events = {};\n return this;\n }\n\n var names = name ? [name] : _.keys(this._events);\n for (var i = 0, l = names.length; i < l; i++) {\n\n var name = names[i];\n var list = this._events[name];\n\n if (!!list) {\n var events = [];\n if (handler) {\n for (var j = 0, k = list.length; j < k; j++) {\n var ev = list[j];\n ev = ev.handler ? ev.handler : ev;\n if (handler && handler !== ev) {\n events.push(ev);\n }\n }\n }\n this._events[name] = events;\n }\n }\n\n return this;\n },\n\n /**\n * @name Two.Utils.Events.trigger\n * @function\n * @param {String} name - The name of the event to dispatch.\n * @param arguments - Anything can be passed after the name and those will be passed on to handlers attached to the event in the order they are passed.\n * @description Call to trigger a custom event. Any additional arguments passed after the name will be passed along to the attached handlers.\n */\n trigger: function(name) {\n if (!this._events) return this;\n var args = slice.call(arguments, 1);\n var events = this._events[name];\n if (events) trigger(this, events, args);\n return this;\n },\n\n listen: function(obj, name, handler) {\n\n var bound = this;\n\n if (obj) {\n\n var event = function () {\n handler.apply(bound, arguments);\n };\n\n // Add references about the object that assigned this listener\n event.obj = obj;\n event.name = name;\n event.handler = handler;\n\n obj.on(name, ev);\n\n }\n\n return this;\n\n },\n\n ignore: function(obj, name, handler) {\n\n obj.off(name, handler);\n return this;\n\n }\n\n }\n\n })\n\n });\n\n /**\n * @name Two.Utils.Events.bind\n * @borrows Two.Utils.Events.on as Two.Utils.Events.bind\n */\n Two.Utils.Events.bind = Two.Utils.Events.on;\n\n /**\n * @name Two.Utils.Events.unbind\n * @borrows Two.Utils.Events.off as Two.Utils.Events.unbind\n */\n Two.Utils.Events.unbind = Two.Utils.Events.off;\n\n var trigger = function(obj, events, args) {\n var method;\n switch (args.length) {\n case 0:\n method = function(i) {\n events[i].call(obj, args[0]);\n };\n break;\n case 1:\n method = function(i) {\n events[i].call(obj, args[0], args[1]);\n };\n break;\n case 2:\n method = function(i) {\n events[i].call(obj, args[0], args[1], args[2]);\n };\n break;\n case 3:\n method = function(i) {\n events[i].call(obj, args[0], args[1], args[2], args[3]);\n };\n break;\n default:\n method = function(i) {\n events[i].apply(obj, args);\n };\n }\n for (var i = 0; i < events.length; i++) {\n method(i);\n }\n };\n\n Two.Utils.Error.prototype = new Error();\n Two.Utils.Error.prototype.constructor = Two.Utils.Error;\n\n Two.Utils.Collection.prototype = new Array();\n Two.Utils.Collection.prototype.constructor = Two.Utils.Collection;\n\n _.extend(Two.Utils.Collection.prototype, Two.Utils.Events, {\n\n pop: function() {\n var popped = Array.prototype.pop.apply(this, arguments);\n this.trigger(Two.Events.remove, [popped]);\n return popped;\n },\n\n shift: function() {\n var shifted = Array.prototype.shift.apply(this, arguments);\n this.trigger(Two.Events.remove, [shifted]);\n return shifted;\n },\n\n push: function() {\n var pushed = Array.prototype.push.apply(this, arguments);\n this.trigger(Two.Events.insert, arguments);\n return pushed;\n },\n\n unshift: function() {\n var unshifted = Array.prototype.unshift.apply(this, arguments);\n this.trigger(Two.Events.insert, arguments);\n return unshifted;\n },\n\n splice: function() {\n var spliced = Array.prototype.splice.apply(this, arguments);\n var inserted;\n\n this.trigger(Two.Events.remove, spliced);\n\n if (arguments.length > 2) {\n inserted = this.slice(arguments[0], arguments[0] + arguments.length - 2);\n this.trigger(Two.Events.insert, inserted);\n this.trigger(Two.Events.order);\n }\n return spliced;\n },\n\n sort: function() {\n Array.prototype.sort.apply(this, arguments);\n this.trigger(Two.Events.order);\n return this;\n },\n\n reverse: function() {\n Array.prototype.reverse.apply(this, arguments);\n this.trigger(Two.Events.order);\n return this;\n }\n\n });\n\n // Localize utils\n\n var getAnchorsFromArcData = Two.Utils.getAnchorsFromArcData,\n getControlPoints = Two.Utils.getControlPoints,\n getCurveFromPoints = Two.Utils.getCurveFromPoints,\n solveSegmentIntersection = Two.Utils.solveSegmentIntersection,\n decoupleShapes = Two.Utils.decoupleShapes,\n mod = Two.Utils.mod,\n getBackingStoreRatio = Two.Utils.getBackingStoreRatio,\n getComponentOnCubicBezier = Two.Utils.getComponentOnCubicBezier,\n getCurveLength = Two.Utils.getCurveLength,\n integrate = Two.Utils.integrate,\n getReflection = Two.Utils.getReflection;\n\n _.extend(Two.prototype, Two.Utils.Events, {\n\n constructor: Two,\n\n /**\n * @name Two#appendTo\n * @function\n * @param {Element} elem - The DOM element to append the Two.js stage to.\n * @description Shorthand method to append your instance of Two.js to the `document`.\n */\n appendTo: function(elem) {\n\n elem.appendChild(this.renderer.domElement);\n return this;\n\n },\n\n /**\n * @name Two#play\n * @function\n * @fires `Two.Events.play` event\n * @description Call to start an internal animation loop.\n * @nota-bene This function initiates a `requestAnimationFrame` loop.\n */\n play: function() {\n\n Two.Utils.setPlaying.call(this, true);\n raf.init();\n return this.trigger(Two.Events.play);\n\n },\n\n /**\n * @name Two#pause\n * @function\n * @fires `Two.Events.pause` event\n * @description Call to stop the internal animation loop for a specific instance of Two.js.\n */\n pause: function() {\n\n this.playing = false;\n return this.trigger(Two.Events.pause);\n\n },\n\n /**\n * @name Two#update\n * @fires `Two.Events.update` event\n * @description Update positions and calculations in one pass before rendering. Then render to the canvas.\n * @nota-bene This function is called automatically if using {@link Two#play} or the `autostart` parameter in construction.\n */\n update: function() {\n\n var animated = !!this._lastFrame;\n var now = perf.now();\n\n if (animated) {\n this.timeDelta = parseFloat((now - this._lastFrame).toFixed(3));\n }\n this._lastFrame = now;\n\n var width = this.width;\n var height = this.height;\n var renderer = this.renderer;\n\n // Update width / height for the renderer\n if (width !== renderer.width || height !== renderer.height) {\n renderer.setSize(width, height, this.ratio);\n }\n\n this.trigger(Two.Events.update, this.frameCount, this.timeDelta);\n\n return this.render();\n\n },\n\n /**\n * @name Two#render\n * @fires `Two.Events.render` event\n * @description Render all drawable and visible objects of the scene.\n */\n render: function() {\n\n this.renderer.render();\n return this.trigger(Two.Events.render, this.frameCount++);\n\n },\n\n // Convenience Methods\n\n /**\n * @name Two#add\n * @function\n * @param {(Two.Shape[]|...Two.Shape)}} [objects] - An array of Two.js objects. Alternatively can add objects as individual arguments.\n * @description A shorthand method to add specific Two.js objects to the scene.\n */\n add: function(o) {\n\n var objects = o;\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n }\n\n this.scene.add(objects);\n return this;\n\n },\n\n /**\n * @name Two#remove\n * @function\n * @param {(Two.Shape[]|...Two.Shape)} [objects] - An array of Two.js objects.\n * @description A shorthand method to remove specific Two.js objects from the scene.\n */\n remove: function(o) {\n\n var objects = o;\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n }\n\n this.scene.remove(objects);\n\n return this;\n\n },\n\n /**\n * @name Two#clear\n * @function\n * @description Remove all all Two.js objects from the scene.\n */\n clear: function() {\n\n this.scene.remove(this.scene.children);\n return this;\n\n },\n\n /**\n * @name Two#makeLine\n * @function\n * @param {Number} x1\n * @param {Number} y1\n * @param {Number} x2\n * @param {Number} y2\n * @returns {Two.Line}\n * @description Creates a Two.js line and adds it to the scene.\n */\n makeLine: function(x1, y1, x2, y2) {\n\n var line = new Two.Line(x1, y1, x2, y2);\n this.scene.add(line);\n\n return line;\n\n },\n\n /**\n * @name Two#makeRectangle\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} width\n * @param {Number} height\n * @returns {Two.Rectangle}\n * @description Creates a Two.js rectangle and adds it to the scene.\n */\n makeRectangle: function(x, y, width, height) {\n\n var rect = new Two.Rectangle(x, y, width, height);\n this.scene.add(rect);\n\n return rect;\n\n },\n\n /**\n * @name Two#makeRoundedRectangle\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} width\n * @param {Number} height\n * @param {Number} sides\n * @returns {Two.Rectangle}\n * @description Creates a Two.js rounded rectangle and adds it to the scene.\n */\n makeRoundedRectangle: function(x, y, width, height, sides) {\n\n var rect = new Two.RoundedRectangle(x, y, width, height, sides);\n this.scene.add(rect);\n\n return rect;\n\n },\n\n /**\n * @name Two#makeCircle\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} radius\n * @returns {Two.Circle}\n * @description Creates a Two.js circle and adds it to the scene.\n */\n makeCircle: function(x, y, radius) {\n\n var circle = new Two.Circle(x, y, radius);\n this.scene.add(circle);\n\n return circle;\n\n },\n\n /**\n * @name Two#makeEllipse\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} rx\n * @param {Number} ry\n * @returns {Two.Ellipse}\n * @description Creates a Two.js ellipse and adds it to the scene.\n */\n makeEllipse: function(x, y, rx, ry) {\n\n var ellipse = new Two.Ellipse(x, y, rx, ry);\n this.scene.add(ellipse);\n\n return ellipse;\n\n },\n\n /**\n * @name Two#makeStar\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} outerRadius\n * @param {Number} innerRadius\n * @param {Number} sides\n * @returns {Two.Star}\n * @description Creates a Two.js star and adds it to the scene.\n */\n makeStar: function(ox, oy, outerRadius, innerRadius, sides) {\n\n var star = new Two.Star(ox, oy, outerRadius, innerRadius, sides);\n this.scene.add(star);\n\n return star;\n\n },\n\n /**\n * @name Two#makeCurve\n * @function\n * @param {Two.Anchor[]} [points] - An array of `Two.Anchor` points.\n * @param {...Number} - Alternatively you can pass alternating `x` / `y` coordinate values as individual arguments. These will be combined into `Two.Anchor`s for use in the path.\n * @returns {Two.Path} - Where `path.curved` is set to `true`.\n * @description Creates a Two.js path that is curved and adds it to the scene.\n * @nota-bene In either case of passing an array or passing numbered arguments the last argument is an optional `Boolean` that defines whether the path should be open or closed.\n */\n makeCurve: function(p) {\n\n var l = arguments.length, points = p;\n if (!_.isArray(p)) {\n points = [];\n for (var i = 0; i < l; i+=2) {\n var x = arguments[i];\n if (!_.isNumber(x)) {\n break;\n }\n var y = arguments[i + 1];\n points.push(new Two.Anchor(x, y));\n }\n }\n\n var last = arguments[l - 1];\n var curve = new Two.Path(points, !(_.isBoolean(last) ? last : undefined), true);\n var rect = curve.getBoundingClientRect();\n curve.center().translation\n .set(rect.left + rect.width / 2, rect.top + rect.height / 2);\n\n this.scene.add(curve);\n\n return curve;\n\n },\n\n /**\n * @name Two#makePolygon\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} radius\n * @param {Number} sides\n * @returns {Two.Polygon}\n * @description Creates a Two.js polygon and adds it to the scene.\n */\n makePolygon: function(x, y, radius, sides) {\n\n var poly = new Two.Polygon(x, y, radius, sides);\n this.scene.add(poly);\n\n return poly;\n\n },\n\n /**\n * @name Two#makeArcSegment\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} innerRadius\n * @param {Number} outerRadius\n * @param {Number} startAngle\n * @param {Number} endAngle\n * @param {Number} [resolution=Two.Resolution] - The number of vertices that should comprise the arc segment.\n */\n makeArcSegment: function(ox, oy, ir, or, sa, ea, res) {\n var arcSegment = new Two.ArcSegment(ox, oy, ir, or, sa, ea, res);\n this.scene.add(arcSegment);\n return arcSegment;\n },\n\n /**\n * @name Two#makePath\n * @function\n * @param {Two.Anchor[]} [points] - An array of `Two.Anchor` points.\n * @param {...Number} - Alternatively you can pass alternating `x` / `y` coordinate values as individual arguments. These will be combined into `Two.Anchor`s for use in the path.\n * @returns {Two.Path}\n * @description Creates a Two.js path and adds it to the scene.\n * @nota-bene In either case of passing an array or passing numbered arguments the last argument is an optional `Boolean` that defines whether the path should be open or closed.\n */\n makePath: function(p) {\n\n var l = arguments.length, points = p;\n if (!_.isArray(p)) {\n points = [];\n for (var i = 0; i < l; i+=2) {\n var x = arguments[i];\n if (!_.isNumber(x)) {\n break;\n }\n var y = arguments[i + 1];\n points.push(new Two.Anchor(x, y));\n }\n }\n\n var last = arguments[l - 1];\n var path = new Two.Path(points, !(_.isBoolean(last) ? last : undefined));\n var rect = path.getBoundingClientRect();\n path.center().translation\n .set(rect.left + rect.width / 2, rect.top + rect.height / 2);\n\n this.scene.add(path);\n\n return path;\n\n },\n\n /**\n * @name Two#makeText\n * @function\n * @param {String} message\n * @param {Number} x\n * @param {Number} y\n * @param {Object} [styles] - An object to describe any of the {@link Two.Text.Properties} including `fill`, `stroke`, `linewidth`, `family`, `alignment`, `leading`, `opacity`, etc..\n * @returns {Two.Text}\n * @description Creates a Two.js text object and adds it to the scene.\n */\n makeText: function(message, x, y, styles) {\n var text = new Two.Text(message, x, y, styles);\n this.add(text);\n return text;\n },\n\n /**\n * @name Two#makeLinearGradient\n * @function\n * @param {Number} x1\n * @param {Number} y1\n * @param {Number} x2\n * @param {Number} y2\n * @param {...Two.Stop} [stops] - Any number of color stops sometimes reffered to as ramp stops. If none are supplied then the default black-to-white two stop gradient is applied.\n * @returns {Two.LinearGradient}\n * @description Creates a Two.js linear gradient and ads it to the scene. In the case of an effect it's added to an invisible \"definitions\" group.\n */\n makeLinearGradient: function(x1, y1, x2, y2 /* stops */) {\n\n var stops = slice.call(arguments, 4);\n var gradient = new Two.LinearGradient(x1, y1, x2, y2, stops);\n\n this.add(gradient);\n\n return gradient;\n\n },\n\n /**\n * @name Two#makeRadialGradient\n * @function\n * @param {Number} x1\n * @param {Number} y1\n * @param {Number} radius\n * @param {...Two.Stop} [stops] - Any number of color stops sometimes reffered to as ramp stops. If none are supplied then the default black-to-white two stop gradient is applied.\n * @returns {Two.RadialGradient}\n * @description Creates a Two.js linear-gradient object and ads it to the scene. In the case of an effect it's added to an invisible \"definitions\" group.\n */\n makeRadialGradient: function(x1, y1, r /* stops */) {\n\n var stops = slice.call(arguments, 3);\n var gradient = new Two.RadialGradient(x1, y1, r, stops);\n\n this.add(gradient);\n\n return gradient;\n\n },\n\n /**\n * @name Two#makeSprite\n * @function\n * @param {(String|Two.Texture)} pathOrTexture - The URL path to an image or an already created `Two.Texture`.\n * @param {Number} x\n * @param {Number} y\n * @param {Number} [columns=1]\n * @param {Number} [rows=1]\n * @param {Integer} [frameRate=0]\n * @param {Boolean} [autostart=false]\n * @returns {Two.Sprite}\n * @description Creates a Two.js sprite object and adds it to the scene. Sprites can be used for still images as well as animations.\n */\n makeSprite: function(path, x, y, cols, rows, frameRate, autostart) {\n\n var sprite = new Two.Sprite(path, x, y, cols, rows, frameRate);\n if (!!autostart) {\n sprite.play();\n }\n this.add(sprite);\n\n return sprite;\n\n },\n\n /**\n * @name Two#makeImageSequence\n * @function\n * @param {(String[]|Two.Texture[])} pathsOrTextures - An array of paths or of `Two.Textures`.\n * @param {Number} x\n * @param {Number} y\n * @param {Number} [frameRate=0]\n * @param {Boolean} [autostart=false]\n * @returns {Two.ImageSequence}\n * @description Creates a Two.js image sequence object and adds it to the scene.\n */\n makeImageSequence: function(paths, x, y, frameRate, autostart) {\n\n var imageSequence = new Two.ImageSequence(paths, x, y, frameRate);\n if (!!autostart) {\n imageSequence.play();\n }\n this.add(imageSequence);\n\n return imageSequence;\n\n },\n\n /**\n * @name Two#makeTexture\n * @function\n * @param {(String|Image|Canvas|Video)} [pathOrSource] - The URL path to an image or a DOM image-like element.\n * @param {Function} [callback] - Function to be invoked when the image is loaded.\n * @returns {Two.Texture}\n * @description Creates a Two.js texture object.\n */\n makeTexture: function(path, callback) {\n\n var texture = new Two.Texture(path, callback);\n return texture;\n\n },\n\n /**\n * @name Two#makeGroup\n * @function\n * @param {(Two.Shape[]|...Two.Shape)} [objects] - Two.js objects to be added to the group in the form of an array or as individual arguments.\n * @returns {Two.Group}\n * @description Creates a Two.js group object and adds it to the scene.\n */\n makeGroup: function(o) {\n\n var objects = o;\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n }\n\n var group = new Two.Group();\n this.scene.add(group);\n group.add(objects);\n\n return group;\n\n },\n\n /**\n * @name Two#interpret\n * @function\n * @param {SvgNode} svgNode - The SVG node to be parsed.\n * @param {Boolean} shallow - Don't create a top-most group but append all content directly.\n * @param {Boolean} add – Automatically add the reconstructed SVG node to scene.\n * @returns {Two.Group}\n * @description Interpret an SVG Node and add it to this instance's scene. The distinction should be made that this doesn't `import` svg's, it solely interprets them into something compatible for Two.js — this is slightly different than a direct transcription.\n */\n interpret: function(svgNode, shallow, add) {\n\n var tag = svgNode.tagName.toLowerCase(),\n add = (typeof add !== 'undefined') ? add : true;\n\n if (!(tag in Two.Utils.read)) {\n return null;\n }\n\n var node = Two.Utils.read[tag].call(this, svgNode);\n\n if (!!add) {\n this.add(shallow && node instanceof Two.Group ? node.children : node);\n }\n\n return node;\n\n },\n\n /**\n * @name Two#load\n * @function\n * @param {String} pathOrSVGContent - The URL path of an SVG file or an SVG document as text.\n * @param {Function} callback - Function to call once loading has completed.\n * @returns {Two.Group}\n * @description Load an SVG file or SVG text and interpret it into Two.js legible objects.\n */\n load: function(text, callback) {\n\n var group = new Two.Group();\n var elem, i, j;\n\n var attach = _.bind(function(data) {\n\n dom.temp.innerHTML = data;\n\n for (i = 0; i < dom.temp.children.length; i++) {\n elem = dom.temp.children[i];\n if (/svg/i.test(elem.nodeName)) {\n // Two.Utils.applySvgViewBox.call(this, group, elem.getAttribute('viewBox'));\n for (j = 0; j < elem.children.length; j++) {\n group.add(this.interpret(elem.children[j]));\n }\n } else {\n group.add(this.interpret(elem));\n }\n }\n\n if (_.isFunction(callback)) {\n var svg = dom.temp.children.length <= 1\n ? dom.temp.children[0] : dom.temp.children;\n callback(group, svg);\n }\n\n }, this);\n\n if (/.*\\.svg$/ig.test(text)) {\n\n Two.Utils.xhr(text, attach);\n\n return group;\n\n }\n\n attach(text);\n\n return group;\n\n }\n\n });\n\n function fitToWindow() {\n\n var wr = document.body.getBoundingClientRect();\n\n var width = this.width = wr.width;\n var height = this.height = wr.height;\n\n this.renderer.setSize(width, height, this.ratio);\n\n }\n\n function updateDimensions(width, height) {\n this.width = width;\n this.height = height;\n this.trigger(Two.Events.resize, width, height);\n }\n\n // Request Animation Frame\n\n var raf = dom.getRequestAnimationFrame();\n\n function loop() {\n\n for (var i = 0; i < Two.Instances.length; i++) {\n var t = Two.Instances[i];\n if (t.playing) {\n t.update();\n }\n }\n\n Two.nextFrameID = raf(loop);\n\n }\n\n if (typeof define === 'function' && define.amd) {\n define('two', [], function() {\n return Two;\n });\n } else if (typeof module != 'undefined' && module.exports) {\n module.exports = Two;\n }\n\n return Two;\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n /**\n * @name Two.Registry\n * @class\n * @description An arbitrary class to manage a directory of things. Mainly used for keeping tabs of textures in Two.js.\n */\n var Registry = Two.Registry = function() {\n\n this.map = {};\n\n };\n\n _.extend(Registry.prototype, {\n\n constructor: Registry,\n\n /**\n * @name Two.Registry#add\n * @function\n * @param {String} id - A unique identifier.\n * @param value - Any type of variable to be registered to the directory.\n * @description Adds any value to the directory. Assigned by the `id`.\n */\n add: function(id, obj) {\n this.map[id] = obj;\n return this;\n },\n\n /**\n * @name Two.Registry#remove\n * @function\n * @param {String} id - A unique identifier.\n * @description Remove any value from the directory by its `id`.\n */\n remove: function(id) {\n delete this.map[id];\n return this;\n },\n\n /**\n * @name Two.Registry#get\n * @function\n * @param {String} id - A unique identifier.\n * @returns value - The associated value. If unavailable then `undefined` is returned.\n * @description Get a registered value by its `id`.\n */\n get: function(id) {\n return this.map[id];\n },\n\n /**\n * @name Two.Registry#contains\n * @function\n * @param {String} id - A unique identifier.\n * @returns {Boolean}\n * @description Convenience method to see if a value is registered to an `id` already.\n */\n contains: function(id) {\n return id in this.map;\n }\n\n });\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n /**\n * @name Two.Vector\n * @class\n * @param {Number} [x=0] - Any number to represent the horizontal x-component of the vector.\n * @param {Number} [y=0] - Any number to represent the vertical y-component of the vector.\n * @description A class to store x / y component vector data. In addition to storing data `Two.Vector` has suped up methods for commonplace mathematical operations.\n */\n var Vector = Two.Vector = function(x, y) {\n\n /**\n * @name Two.Vector#x\n * @property {Number} - The horizontal x-component of the vector.\n */\n this.x = x || 0;\n\n /**\n * @name Two.Vector#y\n * @property {Number} - The vertical y-component of the vector.\n */\n this.y = y || 0;\n\n };\n\n _.extend(Vector, {\n\n /**\n * @name Two.Vector.zero\n * @readonly\n * @property {Two.Vector} - Handy reference to a vector with component values 0, 0 at all times.\n */\n zero: new Two.Vector(),\n\n /**\n * @name Two.Vector.add\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Two.Vector}\n * @description Add two vectors together.\n */\n add: function(v1, v2) {\n return new Vector(v1.x + v2.x, v1.y + v2.y);\n },\n\n /**\n * @name Two.Vector.sub\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Two.Vector}\n * @description Subtract two vectors: `v2` from `v1`.\n */\n sub: function(v1, v2) {\n return new Vector(v1.x - v2.x, v1.y - v2.y);\n },\n\n /**\n * @name Two.Vector.subtract\n * @borrows Two.Vector.sub as Two.Vector.subtract\n */\n subtract: function(v1, v2) {\n return Vector.sub(v1, v2);\n },\n\n /**\n * @name Two.Vector.ratioBetween\n * @function\n * @param {Two.Vector} A\n * @param {Two.Vector} B\n * @returns {Number} The ratio betwen two points `v1` and `v2`.\n */\n ratioBetween: function(v1, v2) {\n\n return (v1.x * v2.x + v1.y * v2.y) / (v1.length() * v2.length());\n\n },\n\n /**\n * @name Two.Vector.angleBetween\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Radians} The angle between points `v1` and `v2`.\n */\n angleBetween: function(v1, v2) {\n\n var dx, dy;\n\n if (arguments.length >= 4) {\n\n dx = arguments[0] - arguments[2];\n dy = arguments[1] - arguments[3];\n\n return Math.atan2(dy, dx);\n\n }\n\n dx = v1.x - v2.x;\n dy = v1.y - v2.y;\n\n return Math.atan2(dy, dx);\n\n },\n\n /**\n * @name Two.Vector.distanceBetween\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Number} The distance between points `v1` and `v2`. Distance is always positive.\n */\n distanceBetween: function(v1, v2) {\n\n return Math.sqrt(Vector.distanceBetweenSquared(v1, v2));\n\n },\n\n /**\n * @name Two.Vector.distanceBetweenSquared\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Number} The squared distance between points `v1` and `v2`.\n */\n distanceBetweenSquared: function(v1, v2) {\n\n var dx = v1.x - v2.x;\n var dy = v1.y - v2.y;\n\n return dx * dx + dy * dy;\n\n },\n\n /**\n * @name Two.Vector.MakeObservable\n * @function\n * @param {Object} object - The object to make observable.\n * @description Convenience function to apply observable qualities of a `Two.Vector` to any object. Handy if you'd like to extend the `Two.Vector` class on a custom class.\n */\n MakeObservable: function(object) {\n\n // /**\n // * Override Backbone bind / on in order to add properly broadcasting.\n // * This allows Two.Vector to not broadcast events unless event listeners\n // * are explicity bound to it.\n // */\n\n object.bind = object.on = function() {\n\n if (!this._bound) {\n this._x = this.x;\n this._y = this.y;\n Object.defineProperty(this, 'x', xgs);\n Object.defineProperty(this, 'y', ygs);\n _.extend(this, BoundProto);\n this._bound = true; // Reserved for event initialization check\n }\n\n Two.Utils.Events.bind.apply(this, arguments);\n\n return this;\n\n };\n\n }\n\n });\n\n _.extend(Vector.prototype, Two.Utils.Events, {\n\n constructor: Vector,\n\n /**\n * @name Two.Vector#set\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Set the x / y components of a vector to specific number values.\n */\n set: function(x, y) {\n this.x = x;\n this.y = y;\n return this;\n },\n\n /**\n * @name Two.Vector#copy\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Copy the x / y components of another object `v`.\n */\n copy: function(v) {\n this.x = v.x;\n this.y = v.y;\n return this;\n },\n\n /**\n * @name Two.Vector#clear\n * @function\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Set the x / y component values of the vector to zero.\n */\n clear: function() {\n this.x = 0;\n this.y = 0;\n return this;\n },\n\n /**\n * @name Two.Vector#clone\n * @function\n * @returns {Two.Vector} - A new instance of `Two.Vector`.\n * @description Create a new vector and copy the existing values onto the newly created instance.\n */\n clone: function() {\n return new Vector(this.x, this.y);\n },\n\n /**\n * @name Two.Vector#add\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Add an object with x / y component values to the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#add\n * @function\n * @param {Number} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Add the **same** number to both x / y component values of the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#add\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Add `x` / `y` values to their respective component value on the instance.\n * @overloaded\n */\n add: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this.x += x;\n this.y += x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this.x += x.x;\n this.y += x.y;\n }\n } else {\n this.x += x;\n this.y += y;\n }\n return this;\n },\n\n /**\n * @name Two.Vector#addSelf\n * @borrows Two.Vector#add as Two.Vector#addSelf\n */\n addSelf: function(v) {\n return this.add.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#sub\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Subtract an object with x / y component values to the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#sub\n * @function\n * @param {Number} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Subtract the **same** number to both x / y component values of the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#sub\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Subtract `x` / `y` values to their respective component value on the instance.\n * @overloaded\n */\n sub: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this.x -= x;\n this.y -= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this.x -= x.x;\n this.y -= x.y;\n }\n } else {\n this.x -= x;\n this.y -= y;\n }\n return this;\n },\n\n /**\n * @name Two.Vector#subtract\n * @borrows Two.Vector#sub as Two.Vector#subtract\n */\n subtract: function() {\n return this.sub.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#subSelf\n * @borrows Two.Vector#sub as Two.Vector#subSelf\n */\n subSelf: function(v) {\n return this.sub.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#subtractSelf\n * @borrows Two.Vector#sub as Two.Vector#subtractSelf\n */\n subtractSelf: function(v) {\n return this.sub.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#multiply\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Multiply an object with x / y component values to the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#multiply\n * @function\n * @param {Number} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Multiply the **same** number to both x / y component values of the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#multiply\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Multiply `x` / `y` values to their respective component value on the instance.\n * @overloaded\n */\n multiply: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this.x *= x;\n this.y *= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this.x *= x.x;\n this.y *= x.y;\n }\n } else {\n this.x *= x;\n this.y *= y;\n }\n return this;\n },\n\n /**\n * @name Two.Vector#multiplySelf\n * @borrows Two.Vector#multiply as Two.Vector#multiplySelf\n */\n multiplySelf: function(v) {\n return this.multiply.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#multiplyScalar\n * @function\n * @param {Number} s - The scalar to multiply by.\n * @description Mulitiply the vector by a single number. Shorthand to call {@link Two.Vector#multiply} directly.\n */\n multiplyScalar: function(s) {\n return this.multiply(s);\n },\n\n /**\n * @name Two.Vector#divide\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Divide an object with x / y component values to the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#divide\n * @function\n * @param {Number} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Divide the **same** number to both x / y component values of the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#divide\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Divide `x` / `y` values to their respective component value on the instance.\n * @overloaded\n */\n divide: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this.x /= x;\n this.y /= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this.x /= x.x;\n this.y /= x.y;\n }\n } else {\n this.x /= x;\n this.y /= y;\n }\n if (_.isNaN(this.x)) {\n this.x = 0;\n }\n if (_.isNaN(this.y)) {\n this.y = 0;\n }\n return this;\n },\n\n /**\n * @name Two.Vector#divideSelf\n * @borrows Two.Vector#divide as Two.Vector#divideSelf\n */\n divideSelf: function(v) {\n return this.divide.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#divideScalar\n * @function\n * @param {Number} s - The scalar to divide by.\n * @description Divide the vector by a single number. Shorthand to call {@link Two.Vector#divide} directly.\n */\n divideScalar: function(s) {\n return this.divide(s);\n },\n\n /**\n * @name Two.Vector#negate\n * @function\n * @description Invert each component's sign value.\n */\n negate: function() {\n return this.multiply(-1);\n },\n\n /**\n * @name Two.Vector#negate\n * @function\n * @returns {Number}\n * @description Get the [dot product]{@link https://en.wikipedia.org/wiki/Dot_product} of the vector.\n */\n dot: function(v) {\n return this.x * v.x + this.y * v.y;\n },\n\n /**\n * @name Two.Vector#length\n * @function\n * @returns {Number}\n * @description Get the length of a vector.\n */\n length: function() {\n return Math.sqrt(this.lengthSquared());\n },\n\n /**\n * @name Two.Vector#lengthSquared\n * @function\n * @returns {Number}\n * @description Get the length of the vector to the power of two. Widely used as less expensive than {@link Two.Vector#length}, because it isn't square-rooting any numbers.\n */\n lengthSquared: function() {\n return this.x * this.x + this.y * this.y;\n },\n\n /**\n * @name Two.Vector#normalize\n * @function\n * @description Normalize the vector from negative one to one.\n */\n normalize: function() {\n return this.divideScalar(this.length());\n },\n\n /**\n * @name Two.Vector#distanceTo\n * @function\n * @returns {Number}\n * @description Get the distance between two vectors.\n */\n distanceTo: function(v) {\n return Math.sqrt(this.distanceToSquared(v));\n },\n\n /**\n * @name Two.Vector#distanceToSquared\n * @function\n * @returns {Number}\n * @description Get the distance between two vectors to the power of two. Widely used as less expensive than {@link Two.Vector#distanceTo}, because it isn't square-rooting any numbers.\n */\n distanceToSquared: function(v) {\n var dx = this.x - v.x,\n dy = this.y - v.y;\n return dx * dx + dy * dy;\n },\n\n /**\n * @name Two.Vector#setLength\n * @function\n * @param {Number} l - length to set vector to.\n * @description Set the length of a vector.\n */\n setLength: function(l) {\n return this.normalize().multiplyScalar(l);\n },\n\n /**\n * @name Two.Vector#equals\n * @function\n * @param {Two.Vector} v - The vector to compare against.\n * @param {Number} [eps=0.0001] - An options epsilon for precision.\n * @returns {Boolean}\n * @description Qualify if one vector roughly equal another. With a margin of error defined by epsilon.\n */\n equals: function(v, eps) {\n eps = (typeof eps === 'undefined') ? 0.0001 : eps;\n return (this.distanceTo(v) < eps);\n },\n\n /**\n * @name Two.Vector#lerp\n * @function\n * @param {Two.Vector} v - The destination vector to step towards.\n * @param {Number} t - The zero to one value of how close the current vector gets to the destination vector.\n * @description Linear interpolate one vector to another by an amount `t` defined as a zero to one number.\n * @see [Matt DesLauriers]{@link https://twitter.com/mattdesl/status/1031305279227478016} has a good thread about this.\n */\n lerp: function(v, t) {\n var x = (v.x - this.x) * t + this.x;\n var y = (v.y - this.y) * t + this.y;\n return this.set(x, y);\n },\n\n /**\n * @name Two.Vector#isZero\n * @function\n * @param {Number} [eps=0.0001] - Optional precision amount to check against.\n * @returns {Boolean}\n * @description Check to see if vector is roughly zero, based on the `epsilon` precision value.\n */\n isZero: function(eps) {\n eps = (typeof eps === 'undefined') ? 0.0001 : eps;\n return (this.length() < eps);\n },\n\n /**\n * @name Two.Vector#toString\n * @function\n * @returns {String}\n * @description Return a comma-separated string of x, y value. Great for storing in a database.\n */\n toString: function() {\n return this.x + ', ' + this.y;\n },\n\n /**\n * @name Two.Vector#toObject\n * @function\n * @returns {Object}\n * @description Return a JSON compatible plain object that represents the vector.\n */\n toObject: function() {\n return { x: this.x, y: this.y };\n },\n\n /**\n * @name Two.Vector#rotate\n * @function\n * @param {Radians} radians - The amoun to rotate the vector by.\n * @description Rotate a vector.\n */\n rotate: function(radians) {\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n this.x = this.x * cos - this.y * sin;\n this.y = this.x * sin + this.y * cos;\n return this;\n }\n\n });\n\n // The same set of prototypical functions, but using the underlying\n // getter or setter for `x` and `y` values. This set of functions\n // is used instead of the previously documented ones above when\n // Two.Vector#bind is invoked and there is event dispatching processed\n // on x / y property changes.\n var BoundProto = {\n\n constructor: Vector,\n\n set: function(x, y) {\n this._x = x;\n this._y = y;\n return this.trigger(Two.Events.change);\n },\n\n copy: function(v) {\n this._x = v.x;\n this._y = v.y;\n return this.trigger(Two.Events.change);\n },\n\n clear: function() {\n this._x = 0;\n this._y = 0;\n return this.trigger(Two.Events.change);\n },\n\n clone: function() {\n return new Vector(this._x, this._y);\n },\n\n add: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this._x += x;\n this._y += x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this._x += x.x;\n this._y += x.y;\n }\n } else {\n this._x += x;\n this._y += y;\n }\n return this.trigger(Two.Events.change);\n },\n\n sub: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this._x -= x;\n this._y -= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this._x -= x.x;\n this._y -= x.y;\n }\n } else {\n this._x -= x;\n this._y -= y;\n }\n return this.trigger(Two.Events.change);\n },\n\n multiply: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this._x *= x;\n this._y *= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this._x *= x.x;\n this._y *= x.y;\n }\n } else {\n this._x *= x;\n this._y *= y;\n }\n return this.trigger(Two.Events.change);\n },\n\n divide: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this._x /= x;\n this._y /= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this._x /= x.x;\n this._y /= x.y;\n }\n } else {\n this._x /= x;\n this._y /= y;\n }\n if (_.isNaN(this._x)) {\n this._x = 0;\n }\n if (_.isNaN(this._y)) {\n this._y = 0;\n }\n return this.trigger(Two.Events.change);\n },\n\n dot: function(v) {\n return this._x * v.x + this._y * v.y;\n },\n\n lengthSquared: function() {\n return this._x * this._x + this._y * this._y;\n },\n\n distanceToSquared: function(v) {\n var dx = this._x - v.x,\n dy = this._y - v.y;\n return dx * dx + dy * dy;\n },\n\n lerp: function(v, t) {\n var x = (v.x - this._x) * t + this._x;\n var y = (v.y - this._y) * t + this._y;\n return this.set(x, y);\n },\n\n toString: function() {\n return this._x + ', ' + this._y;\n },\n\n toObject: function() {\n return { x: this._x, y: this._y };\n },\n\n rotate: function (radians) {\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n this._x = this._x * cos - this._y * sin;\n this._y = this._x * sin + this._y * cos;\n return this;\n }\n\n };\n\n var xgs = {\n enumerable: true,\n get: function() {\n return this._x;\n },\n set: function(v) {\n this._x = v;\n this.trigger(Two.Events.change, 'x');\n }\n };\n\n var ygs = {\n enumerable: true,\n get: function() {\n return this._y;\n },\n set: function(v) {\n this._y = v;\n this.trigger(Two.Events.change, 'y');\n }\n };\n\n Vector.MakeObservable(Vector.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Localized variables\n var commands = Two.Commands;\n var _ = Two.Utils;\n\n /**\n * @class\n * @name Two.Anchor\n * @param {Number} [x=0] - The x position of the root anchor point.\n * @param {Number} [y=0] - The y position of the root anchor point.\n * @param {Number} [lx=0] - The x position of the left handle point.\n * @param {Number} [ly=0] - The y position of the left handle point.\n * @param {Number} [rx=0] - The x position of the right handle point.\n * @param {Number} [ry=0] - The y position of the right handle point.\n * @param {String} [command=Two.Commands.move] - The command to describe how to render. Applicable commands are {@link Two.Commands}\n * @extends Two.Vector\n * @description An object that holds 3 `Two.Vector`s, the anchor point and its corresponding handles: `left` and `right`. In order to properly describe the bezier curve about the point there is also a command property to describe what type of drawing should occur when Two.js renders the anchors.\n */\n var Anchor = Two.Anchor = function(x, y, lx, ly, rx, ry, command) {\n\n Two.Vector.call(this, x, y);\n\n this._broadcast = _.bind(function() {\n this.trigger(Two.Events.change);\n }, this);\n\n this._command = command || commands.move;\n this._relative = true;\n\n var ilx = _.isNumber(lx);\n var ily = _.isNumber(ly);\n var irx = _.isNumber(rx);\n var iry = _.isNumber(ry);\n\n // Append the `controls` object only if control points are specified,\n // keeping the Two.Anchor inline with a Two.Vector until it needs to\n // evolve beyond those functions — e.g: a simple 2 component vector.\n if (ilx || ily || irx || iry) {\n Two.Anchor.AppendCurveProperties(this);\n }\n\n if (ilx) {\n this.controls.left.x = lx;\n }\n if (ily) {\n this.controls.left.y = ly;\n }\n if (irx) {\n this.controls.right.x = rx;\n }\n if (iry) {\n this.controls.right.y = ry;\n }\n\n };\n\n _.extend(Two.Anchor, {\n\n /**\n * @name Two.Anchor.AppendCurveProperties\n * @function\n * @param {Two.Anchor} anchor - The instance to append the `control`object to.\n * @description Adds the `controls` property as an object with `left` and `right` properties to access the bezier control handles that define how the curve is drawn. It also sets the `relative` property to `true` making vectors in the `controls` object relative to their corresponding root anchor point.\n */\n AppendCurveProperties: function(anchor) {\n\n anchor.relative = true;\n\n /**\n * @name Two.Anchor#controls\n * @property {Object} controls\n * @description An plain object that holds the controls handles for a {@link Two.Anchor}.\n */\n anchor.controls = {};\n\n /**\n * @name Two.Anchor#controls#left\n * @property {Two.Vector} left\n * @description The \"left\" control point to define handles on a bezier curve.\n */\n anchor.controls.left = new Two.Vector(0, 0);\n\n /**\n * @name Two.Anchor#controls#right\n * @property {Two.Vector} right\n * @description The \"left\" control point to define handles on a bezier curve.\n */\n anchor.controls.right = new Two.Vector(0, 0);\n\n },\n\n /**\n * @name Two.Anchor.MakeObservable\n * @function\n * @param {Object} object - The object to make observable.\n * @description Convenience function to apply observable qualities of a `Two.Anchor` to any object. Handy if you'd like to extend the `Two.Anchor` class on a custom class.\n */\n MakeObservable: function(object) {\n\n /**\n * @name Two.Anchor#command\n * @property {Two.Commands}\n * @description A draw command associated with the anchor point.\n */\n Object.defineProperty(object, 'command', {\n\n enumerable: true,\n\n get: function() {\n return this._command;\n },\n\n set: function(c) {\n this._command = c;\n if (this._command === commands.curve && !_.isObject(this.controls)) {\n Anchor.AppendCurveProperties(this);\n }\n return this.trigger(Two.Events.change);\n }\n\n });\n\n /**\n * @name Two.Anchor#relative\n * @property {Boolean}\n * @description A boolean to render control points relative to the root anchor point or in global coordinate-space to the rest of the scene.\n */\n Object.defineProperty(object, 'relative', {\n\n enumerable: true,\n\n get: function() {\n return this._relative;\n },\n\n set: function(b) {\n if (this._relative == b) {\n return this;\n }\n this._relative = !!b;\n return this.trigger(Two.Events.change);\n }\n\n });\n\n _.extend(object, Two.Vector.prototype, AnchorProto);\n\n // Make it possible to bind and still have the Anchor specific\n // inheritance from Two.Vector. In this case relying on `Two.Vector`\n // to do much of the heavy event-listener binding / unbinding.\n object.bind = object.on = function() {\n var bound = this._bound;\n Two.Vector.prototype.bind.apply(this, arguments);\n if (!bound) {\n _.extend(this, AnchorProto);\n }\n };\n\n }\n\n });\n\n var AnchorProto = {\n\n constructor: Two.Anchor,\n\n /**\n * @name Two.Anchor#listen\n * @function\n * @description Convenience method used mainly by {@link Two.Path#vertices} to listen and propagate changes from control points up to their respective anchors and further if necessary.\n */\n listen: function() {\n\n if (!_.isObject(this.controls)) {\n Two.Anchor.AppendCurveProperties(this);\n }\n\n this.controls.left.bind(Two.Events.change, this._broadcast);\n this.controls.right.bind(Two.Events.change, this._broadcast);\n\n return this;\n\n },\n\n /**\n * @name Two.Anchor#ignore\n * @function\n * @description Convenience method used mainly by {@link Two.Path#vertices} to ignore changes from a specific anchor's control points.\n */\n ignore: function() {\n\n this.controls.left.unbind(Two.Events.change, this._broadcast);\n this.controls.right.unbind(Two.Events.change, this._broadcast);\n\n return this;\n\n },\n\n /**\n * @name Two.Anchor#copy\n * @function\n * @param {Two.Anchor} v - The anchor to apply values to.\n * @description Copy the properties of one {@link Two.Anchor} onto another.\n */\n copy: function(v) {\n\n this.x = v.x;\n this.y = v.y;\n\n if (_.isString(v.command)) {\n this.command = v.command;\n }\n if (_.isObject(v.controls)) {\n if (!_.isObject(this.controls)) {\n Two.Anchor.AppendCurveProperties(this);\n }\n // TODO: Do we need to listen here?\n this.controls.left.copy(v.controls.left);\n this.controls.right.copy(v.controls.right);\n }\n if (_.isBoolean(v.relative)) {\n this.relative = v.relative;\n }\n\n // TODO: Hack for `Two.Commands.arc`\n if (this.command === Two.Commands.arc) {\n this.rx = v.rx;\n this.ry = v.ry;\n this.xAxisRotation = v.xAxisRotation;\n this.largeArcFlag = v.largeArcFlag;\n this.sweepFlag = v.sweepFlag;\n }\n\n return this;\n\n },\n\n /**\n * @name Two.Anchor#clone\n * @function\n * @returns {Two.Anchor}\n * @description Create a new {@link Two.Anchor}, set all its values to the current instance and return it for use.\n */\n clone: function() {\n\n var controls = this.controls;\n\n var clone = new Two.Anchor(\n this.x,\n this.y,\n controls && controls.left.x,\n controls && controls.left.y,\n controls && controls.right.x,\n controls && controls.right.y,\n this.command\n );\n clone.relative = this._relative;\n return clone;\n\n },\n\n /**\n * @name Two.Anchor#toObject\n * @function\n * @returns {Object} - An object with properties filled out to mirror {@link Two.Anchor}.\n * @description Create a JSON compatible plain object of the current instance. Intended for use with storing values in a database.\n */\n toObject: function() {\n var o = {\n x: this.x,\n y: this.y\n };\n if (this._command) {\n o.command = this._command;\n }\n if (this._relative) {\n o.relative = this._relative;\n }\n if (this.controls) {\n o.controls = {\n left: this.controls.left.toObject(),\n right: this.controls.right.toObject()\n };\n }\n return o;\n },\n\n /**\n * @name Two.Anchor#toString\n * @function\n * @returns {String} - A String with comma-separated values reflecting the various values on the current instance.\n * @description Create a string form of the current instance. Intended for use with storing values in a database. This is lighter to store than the JSON compatible {@link Two.Anchor#toObject}.\n */\n toString: function() {\n if (!this.controls) {\n return [this._x, this._y].join(', ');\n }\n return [this._x, this._y, this.controls.left.x, this.controls.left.y,\n this.controls.right.x, this.controls.right.y, this._command,\n this._relative ? 1 : 0].join(', ');\n }\n\n };\n\n Two.Anchor.MakeObservable(Two.Anchor.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Constants\n\n var cos = Math.cos, sin = Math.sin, tan = Math.tan;\n var _ = Two.Utils, fix = _.toFixed;\n var array = [];\n\n /**\n * @name Two.Matrix\n * @class\n * @param {Number} [a=1] - The value for element at the first column and first row.\n * @param {Number} [b=0] - The value for element at the second column and first row.\n * @param {Number} [c=0] - The value for element at the third column and first row.\n * @param {Number} [d=0] - The value for element at the first column and second row.\n * @param {Number} [e=1] - The value for element at the second column and second row.\n * @param {Number} [f=0] - The value for element at the third column and second row.\n * @param {Number} [g=0] - The value for element at the first column and third row.\n * @param {Number} [h=0] - The value for element at the second column and third row.\n * @param {Number} [i=1] - The value for element at the third column and third row.\n * @description A class to store 3 x 3 transformation matrix information. In addition to storing data `Two.Matrix` has suped up methods for commonplace mathematical operations.\n * @nota-bene Order is based on how to construct transformation strings for the browser.\n */\n var Matrix = Two.Matrix = function(a, b, c, d, e, f) {\n\n /**\n * @name Two.Matrix#elements\n * @property {Array} - The underlying data stored as an array.\n */\n this.elements = new Two.Array(9);\n\n var elements = a;\n if (!_.isArray(elements)) {\n elements = _.toArray(arguments);\n }\n\n // initialize the elements with default values.\n this.identity();\n\n if (elements.length > 0) {\n this.set(elements);\n }\n\n };\n\n _.extend(Matrix, {\n\n /**\n * @name Two.Matrix.Identity\n * @property {Array} - A stored reference to the default value of a 3 x 3 matrix.\n */\n Identity: [\n 1, 0, 0,\n 0, 1, 0,\n 0, 0, 1\n ],\n\n /**\n * @name Two.Matrix.Multiply\n * @function\n * @param {Two.Matrix} A\n * @param {Two.Matrix} B\n * @param {Two.Matrix} [C] - An optional matrix to apply the multiplication to.\n * @returns {Two.Matrix} - If an optional `C` matrix isn't passed then a new one is created and returned.\n * @description Multiply two matrices together and return the result.\n */\n Multiply: function(A, B, C) {\n\n if (B.length <= 3) { // Multiply Vector\n\n var x, y, z, e = A;\n\n var a = B[0] || 0,\n b = B[1] || 0,\n c = B[2] || 0;\n\n // Go down rows first\n // a, d, g, b, e, h, c, f, i\n\n x = e[0] * a + e[1] * b + e[2] * c;\n y = e[3] * a + e[4] * b + e[5] * c;\n z = e[6] * a + e[7] * b + e[8] * c;\n\n return { x: x, y: y, z: z };\n\n }\n\n var A0 = A[0], A1 = A[1], A2 = A[2];\n var A3 = A[3], A4 = A[4], A5 = A[5];\n var A6 = A[6], A7 = A[7], A8 = A[8];\n\n var B0 = B[0], B1 = B[1], B2 = B[2];\n var B3 = B[3], B4 = B[4], B5 = B[5];\n var B6 = B[6], B7 = B[7], B8 = B[8];\n\n C = C || new Two.Array(9);\n\n C[0] = A0 * B0 + A1 * B3 + A2 * B6;\n C[1] = A0 * B1 + A1 * B4 + A2 * B7;\n C[2] = A0 * B2 + A1 * B5 + A2 * B8;\n C[3] = A3 * B0 + A4 * B3 + A5 * B6;\n C[4] = A3 * B1 + A4 * B4 + A5 * B7;\n C[5] = A3 * B2 + A4 * B5 + A5 * B8;\n C[6] = A6 * B0 + A7 * B3 + A8 * B6;\n C[7] = A6 * B1 + A7 * B4 + A8 * B7;\n C[8] = A6 * B2 + A7 * B5 + A8 * B8;\n\n return C;\n\n }\n\n });\n\n _.extend(Matrix.prototype, Two.Utils.Events, {\n\n constructor: Matrix,\n\n /**\n * @name Two.Matrix#manual\n * @property {Boolean} - Determines whether Two.js automatically calculates the values for the matrix or if the developer intends to manage the matrix.\n * @nota-bene - Setting to `true` nullifies {@link Two.Shape#translation}, {@link Two.Shape#rotation}, and {@link Two.Shape#scale}.\n */\n manual: false,\n\n /**\n * @name Two.Matrix#set\n * @function\n * @param {Number} a - The value for element at the first column and first row.\n * @param {Number} b - The value for element at the second column and first row.\n * @param {Number} c - The value for element at the third column and first row.\n * @param {Number} d - The value for element at the first column and second row.\n * @param {Number} e - The value for element at the second column and second row.\n * @param {Number} f - The value for element at the third column and second row.\n * @param {Number} g - The value for element at the first column and third row.\n * @param {Number} h - The value for element at the second column and third row.\n * @param {Number} i - The value for element at the third column and third row.\n * @description Set an array of values onto the matrix. Order described in {@link Two.Matrix}.\n */\n\n /**\n * @name Two.Matrix#set\n * @function\n * @param {Number[]} a - The array of elements to apply.\n * @description Set an array of values onto the matrix. Order described in {@link Two.Matrix}.\n */\n set: function(a) {\n\n var elements = a;\n if (arguments.length > 1) {\n elements = _.toArray(arguments);\n }\n\n this.elements[0] = elements[0];\n this.elements[1] = elements[1];\n this.elements[2] = elements[2];\n this.elements[3] = elements[3];\n this.elements[4] = elements[4];\n this.elements[5] = elements[5];\n this.elements[6] = elements[6];\n this.elements[7] = elements[7];\n this.elements[8] = elements[8];\n\n return this.trigger(Two.Events.change);\n\n },\n\n /**\n * @name Two.Matrix#identity\n * @function\n * @description Turn matrix to the identity, like resetting.\n */\n identity: function() {\n\n this.elements[0] = Matrix.Identity[0];\n this.elements[1] = Matrix.Identity[1];\n this.elements[2] = Matrix.Identity[2];\n this.elements[3] = Matrix.Identity[3];\n this.elements[4] = Matrix.Identity[4];\n this.elements[5] = Matrix.Identity[5];\n this.elements[6] = Matrix.Identity[6];\n this.elements[7] = Matrix.Identity[7];\n this.elements[8] = Matrix.Identity[8];\n\n return this.trigger(Two.Events.change);\n\n },\n\n /**\n * @name Two.Matrix.multiply\n * @function\n * @param {Number} a - The scalar to be multiplied.\n * @description Multiply all components of the matrix against a single scalar value.\n */\n\n /**\n * @name Two.Matrix.multiply\n * @function\n * @param {Number} a - The x component to be multiplied.\n * @param {Number} b - The y component to be multiplied.\n * @param {Number} c - The z component to be multiplied.\n * @description Multiply all components of a matrix against a 3 component vector.\n */\n\n /**\n * @name Two.Matrix.multiply\n * @function\n * @param {Number} a - The value at the first column and first row of the matrix to be multiplied.\n * @param {Number} b - The value at the second column and first row of the matrix to be multiplied.\n * @param {Number} c - The value at the third column and first row of the matrix to be multiplied.\n * @param {Number} d - The value at the first column and second row of the matrix to be multiplied.\n * @param {Number} e - The value at the second column and second row of the matrix to be multiplied.\n * @param {Number} f - The value at the third column and second row of the matrix to be multiplied.\n * @param {Number} g - The value at the first column and third row of the matrix to be multiplied.\n * @param {Number} h - The value at the second column and third row of the matrix to be multiplied.\n * @param {Number} i - The value at the third column and third row of the matrix to be multiplied.\n * @description Multiply all components of a matrix against another matrix.\n */\n multiply: function(a, b, c, d, e, f, g, h, i) {\n\n var elements = arguments, l = elements.length;\n\n // Multiply scalar\n\n if (l <= 1) {\n\n this.elements[0] *= a;\n this.elements[1] *= a;\n this.elements[2] *= a;\n this.elements[3] *= a;\n this.elements[4] *= a;\n this.elements[5] *= a;\n this.elements[6] *= a;\n this.elements[7] *= a;\n this.elements[8] *= a;\n\n return this.trigger(Two.Events.change);\n\n }\n\n if (l <= 3) { // Multiply Vector\n\n var x, y, z;\n a = a || 0;\n b = b || 0;\n c = c || 0;\n e = this.elements;\n\n // Go down rows first\n // a, d, g, b, e, h, c, f, i\n\n x = e[0] * a + e[1] * b + e[2] * c;\n y = e[3] * a + e[4] * b + e[5] * c;\n z = e[6] * a + e[7] * b + e[8] * c;\n\n return { x: x, y: y, z: z };\n\n }\n\n // Multiple matrix\n\n var A = this.elements;\n var B = elements;\n\n var A0 = A[0], A1 = A[1], A2 = A[2];\n var A3 = A[3], A4 = A[4], A5 = A[5];\n var A6 = A[6], A7 = A[7], A8 = A[8];\n\n var B0 = B[0], B1 = B[1], B2 = B[2];\n var B3 = B[3], B4 = B[4], B5 = B[5];\n var B6 = B[6], B7 = B[7], B8 = B[8];\n\n this.elements[0] = A0 * B0 + A1 * B3 + A2 * B6;\n this.elements[1] = A0 * B1 + A1 * B4 + A2 * B7;\n this.elements[2] = A0 * B2 + A1 * B5 + A2 * B8;\n\n this.elements[3] = A3 * B0 + A4 * B3 + A5 * B6;\n this.elements[4] = A3 * B1 + A4 * B4 + A5 * B7;\n this.elements[5] = A3 * B2 + A4 * B5 + A5 * B8;\n\n this.elements[6] = A6 * B0 + A7 * B3 + A8 * B6;\n this.elements[7] = A6 * B1 + A7 * B4 + A8 * B7;\n this.elements[8] = A6 * B2 + A7 * B5 + A8 * B8;\n\n return this.trigger(Two.Events.change);\n\n },\n\n /**\n * @name Two.Matrix#inverse\n * @function\n * @param {Two.Matrix} [out] - The optional matrix to apply the inversion to.\n * @description Return an inverted version of the matrix. If no optional one is passed a new matrix is created and returned.\n */\n inverse: function(out) {\n\n var a = this.elements;\n out = out || new Two.Matrix();\n\n var a00 = a[0], a01 = a[1], a02 = a[2];\n var a10 = a[3], a11 = a[4], a12 = a[5];\n var a20 = a[6], a21 = a[7], a22 = a[8];\n\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20;\n\n // Calculate the determinant\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n\n out.elements[0] = b01 * det;\n out.elements[1] = (-a22 * a01 + a02 * a21) * det;\n out.elements[2] = (a12 * a01 - a02 * a11) * det;\n out.elements[3] = b11 * det;\n out.elements[4] = (a22 * a00 - a02 * a20) * det;\n out.elements[5] = (-a12 * a00 + a02 * a10) * det;\n out.elements[6] = b21 * det;\n out.elements[7] = (-a21 * a00 + a01 * a20) * det;\n out.elements[8] = (a11 * a00 - a01 * a10) * det;\n\n return out;\n\n },\n\n /**\n * @name Two.Matrix#scale\n * @function\n * @param {Number} scale - The one dimensional scale to apply to the matrix.\n * @description Uniformly scale the transformation matrix.\n */\n\n /**\n * @name Two.Matrix#scale\n * @function\n * @param {Number} sx - The horizontal scale factor.\n * @param {Number} sy - The vertical scale factor\n * @description Scale the transformation matrix in two dimensions.\n */\n scale: function(sx, sy) {\n\n var l = arguments.length;\n if (l <= 1) {\n sy = sx;\n }\n\n return this.multiply(sx, 0, 0, 0, sy, 0, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#rotate\n * @function\n * @param {Radians} radians - The amount to rotate in radians.\n * @description Rotate the matrix.\n */\n rotate: function(radians) {\n\n var c = cos(radians);\n var s = sin(radians);\n\n return this.multiply(c, -s, 0, s, c, 0, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#translate\n * @function\n * @param {Number} x - The horizontal translation value to apply.\n * @param {Number} y - The vertical translation value to apply.\n * @description Translate the matrix.\n */\n translate: function(x, y) {\n\n return this.multiply(1, 0, x, 0, 1, y, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#skewX\n * @function\n * @param {Radians} radians - The amount to skew in radians.\n * @description Skew the matrix by an angle in the x axis direction.\n */\n skewX: function(radians) {\n\n var a = tan(radians);\n\n return this.multiply(1, a, 0, 0, 1, 0, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#skewY\n * @function\n * @param {Radians} radians - The amount to skew in radians.\n * @description Skew the matrix by an angle in the y axis direction.\n */\n skewY: function(radians) {\n\n var a = tan(radians);\n\n return this.multiply(1, 0, 0, a, 1, 0, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#toString\n * @function\n * @param {Boolean} [fullMatrix=false] - Return the full 9 elements of the matrix or just 6 for 2D transformations.\n * @returns {String} - The transformation matrix as a 6 component string separated by spaces.\n * @description Create a transform string. Used for the Two.js rendering APIs.\n */\n toString: function(fullMatrix) {\n\n array.length = 0;\n this.toArray(fullMatrix, array);\n\n return array.join(' ');\n\n },\n\n /**\n * @name Two.Matrix#toArray\n * @function\n * @param {Boolean} [fullMatrix=false] - Return the full 9 elements of the matrix or just 6 for 2D transformations.\n * @param {Number[]} [output] - An array empty or otherwise to apply the values to.\n * @description Create a transform array. Used for the Two.js rendering APIs.\n */\n toArray: function(fullMatrix, output) {\n\n var elements = this.elements;\n var hasOutput = !!output;\n\n var a = fix(elements[0]);\n var b = fix(elements[1]);\n var c = fix(elements[2]);\n var d = fix(elements[3]);\n var e = fix(elements[4]);\n var f = fix(elements[5]);\n\n if (!!fullMatrix) {\n\n var g = fix(elements[6]);\n var h = fix(elements[7]);\n var i = fix(elements[8]);\n\n if (hasOutput) {\n output[0] = a;\n output[1] = d;\n output[2] = g;\n output[3] = b;\n output[4] = e;\n output[5] = h;\n output[6] = c;\n output[7] = f;\n output[8] = i;\n return;\n }\n\n return [\n a, d, g, b, e, h, c, f, i\n ];\n }\n\n if (hasOutput) {\n output[0] = a;\n output[1] = d;\n output[2] = b;\n output[3] = e;\n output[4] = c;\n output[5] = f;\n return;\n }\n\n return [\n a, d, b, e, c, f // Specific format see LN:19\n ];\n\n },\n\n /**\n * @name Two.Matrix#clone\n * @function\n * @description Clone the current matrix.\n */\n clone: function() {\n var a, b, c, d, e, f, g, h, i;\n\n a = this.elements[0];\n b = this.elements[1];\n c = this.elements[2];\n d = this.elements[3];\n e = this.elements[4];\n f = this.elements[5];\n g = this.elements[6];\n h = this.elements[7];\n i = this.elements[8];\n\n var matrix = new Two.Matrix(a, b, c, d, e, f, g, h, i);\n matrix.manual = this.manual;\n\n return matrix;\n\n }\n\n });\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Localize variables\n var mod = Two.Utils.mod, toFixed = Two.Utils.toFixed;\n var _ = Two.Utils;\n\n var svg = {\n\n version: 1.1,\n\n ns: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n\n alignments: {\n left: 'start',\n center: 'middle',\n right: 'end'\n },\n\n /**\n * Create an svg namespaced element.\n */\n createElement: function(name, attrs) {\n var tag = name;\n var elem = document.createElementNS(svg.ns, tag);\n if (tag === 'svg') {\n attrs = _.defaults(attrs || {}, {\n version: svg.version\n });\n }\n if (!_.isEmpty(attrs)) {\n svg.setAttributes(elem, attrs);\n }\n return elem;\n },\n\n /**\n * Add attributes from an svg element.\n */\n setAttributes: function(elem, attrs) {\n var keys = Object.keys(attrs);\n for (var i = 0; i < keys.length; i++) {\n if (/href/.test(keys[i])) {\n elem.setAttributeNS(svg.xlink, keys[i], attrs[keys[i]]);\n } else {\n elem.setAttribute(keys[i], attrs[keys[i]]);\n }\n }\n return this;\n },\n\n /**\n * Remove attributes from an svg element.\n */\n removeAttributes: function(elem, attrs) {\n for (var key in attrs) {\n elem.removeAttribute(key);\n }\n return this;\n },\n\n /**\n * Turn a set of vertices into a string for the d property of a path\n * element. It is imperative that the string collation is as fast as\n * possible, because this call will be happening multiple times a\n * second.\n */\n toString: function(points, closed) {\n\n var l = points.length,\n last = l - 1,\n d, // The elusive last Two.Commands.move point\n string = '';\n\n for (var i = 0; i < l; i++) {\n var b = points[i];\n var command;\n var prev = closed ? mod(i - 1, l) : Math.max(i - 1, 0);\n var next = closed ? mod(i + 1, l) : Math.min(i + 1, last);\n\n var a = points[prev];\n var c = points[next];\n\n var vx, vy, ux, uy, ar, bl, br, cl;\n var rx, ry, xAxisRotation, largeArcFlag, sweepFlag;\n\n // Access x and y directly,\n // bypassing the getter\n var x = toFixed(b.x);\n var y = toFixed(b.y);\n\n switch (b.command) {\n\n case Two.Commands.close:\n command = Two.Commands.close;\n break;\n\n case Two.Commands.arc:\n\n rx = b.rx;\n ry = b.ry;\n xAxisRotation = b.xAxisRotation;\n largeArcFlag = b.largeArcFlag;\n sweepFlag = b.sweepFlag;\n\n command = Two.Commands.arc + ' ' + rx + ' ' + ry + ' '\n + xAxisRotation + ' ' + largeArcFlag + ' ' + sweepFlag + ' '\n + x + ' ' + y;\n break;\n\n case Two.Commands.curve:\n\n ar = (a.controls && a.controls.right) || Two.Vector.zero;\n bl = (b.controls && b.controls.left) || Two.Vector.zero;\n\n if (a.relative) {\n vx = toFixed((ar.x + a.x));\n vy = toFixed((ar.y + a.y));\n } else {\n vx = toFixed(ar.x);\n vy = toFixed(ar.y);\n }\n\n if (b.relative) {\n ux = toFixed((bl.x + b.x));\n uy = toFixed((bl.y + b.y));\n } else {\n ux = toFixed(bl.x);\n uy = toFixed(bl.y);\n }\n\n command = ((i === 0) ? Two.Commands.move : Two.Commands.curve) +\n ' ' + vx + ' ' + vy + ' ' + ux + ' ' + uy + ' ' + x + ' ' + y;\n break;\n\n case Two.Commands.move:\n d = b;\n command = Two.Commands.move + ' ' + x + ' ' + y;\n break;\n\n default:\n command = b.command + ' ' + x + ' ' + y;\n\n }\n\n // Add a final point and close it off\n\n if (i >= last && closed) {\n\n if (b.command === Two.Commands.curve) {\n\n // Make sure we close to the most previous Two.Commands.move\n c = d;\n\n br = (b.controls && b.controls.right) || b;\n cl = (c.controls && c.controls.left) || c;\n\n if (b.relative) {\n vx = toFixed((br.x + b.x));\n vy = toFixed((br.y + b.y));\n } else {\n vx = toFixed(br.x);\n vy = toFixed(br.y);\n }\n\n if (c.relative) {\n ux = toFixed((cl.x + c.x));\n uy = toFixed((cl.y + c.y));\n } else {\n ux = toFixed(cl.x);\n uy = toFixed(cl.y);\n }\n\n x = toFixed(c.x);\n y = toFixed(c.y);\n\n command +=\n ' C ' + vx + ' ' + vy + ' ' + ux + ' ' + uy + ' ' + x + ' ' + y;\n\n }\n\n if (b.command !== Two.Commands.close) {\n command += ' Z';\n }\n\n }\n\n string += command + ' ';\n\n }\n\n return string;\n\n },\n\n getClip: function(shape) {\n\n var clip = shape._renderer.clip;\n\n if (!clip) {\n\n var root = shape;\n\n while (root.parent) {\n root = root.parent;\n }\n\n clip = shape._renderer.clip = svg.createElement('clipPath');\n root.defs.appendChild(clip);\n\n }\n\n return clip;\n\n },\n\n group: {\n\n // TODO: Can speed up.\n // TODO: How does this effect a f\n appendChild: function(object) {\n\n var elem = object._renderer.elem;\n\n if (!elem) {\n return;\n }\n\n var tag = elem.nodeName;\n\n if (!tag || /(radial|linear)gradient/i.test(tag) || object._clip) {\n return;\n }\n\n this.elem.appendChild(elem);\n\n },\n\n removeChild: function(object) {\n\n var elem = object._renderer.elem;\n\n if (!elem || elem.parentNode != this.elem) {\n return;\n }\n\n var tag = elem.nodeName;\n\n if (!tag) {\n return;\n }\n\n // Defer subtractions while clipping.\n if (object._clip) {\n return;\n }\n\n this.elem.removeChild(elem);\n\n },\n\n orderChild: function(object) {\n this.elem.appendChild(object._renderer.elem);\n },\n\n renderChild: function(child) {\n svg[child._renderer.type].render.call(child, this);\n },\n\n render: function(domElement) {\n\n this._update();\n\n // Shortcut for hidden objects.\n // Doesn't reset the flags, so changes are stored and\n // applied once the object is visible again\n if (this._opacity === 0 && !this._flagOpacity) {\n return this;\n }\n\n if (!this._renderer.elem) {\n this._renderer.elem = svg.createElement('g', {\n id: this.id\n });\n domElement.appendChild(this._renderer.elem);\n }\n\n // _Update styles for the \n var flagMatrix = this._matrix.manual || this._flagMatrix;\n var context = {\n domElement: domElement,\n elem: this._renderer.elem\n };\n\n if (flagMatrix) {\n this._renderer.elem.setAttribute('transform', 'matrix(' + this._matrix.toString() + ')');\n }\n\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n svg[child._renderer.type].render.call(child, domElement);\n }\n\n if (this._flagOpacity) {\n this._renderer.elem.setAttribute('opacity', this._opacity);\n }\n\n if (this._flagClassName) {\n this._renderer.elem.setAttribute('class', this._className);\n }\n\n if (this._flagAdditions) {\n this.additions.forEach(svg.group.appendChild, context);\n }\n\n if (this._flagSubtractions) {\n this.subtractions.forEach(svg.group.removeChild, context);\n }\n\n if (this._flagOrder) {\n this.children.forEach(svg.group.orderChild, context);\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (this._flagClip) {\n\n // clip = svg.getClip(this);\n // elem = this._renderer.elem;\n\n // if (this._clip) {\n // elem.removeAttribute('id');\n // clip.setAttribute('id', this.id);\n // clip.appendChild(elem);\n // } else {\n // clip.removeAttribute('id');\n // elem.setAttribute('id', this.id);\n // this.parent._renderer.elem.appendChild(elem); // TODO: should be insertBefore\n // }\n\n // }\n\n if (this._flagMask) {\n if (this._mask) {\n this._renderer.elem.setAttribute('clip-path', 'url(#' + this._mask.id + ')');\n } else {\n this._renderer.elem.removeAttribute('clip-path');\n }\n }\n\n return this.flagReset();\n\n }\n\n },\n\n path: {\n\n render: function(domElement) {\n\n this._update();\n\n // Shortcut for hidden objects.\n // Doesn't reset the flags, so changes are stored and\n // applied once the object is visible again\n if (this._opacity === 0 && !this._flagOpacity) {\n return this;\n }\n\n // Collect any attribute that needs to be changed here\n var changed = {};\n\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n\n if (flagMatrix) {\n changed.transform = 'matrix(' + this._matrix.toString() + ')';\n }\n\n if (this._flagVertices) {\n var vertices = svg.toString(this._renderer.vertices, this._closed);\n changed.d = vertices;\n }\n\n if (this._fill && this._fill._renderer) {\n this._fill._update();\n svg[this._fill._renderer.type].render.call(this._fill, domElement, true);\n }\n\n if (this._flagFill) {\n changed.fill = this._fill && this._fill.id\n ? 'url(#' + this._fill.id + ')' : this._fill;\n }\n\n if (this._stroke && this._stroke._renderer) {\n this._stroke._update();\n svg[this._stroke._renderer.type].render.call(this._stroke, domElement, true);\n }\n\n if (this._flagStroke) {\n changed.stroke = this._stroke && this._stroke.id\n ? 'url(#' + this._stroke.id + ')' : this._stroke;\n }\n\n if (this._flagLinewidth) {\n changed['stroke-width'] = this._linewidth;\n }\n\n if (this._flagOpacity) {\n changed['stroke-opacity'] = this._opacity;\n changed['fill-opacity'] = this._opacity;\n }\n\n if (this._flagClassName) {\n changed['class'] = this._className;\n }\n\n if (this._flagVisible) {\n changed.visibility = this._visible ? 'visible' : 'hidden';\n }\n\n if (this._flagCap) {\n changed['stroke-linecap'] = this._cap;\n }\n\n if (this._flagJoin) {\n changed['stroke-linejoin'] = this._join;\n }\n\n if (this._flagMiter) {\n changed['stroke-miterlimit'] = this._miter;\n }\n\n if (this.dashes && this.dashes.length > 0) {\n changed['stroke-dasharray'] = this.dashes.join(' ');\n }\n\n // If there is no attached DOM element yet,\n // create it with all necessary attributes.\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n this._renderer.elem = svg.createElement('path', changed);\n domElement.appendChild(this._renderer.elem);\n\n // Otherwise apply all pending attributes\n } else {\n svg.setAttributes(this._renderer.elem, changed);\n }\n\n if (this._flagClip) {\n\n var clip = svg.getClip(this);\n var elem = this._renderer.elem;\n\n if (this._clip) {\n elem.removeAttribute('id');\n clip.setAttribute('id', this.id);\n clip.appendChild(elem);\n } else {\n clip.removeAttribute('id');\n elem.setAttribute('id', this.id);\n this.parent._renderer.elem.appendChild(elem); // TODO: should be insertBefore\n }\n\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (this._flagMask) {\n // if (this._mask) {\n // elem.setAttribute('clip-path', 'url(#' + this._mask.id + ')');\n // } else {\n // elem.removeAttribute('clip-path');\n // }\n // }\n\n return this.flagReset();\n\n }\n\n },\n\n text: {\n\n render: function(domElement) {\n\n this._update();\n\n var changed = {};\n\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n\n if (flagMatrix) {\n changed.transform = 'matrix(' + this._matrix.toString() + ')';\n }\n\n if (this._flagFamily) {\n changed['font-family'] = this._family;\n }\n if (this._flagSize) {\n changed['font-size'] = this._size;\n }\n if (this._flagLeading) {\n changed['line-height'] = this._leading;\n }\n if (this._flagAlignment) {\n changed['text-anchor'] = svg.alignments[this._alignment] || this._alignment;\n }\n if (this._flagBaseline) {\n changed['alignment-baseline'] = changed['dominant-baseline'] = this._baseline;\n }\n if (this._flagStyle) {\n changed['font-style'] = this._style;\n }\n if (this._flagWeight) {\n changed['font-weight'] = this._weight;\n }\n if (this._flagDecoration) {\n changed['text-decoration'] = this._decoration;\n }\n if (this._fill && this._fill._renderer) {\n this._fill._update();\n svg[this._fill._renderer.type].render.call(this._fill, domElement, true);\n }\n if (this._flagFill) {\n changed.fill = this._fill && this._fill.id\n ? 'url(#' + this._fill.id + ')' : this._fill;\n }\n if (this._stroke && this._stroke._renderer) {\n this._stroke._update();\n svg[this._stroke._renderer.type].render.call(this._stroke, domElement, true);\n }\n if (this._flagStroke) {\n changed.stroke = this._stroke && this._stroke.id\n ? 'url(#' + this._stroke.id + ')' : this._stroke;\n }\n if (this._flagLinewidth) {\n changed['stroke-width'] = this._linewidth;\n }\n if (this._flagOpacity) {\n changed.opacity = this._opacity;\n }\n if (this._flagClassName) {\n changed['class'] = this._className;\n }\n if (this._flagVisible) {\n changed.visibility = this._visible ? 'visible' : 'hidden';\n }\n if (this.dashes && this.dashes.length > 0) {\n changed['stroke-dasharray'] = this.dashes.join(' ');\n }\n\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n\n this._renderer.elem = svg.createElement('text', changed);\n domElement.defs.appendChild(this._renderer.elem);\n\n } else {\n\n svg.setAttributes(this._renderer.elem, changed);\n\n }\n\n if (this._flagClip) {\n\n var clip = svg.getClip(this);\n var elem = this._renderer.elem;\n\n if (this._clip) {\n elem.removeAttribute('id');\n clip.setAttribute('id', this.id);\n clip.appendChild(elem);\n } else {\n clip.removeAttribute('id');\n elem.setAttribute('id', this.id);\n this.parent._renderer.elem.appendChild(elem); // TODO: should be insertBefore\n }\n\n }\n\n if (this._flagValue) {\n this._renderer.elem.textContent = this._value;\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'linear-gradient': {\n\n render: function(domElement, silent) {\n\n if (!silent) {\n this._update();\n }\n\n var changed = {};\n\n if (this._flagEndPoints) {\n changed.x1 = this.left._x;\n changed.y1 = this.left._y;\n changed.x2 = this.right._x;\n changed.y2 = this.right._y;\n }\n\n if (this._flagSpread) {\n changed.spreadMethod = this._spread;\n }\n\n // If there is no attached DOM element yet,\n // create it with all necessary attributes.\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n changed.gradientUnits = 'userSpaceOnUse';\n this._renderer.elem = svg.createElement('linearGradient', changed);\n domElement.defs.appendChild(this._renderer.elem);\n\n // Otherwise apply all pending attributes\n } else {\n\n svg.setAttributes(this._renderer.elem, changed);\n\n }\n\n if (this._flagStops) {\n\n var lengthChanged = this._renderer.elem.childNodes.length\n !== this.stops.length;\n\n if (lengthChanged) {\n this._renderer.elem.childNodes.length = 0;\n }\n\n for (var i = 0; i < this.stops.length; i++) {\n\n var stop = this.stops[i];\n var attrs = {};\n\n if (stop._flagOffset) {\n attrs.offset = 100 * stop._offset + '%';\n }\n if (stop._flagColor) {\n attrs['stop-color'] = stop._color;\n }\n if (stop._flagOpacity) {\n attrs['stop-opacity'] = stop._opacity;\n }\n\n if (!stop._renderer.elem) {\n stop._renderer.elem = svg.createElement('stop', attrs);\n } else {\n svg.setAttributes(stop._renderer.elem, attrs);\n }\n\n if (lengthChanged) {\n this._renderer.elem.appendChild(stop._renderer.elem);\n }\n stop.flagReset();\n\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'radial-gradient': {\n\n render: function(domElement, silent) {\n\n if (!silent) {\n this._update();\n }\n\n var changed = {};\n\n if (this._flagCenter) {\n changed.cx = this.center._x;\n changed.cy = this.center._y;\n }\n if (this._flagFocal) {\n changed.fx = this.focal._x;\n changed.fy = this.focal._y;\n }\n\n if (this._flagRadius) {\n changed.r = this._radius;\n }\n\n if (this._flagSpread) {\n changed.spreadMethod = this._spread;\n }\n\n // If there is no attached DOM element yet,\n // create it with all necessary attributes.\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n changed.gradientUnits = 'userSpaceOnUse';\n this._renderer.elem = svg.createElement('radialGradient', changed);\n domElement.defs.appendChild(this._renderer.elem);\n\n // Otherwise apply all pending attributes\n } else {\n\n svg.setAttributes(this._renderer.elem, changed);\n\n }\n\n if (this._flagStops) {\n\n var lengthChanged = this._renderer.elem.childNodes.length\n !== this.stops.length;\n\n if (lengthChanged) {\n this._renderer.elem.childNodes.length = 0;\n }\n\n for (var i = 0; i < this.stops.length; i++) {\n\n var stop = this.stops[i];\n var attrs = {};\n\n if (stop._flagOffset) {\n attrs.offset = 100 * stop._offset + '%';\n }\n if (stop._flagColor) {\n attrs['stop-color'] = stop._color;\n }\n if (stop._flagOpacity) {\n attrs['stop-opacity'] = stop._opacity;\n }\n\n if (!stop._renderer.elem) {\n stop._renderer.elem = svg.createElement('stop', attrs);\n } else {\n svg.setAttributes(stop._renderer.elem, attrs);\n }\n\n if (lengthChanged) {\n this._renderer.elem.appendChild(stop._renderer.elem);\n }\n stop.flagReset();\n\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n texture: {\n\n render: function(domElement, silent) {\n\n if (!silent) {\n this._update();\n }\n\n var changed = {};\n var styles = { x: 0, y: 0 };\n var image = this.image;\n\n if (this._flagLoaded && this.loaded) {\n\n switch (image.nodeName.toLowerCase()) {\n\n case 'canvas':\n styles.href = styles['xlink:href'] = image.toDataURL('image/png');\n break;\n case 'img':\n case 'image':\n styles.href = styles['xlink:href'] = this.src;\n break;\n\n }\n\n }\n\n if (this._flagOffset || this._flagLoaded || this._flagScale) {\n\n changed.x = this._offset.x;\n changed.y = this._offset.y;\n\n if (image) {\n\n changed.x -= image.width / 2;\n changed.y -= image.height / 2;\n\n if (this._scale instanceof Two.Vector) {\n changed.x *= this._scale.x;\n changed.y *= this._scale.y;\n } else {\n changed.x *= this._scale;\n changed.y *= this._scale;\n }\n }\n\n if (changed.x > 0) {\n changed.x *= - 1;\n }\n if (changed.y > 0) {\n changed.y *= - 1;\n }\n\n }\n\n if (this._flagScale || this._flagLoaded || this._flagRepeat) {\n\n changed.width = 0;\n changed.height = 0;\n\n if (image) {\n\n styles.width = changed.width = image.width;\n styles.height = changed.height = image.height;\n\n // TODO: Hack / Bandaid\n switch (this._repeat) {\n case 'no-repeat':\n changed.width += 1;\n changed.height += 1;\n break;\n }\n\n if (this._scale instanceof Two.Vector) {\n changed.width *= this._scale.x;\n changed.height *= this._scale.y;\n } else {\n changed.width *= this._scale;\n changed.height *= this._scale;\n }\n }\n\n }\n\n if (this._flagScale || this._flagLoaded) {\n if (!this._renderer.image) {\n this._renderer.image = svg.createElement('image', styles);\n } else if (!_.isEmpty(styles)) {\n svg.setAttributes(this._renderer.image, styles);\n }\n }\n\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n changed.patternUnits = 'userSpaceOnUse';\n this._renderer.elem = svg.createElement('pattern', changed);\n domElement.defs.appendChild(this._renderer.elem);\n\n } else if (!_.isEmpty(changed)) {\n\n svg.setAttributes(this._renderer.elem, changed);\n\n }\n\n if (this._renderer.elem && this._renderer.image && !this._renderer.appended) {\n this._renderer.elem.appendChild(this._renderer.image);\n this._renderer.appended = true;\n }\n\n return this.flagReset();\n\n }\n\n }\n\n };\n\n /**\n * @class\n */\n var Renderer = Two[Two.Types.svg] = function(params) {\n\n this.domElement = params.domElement || svg.createElement('svg');\n\n this.scene = new Two.Group();\n this.scene.parent = this;\n\n this.defs = svg.createElement('defs');\n this.domElement.appendChild(this.defs);\n this.domElement.defs = this.defs;\n this.domElement.style.overflow = 'hidden';\n\n };\n\n _.extend(Renderer, {\n\n Utils: svg\n\n });\n\n _.extend(Renderer.prototype, Two.Utils.Events, {\n\n constructor: Renderer,\n\n setSize: function(width, height) {\n\n this.width = width;\n this.height = height;\n\n svg.setAttributes(this.domElement, {\n width: width,\n height: height\n });\n\n return this.trigger(Two.Events.resize, width, height);\n\n },\n\n render: function() {\n\n svg.group.render.call(this.scene, this.domElement);\n\n return this;\n\n }\n\n });\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n /**\n * Constants\n */\n var mod = Two.Utils.mod, toFixed = Two.Utils.toFixed;\n var getRatio = Two.Utils.getRatio;\n var _ = Two.Utils;\n var emptyArray = [];\n var TWO_PI = Math.PI * 2,\n max = Math.max,\n min = Math.min,\n abs = Math.abs,\n sin = Math.sin,\n cos = Math.cos,\n acos = Math.acos,\n sqrt = Math.sqrt;\n\n // Returns true if this is a non-transforming matrix\n var isDefaultMatrix = function (m) {\n return (m[0] == 1 && m[3] == 0 && m[1] == 0 && m[4] == 1 && m[2] == 0 && m[5] == 0);\n };\n\n var canvas = {\n\n isHidden: /(none|transparent)/i,\n\n alignments: {\n left: 'start',\n middle: 'center',\n right: 'end'\n },\n\n shim: function(elem, name) {\n elem.tagName = elem.nodeName = name || 'canvas';\n elem.nodeType = 1;\n elem.getAttribute = function(prop) {\n return this[prop];\n };\n elem.setAttribute = function(prop, val) {\n this[prop] = val;\n return this;\n };\n return elem;\n },\n\n group: {\n\n renderChild: function(child) {\n canvas[child._renderer.type].render.call(child, this.ctx, true, this.clip);\n },\n\n render: function(ctx) {\n\n // TODO: Add a check here to only invoke _update if need be.\n this._update();\n\n var matrix = this._matrix.elements;\n var parent = this.parent;\n this._renderer.opacity = this._opacity * (parent && parent._renderer ? parent._renderer.opacity : 1);\n\n var defaultMatrix = isDefaultMatrix(matrix);\n\n var mask = this._mask;\n // var clip = this._clip;\n\n if (!this._renderer.context) {\n this._renderer.context = {};\n }\n\n this._renderer.context.ctx = ctx;\n // this._renderer.context.clip = clip;\n\n if (!defaultMatrix) {\n ctx.save();\n ctx.transform(matrix[0], matrix[3], matrix[1], matrix[4], matrix[2], matrix[5]);\n }\n\n if (mask) {\n canvas[mask._renderer.type].render.call(mask, ctx, true);\n }\n\n if (this.opacity > 0 && this.scale !== 0) {\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n canvas[child._renderer.type].render.call(child, ctx);\n }\n }\n\n if (!defaultMatrix) {\n ctx.restore();\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (clip) {\n // ctx.clip();\n // }\n\n return this.flagReset();\n\n }\n\n },\n\n path: {\n\n render: function(ctx, forced, parentClipped) {\n\n var matrix, stroke, linewidth, fill, opacity, visible, cap, join, miter,\n closed, commands, length, last, next, prev, a, b, c, d, ux, uy, vx, vy,\n ar, bl, br, cl, x, y, mask, clip, defaultMatrix, isOffset, dashes;\n\n // TODO: Add a check here to only invoke _update if need be.\n this._update();\n\n matrix = this._matrix.elements;\n stroke = this._stroke;\n linewidth = this._linewidth;\n fill = this._fill;\n opacity = this._opacity * this.parent._renderer.opacity;\n visible = this._visible;\n cap = this._cap;\n join = this._join;\n miter = this._miter;\n closed = this._closed;\n commands = this._renderer.vertices; // Commands\n length = commands.length;\n last = length - 1;\n defaultMatrix = isDefaultMatrix(matrix);\n dashes = this.dashes;\n\n // mask = this._mask;\n clip = this._clip;\n\n if (!forced && (!visible || clip)) {\n return this;\n }\n\n // Transform\n if (!defaultMatrix) {\n ctx.save();\n ctx.transform(matrix[0], matrix[3], matrix[1], matrix[4], matrix[2], matrix[5]);\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (mask) {\n // canvas[mask._renderer.type].render.call(mask, ctx, true);\n // }\n\n // Styles\n if (fill) {\n if (_.isString(fill)) {\n ctx.fillStyle = fill;\n } else {\n canvas[fill._renderer.type].render.call(fill, ctx);\n ctx.fillStyle = fill._renderer.effect;\n }\n }\n if (stroke) {\n if (_.isString(stroke)) {\n ctx.strokeStyle = stroke;\n } else {\n canvas[stroke._renderer.type].render.call(stroke, ctx);\n ctx.strokeStyle = stroke._renderer.effect;\n }\n }\n if (linewidth) {\n ctx.lineWidth = linewidth;\n }\n if (miter) {\n ctx.miterLimit = miter;\n }\n if (join) {\n ctx.lineJoin = join;\n }\n if (cap) {\n ctx.lineCap = cap;\n }\n if (_.isNumber(opacity)) {\n ctx.globalAlpha = opacity;\n }\n\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(dashes);\n }\n\n ctx.beginPath();\n\n for (var i = 0; i < commands.length; i++) {\n\n b = commands[i];\n\n x = toFixed(b.x);\n y = toFixed(b.y);\n\n switch (b.command) {\n\n case Two.Commands.close:\n ctx.closePath();\n break;\n\n case Two.Commands.arc:\n\n var rx = b.rx;\n var ry = b.ry;\n var xAxisRotation = b.xAxisRotation;\n var largeArcFlag = b.largeArcFlag;\n var sweepFlag = b.sweepFlag;\n\n prev = closed ? mod(i - 1, length) : max(i - 1, 0);\n a = commands[prev];\n\n var ax = toFixed(a.x);\n var ay = toFixed(a.y);\n\n canvas.renderSvgArcCommand(ctx, ax, ay, rx, ry, largeArcFlag, sweepFlag, xAxisRotation, x, y);\n break;\n\n case Two.Commands.curve:\n\n prev = closed ? mod(i - 1, length) : Math.max(i - 1, 0);\n next = closed ? mod(i + 1, length) : Math.min(i + 1, last);\n\n a = commands[prev];\n c = commands[next];\n ar = (a.controls && a.controls.right) || Two.Vector.zero;\n bl = (b.controls && b.controls.left) || Two.Vector.zero;\n\n if (a._relative) {\n vx = (ar.x + toFixed(a.x));\n vy = (ar.y + toFixed(a.y));\n } else {\n vx = toFixed(ar.x);\n vy = toFixed(ar.y);\n }\n\n if (b._relative) {\n ux = (bl.x + toFixed(b.x));\n uy = (bl.y + toFixed(b.y));\n } else {\n ux = toFixed(bl.x);\n uy = toFixed(bl.y);\n }\n\n ctx.bezierCurveTo(vx, vy, ux, uy, x, y);\n\n if (i >= last && closed) {\n\n c = d;\n\n br = (b.controls && b.controls.right) || Two.Vector.zero;\n cl = (c.controls && c.controls.left) || Two.Vector.zero;\n\n if (b._relative) {\n vx = (br.x + toFixed(b.x));\n vy = (br.y + toFixed(b.y));\n } else {\n vx = toFixed(br.x);\n vy = toFixed(br.y);\n }\n\n if (c._relative) {\n ux = (cl.x + toFixed(c.x));\n uy = (cl.y + toFixed(c.y));\n } else {\n ux = toFixed(cl.x);\n uy = toFixed(cl.y);\n }\n\n x = toFixed(c.x);\n y = toFixed(c.y);\n\n ctx.bezierCurveTo(vx, vy, ux, uy, x, y);\n\n }\n\n break;\n\n case Two.Commands.line:\n ctx.lineTo(x, y);\n break;\n\n case Two.Commands.move:\n d = b;\n ctx.moveTo(x, y);\n break;\n\n }\n }\n\n // Loose ends\n\n if (closed) {\n ctx.closePath();\n }\n\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(emptyArray);\n }\n\n if (!clip && !parentClipped) {\n if (!canvas.isHidden.test(fill)) {\n isOffset = fill._renderer && fill._renderer.offset\n if (isOffset) {\n ctx.save();\n ctx.translate(\n - fill._renderer.offset.x, - fill._renderer.offset.y);\n ctx.scale(fill._renderer.scale.x, fill._renderer.scale.y);\n }\n ctx.fill();\n if (isOffset) {\n ctx.restore();\n }\n }\n if (!canvas.isHidden.test(stroke)) {\n isOffset = stroke._renderer && stroke._renderer.offset;\n if (isOffset) {\n ctx.save();\n ctx.translate(\n - stroke._renderer.offset.x, - stroke._renderer.offset.y);\n ctx.scale(stroke._renderer.scale.x, stroke._renderer.scale.y);\n ctx.lineWidth = linewidth / stroke._renderer.scale.x;\n }\n ctx.stroke();\n if (isOffset) {\n ctx.restore();\n }\n }\n }\n\n if (!defaultMatrix) {\n ctx.restore();\n }\n\n if (clip && !parentClipped) {\n ctx.clip();\n }\n\n return this.flagReset();\n\n }\n\n },\n\n text: {\n\n render: function(ctx, forced, parentClipped) {\n\n // TODO: Add a check here to only invoke _update if need be.\n this._update();\n\n var matrix = this._matrix.elements;\n var stroke = this._stroke;\n var linewidth = this._linewidth;\n var fill = this._fill;\n var opacity = this._opacity * this.parent._renderer.opacity;\n var visible = this._visible;\n var defaultMatrix = isDefaultMatrix(matrix);\n var isOffset = fill._renderer && fill._renderer.offset\n && stroke._renderer && stroke._renderer.offset;\n var dashes = this.dashes;\n\n var a, b, c, d, e, sx, sy;\n\n // mask = this._mask;\n var clip = this._clip;\n\n if (!forced && (!visible || clip)) {\n return this;\n }\n\n // Transform\n if (!defaultMatrix) {\n ctx.save();\n ctx.transform(matrix[0], matrix[3], matrix[1], matrix[4], matrix[2], matrix[5]);\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (mask) {\n // canvas[mask._renderer.type].render.call(mask, ctx, true);\n // }\n\n if (!isOffset) {\n ctx.font = [this._style, this._weight, this._size + 'px/' +\n this._leading + 'px', this._family].join(' ');\n }\n\n ctx.textAlign = canvas.alignments[this._alignment] || this._alignment;\n ctx.textBaseline = this._baseline;\n\n // Styles\n if (fill) {\n if (_.isString(fill)) {\n ctx.fillStyle = fill;\n } else {\n canvas[fill._renderer.type].render.call(fill, ctx);\n ctx.fillStyle = fill._renderer.effect;\n }\n }\n if (stroke) {\n if (_.isString(stroke)) {\n ctx.strokeStyle = stroke;\n } else {\n canvas[stroke._renderer.type].render.call(stroke, ctx);\n ctx.strokeStyle = stroke._renderer.effect;\n }\n }\n if (linewidth) {\n ctx.lineWidth = linewidth;\n }\n if (_.isNumber(opacity)) {\n ctx.globalAlpha = opacity;\n }\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(dashes);\n }\n\n if (!clip && !parentClipped) {\n\n if (!canvas.isHidden.test(fill)) {\n\n if (fill._renderer && fill._renderer.offset) {\n\n sx = toFixed(fill._renderer.scale.x);\n sy = toFixed(fill._renderer.scale.y);\n\n ctx.save();\n ctx.translate( - toFixed(fill._renderer.offset.x),\n - toFixed(fill._renderer.offset.y));\n ctx.scale(sx, sy);\n\n a = this._size / fill._renderer.scale.y;\n b = this._leading / fill._renderer.scale.y;\n ctx.font = [this._style, this._weight, toFixed(a) + 'px/',\n toFixed(b) + 'px', this._family].join(' ');\n\n c = fill._renderer.offset.x / fill._renderer.scale.x;\n d = fill._renderer.offset.y / fill._renderer.scale.y;\n\n ctx.fillText(this.value, toFixed(c), toFixed(d));\n ctx.restore();\n\n } else {\n ctx.fillText(this.value, 0, 0);\n }\n\n }\n\n if (!canvas.isHidden.test(stroke)) {\n\n if (stroke._renderer && stroke._renderer.offset) {\n\n sx = toFixed(stroke._renderer.scale.x);\n sy = toFixed(stroke._renderer.scale.y);\n\n ctx.save();\n ctx.translate(- toFixed(stroke._renderer.offset.x),\n - toFixed(stroke._renderer.offset.y));\n ctx.scale(sx, sy);\n\n a = this._size / stroke._renderer.scale.y;\n b = this._leading / stroke._renderer.scale.y;\n ctx.font = [this._style, this._weight, toFixed(a) + 'px/',\n toFixed(b) + 'px', this._family].join(' ');\n\n c = stroke._renderer.offset.x / stroke._renderer.scale.x;\n d = stroke._renderer.offset.y / stroke._renderer.scale.y;\n e = linewidth / stroke._renderer.scale.x;\n\n ctx.lineWidth = toFixed(e);\n ctx.strokeText(this.value, toFixed(c), toFixed(d));\n ctx.restore();\n\n } else {\n ctx.strokeText(this.value, 0, 0);\n }\n }\n }\n\n if (!defaultMatrix) {\n ctx.restore();\n }\n\n // TODO: Test for text\n if (clip && !parentClipped) {\n ctx.clip();\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'linear-gradient': {\n\n render: function(ctx) {\n\n this._update();\n\n if (!this._renderer.effect || this._flagEndPoints || this._flagStops) {\n\n this._renderer.effect = ctx.createLinearGradient(\n this.left._x, this.left._y,\n this.right._x, this.right._y\n );\n\n for (var i = 0; i < this.stops.length; i++) {\n var stop = this.stops[i];\n this._renderer.effect.addColorStop(stop._offset, stop._color);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'radial-gradient': {\n\n render: function(ctx) {\n\n this._update();\n\n if (!this._renderer.effect || this._flagCenter || this._flagFocal\n || this._flagRadius || this._flagStops) {\n\n this._renderer.effect = ctx.createRadialGradient(\n this.center._x, this.center._y, 0,\n this.focal._x, this.focal._y, this._radius\n );\n\n for (var i = 0; i < this.stops.length; i++) {\n var stop = this.stops[i];\n this._renderer.effect.addColorStop(stop._offset, stop._color);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n texture: {\n\n render: function(ctx) {\n\n this._update();\n\n var image = this.image;\n var repeat;\n\n if (!this._renderer.effect || ((this._flagLoaded || this._flagImage || this._flagVideo || this._flagRepeat) && this.loaded)) {\n this._renderer.effect = ctx.createPattern(this.image, this._repeat);\n }\n\n if (this._flagOffset || this._flagLoaded || this._flagScale) {\n\n if (!(this._renderer.offset instanceof Two.Vector)) {\n this._renderer.offset = new Two.Vector();\n }\n\n this._renderer.offset.x = - this._offset.x;\n this._renderer.offset.y = - this._offset.y;\n\n if (image) {\n\n this._renderer.offset.x += image.width / 2;\n this._renderer.offset.y += image.height / 2;\n\n if (this._scale instanceof Two.Vector) {\n this._renderer.offset.x *= this._scale.x;\n this._renderer.offset.y *= this._scale.y;\n } else {\n this._renderer.offset.x *= this._scale;\n this._renderer.offset.y *= this._scale;\n }\n }\n\n }\n\n if (this._flagScale || this._flagLoaded) {\n\n if (!(this._renderer.scale instanceof Two.Vector)) {\n this._renderer.scale = new Two.Vector();\n }\n\n if (this._scale instanceof Two.Vector) {\n this._renderer.scale.copy(this._scale);\n } else {\n this._renderer.scale.set(this._scale, this._scale);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n renderSvgArcCommand: function(ctx, ax, ay, rx, ry, largeArcFlag, sweepFlag, xAxisRotation, x, y) {\n\n xAxisRotation = xAxisRotation * Math.PI / 180;\n\n // Ensure radii are positive\n rx = abs(rx);\n ry = abs(ry);\n\n // Compute (x1′, y1′)\n var dx2 = (ax - x) / 2.0;\n var dy2 = (ay - y) / 2.0;\n var x1p = cos(xAxisRotation) * dx2 + sin(xAxisRotation) * dy2;\n var y1p = - sin(xAxisRotation) * dx2 + cos(xAxisRotation) * dy2;\n\n // Compute (cx′, cy′)\n var rxs = rx * rx;\n var rys = ry * ry;\n var x1ps = x1p * x1p;\n var y1ps = y1p * y1p;\n\n // Ensure radii are large enough\n var cr = x1ps / rxs + y1ps / rys;\n\n if (cr > 1) {\n\n // scale up rx,ry equally so cr == 1\n var s = sqrt(cr);\n rx = s * rx;\n ry = s * ry;\n rxs = rx * rx;\n rys = ry * ry;\n\n }\n\n var dq = (rxs * y1ps + rys * x1ps);\n var pq = (rxs * rys - dq) / dq;\n var q = sqrt(max(0, pq));\n if (largeArcFlag === sweepFlag) q = - q;\n var cxp = q * rx * y1p / ry;\n var cyp = - q * ry * x1p / rx;\n\n // Step 3: Compute (cx, cy) from (cx′, cy′)\n var cx = cos(xAxisRotation) * cxp\n - sin(xAxisRotation) * cyp + (ax + x) / 2;\n var cy = sin(xAxisRotation) * cxp\n + cos(xAxisRotation) * cyp + (ay + y) / 2;\n\n // Step 4: Compute θ1 and Δθ\n var startAngle = svgAngle(1, 0, (x1p - cxp) / rx, (y1p - cyp) / ry);\n var delta = svgAngle((x1p - cxp) / rx, (y1p - cyp) / ry,\n (- x1p - cxp) / rx, (- y1p - cyp) / ry) % TWO_PI;\n\n var endAngle = startAngle + delta;\n\n var clockwise = sweepFlag === 0;\n\n renderArcEstimate(ctx, cx, cy, rx, ry, startAngle, endAngle,\n clockwise, xAxisRotation);\n\n }\n\n };\n\n var Renderer = Two[Two.Types.canvas] = function(params) {\n // Smoothing property. Defaults to true\n // Set it to false when working with pixel art.\n // false can lead to better performance, since it would use a cheaper interpolation algorithm.\n // It might not make a big difference on GPU backed canvases.\n var smoothing = (params.smoothing !== false);\n this.domElement = params.domElement || document.createElement('canvas');\n this.ctx = this.domElement.getContext('2d');\n this.overdraw = params.overdraw || false;\n\n if (!_.isUndefined(this.ctx.imageSmoothingEnabled)) {\n this.ctx.imageSmoothingEnabled = smoothing;\n }\n\n // Everything drawn on the canvas needs to be added to the scene.\n this.scene = new Two.Group();\n this.scene.parent = this;\n };\n\n\n _.extend(Renderer, {\n\n Utils: canvas\n\n });\n\n _.extend(Renderer.prototype, Two.Utils.Events, {\n\n constructor: Renderer,\n\n setSize: function(width, height, ratio) {\n\n this.width = width;\n this.height = height;\n\n this.ratio = _.isUndefined(ratio) ? getRatio(this.ctx) : ratio;\n\n this.domElement.width = width * this.ratio;\n this.domElement.height = height * this.ratio;\n\n if (this.domElement.style) {\n _.extend(this.domElement.style, {\n width: width + 'px',\n height: height + 'px'\n });\n }\n\n return this.trigger(Two.Events.resize, width, height, ratio);\n\n },\n\n render: function() {\n\n var isOne = this.ratio === 1;\n\n if (!isOne) {\n this.ctx.save();\n this.ctx.scale(this.ratio, this.ratio);\n }\n\n if (!this.overdraw) {\n this.ctx.clearRect(0, 0, this.width, this.height);\n }\n\n canvas.group.render.call(this.scene, this.ctx);\n\n if (!isOne) {\n this.ctx.restore();\n }\n\n return this;\n\n }\n\n });\n\n function renderArcEstimate(ctx, ox, oy, rx, ry, startAngle, endAngle, clockwise, xAxisRotation) {\n\n var epsilon = Two.Utils.Curve.Tolerance.epsilon;\n var deltaAngle = endAngle - startAngle;\n var samePoints = Math.abs(deltaAngle) < epsilon;\n\n // ensures that deltaAngle is 0 .. 2 PI\n deltaAngle = mod(deltaAngle, TWO_PI);\n\n if (deltaAngle < epsilon) {\n\n if (samePoints) {\n\n deltaAngle = 0;\n\n } else {\n\n deltaAngle = TWO_PI;\n\n }\n\n }\n\n if (clockwise === true && ! samePoints) {\n\n if (deltaAngle === TWO_PI) {\n\n deltaAngle = - TWO_PI;\n\n } else {\n\n deltaAngle = deltaAngle - TWO_PI;\n\n }\n\n }\n\n for (var i = 0; i < Two.Resolution; i++) {\n\n var t = i / (Two.Resolution - 1);\n\n var angle = startAngle + t * deltaAngle;\n var x = ox + rx * Math.cos(angle);\n var y = oy + ry * Math.sin(angle);\n\n if (xAxisRotation !== 0) {\n\n var cos = Math.cos(xAxisRotation);\n var sin = Math.sin(xAxisRotation);\n\n var tx = x - ox;\n var ty = y - oy;\n\n // Rotate the point about the center of the ellipse.\n x = tx * cos - ty * sin + ox;\n y = tx * sin + ty * cos + oy;\n\n }\n\n ctx.lineTo(x, y);\n\n }\n\n }\n\n function svgAngle(ux, uy, vx, vy) {\n\n var dot = ux * vx + uy * vy;\n var len = sqrt(ux * ux + uy * uy) * sqrt(vx * vx + vy * vy);\n // floating point precision, slightly over values appear\n var ang = acos(max(-1, min(1, dot / len)));\n if ((ux * vy - uy * vx) < 0) {\n ang = - ang;\n }\n\n return ang;\n\n }\n\n function resetTransform(ctx) {\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n /**\n * Constants\n */\n\n var root = Two.root,\n multiplyMatrix = Two.Matrix.Multiply,\n mod = Two.Utils.mod,\n identity = [1, 0, 0, 0, 1, 0, 0, 0, 1],\n transformation = new Two.Array(9),\n getRatio = Two.Utils.getRatio,\n getComputedMatrix = Two.Utils.getComputedMatrix,\n toFixed = Two.Utils.toFixed,\n CanvasUtils = Two[Two.Types.canvas].Utils,\n _ = Two.Utils;\n\n var webgl = {\n\n isHidden: /(none|transparent)/i,\n\n canvas: (root.document ? root.document.createElement('canvas') : { getContext: _.identity }),\n\n alignments: {\n left: 'start',\n middle: 'center',\n right: 'end'\n },\n\n matrix: new Two.Matrix(),\n\n uv: new Two.Array([\n 0, 0,\n 1, 0,\n 0, 1,\n 0, 1,\n 1, 0,\n 1, 1\n ]),\n\n group: {\n\n removeChild: function(child, gl) {\n if (child.children) {\n for (var i = 0; i < child.children.length; i++) {\n webgl.group.removeChild(child.children[i], gl);\n }\n return;\n }\n // Deallocate texture to free up gl memory.\n gl.deleteTexture(child._renderer.texture);\n delete child._renderer.texture;\n },\n\n renderChild: function(child) {\n webgl[child._renderer.type].render.call(child, this.gl, this.program);\n },\n\n render: function(gl, program) {\n\n this._update();\n\n var parent = this.parent;\n var flagParentMatrix = (parent._matrix && parent._matrix.manual) || parent._flagMatrix;\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n\n if (flagParentMatrix || flagMatrix) {\n\n if (!this._renderer.matrix) {\n this._renderer.matrix = new Two.Array(9);\n }\n\n // Reduce amount of object / array creation / deletion\n this._matrix.toArray(true, transformation);\n\n multiplyMatrix(transformation, parent._renderer.matrix, this._renderer.matrix);\n this._renderer.scale = this._scale * parent._renderer.scale;\n\n if (flagParentMatrix) {\n this._flagMatrix = true;\n }\n\n }\n\n if (this._mask) {\n\n gl.enable(gl.STENCIL_TEST);\n gl.stencilFunc(gl.ALWAYS, 1, 1);\n\n gl.colorMask(false, false, false, true);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.INCR);\n\n webgl[this._mask._renderer.type].render.call(this._mask, gl, program, this);\n\n gl.colorMask(true, true, true, true);\n gl.stencilFunc(gl.NOTEQUAL, 0, 1);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n\n }\n\n this._flagOpacity = parent._flagOpacity || this._flagOpacity;\n\n this._renderer.opacity = this._opacity\n * (parent && parent._renderer ? parent._renderer.opacity : 1);\n\n if (this._flagSubtractions) {\n for (var i = 0; i < this.subtractions.length; i++) {\n webgl.group.removeChild(this.subtractions[i], gl);\n }\n }\n\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n webgl[child._renderer.type].render.call(child, gl, program);\n }\n\n this.children.forEach(webgl.group.renderChild, {\n gl: gl,\n program: program\n });\n\n if (this._mask) {\n\n gl.colorMask(false, false, false, false);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.DECR);\n\n webgl[this._mask._renderer.type].render.call(this._mask, gl, program, this);\n\n gl.colorMask(true, true, true, true);\n gl.stencilFunc(gl.NOTEQUAL, 0, 1);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n\n gl.disable(gl.STENCIL_TEST);\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n path: {\n\n updateCanvas: function(elem) {\n\n var next, prev, a, c, ux, uy, vx, vy, ar, bl, br, cl, x, y;\n var isOffset;\n\n var commands = elem._renderer.vertices;\n var canvas = this.canvas;\n var ctx = this.ctx;\n\n // Styles\n var scale = elem._renderer.scale;\n var stroke = elem._stroke;\n var linewidth = elem._linewidth;\n var fill = elem._fill;\n var opacity = elem._renderer.opacity || elem._opacity;\n var cap = elem._cap;\n var join = elem._join;\n var miter = elem._miter;\n var closed = elem._closed;\n var dashes = elem.dashes;\n var length = commands.length;\n var last = length - 1;\n\n canvas.width = Math.max(Math.ceil(elem._renderer.rect.width * scale), 1);\n canvas.height = Math.max(Math.ceil(elem._renderer.rect.height * scale), 1);\n\n var centroid = elem._renderer.rect.centroid;\n var cx = centroid.x;\n var cy = centroid.y;\n\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n if (fill) {\n if (_.isString(fill)) {\n ctx.fillStyle = fill;\n } else {\n webgl[fill._renderer.type].render.call(fill, ctx, elem);\n ctx.fillStyle = fill._renderer.effect;\n }\n }\n if (stroke) {\n if (_.isString(stroke)) {\n ctx.strokeStyle = stroke;\n } else {\n webgl[stroke._renderer.type].render.call(stroke, ctx, elem);\n ctx.strokeStyle = stroke._renderer.effect;\n }\n }\n if (linewidth) {\n ctx.lineWidth = linewidth;\n }\n if (miter) {\n ctx.miterLimit = miter;\n }\n if (join) {\n ctx.lineJoin = join;\n }\n if (cap) {\n ctx.lineCap = cap;\n }\n if (_.isNumber(opacity)) {\n ctx.globalAlpha = opacity;\n }\n\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(dashes);\n }\n\n var d;\n ctx.save();\n ctx.scale(scale, scale);\n ctx.translate(cx, cy);\n\n ctx.beginPath();\n for (var i = 0; i < commands.length; i++) {\n\n var b = commands[i];\n\n x = toFixed(b.x);\n y = toFixed(b.y);\n\n switch (b.command) {\n\n case Two.Commands.close:\n ctx.closePath();\n break;\n\n case Two.Commands.arc:\n\n var rx = b.rx;\n var ry = b.ry;\n var xAxisRotation = b.xAxisRotation;\n var largeArcFlag = b.largeArcFlag;\n var sweepFlag = b.sweepFlag;\n\n prev = closed ? mod(i - 1, length) : max(i - 1, 0);\n a = commands[prev];\n\n var ax = toFixed(a.x);\n var ay = toFixed(a.y);\n\n CanvasUtils.renderSvgArcCommand(ctx, ax, ay, rx, ry, largeArcFlag, sweepFlag, xAxisRotation, x, y);\n break;\n\n case Two.Commands.curve:\n\n prev = closed ? mod(i - 1, length) : Math.max(i - 1, 0);\n next = closed ? mod(i + 1, length) : Math.min(i + 1, last);\n\n a = commands[prev];\n c = commands[next];\n ar = (a.controls && a.controls.right) || Two.Vector.zero;\n bl = (b.controls && b.controls.left) || Two.Vector.zero;\n\n if (a._relative) {\n vx = toFixed((ar.x + a.x));\n vy = toFixed((ar.y + a.y));\n } else {\n vx = toFixed(ar.x);\n vy = toFixed(ar.y);\n }\n\n if (b._relative) {\n ux = toFixed((bl.x + b.x));\n uy = toFixed((bl.y + b.y));\n } else {\n ux = toFixed(bl.x);\n uy = toFixed(bl.y);\n }\n\n ctx.bezierCurveTo(vx, vy, ux, uy, x, y);\n\n if (i >= last && closed) {\n\n c = d;\n\n br = (b.controls && b.controls.right) || Two.Vector.zero;\n cl = (c.controls && c.controls.left) || Two.Vector.zero;\n\n if (b._relative) {\n vx = toFixed((br.x + b.x));\n vy = toFixed((br.y + b.y));\n } else {\n vx = toFixed(br.x);\n vy = toFixed(br.y);\n }\n\n if (c._relative) {\n ux = toFixed((cl.x + c.x));\n uy = toFixed((cl.y + c.y));\n } else {\n ux = toFixed(cl.x);\n uy = toFixed(cl.y);\n }\n\n x = toFixed(c.x);\n y = toFixed(c.y);\n\n ctx.bezierCurveTo(vx, vy, ux, uy, x, y);\n\n }\n\n break;\n\n case Two.Commands.line:\n ctx.lineTo(x, y);\n break;\n\n case Two.Commands.move:\n d = b;\n ctx.moveTo(x, y);\n break;\n\n }\n\n }\n\n // Loose ends\n\n if (closed) {\n ctx.closePath();\n }\n\n if (!webgl.isHidden.test(fill)) {\n isOffset = fill._renderer && fill._renderer.offset\n if (isOffset) {\n ctx.save();\n ctx.translate(\n - fill._renderer.offset.x, - fill._renderer.offset.y);\n ctx.scale(fill._renderer.scale.x, fill._renderer.scale.y);\n }\n ctx.fill();\n if (isOffset) {\n ctx.restore();\n }\n }\n\n if (!webgl.isHidden.test(stroke)) {\n isOffset = stroke._renderer && stroke._renderer.offset;\n if (isOffset) {\n ctx.save();\n ctx.translate(\n - stroke._renderer.offset.x, - stroke._renderer.offset.y);\n ctx.scale(stroke._renderer.scale.x, stroke._renderer.scale.y);\n ctx.lineWidth = linewidth / stroke._renderer.scale.x;\n }\n ctx.stroke();\n if (isOffset) {\n ctx.restore();\n }\n }\n\n ctx.restore();\n\n },\n\n /**\n * Returns the rect of a set of verts. Typically takes vertices that are\n * \"centered\" around 0 and returns them to be anchored upper-left.\n */\n getBoundingClientRect: function(vertices, border, rect) {\n\n var left = Infinity, right = -Infinity,\n top = Infinity, bottom = -Infinity,\n width, height;\n\n vertices.forEach(function(v) {\n\n var x = v.x, y = v.y, controls = v.controls;\n var a, b, c, d, cl, cr;\n\n top = Math.min(y, top);\n left = Math.min(x, left);\n right = Math.max(x, right);\n bottom = Math.max(y, bottom);\n\n if (!v.controls) {\n return;\n }\n\n cl = controls.left;\n cr = controls.right;\n\n if (!cl || !cr) {\n return;\n }\n\n a = v._relative ? cl.x + x : cl.x;\n b = v._relative ? cl.y + y : cl.y;\n c = v._relative ? cr.x + x : cr.x;\n d = v._relative ? cr.y + y : cr.y;\n\n if (!a || !b || !c || !d) {\n return;\n }\n\n top = Math.min(b, d, top);\n left = Math.min(a, c, left);\n right = Math.max(a, c, right);\n bottom = Math.max(b, d, bottom);\n\n });\n\n // Expand borders\n\n if (_.isNumber(border)) {\n top -= border;\n left -= border;\n right += border;\n bottom += border;\n }\n\n width = right - left;\n height = bottom - top;\n\n rect.top = top;\n rect.left = left;\n rect.right = right;\n rect.bottom = bottom;\n rect.width = width;\n rect.height = height;\n\n if (!rect.centroid) {\n rect.centroid = {};\n }\n\n rect.centroid.x = - left;\n rect.centroid.y = - top;\n\n },\n\n render: function(gl, program, forcedParent) {\n\n if (!this._visible || !this._opacity) {\n return this;\n }\n\n this._update();\n\n // Calculate what changed\n\n var parent = this.parent;\n var flagParentMatrix = parent._matrix.manual || parent._flagMatrix;\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n var flagTexture = this._flagVertices || this._flagFill\n || (this._fill instanceof Two.LinearGradient && (this._fill._flagSpread || this._fill._flagStops || this._fill._flagEndPoints))\n || (this._fill instanceof Two.RadialGradient && (this._fill._flagSpread || this._fill._flagStops || this._fill._flagRadius || this._fill._flagCenter || this._fill._flagFocal))\n || (this._fill instanceof Two.Texture && (this._fill._flagLoaded && this._fill.loaded || this._fill._flagImage || this._fill._flagVideo || this._fill._flagRepeat || this._fill._flagOffset || this._fill._flagScale))\n || (this._stroke instanceof Two.LinearGradient && (this._stroke._flagSpread || this._stroke._flagStops || this._stroke._flagEndPoints))\n || (this._stroke instanceof Two.RadialGradient && (this._stroke._flagSpread || this._stroke._flagStops || this._stroke._flagRadius || this._stroke._flagCenter || this._stroke._flagFocal))\n || (this._stroke instanceof Two.Texture && (this._stroke._flagLoaded && this._stroke.loaded || this._stroke._flagImage || this._stroke._flagVideo || this._stroke._flagRepeat || this._stroke._flagOffset || this._fill._flagScale))\n || this._flagStroke || this._flagLinewidth || this._flagOpacity\n || parent._flagOpacity || this._flagVisible || this._flagCap\n || this._flagJoin || this._flagMiter || this._flagScale\n || (this.dashes && this.dashes.length > 0)\n || !this._renderer.texture;\n\n if (flagParentMatrix || flagMatrix) {\n\n if (!this._renderer.matrix) {\n this._renderer.matrix = new Two.Array(9);\n }\n\n // Reduce amount of object / array creation / deletion\n\n this._matrix.toArray(true, transformation);\n\n multiplyMatrix(transformation, parent._renderer.matrix, this._renderer.matrix);\n this._renderer.scale = this._scale * parent._renderer.scale;\n\n }\n\n if (flagTexture) {\n\n if (!this._renderer.rect) {\n this._renderer.rect = {};\n }\n\n if (!this._renderer.triangles) {\n this._renderer.triangles = new Two.Array(12);\n }\n\n this._renderer.opacity = this._opacity * parent._renderer.opacity;\n\n webgl.path.getBoundingClientRect(this._renderer.vertices, this._linewidth, this._renderer.rect);\n webgl.getTriangles(this._renderer.rect, this._renderer.triangles);\n\n webgl.updateBuffer.call(webgl, gl, this, program);\n webgl.updateTexture.call(webgl, gl, this);\n\n } else {\n\n // We still need to update child Two elements on the fill and\n // stroke properties.\n if (!_.isString(this._fill)) {\n this._fill._update();\n }\n if (!_.isString(this._stroke)) {\n this._stroke._update();\n }\n\n }\n\n // if (this._mask) {\n // webgl[this._mask._renderer.type].render.call(mask, gl, program, this);\n // }\n\n if (this._clip && !forcedParent) {\n return;\n }\n\n // Draw Texture\n\n gl.bindBuffer(gl.ARRAY_BUFFER, this._renderer.textureCoordsBuffer);\n\n gl.vertexAttribPointer(program.textureCoords, 2, gl.FLOAT, false, 0, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, this._renderer.texture);\n\n\n // Draw Rect\n\n gl.uniformMatrix3fv(program.matrix, false, this._renderer.matrix);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, this._renderer.buffer);\n\n gl.vertexAttribPointer(program.position, 2, gl.FLOAT, false, 0, 0);\n\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n return this.flagReset();\n\n }\n\n },\n\n text: {\n\n updateCanvas: function(elem) {\n\n var canvas = this.canvas;\n var ctx = this.ctx;\n\n // Styles\n var scale = elem._renderer.scale;\n var stroke = elem._stroke;\n var linewidth = elem._linewidth * scale;\n var fill = elem._fill;\n var opacity = elem._renderer.opacity || elem._opacity;\n var dashes = elem.dashes;\n\n canvas.width = Math.max(Math.ceil(elem._renderer.rect.width * scale), 1);\n canvas.height = Math.max(Math.ceil(elem._renderer.rect.height * scale), 1);\n\n var centroid = elem._renderer.rect.centroid;\n var cx = centroid.x;\n var cy = centroid.y;\n\n var a, b, c, d, e, sx, sy;\n var isOffset = fill._renderer && fill._renderer.offset\n && stroke._renderer && stroke._renderer.offset;\n\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n if (!isOffset) {\n ctx.font = [elem._style, elem._weight, elem._size + 'px/' +\n elem._leading + 'px', elem._family].join(' ');\n }\n\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n // Styles\n if (fill) {\n if (_.isString(fill)) {\n ctx.fillStyle = fill;\n } else {\n webgl[fill._renderer.type].render.call(fill, ctx, elem);\n ctx.fillStyle = fill._renderer.effect;\n }\n }\n if (stroke) {\n if (_.isString(stroke)) {\n ctx.strokeStyle = stroke;\n } else {\n webgl[stroke._renderer.type].render.call(stroke, ctx, elem);\n ctx.strokeStyle = stroke._renderer.effect;\n }\n }\n if (linewidth) {\n ctx.lineWidth = linewidth;\n }\n if (_.isNumber(opacity)) {\n ctx.globalAlpha = opacity;\n }\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(dashes);\n }\n\n ctx.save();\n ctx.scale(scale, scale);\n ctx.translate(cx, cy);\n\n if (!webgl.isHidden.test(fill)) {\n\n if (fill._renderer && fill._renderer.offset) {\n\n sx = toFixed(fill._renderer.scale.x);\n sy = toFixed(fill._renderer.scale.y);\n\n ctx.save();\n ctx.translate( - toFixed(fill._renderer.offset.x),\n - toFixed(fill._renderer.offset.y));\n ctx.scale(sx, sy);\n\n a = elem._size / fill._renderer.scale.y;\n b = elem._leading / fill._renderer.scale.y;\n ctx.font = [elem._style, elem._weight, toFixed(a) + 'px/',\n toFixed(b) + 'px', elem._family].join(' ');\n\n c = fill._renderer.offset.x / fill._renderer.scale.x;\n d = fill._renderer.offset.y / fill._renderer.scale.y;\n\n ctx.fillText(elem.value, toFixed(c), toFixed(d));\n ctx.restore();\n\n } else {\n ctx.fillText(elem.value, 0, 0);\n }\n\n }\n\n if (!webgl.isHidden.test(stroke)) {\n\n if (stroke._renderer && stroke._renderer.offset) {\n\n sx = toFixed(stroke._renderer.scale.x);\n sy = toFixed(stroke._renderer.scale.y);\n\n ctx.save();\n ctx.translate(- toFixed(stroke._renderer.offset.x),\n - toFixed(stroke._renderer.offset.y));\n ctx.scale(sx, sy);\n\n a = elem._size / stroke._renderer.scale.y;\n b = elem._leading / stroke._renderer.scale.y;\n ctx.font = [elem._style, elem._weight, toFixed(a) + 'px/',\n toFixed(b) + 'px', elem._family].join(' ');\n\n c = stroke._renderer.offset.x / stroke._renderer.scale.x;\n d = stroke._renderer.offset.y / stroke._renderer.scale.y;\n e = linewidth / stroke._renderer.scale.x;\n\n ctx.lineWidth = toFixed(e);\n ctx.strokeText(elem.value, toFixed(c), toFixed(d));\n ctx.restore();\n\n } else {\n ctx.strokeText(elem.value, 0, 0);\n }\n\n }\n\n ctx.restore();\n\n },\n\n getBoundingClientRect: function(elem, rect) {\n\n var ctx = webgl.ctx;\n\n ctx.font = [elem._style, elem._weight, elem._size + 'px/' +\n elem._leading + 'px', elem._family].join(' ');\n\n ctx.textAlign = 'center';\n ctx.textBaseline = elem._baseline;\n\n // TODO: Estimate this better\n var width = ctx.measureText(elem._value).width;\n var height = Math.max(elem._size || elem._leading);\n\n if (this._linewidth && !webgl.isHidden.test(this._stroke)) {\n // width += this._linewidth; // TODO: Not sure if the `measure` calcs this.\n height += this._linewidth;\n }\n\n var w = width / 2;\n var h = height / 2;\n\n switch (webgl.alignments[elem._alignment] || elem._alignment) {\n\n case webgl.alignments.left:\n rect.left = 0;\n rect.right = width;\n break;\n case webgl.alignments.right:\n rect.left = - width;\n rect.right = 0;\n break;\n default:\n rect.left = - w;\n rect.right = w;\n }\n\n // TODO: Gradients aren't inherited...\n switch (elem._baseline) {\n case 'bottom':\n rect.top = - height;\n rect.bottom = 0;\n break;\n case 'top':\n rect.top = 0;\n rect.bottom = height;\n break;\n default:\n rect.top = - h;\n rect.bottom = h;\n }\n\n rect.width = width;\n rect.height = height;\n\n if (!rect.centroid) {\n rect.centroid = {};\n }\n\n // TODO:\n rect.centroid.x = w;\n rect.centroid.y = h;\n\n },\n\n render: function(gl, program, forcedParent) {\n\n if (!this._visible || !this._opacity) {\n return this;\n }\n\n this._update();\n\n // Calculate what changed\n\n var parent = this.parent;\n var flagParentMatrix = parent._matrix.manual || parent._flagMatrix;\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n var flagTexture = this._flagVertices || this._flagFill\n || (this._fill instanceof Two.LinearGradient && (this._fill._flagSpread || this._fill._flagStops || this._fill._flagEndPoints))\n || (this._fill instanceof Two.RadialGradient && (this._fill._flagSpread || this._fill._flagStops || this._fill._flagRadius || this._fill._flagCenter || this._fill._flagFocal))\n || (this._fill instanceof Two.Texture && (this._fill._flagLoaded && this._fill.loaded || this._fill._flagImage || this._fill._flagVideo || this._fill._flagRepeat || this._fill._flagOffset || this._fill._flagScale))\n || (this._stroke instanceof Two.LinearGradient && (this._stroke._flagSpread || this._stroke._flagStops || this._stroke._flagEndPoints))\n || (this._stroke instanceof Two.RadialGradient && (this._stroke._flagSpread || this._stroke._flagStops || this._stroke._flagRadius || this._stroke._flagCenter || this._stroke._flagFocal))\n || (this._stroke instanceof Two.Texture && (this._stroke._flagLoaded && this._stroke.loaded || this._stroke._flagImage || this._stroke._flagVideo || this._stroke._flagRepeat || this._stroke._flagOffset || this._fill._flagScale))\n || this._flagStroke || this._flagLinewidth || this._flagOpacity\n || parent._flagOpacity || this._flagVisible || this._flagScale\n || this._flagValue || this._flagFamily || this._flagSize\n || this._flagLeading || this._flagAlignment || this._flagBaseline\n || this._flagStyle || this._flagWeight || this._flagDecoration\n || (this.dashes && this.dashes.length > 0)\n || !this._renderer.texture;\n\n if (flagParentMatrix || flagMatrix) {\n\n if (!this._renderer.matrix) {\n this._renderer.matrix = new Two.Array(9);\n }\n\n // Reduce amount of object / array creation / deletion\n\n this._matrix.toArray(true, transformation);\n\n multiplyMatrix(transformation, parent._renderer.matrix, this._renderer.matrix);\n this._renderer.scale = this._scale * parent._renderer.scale;\n\n }\n\n if (flagTexture) {\n\n if (!this._renderer.rect) {\n this._renderer.rect = {};\n }\n\n if (!this._renderer.triangles) {\n this._renderer.triangles = new Two.Array(12);\n }\n\n this._renderer.opacity = this._opacity * parent._renderer.opacity;\n\n webgl.text.getBoundingClientRect(this, this._renderer.rect);\n webgl.getTriangles(this._renderer.rect, this._renderer.triangles);\n\n webgl.updateBuffer.call(webgl, gl, this, program);\n webgl.updateTexture.call(webgl, gl, this);\n\n } else {\n\n // We still need to update child Two elements on the fill and\n // stroke properties.\n if (!_.isString(this._fill)) {\n this._fill._update();\n }\n if (!_.isString(this._stroke)) {\n this._stroke._update();\n }\n\n }\n\n // if (this._mask) {\n // webgl[this._mask._renderer.type].render.call(mask, gl, program, this);\n // }\n\n if (this._clip && !forcedParent) {\n return;\n }\n\n // Draw Texture\n\n gl.bindBuffer(gl.ARRAY_BUFFER, this._renderer.textureCoordsBuffer);\n\n gl.vertexAttribPointer(program.textureCoords, 2, gl.FLOAT, false, 0, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, this._renderer.texture);\n\n\n // Draw Rect\n\n gl.uniformMatrix3fv(program.matrix, false, this._renderer.matrix);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, this._renderer.buffer);\n\n gl.vertexAttribPointer(program.position, 2, gl.FLOAT, false, 0, 0);\n\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n return this.flagReset();\n\n }\n\n },\n\n 'linear-gradient': {\n\n render: function(ctx, elem) {\n\n if (!ctx.canvas.getContext('2d')) {\n return;\n }\n\n this._update();\n\n if (!this._renderer.effect || this._flagEndPoints || this._flagStops) {\n\n this._renderer.effect = ctx.createLinearGradient(\n this.left._x, this.left._y,\n this.right._x, this.right._y\n );\n\n for (var i = 0; i < this.stops.length; i++) {\n var stop = this.stops[i];\n this._renderer.effect.addColorStop(stop._offset, stop._color);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'radial-gradient': {\n\n render: function(ctx, elem) {\n\n if (!ctx.canvas.getContext('2d')) {\n return;\n }\n\n this._update();\n\n if (!this._renderer.effect || this._flagCenter || this._flagFocal\n || this._flagRadius || this._flagStops) {\n\n this._renderer.effect = ctx.createRadialGradient(\n this.center._x, this.center._y, 0,\n this.focal._x, this.focal._y, this._radius\n );\n\n for (var i = 0; i < this.stops.length; i++) {\n var stop = this.stops[i];\n this._renderer.effect.addColorStop(stop._offset, stop._color);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n texture: {\n\n render: function(ctx, elem) {\n\n if (!ctx.canvas.getContext('2d')) {\n return;\n }\n\n this._update();\n\n var image = this.image;\n var repeat;\n\n if (((this._flagLoaded || this._flagImage || this._flagVideo || this._flagRepeat) && this.loaded)) {\n this._renderer.effect = ctx.createPattern(image, this._repeat);\n } else if (!this._renderer.effect) {\n return this.flagReset();\n }\n\n if (this._flagOffset || this._flagLoaded || this._flagScale) {\n\n if (!(this._renderer.offset instanceof Two.Vector)) {\n this._renderer.offset = new Two.Vector();\n }\n\n this._renderer.offset.x = - this._offset.x;\n this._renderer.offset.y = - this._offset.y;\n\n if (image) {\n\n this._renderer.offset.x += image.width / 2;\n this._renderer.offset.y += image.height / 2;\n\n if (this._scale instanceof Two.Vector) {\n this._renderer.offset.x *= this._scale.x;\n this._renderer.offset.y *= this._scale.y;\n } else {\n this._renderer.offset.x *= this._scale;\n this._renderer.offset.y *= this._scale;\n }\n }\n\n }\n\n if (this._flagScale || this._flagLoaded) {\n\n if (!(this._renderer.scale instanceof Two.Vector)) {\n this._renderer.scale = new Two.Vector();\n }\n\n if (this._scale instanceof Two.Vector) {\n this._renderer.scale.copy(this._scale);\n } else {\n this._renderer.scale.set(this._scale, this._scale);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n getTriangles: function(rect, triangles) {\n\n var top = rect.top,\n left = rect.left,\n right = rect.right,\n bottom = rect.bottom;\n\n // First Triangle\n\n triangles[0] = left;\n triangles[1] = top;\n\n triangles[2] = right;\n triangles[3] = top;\n\n triangles[4] = left;\n triangles[5] = bottom;\n\n // Second Triangle\n\n triangles[6] = left;\n triangles[7] = bottom;\n\n triangles[8] = right;\n triangles[9] = top;\n\n triangles[10] = right;\n triangles[11] = bottom;\n\n },\n\n updateTexture: function(gl, elem) {\n\n this[elem._renderer.type].updateCanvas.call(webgl, elem);\n\n if (elem._renderer.texture) {\n gl.deleteTexture(elem._renderer.texture);\n }\n\n gl.bindBuffer(gl.ARRAY_BUFFER, elem._renderer.textureCoordsBuffer);\n\n // TODO: Is this necessary every time or can we do once?\n // TODO: Create a registry for textures\n elem._renderer.texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, elem._renderer.texture);\n\n // Set the parameters so we can render any size image.\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n // gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n // gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n // gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\n if (this.canvas.width <= 0 || this.canvas.height <= 0) {\n return;\n }\n\n // Upload the image into the texture.\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this.canvas);\n\n },\n\n updateBuffer: function(gl, elem, program) {\n\n if (_.isObject(elem._renderer.buffer)) {\n gl.deleteBuffer(elem._renderer.buffer);\n }\n\n elem._renderer.buffer = gl.createBuffer();\n\n gl.bindBuffer(gl.ARRAY_BUFFER, elem._renderer.buffer);\n gl.enableVertexAttribArray(program.position);\n\n gl.bufferData(gl.ARRAY_BUFFER, elem._renderer.triangles, gl.STATIC_DRAW);\n\n if (_.isObject(elem._renderer.textureCoordsBuffer)) {\n gl.deleteBuffer(elem._renderer.textureCoordsBuffer);\n }\n\n elem._renderer.textureCoordsBuffer = gl.createBuffer();\n\n gl.bindBuffer(gl.ARRAY_BUFFER, elem._renderer.textureCoordsBuffer);\n gl.enableVertexAttribArray(program.textureCoords);\n\n gl.bufferData(gl.ARRAY_BUFFER, this.uv, gl.STATIC_DRAW);\n\n },\n\n program: {\n\n create: function(gl, shaders) {\n var program, linked, error;\n program = gl.createProgram();\n _.each(shaders, function(s) {\n gl.attachShader(program, s);\n });\n\n gl.linkProgram(program);\n linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n if (!linked) {\n error = gl.getProgramInfoLog(program);\n gl.deleteProgram(program);\n throw new Two.Utils.Error('unable to link program: ' + error);\n }\n\n return program;\n\n }\n\n },\n\n shaders: {\n\n create: function(gl, source, type) {\n var shader, compiled, error;\n shader = gl.createShader(gl[type]);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n if (!compiled) {\n error = gl.getShaderInfoLog(shader);\n gl.deleteShader(shader);\n throw new Two.Utils.Error('unable to compile shader ' + shader + ': ' + error);\n }\n\n return shader;\n\n },\n\n types: {\n vertex: 'VERTEX_SHADER',\n fragment: 'FRAGMENT_SHADER'\n },\n\n vertex: [\n 'attribute vec2 a_position;',\n 'attribute vec2 a_textureCoords;',\n '',\n 'uniform mat3 u_matrix;',\n 'uniform vec2 u_resolution;',\n '',\n 'varying vec2 v_textureCoords;',\n '',\n '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;',\n '',\n ' gl_Position = vec4(clipspace * vec2(1.0, -1.0), 0.0, 1.0);',\n ' v_textureCoords = a_textureCoords;',\n '}'\n ].join('\\n'),\n\n fragment: [\n 'precision mediump float;',\n '',\n 'uniform sampler2D u_image;',\n 'varying vec2 v_textureCoords;',\n '',\n 'void main() {',\n ' gl_FragColor = texture2D(u_image, v_textureCoords);',\n '}'\n ].join('\\n')\n\n },\n\n TextureRegistry: new Two.Registry()\n\n };\n\n webgl.ctx = webgl.canvas.getContext('2d');\n\n var Renderer = Two[Two.Types.webgl] = function(options) {\n\n var params, gl, vs, fs;\n this.domElement = options.domElement || document.createElement('canvas');\n\n // Everything drawn on the canvas needs to come from the stage.\n this.scene = new Two.Group();\n this.scene.parent = this;\n\n this._renderer = {\n matrix: new Two.Array(identity),\n scale: 1,\n opacity: 1\n };\n this._flagMatrix = true;\n\n // http://games.greggman.com/game/webgl-and-alpha/\n // http://www.khronos.org/registry/webgl/specs/latest/#5.2\n params = _.defaults(options || {}, {\n antialias: false,\n alpha: true,\n premultipliedAlpha: true,\n stencil: true,\n preserveDrawingBuffer: true,\n overdraw: false\n });\n\n this.overdraw = params.overdraw;\n\n gl = this.ctx = this.domElement.getContext('webgl', params) ||\n this.domElement.getContext('experimental-webgl', params);\n\n if (!this.ctx) {\n throw new Two.Utils.Error(\n 'unable to create a webgl context. Try using another renderer.');\n }\n\n // Compile Base Shaders to draw in pixel space.\n vs = webgl.shaders.create(\n gl, webgl.shaders.vertex, webgl.shaders.types.vertex);\n fs = webgl.shaders.create(\n gl, webgl.shaders.fragment, webgl.shaders.types.fragment);\n\n this.program = webgl.program.create(gl, [vs, fs]);\n gl.useProgram(this.program);\n\n // Create and bind the drawing buffer\n\n // look up where the vertex data needs to go.\n this.program.position = gl.getAttribLocation(this.program, 'a_position');\n this.program.matrix = gl.getUniformLocation(this.program, 'u_matrix');\n this.program.textureCoords = gl.getAttribLocation(this.program, 'a_textureCoords');\n\n // Copied from Three.js WebGLRenderer\n gl.disable(gl.DEPTH_TEST);\n\n // Setup some initial statements of the gl context\n gl.enable(gl.BLEND);\n\n // https://code.google.com/p/chromium/issues/detail?id=316393\n // gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, gl.TRUE);\n\n gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_ADD);\n gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA,\n gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\n };\n\n _.extend(Renderer, {\n\n Utils: webgl\n\n });\n\n _.extend(Renderer.prototype, Two.Utils.Events, {\n\n constructor: Renderer,\n\n setSize: function(width, height, ratio) {\n\n this.width = width;\n this.height = height;\n\n this.ratio = _.isUndefined(ratio) ? getRatio(this.ctx) : ratio;\n\n this.domElement.width = width * this.ratio;\n this.domElement.height = height * this.ratio;\n\n _.extend(this.domElement.style, {\n width: width + 'px',\n height: height + 'px'\n });\n\n width *= this.ratio;\n height *= this.ratio;\n\n // Set for this.stage parent scaling to account for HDPI\n this._renderer.matrix[0] = this._renderer.matrix[4] = this._renderer.scale = this.ratio;\n\n this._flagMatrix = true;\n\n this.ctx.viewport(0, 0, width, height);\n\n var resolutionLocation = this.ctx.getUniformLocation(\n this.program, 'u_resolution');\n this.ctx.uniform2f(resolutionLocation, width, height);\n\n return this.trigger(Two.Events.resize, width, height, ratio);\n\n },\n\n render: function() {\n\n var gl = this.ctx;\n\n if (!this.overdraw) {\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n }\n\n webgl.group.render.call(this.scene, gl, this.program);\n this._flagMatrix = false;\n\n return this;\n\n }\n\n });\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n /**\n * @name Two.Shape\n * @class\n * @extends Two.Utils.Events\n * @description The foundational transformation object for the Two.js scenegraph.\n */\n var Shape = Two.Shape = function() {\n\n /**\n * @name Two.Shape#_renderer\n * @property {Object}\n * @private\n * @description A private object to store relevant renderer specific variables.\n * @nota-bene With the {@link Two.SvgRenderer} you can access the underlying SVG element created via `shape._renderer.elem`.\n */\n this._renderer = {};\n this._renderer.flagMatrix = _.bind(Shape.FlagMatrix, this);\n this.isShape = true;\n\n /**\n * @name Two.Shape#id\n * @property {String} - Session specific unique identifier.\n * @nota-bene In the {@link Two.SvgRenderer} change this to change the underlying SVG element's id too.\n */\n this.id = Two.Identifier + Two.uniqueId();\n\n /**\n * @name Two.Shape#classList\n * @property {Array}\n * @description A list of class strings stored if imported / interpreted from an SVG element.\n */\n this.classList = [];\n\n /**\n * @name Two.Shape#_matrix\n * @property\n * @description The transformation matrix of the shape.\n * @nota-bene {@link Two.Shape#translation}, {@link Two.Shape#rotation}, and {@link Two.Shape#scale} apply their values to the matrix when changed. The matrix is what is sent to the renderer to be drawn.\n */\n this._matrix = new Two.Matrix();\n\n /**\n * @name Two.Shape#translation\n * @property {Two.Vector} - The x and y value for where the shape is placed relative to its parent.\n */\n this.translation = new Two.Vector();\n\n /**\n * @name Two.Shape#rotation\n * @property {Radians} - The value in radians for how much the shape is rotated relative to its parent.\n */\n this.rotation = 0;\n\n /**\n * @name Two.Shape#scale\n * @property {Number} - The value for how much the shape is scaled relative to its parent.\n * @nota-bene This value can be replaced with a {@link Two.Vector} to do non-uniform scaling. e.g: `shape.scale = new Two.Vector(2, 1);`\n */\n this.scale = 1;\n\n };\n\n _.extend(Shape, {\n\n /**\n * @name Two.Shape.FlagMatrix\n * @function\n * @description Utility function used in conjunction with event handlers to update the flagMatrix of a shape.\n */\n FlagMatrix: function() {\n this._flagMatrix = true;\n },\n\n /**\n * @name Two.Shape.MakeObservable\n * @function\n * @param {Object} object - The object to make observable.\n * @description Convenience function to apply observable qualities of a `Two.Shape` to any object. Handy if you'd like to extend the `Two.Shape` class on a custom class.\n */\n MakeObservable: function(object) {\n\n Object.defineProperty(object, 'translation', {\n enumerable: true,\n get: function() {\n return this._translation;\n },\n set: function(v) {\n if (this._translation) {\n this._translation.unbind(Two.Events.change, this._renderer.flagMatrix);\n }\n this._translation = v;\n this._translation.bind(Two.Events.change, this._renderer.flagMatrix);\n Shape.FlagMatrix.call(this);\n }\n });\n\n Object.defineProperty(object, 'rotation', {\n enumerable: true,\n get: function() {\n return this._rotation;\n },\n set: function(v) {\n this._rotation = v;\n this._flagMatrix = true;\n }\n });\n\n Object.defineProperty(object, 'scale', {\n enumerable: true,\n get: function() {\n return this._scale;\n },\n set: function(v) {\n\n if (this._scale instanceof Two.Vector) {\n this._scale.unbind(Two.Events.change, this._renderer.flagMatrix);\n }\n\n this._scale = v;\n\n if (this._scale instanceof Two.Vector) {\n this._scale.bind(Two.Events.change, this._renderer.flagMatrix);\n }\n\n this._flagMatrix = true;\n this._flagScale = true;\n\n }\n });\n\n }\n\n });\n\n _.extend(Shape.prototype, Two.Utils.Events, {\n\n // Flags\n\n /**\n * @name Two.Shape#_flagMatrix\n * @private\n * @property {Boolean} - Determines whether the matrix needs updating.\n */\n _flagMatrix: true,\n\n /**\n * @name Two.Shape#_flagScale\n * @private\n * @property {Boolean} - Determines whether the scale needs updating.\n */\n _flagScale: false,\n\n // _flagMask: false,\n // _flagClip: false,\n\n // Underlying Properties\n\n /**\n * @name Two.Shape#_translation\n * @private\n * @property {Two.Vector} - The translation values as a {@link Two.Vector}.\n */\n _translation: null,\n\n /**\n * @name Two.Shape#_rotation\n * @private\n * @property {Radians} - The rotation value in radians.\n */\n _rotation: 0,\n\n /**\n * @name Two.Shape#_translation\n * @private\n * @property {Two.Vector} - The translation values as a {@link Two.Vector}.\n */\n _scale: 1,\n\n // _mask: null,\n // _clip: false,\n\n constructor: Shape,\n\n /**\n * @name Two.Shape#addTo\n * @function\n * @param {Two.Group} group - The parent the shape adds itself to.\n * @description Convenience method to add itself to the scenegraph.\n */\n addTo: function(group) {\n group.add(this);\n return this;\n },\n\n /**\n * @name Two.Shape#clone\n * @function\n * @param {Two.Group} [parent] - Optional argument to automatically add the shape to a scenegraph.\n * @returns {Two.Shape}\n * @description Create a new `Two.Shape` with the same values as the current shape.\n */\n clone: function(parent) {\n\n var clone = new Shape();\n\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone._update();\n\n },\n\n /**\n * @name Two.Shape#_update\n * @function\n * @private\n * @param {Boolean} [bubbles=false] - Force the parent to `_update` as well.\n * @description This is called before rendering happens by the renderer. This applies all changes necessary so that rendering is up-to-date but not updated more than it needs to be.\n * @nota-bene Try not to call this method more than once a frame.\n */\n _update: function(bubbles) {\n\n if (!this._matrix.manual && this._flagMatrix) {\n\n this._matrix\n .identity()\n .translate(this.translation.x, this.translation.y);\n\n if (this._scale instanceof Two.Vector) {\n this._matrix.scale(this._scale.x, this._scale.y);\n } else {\n this._matrix.scale(this._scale);\n }\n\n this._matrix.rotate(this.rotation);\n\n }\n\n if (bubbles) {\n if (this.parent && this.parent._update) {\n this.parent._update();\n }\n }\n\n return this;\n\n },\n\n /**\n * @name Two.Shape#flagReset\n * @function\n * @private\n * @description Called internally to reset all flags. Ensures that only properties that change are updated before being sent to the renderer.\n */\n flagReset: function() {\n\n this._flagMatrix = this._flagScale = false;\n\n return this;\n\n }\n\n });\n\n Shape.MakeObservable(Shape.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Constants\n\n var min = Math.min, max = Math.max, round = Math.round,\n ceil = Math.ceil, floor = Math.floor,\n getComputedMatrix = Two.Utils.getComputedMatrix;\n\n var commands = {};\n var _ = Two.Utils;\n\n _.each(Two.Commands, function(v, k) {\n commands[k] = new RegExp(v);\n });\n\n /**\n * @name Two.Path\n * @class\n * @extends Two.Shape\n * @param {Two#Anchor[]} [vertices] - A list of Two.Anchors that represent the order and coordinates to construct the rendered shape.\n * @param {Boolean} [closed=false] - Describes whether the shape is closed or open.\n * @param {Boolean} [curved=false] - Describes whether the shape automatically calculates bezier handles for each vertex.\n * @param {Boolean} [manual=false] - Describes whether the developer controls how vertices are plotted or if Two.js automatically plots coordinates based on closed and curved booleans.\n * @description This is the primary primitive class for creating all drawable shapes in Two.js. Unless specified methods return their instance of `Two.Path` for the purpose of chaining.\n */\n var Path = Two.Path = function(vertices, closed, curved, manual) {\n\n Two.Shape.call(this);\n\n this._renderer.type = 'path';\n this._renderer.flagVertices = _.bind(Path.FlagVertices, this);\n this._renderer.bindVertices = _.bind(Path.BindVertices, this);\n this._renderer.unbindVertices = _.bind(Path.UnbindVertices, this);\n\n this._renderer.flagFill = _.bind(Path.FlagFill, this);\n this._renderer.flagStroke = _.bind(Path.FlagStroke, this);\n this._renderer.vertices = [];\n this._renderer.collection = [];\n\n /**\n * @name Two.Path#closed\n * @property {Boolean} - Determines whether a final line is drawn between the final point in the `vertices` array and the first point.\n */\n this._closed = !!closed;\n\n /**\n * @name Two.Path#curved\n * @property {Boolean} - When the path is `automatic = true` this boolean determines whether the lines between the points are curved or not.\n */\n this._curved = !!curved;\n\n /**\n * @name Two.Path#beginning\n * @property {Number} - Number between zero and one to state the beginning of where the path is rendered.\n * @description `Two.Path.beginning` is a percentage value that represents at what percentage into the path should the renderer start drawing.\n * @nota-bene This is great for animating in and out stroked paths in conjunction with {@link Two.Path#ending}.\n */\n this.beginning = 0;\n\n /**\n * @name Two.Path#ending\n * @property {Number} - Number between zero and one to state the ending of where the path is rendered.\n * @description `Two.Path.ending` is a percentage value that represents at what percentage into the path should the renderer start drawing.\n * @nota-bene This is great for animating in and out stroked paths in conjunction with {@link Two.Path#beginning}.\n */\n this.ending = 1;\n\n // Style properties\n\n /**\n * @name Two.Path#fill\n * @property {(CssColor|Two.Gradient|Two.Texture)} - The value of what the path should be filled in with.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/color_value} for more information on CSS Colors.\n */\n this.fill = '#fff';\n\n /**\n * @name Two.Path#stroke\n * @property {(CssColor|Two.Gradient|Two.Texture)} - The value of what the path should be outlined in with.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/color_value} for more information on CSS Colors.\n */\n this.stroke = '#000';\n\n /**\n * @name Two.Path#linewidth\n * @property {Number} - The thickness in pixels of the stroke.\n */\n this.linewidth = 1.0;\n\n /**\n * @name Two.Path#opacity\n * @property {Number} - The opaqueness of the path.\n * @nota-bene Can be used in conjunction with CSS Colors that have an alpha value.\n */\n this.opacity = 1.0;\n\n /**\n * @name Two.Path#className\n * @property {String} - A class name to be searched by in {@link Two.Group}s.\n */\n this.className = '';\n\n /**\n * @name Two.Path#visible\n * @property {Boolean} - Display the path or not.\n * @nota-bene For {@link Two.CanvasRenderer} and {@link Two.WebGLRenderer} when set to false all updating is disabled improving performance dramatically with many objects in the scene.\n */\n this.visible = true;\n\n /**\n * @name Two.Path#cap\n * @property {String}\n * @see {@link https://www.w3.org/TR/SVG11/painting.html#StrokeLinecapProperty}\n */\n this.cap = 'butt'; // Default of Adobe Illustrator\n\n /**\n * @name Two.Path#join\n * @property {String}\n * @see {@link https://www.w3.org/TR/SVG11/painting.html#StrokeLinejoinProperty}\n */\n this.join = 'miter'; // Default of Adobe Illustrator\n\n /**\n * @name Two.Path#miter\n * @property {String}\n * @see {@link https://www.w3.org/TR/SVG11/painting.html#StrokeMiterlimitProperty}\n */\n this.miter = 4; // Default of Adobe Illustrator\n\n /**\n * @name Two.Path#vertices\n * @property {Two.Anchor[]} - An ordered list of anchor points for rendering the path.\n * @description An of `Two.Anchor` objects that consist of what form the path takes.\n * @nota-bene The array when manipulating is actually a {@link Two.Utils.Collection}.\n */\n this.vertices = vertices;\n\n /**\n * @name Two.Path#automatic\n * @property {Boolean} - Determines whether or not Two.js should calculate curves, lines, and commands automatically for you or to let the developer manipulate them for themselves.\n */\n this.automatic = !manual;\n\n /**\n * @name Two.Path#dashes\n * @property {String} - List of dash and gap values.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray} for more information on the SVG stroke-dasharray attribute.\n */\n this.dashes = [];\n\n };\n\n _.extend(Path, {\n\n /**\n * @name Two.Path.Properties\n * @property {String[]} - A list of properties that are on every {@link Two.Path}.\n */\n Properties: [\n 'fill',\n 'stroke',\n 'linewidth',\n 'opacity',\n 'className',\n 'visible',\n 'cap',\n 'join',\n 'miter',\n\n 'closed',\n 'curved',\n 'automatic',\n 'beginning',\n 'ending'\n ],\n\n Utils: {\n getCurveLength: getCurveLength\n },\n\n /**\n * @name Two.Path.FlagVertices\n * @function\n * @description Cached method to let renderers know vertices have been updated on a {@link Two.Path}.\n */\n FlagVertices: function() {\n this._flagVertices = true;\n this._flagLength = true;\n if (this.parent) {\n this.parent._flagLength = true;\n }\n },\n\n /**\n * @name Two.Path.BindVertices\n * @function\n * @description Cached method to let {@link Two.Path} know vertices have been added to the instance.\n */\n BindVertices: function(items) {\n\n // This function is called a lot\n // when importing a large SVG\n var i = items.length;\n while (i--) {\n items[i].bind(Two.Events.change, this._renderer.flagVertices);\n }\n\n this._renderer.flagVertices();\n\n },\n\n /**\n * @name Two.Path.BindVertices\n * @function\n * @description Cached method to let {@link Two.Path} know vertices have been removed from the instance.\n */\n UnbindVertices: function(items) {\n\n var i = items.length;\n while (i--) {\n items[i].unbind(Two.Events.change, this._renderer.flagVertices);\n }\n\n this._renderer.flagVertices();\n\n },\n\n /**\n * @name Two.Path.FlagFill\n * @function\n * @description Cached method to let {@link Two.Path} know the fill has changed.\n */\n FlagFill: function() {\n this._flagFill = true;\n },\n\n /**\n * @name Two.Path.FlagFill\n * @function\n * @description Cached method to let {@link Two.Path} know the stroke has changed.\n */\n FlagStroke: function() {\n this._flagStroke = true;\n },\n\n /**\n * @name Two.Path.MakeObservable\n * @function\n * @param {Object} object - The object to make observable.\n * @description Convenience function to apply observable qualities of a `Two.Path` to any object. Handy if you'd like to extend the `Two.Path` class on a custom class.\n */\n MakeObservable: function(object) {\n\n Two.Shape.MakeObservable(object);\n\n // Only the 7 defined properties are flagged like this. The subsequent\n // properties behave differently and need to be hand written.\n _.each(Path.Properties.slice(2, 9), Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'fill', {\n enumerable: true,\n get: function() {\n return this._fill;\n },\n set: function(f) {\n\n if (this._fill instanceof Two.Gradient\n || this._fill instanceof Two.LinearGradient\n || this._fill instanceof Two.RadialGradient\n || this._fill instanceof Two.Texture) {\n this._fill.unbind(Two.Events.change, this._renderer.flagFill);\n }\n\n this._fill = f;\n this._flagFill = true;\n\n if (this._fill instanceof Two.Gradient\n || this._fill instanceof Two.LinearGradient\n || this._fill instanceof Two.RadialGradient\n || this._fill instanceof Two.Texture) {\n this._fill.bind(Two.Events.change, this._renderer.flagFill);\n }\n\n }\n });\n\n Object.defineProperty(object, 'stroke', {\n enumerable: true,\n get: function() {\n return this._stroke;\n },\n set: function(f) {\n\n if (this._stroke instanceof Two.Gradient\n || this._stroke instanceof Two.LinearGradient\n || this._stroke instanceof Two.RadialGradient\n || this._stroke instanceof Two.Texture) {\n this._stroke.unbind(Two.Events.change, this._renderer.flagStroke);\n }\n\n this._stroke = f;\n this._flagStroke = true;\n\n if (this._stroke instanceof Two.Gradient\n || this._stroke instanceof Two.LinearGradient\n || this._stroke instanceof Two.RadialGradient\n || this._stroke instanceof Two.Texture) {\n this._stroke.bind(Two.Events.change, this._renderer.flagStroke);\n }\n\n }\n });\n\n /**\n * @name Two.Path#length\n * @property {Number} - The sum of distances between all {@link Two.Path#vertices}.\n */\n Object.defineProperty(object, 'length', {\n get: function() {\n if (this._flagLength) {\n this._updateLength();\n }\n return this._length;\n }\n });\n\n Object.defineProperty(object, 'closed', {\n enumerable: true,\n get: function() {\n return this._closed;\n },\n set: function(v) {\n this._closed = !!v;\n this._flagVertices = true;\n }\n });\n\n Object.defineProperty(object, 'curved', {\n enumerable: true,\n get: function() {\n return this._curved;\n },\n set: function(v) {\n this._curved = !!v;\n this._flagVertices = true;\n }\n });\n\n Object.defineProperty(object, 'automatic', {\n enumerable: true,\n get: function() {\n return this._automatic;\n },\n set: function(v) {\n if (v === this._automatic) {\n return;\n }\n this._automatic = !!v;\n var method = this._automatic ? 'ignore' : 'listen';\n _.each(this.vertices, function(v) {\n v[method]();\n });\n }\n });\n\n Object.defineProperty(object, 'beginning', {\n enumerable: true,\n get: function() {\n return this._beginning;\n },\n set: function(v) {\n this._beginning = v;\n this._flagVertices = true;\n }\n });\n\n Object.defineProperty(object, 'ending', {\n enumerable: true,\n get: function() {\n return this._ending;\n },\n set: function(v) {\n this._ending = v;\n this._flagVertices = true;\n }\n });\n\n Object.defineProperty(object, 'vertices', {\n\n enumerable: true,\n\n get: function() {\n return this._collection;\n },\n\n set: function(vertices) {\n\n var updateVertices = this._renderer.flagVertices;\n var bindVertices = this._renderer.bindVertices;\n var unbindVertices = this._renderer.unbindVertices;\n\n // Remove previous listeners\n if (this._collection) {\n this._collection\n .unbind(Two.Events.insert, bindVertices)\n .unbind(Two.Events.remove, unbindVertices);\n }\n\n // Create new Collection with copy of vertices\n if (vertices instanceof Two.Utils.Collection) {\n this._collection = vertices;\n } else {\n this._collection = new Two.Utils.Collection(vertices || []);\n }\n\n\n // Listen for Collection changes and bind / unbind\n this._collection\n .bind(Two.Events.insert, bindVertices)\n .bind(Two.Events.remove, unbindVertices);\n\n // Bind Initial Vertices\n bindVertices(this._collection);\n\n }\n\n });\n\n /**\n * @name Two.Path#clip\n * @property {Two.Shape} - Object to define clipping area.\n * @nota-bene This property is currently not working becuase of SVG spec issues found here {@link https://code.google.com/p/chromium/issues/detail?id=370951}.\n */\n Object.defineProperty(object, 'clip', {\n enumerable: true,\n get: function() {\n return this._clip;\n },\n set: function(v) {\n this._clip = v;\n this._flagClip = true;\n }\n });\n\n }\n\n });\n\n _.extend(Path.prototype, Two.Shape.prototype, {\n\n // Flags\n // http://en.wikipedia.org/wiki/Flag\n\n /**\n * @name Two.Path#_flagVertices\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#vertices} need updating.\n */\n _flagVertices: true,\n\n /**\n * @name Two.Path#_flagLength\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#length} needs updating.\n */\n _flagLength: true,\n\n /**\n * @name Two.Path#_flagFill\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#fill} needs updating.\n */\n _flagFill: true,\n\n /**\n * @name Two.Path#_flagStroke\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#stroke} needs updating.\n */\n _flagStroke: true,\n\n /**\n * @name Two.Path#_flagLinewidth\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#linewidth} needs updating.\n */\n _flagLinewidth: true,\n\n /**\n * @name Two.Path#_flagOpacity\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#opacity} needs updating.\n */\n _flagOpacity: true,\n\n /**\n * @name Two.Path#_flagVisible\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#visible} needs updating.\n */\n _flagVisible: true,\n\n /**\n * @name Two.Path#_flagClassName\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#className} needs updating.\n */\n _flagClassName: true,\n\n /**\n * @name Two.Path#_flagCap\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#cap} needs updating.\n */\n _flagCap: true,\n\n /**\n * @name Two.Path#_flagJoin\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#join} needs updating.\n */\n _flagJoin: true,\n\n /**\n * @name Two.Path#_flagMiter\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#miter} needs updating.\n */\n _flagMiter: true,\n\n /**\n * @name Two.Path#_flagClip\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#clip} needs updating.\n */\n _flagClip: false,\n\n // Underlying Properties\n\n /**\n * @name Two.Path#_length\n * @private\n * @see {@link Two.Path#length}\n */\n _length: 0,\n\n /**\n * @name Two.Path#_fill\n * @private\n * @see {@link Two.Path#fill}\n */\n _fill: '#fff',\n\n /**\n * @name Two.Path#_stroke\n * @private\n * @see {@link Two.Path#stroke}\n */\n _stroke: '#000',\n\n /**\n * @name Two.Path#_linewidth\n * @private\n * @see {@link Two.Path#linewidth}\n */\n _linewidth: 1.0,\n\n /**\n * @name Two.Path#_opacity\n * @private\n * @see {@link Two.Path#opacity}\n */\n _opacity: 1.0,\n\n /**\n * @name Two.Path#_className\n * @private\n * @see {@link Two.Path#className}\n */\n _className: '',\n\n /**\n * @name Two.Path#_visible\n * @private\n * @see {@link Two.Path#visible}\n */\n _visible: true,\n\n /**\n * @name Two.Path#_cap\n * @private\n * @see {@link Two.Path#cap}\n */\n _cap: 'round',\n\n /**\n * @name Two.Path#_join\n * @private\n * @see {@link Two.Path#join}\n */\n _join: 'round',\n\n /**\n * @name Two.Path#_miter\n * @private\n * @see {@link Two.Path#miter}\n */\n _miter: 4,\n\n /**\n * @name Two.Path#_closed\n * @private\n * @see {@link Two.Path#closed}\n */\n _closed: true,\n\n /**\n * @name Two.Path#_curved\n * @private\n * @see {@link Two.Path#curved}\n */\n _curved: false,\n\n /**\n * @name Two.Path#_automatic\n * @private\n * @see {@link Two.Path#automatic}\n */\n _automatic: true,\n\n /**\n * @name Two.Path#_beginning\n * @private\n * @see {@link Two.Path#beginning}\n */\n _beginning: 0,\n\n /**\n * @name Two.Path#_ending\n * @private\n * @see {@link Two.Path#ending}\n */\n _ending: 1.0,\n\n /**\n * @name Two.Path#_clip\n * @private\n * @see {@link Two.Path#clip}\n */\n _clip: false,\n\n constructor: Path,\n\n /**\n * @name Two.Path#clone\n * @function\n * @param {Two.Group} parent - The parent group or scene to add the clone to.\n * @returns {Two.Path}\n * @description Create a new instance of {@link Two.Path} with the same properties of the current path.\n */\n clone: function(parent) {\n\n var clone = new Path();\n\n clone.vertices = this.vertices;\n\n for (var i = 0; i < Path.Properties.length; i++) {\n var k = Path.Properties[i];\n clone[k] = this[k];\n }\n\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone._update();\n\n },\n\n /**\n * @name Two.Path#toObject\n * @function\n * @returns {Object}\n * @description Return a JSON compatible plain object that represents the path.\n */\n toObject: function() {\n\n var result = {\n vertices: _.map(this.vertices, function(v) {\n return v.toObject();\n })\n };\n\n _.each(Two.Shape.Properties, function(k) {\n result[k] = this[k];\n }, this);\n\n result.translation = this.translation.toObject();\n result.rotation = this.rotation;\n result.scale = this.scale instanceof Two.Vector ? this.scale.toObject() : this.scale;\n\n return result;\n\n },\n\n /**\n * @name Two.Path#noFill\n * @function\n * @description Short hand method to set fill to `transparent`.\n */\n noFill: function() {\n this.fill = 'transparent';\n return this;\n },\n\n /**\n * @name Two.Path#noStroke\n * @function\n * @description Short hand method to set stroke to `transparent`.\n */\n noStroke: function() {\n this.stroke = 'transparent';\n return this;\n },\n\n /**\n * @name Two.Path#corner\n * @function\n * @description Orient the vertices of the shape to the upper left-hand corner of the path.\n */\n corner: function() {\n\n var rect = this.getBoundingClientRect(true);\n\n rect.centroid = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n };\n\n _.each(this.vertices, function(v) {\n v.addSelf(rect.centroid);\n });\n\n return this;\n\n },\n\n /**\n * @name Two.Path#center\n * @function\n * @description Orient the vertices of the shape to the center of the path.\n */\n center: function() {\n\n var rect = this.getBoundingClientRect(true);\n\n rect.centroid = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n };\n\n _.each(this.vertices, function(v) {\n v.subSelf(rect.centroid);\n });\n\n // this.translation.addSelf(rect.centroid);\n\n return this;\n\n },\n\n /**\n * @name Two.Path#remove\n * @function\n * @description Remove self from the scene / parent.\n */\n remove: function() {\n\n if (!this.parent) {\n return this;\n }\n\n this.parent.remove(this);\n\n return this;\n\n },\n\n /**\n * @name Two.Path#getBoundingClientRect\n * @function\n * @param {Boolean} [shallow=false] - Describes whether to calculate off local matrix or world matrix.\n * @returns {Object} - Returns object with top, left, right, bottom, width, height attributes.\n * @description Return an object with top, left, right, bottom, width, and height parameters of the path.\n */\n getBoundingClientRect: function(shallow) {\n var matrix, border, l, x, y, i, v0, c0, c1, v1;\n\n var left = Infinity, right = -Infinity,\n top = Infinity, bottom = -Infinity;\n\n // TODO: Update this to not __always__ update. Just when it needs to.\n this._update(true);\n\n matrix = !!shallow ? this._matrix : getComputedMatrix(this);\n\n border = this.linewidth / 2;\n l = this._renderer.vertices.length;\n\n if (l <= 0) {\n v = matrix.multiply(0, 0, 1);\n return {\n top: v.y,\n left: v.x,\n right: v.x,\n bottom: v.y,\n width: 0,\n height: 0\n };\n }\n\n for (i = 1; i < l; i++) {\n\n v1 = this._renderer.vertices[i];\n v0 = this._renderer.vertices[i - 1];\n\n if (v0.controls && v1.controls) {\n\n if (v0.relative) {\n c0 = matrix.multiply(\n v0.controls.right.x + v0.x, v0.controls.right.y + v0.y, 1);\n } else {\n c0 = matrix.multiply(\n v0.controls.right.x, v0.controls.right.y, 1);\n }\n v0 = matrix.multiply(v0.x, v0.y, 1);\n\n if (v1.relative) {\n c1 = matrix.multiply(\n v1.controls.left.x + v1.x, v1.controls.left.y + v1.y, 1);\n } else {\n c1 = matrix.multiply(\n v1.controls.left.x, v1.controls.left.y, 1);\n }\n v1 = matrix.multiply(v1.x, v1.y, 1);\n\n var bb = Two.Utils.getCurveBoundingBox(\n v0.x, v0.y, c0.x, c0.y, c1.x, c1.y, v1.x, v1.y);\n\n top = min(bb.min.y - border, top);\n left = min(bb.min.x - border, left);\n right = max(bb.max.x + border, right);\n bottom = max(bb.max.y + border, bottom);\n\n } else {\n\n if (i <= 1) {\n\n v0 = matrix.multiply(v0.x, v0.y, 1);\n\n top = min(v0.y - border, top);\n left = min(v0.x - border, left);\n right = max(v0.x + border, right);\n bottom = max(v0.y + border, bottom);\n\n }\n\n v1 = matrix.multiply(v1.x, v1.y, 1);\n\n top = min(v1.y - border, top);\n left = min(v1.x - border, left);\n right = max(v1.x + border, right);\n bottom = max(v1.y + border, bottom);\n\n }\n\n }\n\n return {\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n width: right - left,\n height: bottom - top\n };\n\n },\n\n /**\n * @name Two.Path#getPointAt\n * @function\n * @param {Boolean} t - Percentage value describing where on the Two.Path to estimate and assign coordinate values.\n * @param {Two.Vector} [obj=undefined] - Object to apply calculated x, y to. If none available returns new Object.\n * @returns {Object}\n * @description Given a float `t` from 0 to 1, return a point or assign a passed `obj`'s coordinates to that percentage on this Two.Path's curve.\n */\n getPointAt: function(t, obj) {\n\n var ia, ib, result;\n var x, x1, x2, x3, x4, y, y1, y2, y3, y4, left, right;\n var target = this.length * Math.min(Math.max(t, 0), 1);\n var length = this.vertices.length;\n var last = length - 1;\n\n var a = null;\n var b = null;\n\n for (var i = 0, l = this._lengths.length, sum = 0; i < l; i++) {\n\n if (sum + this._lengths[i] >= target) {\n\n if (this._closed) {\n ia = Two.Utils.mod(i, length);\n ib = Two.Utils.mod(i - 1, length);\n if (i === 0) {\n ia = ib;\n ib = i;\n }\n } else {\n ia = i;\n ib = Math.min(Math.max(i - 1, 0), last);\n }\n\n a = this.vertices[ia];\n b = this.vertices[ib];\n target -= sum;\n if (this._lengths[i] !== 0) {\n t = target / this._lengths[i];\n } else {\n t = 0;\n }\n\n break;\n\n }\n\n sum += this._lengths[i];\n\n }\n\n if (_.isNull(a) || _.isNull(b)) {\n return null;\n }\n\n if (!a) {\n return b;\n } else if (!b) {\n return a;\n }\n\n right = b.controls && b.controls.right;\n left = a.controls && a.controls.left;\n\n x1 = b.x;\n y1 = b.y;\n x2 = (right || b).x;\n y2 = (right || b).y;\n x3 = (left || a).x;\n y3 = (left || a).y;\n x4 = a.x;\n y4 = a.y;\n\n if (right && b.relative) {\n x2 += b.x;\n y2 += b.y;\n }\n\n if (left && a.relative) {\n x3 += a.x;\n y3 += a.y;\n }\n\n x = Two.Utils.getComponentOnCubicBezier(t, x1, x2, x3, x4);\n y = Two.Utils.getComponentOnCubicBezier(t, y1, y2, y3, y4);\n\n // Higher order points for control calculation.\n var t1x = Two.Utils.lerp(x1, x2, t);\n var t1y = Two.Utils.lerp(y1, y2, t);\n var t2x = Two.Utils.lerp(x2, x3, t);\n var t2y = Two.Utils.lerp(y2, y3, t);\n var t3x = Two.Utils.lerp(x3, x4, t);\n var t3y = Two.Utils.lerp(y3, y4, t);\n\n // Calculate the returned points control points.\n var brx = Two.Utils.lerp(t1x, t2x, t);\n var bry = Two.Utils.lerp(t1y, t2y, t);\n var alx = Two.Utils.lerp(t2x, t3x, t);\n var aly = Two.Utils.lerp(t2y, t3y, t);\n\n if (_.isObject(obj)) {\n\n obj.x = x;\n obj.y = y;\n\n if (!_.isObject(obj.controls)) {\n Two.Anchor.AppendCurveProperties(obj);\n }\n\n obj.controls.left.x = brx;\n obj.controls.left.y = bry;\n obj.controls.right.x = alx;\n obj.controls.right.y = aly;\n\n if (!_.isBoolean(obj.relative) || obj.relative) {\n obj.controls.left.x -= x;\n obj.controls.left.y -= y;\n obj.controls.right.x -= x;\n obj.controls.right.y -= y;\n }\n\n obj.t = t;\n\n return obj;\n\n }\n\n result = new Two.Anchor(\n x, y, brx - x, bry - y, alx - x, aly - y,\n this._curved ? Two.Commands.curve : Two.Commands.line\n );\n\n result.t = t;\n\n return result;\n\n },\n\n /**\n * @name Two.Path#plot\n * @function\n * @description Based on closed / curved and sorting of vertices plot where all points should be and where the respective handles should be too.\n * @nota-bene While this method is public it is internally called by {@link Two.Path#_update} when `automatic = true`.\n */\n plot: function() {\n\n if (this.curved) {\n Two.Utils.getCurveFromPoints(this._collection, this.closed);\n return this;\n }\n\n for (var i = 0; i < this._collection.length; i++) {\n this._collection[i].command = i === 0 ? Two.Commands.move : Two.Commands.line;\n }\n\n return this;\n\n },\n\n /**\n * @name Two.Path#subdivide\n * @function\n * @param {Integer} limit - How many times to recurse subdivisions.\n * @description Insert a {@link Two.Anchor} at the midpoint between every item in {@link Two.Path#vertices}.\n */\n subdivide: function(limit) {\n //TODO: DRYness (function below)\n this._update();\n\n var last = this.vertices.length - 1;\n var b = this.vertices[last];\n var closed = this._closed || this.vertices[last]._command === Two.Commands.close;\n var points = [];\n _.each(this.vertices, function(a, i) {\n\n if (i <= 0 && !closed) {\n b = a;\n return;\n }\n\n if (a.command === Two.Commands.move) {\n points.push(new Two.Anchor(b.x, b.y));\n if (i > 0) {\n points[points.length - 1].command = Two.Commands.line;\n }\n b = a;\n return;\n }\n\n var verts = getSubdivisions(a, b, limit);\n points = points.concat(verts);\n\n // Assign commands to all the verts\n _.each(verts, function(v, i) {\n if (i <= 0 && b.command === Two.Commands.move) {\n v.command = Two.Commands.move;\n } else {\n v.command = Two.Commands.line;\n }\n });\n\n if (i >= last) {\n\n // TODO: Add check if the two vectors in question are the same values.\n if (this._closed && this._automatic) {\n\n b = a;\n\n verts = getSubdivisions(a, b, limit);\n points = points.concat(verts);\n\n // Assign commands to all the verts\n _.each(verts, function(v, i) {\n if (i <= 0 && b.command === Two.Commands.move) {\n v.command = Two.Commands.move;\n } else {\n v.command = Two.Commands.line;\n }\n });\n\n } else if (closed) {\n points.push(new Two.Anchor(a.x, a.y));\n }\n\n points[points.length - 1].command = closed\n ? Two.Commands.close : Two.Commands.line;\n\n }\n\n b = a;\n\n }, this);\n\n this._automatic = false;\n this._curved = false;\n this.vertices = points;\n\n return this;\n\n },\n\n /**\n * @name Two.Path#_updateLength\n * @function\n * @private\n * @param {Integer} [limit=] -\n * @param {Boolean} [silent=false] - If set to `true` then the path isn't updated before calculation. Useful for internal use.\n * @description Recalculate the {@link Two.Path#length} value.\n */\n _updateLength: function(limit, silent) {\n //TODO: DRYness (function above)\n if (!silent) {\n this._update();\n }\n\n var length = this.vertices.length;\n var last = length - 1;\n var b = this.vertices[last];\n var closed = false;//this._closed || this.vertices[last]._command === Two.Commands.close;\n var sum = 0;\n\n if (_.isUndefined(this._lengths)) {\n this._lengths = [];\n }\n\n _.each(this.vertices, function(a, i) {\n\n if ((i <= 0 && !closed) || a.command === Two.Commands.move) {\n b = a;\n this._lengths[i] = 0;\n return;\n }\n\n this._lengths[i] = getCurveLength(a, b, limit);\n this._lengths[i] = Two.Utils.toFixed(this._lengths[i]);\n sum += this._lengths[i];\n\n if (i >= last && closed) {\n\n b = this.vertices[(i + 1) % length];\n\n this._lengths[i + 1] = getCurveLength(a, b, limit);\n this._lengths[i + 1] = Two.Utils.toFixed(this._lengths[i + 1]);\n sum += this._lengths[i + 1];\n\n }\n\n b = a;\n\n }, this);\n\n this._length = sum;\n this._flagLength = false;\n\n return this;\n\n },\n\n /**\n * @name Two.Path#_update\n * @function\n * @private\n * @param {Boolean} [bubbles=false] - Force the parent to `_update` as well.\n * @description This is called before rendering happens by the renderer. This applies all changes necessary so that rendering is up-to-date but not updated more than it needs to be.\n * @nota-bene Try not to call this method more than once a frame.\n */\n _update: function() {\n\n if (this._flagVertices) {\n\n if (this._automatic) {\n this.plot();\n }\n\n if (this._flagLength) {\n this._updateLength(undefined, true);\n }\n\n var l = this._collection.length;\n var last = l - 1;\n var closed = this._closed;\n\n var beginning = Math.min(this._beginning, this._ending);\n var ending = Math.max(this._beginning, this._ending);\n\n var bid = getIdByLength(this, beginning * this._length);\n var eid = getIdByLength(this, ending * this._length);\n\n var low = ceil(bid);\n var high = floor(eid);\n\n var left, right, prev, next, v;\n\n this._renderer.vertices.length = 0;\n\n for (var i = 0; i < l; i++) {\n\n if (this._renderer.collection.length <= i) {\n // Expected to be `relative` anchor points.\n this._renderer.collection.push(new Two.Anchor());\n }\n\n if (i > high && !right) {\n\n v = this._renderer.collection[i];\n v.copy(this._collection[i]);\n this.getPointAt(ending, v);\n v.command = this._renderer.collection[i].command;\n this._renderer.vertices.push(v);\n\n right = v;\n prev = this._collection[i - 1];\n\n // Project control over the percentage `t`\n // of the in-between point\n if (prev && prev.controls) {\n\n v.controls.right.clear();\n\n this._renderer.collection[i - 1].controls.right\n .clear()\n .lerp(prev.controls.right, v.t);\n\n }\n\n } else if (i >= low && i <= high) {\n\n v = this._renderer.collection[i]\n .copy(this._collection[i]);\n this._renderer.vertices.push(v);\n\n if (i === high && contains(this, ending)) {\n right = v;\n if (!closed && right.controls) {\n right.controls.right.clear();\n }\n } else if (i === low && contains(this, beginning)) {\n left = v;\n left.command = Two.Commands.move;\n if (!closed && left.controls) {\n left.controls.left.clear();\n }\n }\n\n }\n\n }\n\n // Prepend the trimmed point if necessary.\n if (low > 0 && !left) {\n\n i = low - 1;\n\n v = this._renderer.collection[i];\n v.copy(this._collection[i]);\n this.getPointAt(beginning, v);\n v.command = Two.Commands.move;\n this._renderer.vertices.unshift(v);\n\n left = v;\n next = this._collection[i + 1];\n\n // Project control over the percentage `t`\n // of the in-between point\n if (next && next.controls) {\n\n v.controls.left.clear();\n\n this._renderer.collection[i + 1].controls.left\n .copy(next.controls.left)\n .lerp(Two.Vector.zero, v.t);\n\n }\n\n }\n\n }\n\n Two.Shape.prototype._update.apply(this, arguments);\n\n return this;\n\n },\n\n /**\n * @name Two.Path#flagReset\n * @function\n * @private\n * @description Called internally to reset all flags. Ensures that only properties that change are updated before being sent to the renderer.\n */\n flagReset: function() {\n\n this._flagVertices = this._flagFill = this._flagStroke =\n this._flagLinewidth = this._flagOpacity = this._flagVisible =\n this._flagCap = this._flagJoin = this._flagMiter =\n this._flagClassName = this._flagClip = false;\n\n Two.Shape.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n Path.MakeObservable(Path.prototype);\n\n // Utility functions\n\n function contains(path, t) {\n\n if (t === 0 || t === 1) {\n return true;\n }\n\n var length = path._length;\n var target = length * t;\n var elapsed = 0;\n\n for (var i = 0; i < path._lengths.length; i++) {\n var dist = path._lengths[i];\n if (elapsed >= target) {\n return target - elapsed >= 0;\n }\n elapsed += dist;\n }\n\n return false;\n\n }\n\n /**\n * @protected\n * @param {Two.Path} path - The path to analyze against.\n * @param {Number} target - The target length at which to find an anchor.\n * @returns {Integer}\n * @description Return the id of an anchor based on a target length.\n */\n function getIdByLength(path, target) {\n\n var total = path._length;\n\n if (target <= 0) {\n return 0;\n } else if (target >= total) {\n return path._lengths.length - 1;\n }\n\n for (var i = 0, sum = 0; i < path._lengths.length; i++) {\n\n if (sum + path._lengths[i] >= target) {\n target -= sum;\n return Math.max(i - 1, 0) + target / path._lengths[i];\n }\n\n sum += path._lengths[i];\n\n }\n\n return - 1;\n\n }\n\n function getCurveLength(a, b, limit) {\n // TODO: DRYness\n var x1, x2, x3, x4, y1, y2, y3, y4;\n\n var right = b.controls && b.controls.right;\n var left = a.controls && a.controls.left;\n\n x1 = b.x;\n y1 = b.y;\n x2 = (right || b).x;\n y2 = (right || b).y;\n x3 = (left || a).x;\n y3 = (left || a).y;\n x4 = a.x;\n y4 = a.y;\n\n if (right && b._relative) {\n x2 += b.x;\n y2 += b.y;\n }\n\n if (left && a._relative) {\n x3 += a.x;\n y3 += a.y;\n }\n\n return Two.Utils.getCurveLength(x1, y1, x2, y2, x3, y3, x4, y4, limit);\n\n }\n\n function getSubdivisions(a, b, limit) {\n // TODO: DRYness\n var x1, x2, x3, x4, y1, y2, y3, y4;\n\n var right = b.controls && b.controls.right;\n var left = a.controls && a.controls.left;\n\n x1 = b.x;\n y1 = b.y;\n x2 = (right || b).x;\n y2 = (right || b).y;\n x3 = (left || a).x;\n y3 = (left || a).y;\n x4 = a.x;\n y4 = a.y;\n\n if (right && b._relative) {\n x2 += b.x;\n y2 += b.y;\n }\n\n if (left && a._relative) {\n x3 += a.x;\n y3 += a.y;\n }\n\n return Two.Utils.subdivide(x1, y1, x2, y2, x3, y3, x4, y4, limit);\n\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path;\n var _ = Two.Utils;\n\n var Line = Two.Line = function(x1, y1, x2, y2) {\n\n var width = x2 - x1;\n var height = y2 - y1;\n\n var w2 = width / 2;\n var h2 = height / 2;\n\n Path.call(this, [\n new Two.Anchor(x1, y1),\n new Two.Anchor(x2, y2)\n ]);\n\n this.vertices[0].command = Two.Commands.move;\n this.vertices[1].command = Two.Commands.line;\n\n this.automatic = false;\n\n };\n\n _.extend(Line.prototype, Path.prototype);\n Line.prototype.constructor = Line;\n\n Path.MakeObservable(Line.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path;\n var _ = Two.Utils;\n\n var Rectangle = Two.Rectangle = function(x, y, width, height) {\n\n Path.call(this, [\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor()\n // new Two.Anchor() // TODO: Figure out how to handle this for `beginning` / `ending` animations\n ], true, false, true);\n\n this.width = width;\n this.height = height;\n\n this.origin = new Two.Vector();\n this.translation.set(x, y);\n\n this._update();\n\n };\n\n _.extend(Rectangle, {\n\n Properties: ['width', 'height'],\n\n MakeObservable: function(object) {\n\n Path.MakeObservable(object);\n _.each(Rectangle.Properties, Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'origin', {\n enumerable: true,\n get: function() {\n return this._origin;\n },\n set: function(v) {\n if (this._origin) {\n this._origin.unbind(Two.Events.change, this._renderer.flagVertices);\n }\n this._origin = v;\n this._origin.bind(Two.Events.change, this._renderer.flagVertices);\n this._renderer.flagVertices();\n }\n });\n\n }\n\n });\n\n _.extend(Rectangle.prototype, Path.prototype, {\n\n _width: 0,\n _height: 0,\n\n _flagWidth: 0,\n _flagHeight: 0,\n\n _origin: null,\n\n constructor: Rectangle,\n\n _update: function() {\n\n if (this._flagWidth || this._flagHeight) {\n\n var xr = this._width / 2;\n var yr = this._height / 2;\n\n this.vertices[0].set(-xr, -yr).add(this._origin).command = Two.Commands.move;\n this.vertices[1].set(xr, -yr).add(this._origin).command = Two.Commands.line;\n this.vertices[2].set(xr, yr).add(this._origin).command = Two.Commands.line;\n this.vertices[3].set(-xr, yr).add(this._origin).command = Two.Commands.line;\n // FYI: Two.Sprite and Two.ImageSequence have 4 verts\n if (this.vertices[4]) {\n this.vertices[4].set(-xr, -yr).add(this._origin).command = Two.Commands.line;\n }\n\n }\n\n Path.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagWidth = this._flagHeight = false;\n Path.prototype.flagReset.call(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Rectangle(0, 0, this.width, this.height);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Rectangle.MakeObservable(Rectangle.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, TWO_PI = Math.PI * 2, HALF_PI = Math.PI / 2;\n var cos = Math.cos, sin = Math.sin;\n var _ = Two.Utils;\n\n // Circular coefficient\n var c = (4 / 3) * Math.tan(Math.PI / 8);\n\n var Ellipse = Two.Ellipse = function(ox, oy, rx, ry, resolution) {\n\n if (!_.isNumber(ry)) {\n ry = rx;\n }\n\n var amount = resolution || 5;\n\n var points = _.map(_.range(amount), function(i) {\n return new Two.Anchor();\n }, this);\n\n Path.call(this, points, true, true, true);\n\n this.width = rx * 2;\n this.height = ry * 2;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(Ellipse, {\n\n Properties: ['width', 'height'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(Ellipse.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(Ellipse.prototype, Path.prototype, {\n\n _width: 0,\n _height: 0,\n\n _flagWidth: false,\n _flagHeight: false,\n\n constructor: Ellipse,\n\n _update: function() {\n\n if (this._flagWidth || this._flagHeight) {\n for (var i = 0, l = this.vertices.length, last = l - 1; i < l; i++) {\n\n var pct = i / last;\n var theta = pct * TWO_PI;\n\n var rx = this._width / 2;\n var ry = this._height / 2;\n var ct = cos(theta);\n var st = sin(theta);\n\n var x = rx * cos(theta);\n var y = ry * sin(theta);\n\n var lx = i === 0 ? 0 : rx * c * cos(theta - HALF_PI);\n var ly = i === 0 ? 0 : ry * c * sin(theta - HALF_PI);\n\n var rx = i === last ? 0 : rx * c * cos(theta + HALF_PI);\n var ry = i === last ? 0 : ry * c * sin(theta + HALF_PI);\n\n var v = this.vertices[i];\n\n v.command = i === 0 ? Two.Commands.move : Two.Commands.curve;\n v.set(x, y);\n v.controls.left.set(lx, ly);\n v.controls.right.set(rx, ry);\n\n }\n }\n\n Path.prototype._update.call(this);\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagWidth = this._flagHeight = false;\n\n Path.prototype.flagReset.call(this);\n return this;\n\n },\n\n clone: function(parent) {\n\n var rx = this.width / 2;\n var ry = this.height / 2;\n var resolution = this.vertices.length;\n var clone = new Ellipse(0, 0, rx, ry, resolution);\n\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Ellipse.MakeObservable(Ellipse.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, TWO_PI = Math.PI * 2, HALF_PI = Math.PI / 2;\n var cos = Math.cos, sin = Math.sin;\n var _ = Two.Utils;\n\n // Circular coefficient\n var c = (4 / 3) * Math.tan(Math.PI / 8);\n\n var Circle = Two.Circle = function(ox, oy, r, res) {\n\n var amount = res || 5;\n\n var points = _.map(_.range(amount), function(i) {\n return new Two.Anchor();\n }, this);\n\n Path.call(this, points, true, true, true);\n\n this.radius = r;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(Circle, {\n\n Properties: ['radius'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(Circle.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(Circle.prototype, Path.prototype, {\n\n _radius: 0,\n _flagRadius: false,\n\n constructor: Circle,\n\n _update: function() {\n\n if (this._flagRadius) {\n for (var i = 0, l = this.vertices.length, last = l - 1; i < l; i++) {\n\n var pct = i / last;\n var theta = pct * TWO_PI;\n\n var radius = this._radius;\n var ct = cos(theta);\n var st = sin(theta);\n var rc = radius * c;\n\n var x = radius * cos(theta);\n var y = radius * sin(theta);\n\n var lx = i === 0 ? 0 : rc * cos(theta - HALF_PI);\n var ly = i === 0 ? 0 : rc * sin(theta - HALF_PI);\n\n var rx = i === last ? 0 : rc * cos(theta + HALF_PI);\n var ry = i === last ? 0 : rc * sin(theta + HALF_PI);\n\n var v = this.vertices[i];\n\n v.command = i === 0 ? Two.Commands.move : Two.Commands.curve;\n v.set(x, y);\n v.controls.left.set(lx, ly);\n v.controls.right.set(rx, ry);\n\n }\n }\n\n Path.prototype._update.call(this);\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagRadius = false;\n\n Path.prototype.flagReset.call(this);\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Circle(0, 0, this.radius, this.vertices.length);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Circle.MakeObservable(Circle.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, TWO_PI = Math.PI * 2, cos = Math.cos, sin = Math.sin;\n var _ = Two.Utils;\n\n var Polygon = Two.Polygon = function(ox, oy, r, sides) {\n\n sides = Math.max(sides || 0, 3);\n\n Path.call(this);\n\n this.closed = true;\n this.automatic = false;\n\n this.width = r * 2;\n this.height = r * 2;\n this.sides = sides;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(Polygon, {\n\n Properties: ['width', 'height', 'sides'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(Polygon.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(Polygon.prototype, Path.prototype, {\n\n _width: 0,\n _height: 0,\n _sides: 0,\n\n _flagWidth: false,\n _flagHeight: false,\n _flagSides: false,\n\n constructor: Polygon,\n\n _update: function() {\n\n if (this._flagWidth || this._flagHeight || this._flagSides) {\n\n var sides = this._sides;\n var amount = sides + 1;\n var length = this.vertices.length;\n\n if (length > sides) {\n this.vertices.splice(sides - 1, length - sides);\n length = sides;\n }\n\n for (var i = 0; i < amount; i++) {\n\n var pct = (i + 0.5) / sides;\n var theta = TWO_PI * pct + Math.PI / 2;\n var x = this._width * cos(theta) / 2;\n var y = this._height * sin(theta) / 2;\n\n if (i >= length) {\n this.vertices.push(new Two.Anchor(x, y));\n } else {\n this.vertices[i].set(x, y);\n }\n\n this.vertices[i].command = i === 0\n ? Two.Commands.move : Two.Commands.line;\n\n }\n\n }\n\n Path.prototype._update.call(this);\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagWidth = this._flagHeight = this._flagSides = false;\n Path.prototype.flagReset.call(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Polygon(0, 0, this.radius, this.sides);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Polygon.MakeObservable(Polygon.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, PI = Math.PI, TWO_PI = Math.PI * 2, HALF_PI = Math.PI / 2,\n cos = Math.cos, sin = Math.sin, abs = Math.abs, _ = Two.Utils;\n\n var ArcSegment = Two.ArcSegment = function(ox, oy, ir, or, sa, ea, res) {\n\n var amount = res || (Two.Resolution * 3);\n var points = _.map(_.range(amount), function() {\n return new Two.Anchor();\n });\n\n Path.call(this, points, true, false, true);\n\n this.innerRadius = ir;\n this.outerRadius = or;\n\n this.startAngle = sa;\n this.endAngle = ea;\n\n this._update();\n this.translation.set(ox, oy);\n\n }\n\n _.extend(ArcSegment, {\n\n Properties: ['startAngle', 'endAngle', 'innerRadius', 'outerRadius'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(ArcSegment.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(ArcSegment.prototype, Path.prototype, {\n\n _flagStartAngle: false,\n _flagEndAngle: false,\n _flagInnerRadius: false,\n _flagOuterRadius: false,\n\n _startAngle: 0,\n _endAngle: TWO_PI,\n _innerRadius: 0,\n _outerRadius: 0,\n\n constructor: ArcSegment,\n\n _update: function() {\n\n if (this._flagStartAngle || this._flagEndAngle || this._flagInnerRadius\n || this._flagOuterRadius) {\n\n var sa = this._startAngle;\n var ea = this._endAngle;\n\n var ir = this._innerRadius;\n var or = this._outerRadius;\n\n var connected = mod(sa, TWO_PI) === mod(ea, TWO_PI);\n var punctured = ir > 0;\n\n var vertices = this.vertices;\n var length = (punctured ? vertices.length / 2 : vertices.length);\n var command, id = 0;\n\n if (connected) {\n length--;\n } else if (!punctured) {\n length -= 2;\n }\n\n /**\n * Outer Circle\n */\n for (var i = 0, last = length - 1; i < length; i++) {\n\n var pct = i / last;\n var v = vertices[id];\n var theta = pct * (ea - sa) + sa;\n var step = (ea - sa) / length;\n\n var x = or * Math.cos(theta);\n var y = or * Math.sin(theta);\n\n switch (i) {\n case 0:\n command = Two.Commands.move;\n break;\n default:\n command = Two.Commands.curve;\n }\n\n v.command = command;\n v.x = x;\n v.y = y;\n v.controls.left.clear();\n v.controls.right.clear();\n\n if (v.command === Two.Commands.curve) {\n var amp = or * step / Math.PI;\n v.controls.left.x = amp * Math.cos(theta - HALF_PI);\n v.controls.left.y = amp * Math.sin(theta - HALF_PI);\n v.controls.right.x = amp * Math.cos(theta + HALF_PI);\n v.controls.right.y = amp * Math.sin(theta + HALF_PI);\n if (i === 1) {\n v.controls.left.multiplyScalar(2);\n }\n if (i === last) {\n v.controls.right.multiplyScalar(2);\n }\n }\n\n id++;\n\n }\n\n if (punctured) {\n\n if (connected) {\n vertices[id].command = Two.Commands.close;\n id++;\n } else {\n length--;\n last = length - 1;\n }\n\n /**\n * Inner Circle\n */\n for (i = 0; i < length; i++) {\n\n pct = i / last;\n v = vertices[id];\n theta = (1 - pct) * (ea - sa) + sa;\n step = (ea - sa) / length;\n\n x = ir * Math.cos(theta);\n y = ir * Math.sin(theta);\n command = Two.Commands.curve;\n if (i <= 0) {\n command = connected ? Two.Commands.move : Two.Commands.line;\n }\n\n v.command = command;\n v.x = x;\n v.y = y;\n v.controls.left.clear();\n v.controls.right.clear();\n\n if (v.command === Two.Commands.curve) {\n amp = ir * step / Math.PI;\n v.controls.left.x = amp * Math.cos(theta + HALF_PI);\n v.controls.left.y = amp * Math.sin(theta + HALF_PI);\n v.controls.right.x = amp * Math.cos(theta - HALF_PI);\n v.controls.right.y = amp * Math.sin(theta - HALF_PI);\n if (i === 1) {\n v.controls.left.multiplyScalar(2);\n }\n if (i === last) {\n v.controls.right.multiplyScalar(2);\n }\n }\n\n id++;\n\n }\n\n // Final Point\n vertices[id].copy(vertices[0]);\n vertices[id].command = Two.Commands.line;\n\n } else if (!connected) {\n\n vertices[id].command = Two.Commands.line;\n vertices[id].x = 0;\n vertices[id].y = 0;\n id++;\n\n // Final Point\n vertices[id].copy(vertices[0]);\n vertices[id].command = Two.Commands.line;\n\n }\n\n }\n\n Path.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n Path.prototype.flagReset.call(this);\n\n this._flagStartAngle = this._flagEndAngle\n = this._flagInnerRadius = this._flagOuterRadius = false;\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var ir = this.innerRadius;\n var or = this.outerradius;\n var sa = this.startAngle;\n var ea = this.endAngle;\n var resolution = this.vertices.length;\n\n var clone = new ArcSegment(0, 0, ir, or, sa, ea, resolution);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n ArcSegment.MakeObservable(ArcSegment.prototype);\n\n function mod(v, l) {\n while (v < 0) {\n v += l;\n }\n return v % l;\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, TWO_PI = Math.PI * 2, cos = Math.cos, sin = Math.sin;\n var _ = Two.Utils;\n\n var Star = Two.Star = function(ox, oy, ir, or, sides) {\n\n if (arguments.length <= 3) {\n or = ir;\n ir = or / 2;\n }\n\n if (!_.isNumber(sides) || sides <= 0) {\n sides = 5;\n }\n\n var length = sides * 2;\n\n Path.call(this);\n this.closed = true;\n this.automatic = false;\n\n this.innerRadius = ir;\n this.outerRadius = or;\n this.sides = sides;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(Star, {\n\n Properties: ['innerRadius', 'outerRadius', 'sides'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(Star.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(Star.prototype, Path.prototype, {\n\n _innerRadius: 0,\n _outerRadius: 0,\n _sides: 0,\n\n _flagInnerRadius: false,\n _flagOuterRadius: false,\n _flagSides: false,\n\n constructor: Star,\n\n _update: function() {\n\n if (this._flagInnerRadius || this._flagOuterRadius || this._flagSides) {\n\n var sides = this._sides * 2;\n var amount = sides + 1;\n var length = this.vertices.length;\n\n if (length > sides) {\n this.vertices.splice(sides - 1, length - sides);\n length = sides;\n }\n\n for (var i = 0; i < amount; i++) {\n\n var pct = (i + 0.5) / sides;\n var theta = TWO_PI * pct;\n var r = (!(i % 2) ? this._innerRadius : this._outerRadius) / 2;\n var x = r * cos(theta);\n var y = r * sin(theta);\n\n if (i >= length) {\n this.vertices.push(new Two.Anchor(x, y));\n } else {\n this.vertices[i].set(x, y);\n }\n\n this.vertices[i].command = i === 0\n ? Two.Commands.move : Two.Commands.line;\n\n }\n\n }\n\n Path.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagInnerRadius = this._flagOuterRadius = this._flagSides = false;\n Path.prototype.flagReset.call(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var ir = this.innerRadius;\n var or = this.outerRadius;\n var sides = this.sides;\n\n var clone = new Star(0, 0, ir, or, sides);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Star.MakeObservable(Star.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path;\n var _ = Two.Utils;\n\n var RoundedRectangle = Two.RoundedRectangle = function(ox, oy, width, height, radius) {\n\n if (_.isUndefined(radius)) {\n radius = Math.floor(Math.min(width, height) / 12);\n }\n\n var amount = 10;\n\n var points = _.map(_.range(amount), function(i) {\n return new Two.Anchor(0, 0, 0, 0, 0, 0,\n i === 0 ? Two.Commands.move : Two.Commands.curve);\n });\n\n // points[points.length - 1].command = Two.Commands.close;\n\n Path.call(this, points);\n\n this.closed = true;\n this.automatic = false;\n\n this._renderer.flagRadius = _.bind(RoundedRectangle.FlagRadius, this);\n\n this.width = width;\n this.height = height;\n this.radius = radius;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(RoundedRectangle, {\n\n Properties: ['width', 'height'],\n\n FlagRadius: function() {\n this._flagRadius = true;\n },\n\n MakeObservable: function(object) {\n\n Path.MakeObservable(object);\n _.each(RoundedRectangle.Properties, Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'radius', {\n enumerable: true,\n get: function() {\n return this._radius;\n },\n set: function(v) {\n\n if (this._radius instanceof Two.Vector) {\n this._radius.unbind(Two.Events.change, this._renderer.flagRadius);\n }\n\n this._radius = v;\n\n if (this._radius instanceof Two.Vector) {\n this._radius.bind(Two.Events.change, this._renderer.flagRadius);\n }\n\n this._flagRadius = true;\n\n }\n });\n\n }\n\n });\n\n _.extend(RoundedRectangle.prototype, Path.prototype, {\n\n _width: 0,\n _height: 0,\n _radius: 0,\n\n _flagWidth: false,\n _flagHeight: false,\n _flagRadius: false,\n\n constructor: RoundedRectangle,\n\n _update: function() {\n\n if (this._flagWidth || this._flagHeight || this._flagRadius) {\n\n var width = this._width;\n var height = this._height;\n\n var rx, ry;\n\n if (this._radius instanceof Two.Vector) {\n rx = this._radius.x;\n ry = this._radius.y;\n } else {\n rx = this._radius;\n ry = this._radius;\n }\n\n var v;\n var w = width / 2;\n var h = height / 2;\n\n v = this.vertices[0];\n v.x = - (w - rx);\n v.y = - h;\n\n // Upper Right Corner\n\n v = this.vertices[1];\n v.x = (w - rx);\n v.y = - h;\n v.controls.left.clear();\n v.controls.right.x = rx;\n v.controls.right.y = 0;\n\n v = this.vertices[2];\n v.x = w;\n v.y = - (h - ry);\n v.controls.right.clear();\n v.controls.left.clear();\n\n // Bottom Right Corner\n\n v = this.vertices[3];\n v.x = w;\n v.y = (h - ry);\n v.controls.left.clear();\n v.controls.right.x = 0;\n v.controls.right.y = ry;\n\n v = this.vertices[4];\n v.x = (w - rx);\n v.y = h;\n v.controls.right.clear();\n v.controls.left.clear();\n\n // Bottom Left Corner\n\n v = this.vertices[5];\n v.x = - (w - rx);\n v.y = h;\n v.controls.left.clear();\n v.controls.right.x = - rx;\n v.controls.right.y = 0;\n\n v = this.vertices[6];\n v.x = - w;\n v.y = (h - ry);\n v.controls.left.clear();\n v.controls.right.clear();\n\n // Upper Left Corner\n\n v = this.vertices[7];\n v.x = - w;\n v.y = - (h - ry);\n v.controls.left.clear();\n v.controls.right.x = 0;\n v.controls.right.y = - ry;\n\n v = this.vertices[8];\n v.x = - (w - rx);\n v.y = - h;\n v.controls.left.clear();\n v.controls.right.clear();\n\n v = this.vertices[9];\n v.copy(this.vertices[8]);\n\n }\n\n Path.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagWidth = this._flagHeight = this._flagRadius = false;\n Path.prototype.flagReset.call(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var width = this.width;\n var height = this.height;\n var radius = this.radius;\n\n var clone = new RoundedRectangle(0, 0, width, height, radius);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n RoundedRectangle.MakeObservable(RoundedRectangle.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var root = Two.root;\n var getComputedMatrix = Two.Utils.getComputedMatrix;\n var _ = Two.Utils;\n\n var canvas = getCanvas();\n var ctx = canvas.getContext('2d');\n\n /**\n * @class\n * @name Two.Text\n * @param {String} message - The String to be rendered to the scene.\n * @param {Number} [x=0] - The position in the x direction for the object.\n * @param {Number} [y=0] - The position in the y direction for the object.\n * @param {Object} [styles] - An object where styles are applied. Attribute must exist in Two.Text.Properties.\n */\n var Text = Two.Text = function(message, x, y, styles) {\n\n Two.Shape.call(this);\n\n this._renderer.type = 'text';\n this._renderer.flagFill = _.bind(Two.Text.FlagFill, this);\n this._renderer.flagStroke = _.bind(Two.Text.FlagStroke, this);\n\n this.value = message;\n\n if (_.isNumber(x)) {\n this.translation.x = x;\n }\n if (_.isNumber(y)) {\n this.translation.y = y;\n }\n\n this.dashes = [];\n\n if (!_.isObject(styles)) {\n return this;\n }\n\n _.each(Two.Text.Properties, function(property) {\n\n if (property in styles) {\n this[property] = styles[property];\n }\n\n }, this);\n\n };\n\n _.extend(Two.Text, {\n\n Ratio: 0.6,\n\n Properties: [\n 'value', 'family', 'size', 'leading', 'alignment', 'linewidth', 'style',\n 'className', 'weight', 'decoration', 'baseline', 'opacity', 'visible',\n 'fill', 'stroke',\n ],\n\n FlagFill: function() {\n this._flagFill = true;\n },\n\n FlagStroke: function() {\n this._flagStroke = true;\n },\n\n MakeObservable: function(object) {\n\n Two.Shape.MakeObservable(object);\n\n _.each(Two.Text.Properties.slice(0, 13), Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'fill', {\n enumerable: true,\n get: function() {\n return this._fill;\n },\n set: function(f) {\n\n if (this._fill instanceof Two.Gradient\n || this._fill instanceof Two.LinearGradient\n || this._fill instanceof Two.RadialGradient\n || this._fill instanceof Two.Texture) {\n this._fill.unbind(Two.Events.change, this._renderer.flagFill);\n }\n\n this._fill = f;\n this._flagFill = true;\n\n if (this._fill instanceof Two.Gradient\n || this._fill instanceof Two.LinearGradient\n || this._fill instanceof Two.RadialGradient\n || this._fill instanceof Two.Texture) {\n this._fill.bind(Two.Events.change, this._renderer.flagFill);\n }\n\n }\n });\n\n Object.defineProperty(object, 'stroke', {\n enumerable: true,\n get: function() {\n return this._stroke;\n },\n set: function(f) {\n\n if (this._stroke instanceof Two.Gradient\n || this._stroke instanceof Two.LinearGradient\n || this._stroke instanceof Two.RadialGradient\n || this._stroke instanceof Two.Texture) {\n this._stroke.unbind(Two.Events.change, this._renderer.flagStroke);\n }\n\n this._stroke = f;\n this._flagStroke = true;\n\n if (this._stroke instanceof Two.Gradient\n || this._stroke instanceof Two.LinearGradient\n || this._stroke instanceof Two.RadialGradient\n || this._stroke instanceof Two.Texture) {\n this._stroke.bind(Two.Events.change, this._renderer.flagStroke);\n }\n\n }\n });\n\n Object.defineProperty(object, 'clip', {\n enumerable: true,\n get: function() {\n return this._clip;\n },\n set: function(v) {\n this._clip = v;\n this._flagClip = true;\n }\n });\n\n }\n\n });\n\n _.extend(Two.Text.prototype, Two.Shape.prototype, {\n\n // Flags\n // http://en.wikipedia.org/wiki/Flag\n\n _flagValue: true,\n _flagFamily: true,\n _flagSize: true,\n _flagLeading: true,\n _flagAlignment: true,\n _flagBaseline: true,\n _flagStyle: true,\n _flagWeight: true,\n _flagDecoration: true,\n\n _flagFill: true,\n _flagStroke: true,\n _flagLinewidth: true,\n _flagOpacity: true,\n _flagClassName: true,\n _flagVisible: true,\n\n _flagClip: false,\n\n // Underlying Properties\n\n _value: '',\n _family: 'sans-serif',\n _size: 13,\n _leading: 17,\n _alignment: 'center',\n _baseline: 'middle',\n _style: 'normal',\n _weight: 500,\n _decoration: 'none',\n\n _fill: '#000',\n _stroke: 'transparent',\n _linewidth: 1,\n _opacity: 1,\n _className: '',\n _visible: true,\n\n _clip: false,\n\n constructor: Two.Text,\n\n remove: function() {\n\n if (!this.parent) {\n return this;\n }\n\n this.parent.remove(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Two.Text(this.value);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Text.Properties, function(property) {\n clone[property] = this[property];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone._update();\n\n },\n\n toObject: function() {\n\n var result = {\n translation: this.translation.toObject(),\n rotation: this.rotation,\n scale: this.scale\n };\n\n _.each(Two.Text.Properties, function(property) {\n result[property] = this[property];\n }, this);\n\n return result;\n\n },\n\n noStroke: function() {\n this.stroke = 'transparent';\n return this;\n },\n\n noFill: function() {\n this.fill = 'transparent';\n return this;\n },\n\n // /**\n // * A shim to not break `getBoundingClientRect` calls. TODO: Implement a\n // * way to calculate proper bounding boxes of `Two.Text`.\n // */\n getBoundingClientRect: function(shallow) {\n\n var matrix, border, l, x, y, i, v;\n var left, right, top, bottom;\n\n // TODO: Update this to not __always__ update. Just when it needs to.\n this._update(true);\n\n matrix = !!shallow ? this._matrix : getComputedMatrix(this);\n\n var height = this.leading;\n var width = this.value.length * this.size * Text.Ratio;\n\n switch (this.alignment) {\n case 'left':\n left = 0;\n right = width;\n break;\n case 'right':\n left = - width;\n right = 0;\n break;\n default:\n left = - width / 2;\n right = width / 2;\n }\n\n switch (this.baseline) {\n case 'top':\n top = 0;\n bottom = height;\n break;\n case 'bottom':\n top = - height;\n bottom = 0;\n break;\n default:\n top = - height / 2;\n bottom = height / 2;\n }\n\n v = matrix.multiply(left, top, 1);\n\n top = v.y;\n left = v.x;\n\n v = matrix.multiply(right, bottom, 1);\n\n right = v.x;\n bottom = v.y;\n\n return {\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n width: right - left,\n height: bottom - top\n };\n\n },\n\n flagReset: function() {\n\n this._flagValue = this._flagFamily = this._flagSize =\n this._flagLeading = this._flagAlignment = this._flagFill =\n this._flagStroke = this._flagLinewidth = this._flagOpacity =\n this._flagVisible = this._flagClip = this._flagDecoration =\n this._flagClassName = this._flagBaseline = false;\n\n Two.Shape.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n Two.Text.MakeObservable(Two.Text.prototype);\n\n function getCanvas() {\n if (root.document) {\n return root.document.createElement('canvas');\n } else {\n console.warn('Two.js: Unable to create canvas for Two.Text measurements.');\n return {\n getContext: _.identity\n }\n }\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n var Stop = Two.Stop = function(offset, color, opacity) {\n\n this._renderer = {};\n this._renderer.type = 'stop';\n\n this.offset = _.isNumber(offset) ? offset\n : Stop.Index <= 0 ? 0 : 1;\n\n this.opacity = _.isNumber(opacity) ? opacity : 1;\n\n this.color = _.isString(color) ? color\n : Stop.Index <= 0 ? '#fff' : '#000';\n\n Stop.Index = (Stop.Index + 1) % 2;\n\n };\n\n _.extend(Stop, {\n\n Index: 0,\n\n Properties: [\n 'offset',\n 'opacity',\n 'color'\n ],\n\n MakeObservable: function(object) {\n\n _.each(Stop.Properties, function(property) {\n\n var object = this;\n var secret = '_' + property;\n var flag = '_flag' + property.charAt(0).toUpperCase() + property.slice(1);\n\n Object.defineProperty(object, property, {\n enumerable: true,\n get: function() {\n return this[secret];\n },\n set: function(v) {\n this[secret] = v;\n this[flag] = true;\n if (this.parent) {\n this.parent._flagStops = true;\n }\n }\n });\n\n }, object);\n\n }\n\n });\n\n _.extend(Stop.prototype, Two.Utils.Events, {\n\n constructor: Stop,\n\n clone: function() {\n\n var clone = new Stop();\n\n _.each(Stop.Properties, function(property) {\n clone[property] = this[property];\n }, this);\n\n return clone;\n\n },\n\n toObject: function() {\n\n var result = {};\n\n _.each(Stop.Properties, function(k) {\n result[k] = this[k];\n }, this);\n\n return result;\n\n },\n\n flagReset: function() {\n\n this._flagOffset = this._flagColor = this._flagOpacity = false;\n\n return this;\n\n }\n\n });\n\n Stop.MakeObservable(Stop.prototype);\n Stop.prototype.constructor = Stop;\n\n var Gradient = Two.Gradient = function(stops) {\n\n this._renderer = {};\n this._renderer.type = 'gradient';\n\n this.id = Two.Identifier + Two.uniqueId();\n this.classList = [];\n\n this._renderer.flagStops = _.bind(Gradient.FlagStops, this);\n this._renderer.bindStops = _.bind(Gradient.BindStops, this);\n this._renderer.unbindStops = _.bind(Gradient.UnbindStops, this);\n\n this.spread = 'pad';\n\n this.stops = stops;\n\n };\n\n _.extend(Gradient, {\n\n Stop: Stop,\n\n Properties: [\n 'spread'\n ],\n\n MakeObservable: function(object) {\n\n _.each(Gradient.Properties, Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'stops', {\n\n enumerable: true,\n\n get: function() {\n return this._stops;\n },\n\n set: function(stops) {\n\n var updateStops = this._renderer.flagStops;\n var bindStops = this._renderer.bindStops;\n var unbindStops = this._renderer.unbindStops;\n\n // Remove previous listeners\n if (this._stops) {\n this._stops\n .unbind(Two.Events.insert, bindStops)\n .unbind(Two.Events.remove, unbindStops);\n }\n\n // Create new Collection with copy of Stops\n this._stops = new Two.Utils.Collection((stops || []).slice(0));\n\n // Listen for Collection changes and bind / unbind\n this._stops\n .bind(Two.Events.insert, bindStops)\n .bind(Two.Events.remove, unbindStops);\n\n // Bind Initial Stops\n bindStops(this._stops);\n\n }\n\n });\n\n },\n\n FlagStops: function() {\n this._flagStops = true;\n },\n\n BindStops: function(items) {\n\n // This function is called a lot\n // when importing a large SVG\n var i = items.length;\n while(i--) {\n items[i].bind(Two.Events.change, this._renderer.flagStops);\n items[i].parent = this;\n }\n\n this._renderer.flagStops();\n\n },\n\n UnbindStops: function(items) {\n\n var i = items.length;\n while(i--) {\n items[i].unbind(Two.Events.change, this._renderer.flagStops);\n delete items[i].parent;\n }\n\n this._renderer.flagStops();\n\n }\n\n });\n\n _.extend(Gradient.prototype, Two.Utils.Events, {\n\n _flagStops: false,\n _flagSpread: false,\n\n clone: function(parent) {\n\n var stops = _.map(this.stops, function(s) {\n return s.clone();\n });\n\n var clone = new Gradient(stops);\n\n _.each(Two.Gradient.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n toObject: function() {\n\n var result = {\n stops: _.map(this.stops, function(s) {\n return s.toObject();\n })\n };\n\n _.each(Gradient.Properties, function(k) {\n result[k] = this[k];\n }, this);\n\n return result;\n\n },\n\n _update: function() {\n\n if (this._flagSpread || this._flagStops) {\n this.trigger(Two.Events.change);\n }\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagSpread = this._flagStops = false;\n\n return this;\n\n }\n\n });\n\n Gradient.MakeObservable(Gradient.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n var LinearGradient = Two.LinearGradient = function(x1, y1, x2, y2, stops) {\n\n Two.Gradient.call(this, stops);\n\n this._renderer.type = 'linear-gradient';\n\n var flagEndPoints = _.bind(LinearGradient.FlagEndPoints, this);\n this.left = new Two.Vector().bind(Two.Events.change, flagEndPoints);\n this.right = new Two.Vector().bind(Two.Events.change, flagEndPoints);\n\n if (_.isNumber(x1)) {\n this.left.x = x1;\n }\n if (_.isNumber(y1)) {\n this.left.y = y1;\n }\n if (_.isNumber(x2)) {\n this.right.x = x2;\n }\n if (_.isNumber(y2)) {\n this.right.y = y2;\n }\n\n };\n\n _.extend(LinearGradient, {\n\n Stop: Two.Gradient.Stop,\n\n MakeObservable: function(object) {\n Two.Gradient.MakeObservable(object);\n },\n\n FlagEndPoints: function() {\n this._flagEndPoints = true;\n }\n\n });\n\n _.extend(LinearGradient.prototype, Two.Gradient.prototype, {\n\n _flagEndPoints: false,\n\n constructor: LinearGradient,\n\n clone: function(parent) {\n\n var stops = _.map(this.stops, function(stop) {\n return stop.clone();\n });\n\n var clone = new LinearGradient(this.left._x, this.left._y,\n this.right._x, this.right._y, stops);\n\n _.each(Two.Gradient.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n toObject: function() {\n\n var result = Two.Gradient.prototype.toObject.call(this);\n\n result.left = this.left.toObject();\n result.right = this.right.toObject();\n\n return result;\n\n },\n\n _update: function() {\n\n if (this._flagEndPoints || this._flagSpread || this._flagStops) {\n this.trigger(Two.Events.change);\n }\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagEndPoints = false;\n\n Two.Gradient.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n LinearGradient.MakeObservable(LinearGradient.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n var RadialGradient = Two.RadialGradient = function(cx, cy, r, stops, fx, fy) {\n\n Two.Gradient.call(this, stops);\n\n this._renderer.type = 'radial-gradient';\n\n this.center = new Two.Vector()\n .bind(Two.Events.change, _.bind(function() {\n this._flagCenter = true;\n }, this));\n\n this.radius = _.isNumber(r) ? r : 20;\n\n this.focal = new Two.Vector()\n .bind(Two.Events.change, _.bind(function() {\n this._flagFocal = true;\n }, this));\n\n if (_.isNumber(cx)) {\n this.center.x = cx;\n }\n if (_.isNumber(cy)) {\n this.center.y = cy;\n }\n\n this.focal.copy(this.center);\n\n if (_.isNumber(fx)) {\n this.focal.x = fx;\n }\n if (_.isNumber(fy)) {\n this.focal.y = fy;\n }\n\n };\n\n _.extend(RadialGradient, {\n\n Stop: Two.Gradient.Stop,\n\n Properties: [\n 'radius'\n ],\n\n MakeObservable: function(object) {\n\n Two.Gradient.MakeObservable(object);\n\n _.each(RadialGradient.Properties, Two.Utils.defineProperty, object);\n\n }\n\n });\n\n _.extend(RadialGradient.prototype, Two.Gradient.prototype, {\n\n _flagRadius: false,\n _flagCenter: false,\n _flagFocal: false,\n\n constructor: RadialGradient,\n\n clone: function(parent) {\n\n var stops = _.map(this.stops, function(stop) {\n return stop.clone();\n });\n\n var clone = new RadialGradient(this.center._x, this.center._y,\n this._radius, stops, this.focal._x, this.focal._y);\n\n _.each(Two.Gradient.Properties.concat(RadialGradient.Properties), function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n toObject: function() {\n\n var result = Two.Gradient.prototype.toObject.call(this);\n\n _.each(RadialGradient.Properties, function(k) {\n result[k] = this[k];\n }, this);\n\n result.center = this.center.toObject();\n result.focal = this.focal.toObject();\n\n return result;\n\n },\n\n _update: function() {\n\n if (this._flagRadius || this._flatCenter || this._flagFocal\n || this._flagSpread || this._flagStops) {\n this.trigger(Two.Events.change);\n }\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagRadius = this._flagCenter = this._flagFocal = false;\n\n Two.Gradient.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n RadialGradient.MakeObservable(RadialGradient.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var root = Two.root;\n var _ = Two.Utils;\n var anchor;\n var regex = {\n video: /\\.(mp4|webm|ogg)$/i,\n image: /\\.(jpe?g|png|gif|tiff)$/i,\n effect: /texture|gradient/i\n };\n\n if (root.document) {\n anchor = document.createElement('a');\n }\n\n var Texture = Two.Texture = function(src, callback) {\n\n this._renderer = {};\n this._renderer.type = 'texture';\n this._renderer.flagOffset = _.bind(Texture.FlagOffset, this);\n this._renderer.flagScale = _.bind(Texture.FlagScale, this);\n\n this.id = Two.Identifier + Two.uniqueId();\n this.classList = [];\n\n this.offset = new Two.Vector();\n\n if (_.isFunction(callback)) {\n var loaded = _.bind(function() {\n this.unbind(Two.Events.load, loaded);\n if (_.isFunction(callback)) {\n callback();\n }\n }, this);\n this.bind(Two.Events.load, loaded);\n }\n\n if (_.isString(src)) {\n this.src = src;\n } else if (_.isElement(src)) {\n this.image = src;\n }\n\n this._update();\n\n };\n\n _.extend(Texture, {\n\n Properties: [\n 'src',\n 'loaded',\n 'repeat'\n ],\n\n RegularExpressions: regex,\n\n ImageRegistry: new Two.Registry(),\n\n getAbsoluteURL: function(path) {\n if (!anchor) {\n // TODO: Fix for headless environments\n return path;\n }\n anchor.href = path;\n return anchor.href;\n },\n\n loadHeadlessBuffer: new Function('texture', 'loaded', [\n 'var fs = require(\"fs\");',\n 'var buffer = fs.readFileSync(texture.src);',\n\n 'texture.image.src = buffer;',\n 'loaded();'\n ].join('\\n')),\n\n getImage: function(src) {\n\n var absoluteSrc = Texture.getAbsoluteURL(src);\n\n if (Texture.ImageRegistry.contains(absoluteSrc)) {\n return Texture.ImageRegistry.get(absoluteSrc);\n }\n\n var image;\n\n if (Two.Utils.Image) {\n\n // TODO: Fix for headless environments\n image = new Two.Utils.Image();\n Two.CanvasRenderer.Utils.shim(image, 'img');\n\n } else if (root.document) {\n\n if (regex.video.test(absoluteSrc)) {\n image = document.createElement('video');\n } else {\n image = document.createElement('img');\n }\n\n } else {\n\n console.warn('Two.js: no prototypical image defined for Two.Texture');\n\n }\n\n image.crossOrigin = 'anonymous';\n\n return image;\n\n },\n\n Register: {\n canvas: function(texture, callback) {\n texture._src = '#' + texture.id;\n Texture.ImageRegistry.add(texture.src, texture.image);\n if (_.isFunction(callback)) {\n callback();\n }\n },\n img: function(texture, callback) {\n\n var loaded = function(e) {\n if (_.isFunction(texture.image.removeEventListener)) {\n texture.image.removeEventListener('load', loaded, false);\n texture.image.removeEventListener('error', error, false);\n }\n if (_.isFunction(callback)) {\n callback();\n }\n };\n var error = function(e) {\n if (_.isFunction(texture.image.removeEventListener)) {\n texture.image.removeEventListener('load', loaded, false);\n texture.image.removeEventListener('error', error, false);\n }\n throw new Two.Utils.Error('unable to load ' + texture.src);\n };\n\n if (_.isNumber(texture.image.width) && texture.image.width > 0\n && _.isNumber(texture.image.height) && texture.image.height > 0) {\n loaded();\n } else if (_.isFunction(texture.image.addEventListener)) {\n texture.image.addEventListener('load', loaded, false);\n texture.image.addEventListener('error', error, false);\n }\n\n texture._src = Texture.getAbsoluteURL(texture._src);\n\n if (texture.image && texture.image.getAttribute('two-src')) {\n return;\n }\n\n texture.image.setAttribute('two-src', texture.src);\n Texture.ImageRegistry.add(texture.src, texture.image);\n\n if (Two.Utils.isHeadless) {\n\n Texture.loadHeadlessBuffer(texture, loaded);\n\n } else {\n\n texture.image.src = texture.src;\n\n }\n\n },\n video: function(texture, callback) {\n\n var loaded = function(e) {\n texture.image.removeEventListener('canplaythrough', loaded, false);\n texture.image.removeEventListener('error', error, false);\n texture.image.width = texture.image.videoWidth;\n texture.image.height = texture.image.videoHeight;\n texture.image.play();\n if (_.isFunction(callback)) {\n callback();\n }\n };\n var error = function(e) {\n texture.image.removeEventListener('canplaythrough', loaded, false);\n texture.image.removeEventListener('error', error, false);\n throw new Two.Utils.Error('unable to load ' + texture.src);\n };\n\n texture._src = Texture.getAbsoluteURL(texture._src);\n texture.image.addEventListener('canplaythrough', loaded, false);\n texture.image.addEventListener('error', error, false);\n\n if (texture.image && texture.image.getAttribute('two-src')) {\n return;\n }\n\n if (Two.Utils.isHeadless) {\n throw new Two.Utils.Error('video textures are not implemented in headless environments.');\n return;\n }\n\n texture.image.setAttribute('two-src', texture.src);\n Texture.ImageRegistry.add(texture.src, texture.image);\n texture.image.src = texture.src;\n texture.image.loop = true;\n texture.image.load();\n\n }\n },\n\n load: function(texture, callback) {\n\n var src = texture.src;\n var image = texture.image;\n var tag = image && image.nodeName.toLowerCase();\n\n if (texture._flagImage) {\n if (/canvas/i.test(tag)) {\n Texture.Register.canvas(texture, callback);\n } else {\n texture._src = image.getAttribute('two-src') || image.src;\n Texture.Register[tag](texture, callback);\n }\n }\n\n if (texture._flagSrc) {\n if (!image) {\n texture.image = Texture.getImage(texture.src);\n }\n tag = texture.image.nodeName.toLowerCase();\n Texture.Register[tag](texture, callback);\n }\n\n },\n\n FlagOffset: function() {\n this._flagOffset = true;\n },\n\n FlagScale: function() {\n this._flagScale = true;\n },\n\n MakeObservable: function(object) {\n\n _.each(Texture.Properties, Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'image', {\n enumerable: true,\n get: function() {\n return this._image;\n },\n set: function(image) {\n\n var tag = image && image.nodeName.toLowerCase();\n var index;\n\n switch (tag) {\n case 'canvas':\n index = '#' + image.id;\n break;\n default:\n index = image.src;\n }\n\n if (Texture.ImageRegistry.contains(index)) {\n this._image = Texture.ImageRegistry.get(image.src);\n } else {\n this._image = image;\n }\n\n this._flagImage = true;\n\n }\n\n });\n\n Object.defineProperty(object, 'offset', {\n enumerable: true,\n get: function() {\n return this._offset;\n },\n set: function(v) {\n if (this._offset) {\n this._offset.unbind(Two.Events.change, this._renderer.flagOffset);\n }\n this._offset = v;\n this._offset.bind(Two.Events.change, this._renderer.flagOffset);\n this._flagOffset = true;\n }\n });\n\n Object.defineProperty(object, 'scale', {\n enumerable: true,\n get: function() {\n return this._scale;\n },\n set: function(v) {\n\n if (this._scale instanceof Two.Vector) {\n this._scale.unbind(Two.Events.change, this._renderer.flagScale);\n }\n\n this._scale = v;\n\n if (this._scale instanceof Two.Vector) {\n this._scale.bind(Two.Events.change, this._renderer.flagScale);\n }\n\n this._flagScale = true;\n\n }\n });\n\n }\n\n });\n\n _.extend(Texture.prototype, Two.Utils.Events, Two.Shape.prototype, {\n\n _flagSrc: false,\n _flagImage: false,\n _flagVideo: false,\n _flagLoaded: false,\n _flagRepeat: false,\n\n _flagOffset: false,\n _flagScale: false,\n\n _src: '',\n _image: null,\n _loaded: false,\n _repeat: 'no-repeat',\n\n _scale: 1,\n _offset: null,\n\n constructor: Texture,\n\n clone: function() {\n return new Texture(this.src);\n },\n\n toObject: function() {\n return {\n src: this.src,\n image: this.image\n }\n },\n\n _update: function() {\n\n if (this._flagSrc || this._flagImage) {\n\n this.trigger(Two.Events.change);\n\n if (this._flagSrc || this._flagImage) {\n this.loaded = false;\n Texture.load(this, _.bind(function() {\n this.loaded = true;\n this\n .trigger(Two.Events.change)\n .trigger(Two.Events.load);\n }, this));\n }\n\n }\n\n if (this._image && this._image.readyState >= 4) {\n this._flagVideo = true;\n }\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagSrc = this._flagImage = this._flagLoaded\n = this._flagVideo = this._flagScale = this._flagOffset = false;\n\n return this;\n\n }\n\n });\n\n Texture.MakeObservable(Texture.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n var Path = Two.Path;\n var Rectangle = Two.Rectangle;\n\n var Sprite = Two.Sprite = function(path, ox, oy, cols, rows, frameRate) {\n\n Path.call(this, [\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor()\n ], true);\n\n this.noStroke();\n this.noFill();\n\n if (path instanceof Two.Texture) {\n this.texture = path;\n } else if (_.isString(path)) {\n this.texture = new Two.Texture(path);\n }\n\n this.origin = new Two.Vector();\n\n this._update();\n this.translation.set(ox || 0, oy || 0);\n\n if (_.isNumber(cols)) {\n this.columns = cols;\n }\n if (_.isNumber(rows)) {\n this.rows = rows;\n }\n if (_.isNumber(frameRate)) {\n this.frameRate = frameRate;\n }\n\n };\n\n _.extend(Sprite, {\n\n Properties: [\n 'texture', 'columns', 'rows', 'frameRate', 'index'\n ],\n\n MakeObservable: function(obj) {\n\n Rectangle.MakeObservable(obj);\n _.each(Sprite.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n })\n\n _.extend(Sprite.prototype, Rectangle.prototype, {\n\n _flagTexture: false,\n _flagColumns: false,\n _flagRows: false,\n _flagFrameRate: false,\n flagIndex: false,\n\n // Private variables\n _amount: 1,\n _duration: 0,\n _startTime: 0,\n _playing: false,\n _firstFrame: 0,\n _lastFrame: 0,\n _loop: true,\n\n // Exposed through getter-setter\n _texture: null,\n _columns: 1,\n _rows: 1,\n _frameRate: 0,\n _index: 0,\n _origin: null,\n\n constructor: Sprite,\n\n play: function(firstFrame, lastFrame, onLastFrame) {\n\n this._playing = true;\n this._firstFrame = 0;\n this._lastFrame = this.amount - 1;\n this._startTime = _.performance.now();\n\n if (_.isNumber(firstFrame)) {\n this._firstFrame = firstFrame;\n }\n if (_.isNumber(lastFrame)) {\n this._lastFrame = lastFrame;\n }\n if (_.isFunction(onLastFrame)) {\n this._onLastFrame = onLastFrame;\n } else {\n delete this._onLastFrame;\n }\n\n if (this._index !== this._firstFrame) {\n this._startTime -= 1000 * Math.abs(this._index - this._firstFrame)\n / this._frameRate;\n }\n\n return this;\n\n },\n\n pause: function() {\n\n this._playing = false;\n return this;\n\n },\n\n stop: function() {\n\n this._playing = false;\n this._index = 0;\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Sprite(\n this.texture, this.translation.x, this.translation.y,\n this.columns, this.rows, this.frameRate\n );\n\n if (this.playing) {\n clone.play(this._firstFrame, this._lastFrame);\n clone._loop = this._loop;\n }\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n _update: function() {\n\n var effect = this._texture;\n var cols = this._columns;\n var rows = this._rows;\n\n var width, height, elapsed, amount, duration;\n var index, iw, ih, isRange, frames;\n\n if (this._flagColumns || this._flagRows) {\n this._amount = this._columns * this._rows;\n }\n\n if (this._flagFrameRate) {\n this._duration = 1000 * this._amount / this._frameRate;\n }\n\n if (this._flagTexture) {\n this.fill = this._texture;\n }\n\n if (this._texture.loaded) {\n\n iw = effect.image.width;\n ih = effect.image.height;\n\n width = iw / cols;\n height = ih / rows;\n amount = this._amount;\n\n if (this.width !== width) {\n this.width = width;\n }\n if (this.height !== height) {\n this.height = height;\n }\n\n if (this._playing && this._frameRate > 0) {\n\n if (_.isNaN(this._lastFrame)) {\n this._lastFrame = amount - 1;\n }\n\n // TODO: Offload perf logic to instance of `Two`.\n elapsed = _.performance.now() - this._startTime;\n frames = this._lastFrame + 1;\n duration = 1000 * (frames - this._firstFrame) / this._frameRate;\n\n if (this._loop) {\n elapsed = elapsed % duration;\n } else {\n elapsed = Math.min(elapsed, duration);\n }\n\n index = _.lerp(this._firstFrame, frames, elapsed / duration);\n index = Math.floor(index);\n\n if (index !== this._index) {\n this._index = index;\n if (index >= this._lastFrame - 1 && this._onLastFrame) {\n this._onLastFrame(); // Shortcut for chainable sprite animations\n }\n }\n\n }\n\n var col = this._index % cols;\n var row = Math.floor(this._index / cols);\n\n var ox = - width * col + (iw - width) / 2;\n var oy = - height * row + (ih - height) / 2;\n\n // TODO: Improve performance\n if (ox !== effect.offset.x) {\n effect.offset.x = ox;\n }\n if (oy !== effect.offset.y) {\n effect.offset.y = oy;\n }\n\n }\n\n Rectangle.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagTexture = this._flagColumns = this._flagRows\n = this._flagFrameRate = false;\n\n Rectangle.prototype.flagReset.call(this);\n\n return this;\n }\n\n\n });\n\n Sprite.MakeObservable(Sprite.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n var Path = Two.Path;\n var Rectangle = Two.Rectangle;\n\n var ImageSequence = Two.ImageSequence = function(paths, ox, oy, frameRate) {\n\n Path.call(this, [\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor()\n ], true);\n\n this._renderer.flagTextures = _.bind(ImageSequence.FlagTextures, this);\n this._renderer.bindTextures = _.bind(ImageSequence.BindTextures, this);\n this._renderer.unbindTextures = _.bind(ImageSequence.UnbindTextures, this);\n\n this.noStroke();\n this.noFill();\n\n this.textures = _.map(paths, ImageSequence.GenerateTexture, this);\n this.origin = new Two.Vector();\n\n this._update();\n this.translation.set(ox || 0, oy || 0);\n\n if (_.isNumber(frameRate)) {\n this.frameRate = frameRate;\n } else {\n this.frameRate = ImageSequence.DefaultFrameRate;\n }\n\n };\n\n _.extend(ImageSequence, {\n\n Properties: [\n 'frameRate',\n 'index'\n ],\n\n DefaultFrameRate: 30,\n\n FlagTextures: function() {\n this._flagTextures = true;\n },\n\n BindTextures: function(items) {\n\n var i = items.length;\n while (i--) {\n items[i].bind(Two.Events.change, this._renderer.flagTextures);\n }\n\n this._renderer.flagTextures();\n\n },\n\n UnbindTextures: function(items) {\n\n var i = items.length;\n while (i--) {\n items[i].unbind(Two.Events.change, this._renderer.flagTextures);\n }\n\n this._renderer.flagTextures();\n\n },\n\n MakeObservable: function(obj) {\n\n Rectangle.MakeObservable(obj);\n _.each(ImageSequence.Properties, Two.Utils.defineProperty, obj);\n\n Object.defineProperty(obj, 'textures', {\n\n enumerable: true,\n\n get: function() {\n return this._textures;\n },\n\n set: function(textures) {\n\n var updateTextures = this._renderer.flagTextures;\n var bindTextures = this._renderer.bindTextures;\n var unbindTextures = this._renderer.unbindTextures;\n\n // Remove previous listeners\n if (this._textures) {\n this._textures\n .unbind(Two.Events.insert, bindTextures)\n .unbind(Two.Events.remove, unbindTextures);\n }\n\n // Create new Collection with copy of vertices\n this._textures = new Two.Utils.Collection((textures || []).slice(0));\n\n // Listen for Collection changes and bind / unbind\n this._textures\n .bind(Two.Events.insert, bindTextures)\n .bind(Two.Events.remove, unbindTextures);\n\n // Bind Initial Textures\n bindTextures(this._textures);\n\n }\n\n });\n\n },\n\n GenerateTexture: function(obj) {\n if (obj instanceof Two.Texture) {\n return obj;\n } else if (_.isString(obj)) {\n return new Two.Texture(obj);\n }\n }\n\n });\n\n _.extend(ImageSequence.prototype, Rectangle.prototype, {\n\n _flagTextures: false,\n _flagFrameRate: false,\n _flagIndex: false,\n\n // Private variables\n _amount: 1,\n _duration: 0,\n _index: 0,\n _startTime: 0,\n _playing: false,\n _firstFrame: 0,\n _lastFrame: 0,\n _loop: true,\n\n // Exposed through getter-setter\n _textures: null,\n _frameRate: 0,\n _origin: null,\n\n constructor: ImageSequence,\n\n play: function(firstFrame, lastFrame, onLastFrame) {\n\n this._playing = true;\n this._firstFrame = 0;\n this._lastFrame = this.amount - 1;\n this._startTime = _.performance.now();\n\n if (_.isNumber(firstFrame)) {\n this._firstFrame = firstFrame;\n }\n if (_.isNumber(lastFrame)) {\n this._lastFrame = lastFrame;\n }\n if (_.isFunction(onLastFrame)) {\n this._onLastFrame = onLastFrame;\n } else {\n delete this._onLastFrame;\n }\n\n if (this._index !== this._firstFrame) {\n this._startTime -= 1000 * Math.abs(this._index - this._firstFrame)\n / this._frameRate;\n }\n\n return this;\n\n },\n\n pause: function() {\n\n this._playing = false;\n return this;\n\n },\n\n stop: function() {\n\n this._playing = false;\n this._index = 0;\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new ImageSequence(this.textures, this.translation.x,\n this.translation.y, this.frameRate)\n\n clone._loop = this._loop;\n\n if (this._playing) {\n clone.play();\n }\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n _update: function() {\n\n var effects = this._textures;\n var width, height, elapsed, amount, duration, texture;\n var index, frames;\n\n if (this._flagTextures) {\n this._amount = effects.length;\n }\n\n if (this._flagFrameRate) {\n this._duration = 1000 * this._amount / this._frameRate;\n }\n\n if (this._playing && this._frameRate > 0) {\n\n amount = this._amount;\n\n if (_.isNaN(this._lastFrame)) {\n this._lastFrame = amount - 1;\n }\n\n // TODO: Offload perf logic to instance of `Two`.\n elapsed = _.performance.now() - this._startTime;\n frames = this._lastFrame + 1;\n duration = 1000 * (frames - this._firstFrame) / this._frameRate;\n\n if (this._loop) {\n elapsed = elapsed % duration;\n } else {\n elapsed = Math.min(elapsed, duration);\n }\n\n index = _.lerp(this._firstFrame, frames, elapsed / duration);\n index = Math.floor(index);\n\n if (index !== this._index) {\n\n this._index = index;\n texture = effects[this._index];\n\n if (texture.loaded) {\n\n width = texture.image.width;\n height = texture.image.height;\n\n if (this.width !== width) {\n this.width = width;\n }\n if (this.height !== height) {\n this.height = height;\n }\n\n this.fill = texture;\n\n if (index >= this._lastFrame - 1 && this._onLastFrame) {\n this._onLastFrame(); // Shortcut for chainable sprite animations\n }\n\n }\n\n }\n\n } else if (this._flagIndex || !(this.fill instanceof Two.Texture)) {\n\n texture = effects[this._index];\n\n if (texture.loaded) {\n\n width = texture.image.width;\n height = texture.image.height;\n\n if (this.width !== width) {\n this.width = width;\n }\n if (this.height !== height) {\n this.height = height;\n }\n\n }\n\n this.fill = texture;\n\n }\n\n Rectangle.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagTextures = this._flagFrameRate = false;\n Rectangle.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n ImageSequence.MakeObservable(ImageSequence.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Constants\n\n var min = Math.min, max = Math.max;\n var _ = Two.Utils;\n\n /**\n * @class\n * @name Two.Group.Children\n * @extends Two.Utils.Collection\n * @description A children collection which is accesible both by index and by object id\n */\n var Children = function() {\n\n Two.Utils.Collection.apply(this, arguments);\n\n Object.defineProperty(this, '_events', {\n value : {},\n enumerable: false\n });\n\n this.ids = {};\n\n this.on(Two.Events.insert, this.attach);\n this.on(Two.Events.remove, this.detach);\n Children.prototype.attach.apply(this, arguments);\n\n };\n\n Children.prototype = new Two.Utils.Collection();\n\n _.extend(Children.prototype, {\n\n constructor: Children,\n\n attach: function(children) {\n for (var i = 0; i < children.length; i++) {\n this.ids[children[i].id] = children[i];\n }\n return this;\n },\n\n detach: function(children) {\n for (var i = 0; i < children.length; i++) {\n delete this.ids[children[i].id];\n }\n return this;\n }\n\n });\n\n /**\n * @class\n * @name Two.Group\n */\n var Group = Two.Group = function(children) {\n\n Two.Shape.call(this, true);\n\n this._renderer.type = 'group';\n\n this.additions = [];\n this.subtractions = [];\n\n this.children = _.isArray(children) ? children : arguments;\n\n };\n\n _.extend(Group, {\n\n Children: Children,\n\n InsertChildren: function(children) {\n for (var i = 0; i < children.length; i++) {\n replaceParent.call(this, children[i], this);\n }\n },\n\n RemoveChildren: function(children) {\n for (var i = 0; i < children.length; i++) {\n replaceParent.call(this, children[i]);\n }\n },\n\n OrderChildren: function(children) {\n this._flagOrder = true;\n },\n\n Properties: [\n 'fill',\n 'stroke',\n 'linewidth',\n 'visible',\n 'cap',\n 'join',\n 'miter',\n ],\n\n MakeObservable: function(object) {\n\n var properties = Two.Group.Properties;\n\n Object.defineProperty(object, 'opacity', {\n\n enumerable: true,\n\n get: function() {\n return this._opacity;\n },\n\n set: function(v) {\n this._flagOpacity = this._opacity !== v;\n this._opacity = v;\n }\n\n });\n\n Object.defineProperty(object, 'className', {\n\n enumerable: true,\n\n get: function() {\n return this._className;\n },\n\n set: function(v) {\n this._flagClassName = this._className !== v;\n this._className = v;\n }\n\n });\n\n Object.defineProperty(object, 'beginning', {\n\n enumerable: true,\n\n get: function() {\n return this._beginning;\n },\n\n set: function(v) {\n this._flagBeginning = this._beginning !== v;\n this._beginning = v;\n }\n\n });\n\n Object.defineProperty(object, 'ending', {\n\n enumerable: true,\n\n get: function() {\n return this._ending;\n },\n\n set: function(v) {\n this._flagEnding = this._ending !== v;\n this._ending = v;\n }\n\n });\n\n Object.defineProperty(object, 'length', {\n\n enumerable: true,\n\n get: function() {\n if (this._flagLength || this._length <= 0) {\n this._length = 0;\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n this._length += child.length;\n }\n }\n return this._length;\n }\n\n });\n\n Two.Shape.MakeObservable(object);\n Group.MakeGetterSetters(object, properties);\n\n Object.defineProperty(object, 'children', {\n\n enumerable: true,\n\n get: function() {\n return this._children;\n },\n\n set: function(children) {\n\n var insertChildren = _.bind(Group.InsertChildren, this);\n var removeChildren = _.bind(Group.RemoveChildren, this);\n var orderChildren = _.bind(Group.OrderChildren, this);\n\n if (this._children) {\n this._children.unbind();\n }\n\n this._children = new Children(children);\n this._children.bind(Two.Events.insert, insertChildren);\n this._children.bind(Two.Events.remove, removeChildren);\n this._children.bind(Two.Events.order, orderChildren);\n\n }\n\n });\n\n Object.defineProperty(object, 'mask', {\n\n enumerable: true,\n\n get: function() {\n return this._mask;\n },\n\n set: function(v) {\n this._mask = v;\n this._flagMask = true;\n if (!v.clip) {\n v.clip = true;\n }\n }\n\n });\n\n },\n\n MakeGetterSetters: function(group, properties) {\n\n if (!_.isArray(properties)) {\n properties = [properties];\n }\n\n _.each(properties, function(k) {\n Group.MakeGetterSetter(group, k);\n });\n\n },\n\n MakeGetterSetter: function(group, k) {\n\n var secret = '_' + k;\n\n Object.defineProperty(group, k, {\n\n enumerable: true,\n\n get: function() {\n return this[secret];\n },\n\n set: function(v) {\n this[secret] = v;\n _.each(this.children, function(child) { // Trickle down styles\n child[k] = v;\n });\n }\n\n });\n\n }\n\n });\n\n _.extend(Group.prototype, Two.Shape.prototype, {\n\n // Flags\n // http://en.wikipedia.org/wiki/Flag\n\n _flagAdditions: false,\n _flagSubtractions: false,\n _flagOrder: false,\n _flagOpacity: true,\n _flagClassName: false,\n _flagBeginning: false,\n _flagEnding: false,\n\n _flagLength: false,\n _flagMask: false,\n\n // Underlying Properties\n\n _fill: '#fff',\n _stroke: '#000',\n _linewidth: 1.0,\n _opacity: 1.0,\n _className: '',\n _visible: true,\n\n _cap: 'round',\n _join: 'round',\n _miter: 4,\n\n _closed: true,\n _curved: false,\n _automatic: true,\n _beginning: 0,\n _ending: 1.0,\n\n _length: 0,\n _mask: null,\n\n constructor: Group,\n\n // /**\n // * TODO: Group has a gotcha in that it's at the moment required to be bound to\n // * an instance of two in order to add elements correctly. This needs to\n // * be rethought and fixed.\n // */\n clone: function(parent) {\n\n var group = new Group();\n var children = _.map(this.children, function(child) {\n return child.clone();\n });\n\n group.add(children);\n\n group.opacity = this.opacity;\n\n if (this.mask) {\n group.mask = this.mask;\n }\n\n group.translation.copy(this.translation);\n group.rotation = this.rotation;\n group.scale = this.scale;\n group.className = this.className;\n\n if (parent) {\n parent.add(group);\n }\n\n return group._update();\n\n },\n\n // /**\n // * Export the data from the instance of Two.Group into a plain JavaScript\n // * object. This also makes all children plain JavaScript objects. Great\n // * for turning into JSON and storing in a database.\n // */\n toObject: function() {\n\n var result = {\n children: [],\n translation: this.translation.toObject(),\n rotation: this.rotation,\n scale: this.scale instanceof Two.Vector ? this.scale.toObject() : this.scale,\n opacity: this.opacity,\n className: this.className,\n mask: (this.mask ? this.mask.toObject() : null)\n };\n\n _.each(this.children, function(child, i) {\n result.children[i] = child.toObject();\n }, this);\n\n return result;\n\n },\n\n // /**\n // * Anchor all children to the upper left hand corner\n // * of the group.\n // */\n corner: function() {\n\n var rect = this.getBoundingClientRect(true),\n corner = { x: rect.left, y: rect.top };\n\n this.children.forEach(function(child) {\n child.translation.sub(corner);\n });\n\n return this;\n\n },\n\n // /**\n // * Anchors all children around the center of the group,\n // * effectively placing the shape around the unit circle.\n // */\n center: function() {\n\n var rect = this.getBoundingClientRect(true);\n\n rect.centroid = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n };\n\n this.children.forEach(function(child) {\n if (child.isShape) {\n child.translation.sub(rect.centroid);\n }\n });\n\n // this.translation.copy(rect.centroid);\n\n return this;\n\n },\n\n // /**\n // * Recursively search for id. Returns the first element found.\n // * Returns null if none found.\n // */\n getById: function (id) {\n var search = function (node, id) {\n if (node.id === id) {\n return node;\n } else if (node.children) {\n var i = node.children.length;\n while (i--) {\n var found = search(node.children[i], id);\n if (found) return found;\n }\n }\n\n };\n return search(this, id) || null;\n },\n\n // /**\n // * Recursively search for classes. Returns an array of matching elements.\n // * Empty array if none found.\n // */\n getByClassName: function (cl) {\n var found = [];\n var search = function (node, cl) {\n if (node.classList.indexOf(cl) != -1) {\n found.push(node);\n } else if (node.children) {\n node.children.forEach(function (child) {\n search(child, cl);\n });\n }\n return found;\n };\n return search(this, cl);\n },\n\n // /**\n // * Recursively search for children of a specific type,\n // * e.g. Two.Polygon. Pass a reference to this type as the param.\n // * Returns an empty array if none found.\n // */\n getByType: function(type) {\n var found = [];\n var search = function (node, type) {\n for (var id in node.children) {\n if (node.children[id] instanceof type) {\n found.push(node.children[id]);\n } else if (node.children[id] instanceof Two.Group) {\n search(node.children[id], type);\n }\n }\n return found;\n };\n return search(this, type);\n },\n\n // /**\n // * Add objects to the group.\n // */\n add: function(objects) {\n\n // Allow to pass multiple objects either as array or as multiple arguments\n // If it's an array also create copy of it in case we're getting passed\n // a childrens array directly.\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n } else {\n objects = objects.slice();\n }\n\n // Add the objects\n for (var i = 0; i < objects.length; i++) {\n if (!(objects[i] && objects[i].id)) continue;\n this.children.push(objects[i]);\n }\n\n return this;\n\n },\n\n // /**\n // * Remove objects from the group.\n // */\n remove: function(objects) {\n\n var l = arguments.length,\n grandparent = this.parent;\n\n // Allow to call remove without arguments\n // This will detach the object from its own parent.\n if (l <= 0 && grandparent) {\n grandparent.remove(this);\n return this;\n }\n\n // Allow to pass multiple objects either as array or as multiple arguments\n // If it's an array also create copy of it in case we're getting passed\n // a childrens array directly.\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n } else {\n objects = objects.slice();\n }\n\n // Remove the objects\n for (var i = 0; i < objects.length; i++) {\n if (!objects[i] || !(this.children.ids[objects[i].id])) continue;\n this.children.splice(_.indexOf(this.children, objects[i]), 1);\n }\n\n return this;\n\n },\n\n // /**\n // * Return an object with top, left, right, bottom, width, and height\n // * parameters of the group.\n // */\n getBoundingClientRect: function(shallow) {\n var rect;\n\n // TODO: Update this to not __always__ update. Just when it needs to.\n this._update(true);\n\n // Variables need to be defined here, because of nested nature of groups.\n var left = Infinity, right = -Infinity,\n top = Infinity, bottom = -Infinity;\n\n var regex = Two.Texture.RegularExpressions.effect;\n\n for (var i = 0; i < this.children.length; i++) {\n\n var child = this.children[i];\n\n if (!child.visible || regex.test(child._renderer.type)) {\n continue;\n }\n\n rect = child.getBoundingClientRect(shallow);\n\n if (!_.isNumber(rect.top) || !_.isNumber(rect.left) ||\n !_.isNumber(rect.right) || !_.isNumber(rect.bottom)) {\n continue;\n }\n\n top = min(rect.top, top);\n left = min(rect.left, left);\n right = max(rect.right, right);\n bottom = max(rect.bottom, bottom);\n\n }\n\n return {\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n width: right - left,\n height: bottom - top\n };\n\n },\n\n // /**\n // * Trickle down of noFill\n // */\n noFill: function() {\n this.children.forEach(function(child) {\n child.noFill();\n });\n return this;\n },\n\n // /**\n // * Trickle down of noStroke\n // */\n noStroke: function() {\n this.children.forEach(function(child) {\n child.noStroke();\n });\n return this;\n },\n\n // /**\n // * Trickle down subdivide\n // */\n subdivide: function() {\n var args = arguments;\n this.children.forEach(function(child) {\n child.subdivide.apply(child, args);\n });\n return this;\n },\n\n _update: function() {\n\n if (this._flagBeginning || this._flagEnding) {\n\n var beginning = Math.min(this._beginning, this._ending);\n var ending = Math.max(this._beginning, this._ending);\n var length = this.length;\n var sum = 0;\n\n var bd = beginning * length;\n var ed = ending * length;\n var distance = (ed - bd);\n\n for (var i = 0; i < this.children.length; i++) {\n\n var child = this.children[i];\n var l = child.length;\n\n if (bd > sum + l) {\n child.beginning = 1;\n child.ending = 1;\n } else if (ed < sum) {\n child.beginning = 0;\n child.ending = 0;\n } else if (bd > sum && bd < sum + l) {\n child.beginning = (bd - sum) / l;\n child.ending = 1;\n } else if (ed > sum && ed < sum + l) {\n child.beginning = 0;\n child.ending = (ed - sum) / l;\n } else {\n child.beginning = 0;\n child.ending = 1;\n }\n\n sum += l;\n\n }\n\n }\n\n return Two.Shape.prototype._update.apply(this, arguments);\n\n },\n\n flagReset: function() {\n\n if (this._flagAdditions) {\n this.additions.length = 0;\n this._flagAdditions = false;\n }\n\n if (this._flagSubtractions) {\n this.subtractions.length = 0;\n this._flagSubtractions = false;\n }\n\n this._flagOrder = this._flagMask = this._flagOpacity = this._flagClassName\n this._flagBeginning = this._flagEnding = false;\n\n Two.Shape.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n Group.MakeObservable(Group.prototype);\n\n // /**\n // * Helper function used to sync parent-child relationship within the\n // * `Two.Group.children` object.\n // *\n // * Set the parent of the passed object to another object\n // * and updates parent-child relationships\n // * Calling with one arguments will simply remove the parenting\n // */\n function replaceParent(child, newParent) {\n\n var parent = child.parent;\n var index;\n\n if (parent === newParent) {\n this.additions.push(child);\n this._flagAdditions = true;\n return;\n }\n\n if (parent && parent.children.ids[child.id]) {\n\n index = _.indexOf(parent.children, child);\n parent.children.splice(index, 1);\n\n // If we're passing from one parent to another...\n index = _.indexOf(parent.additions, child);\n\n if (index >= 0) {\n parent.additions.splice(index, 1);\n } else {\n parent.subtractions.push(child);\n parent._flagSubtractions = true;\n }\n\n }\n\n if (newParent) {\n child.parent = newParent;\n this.additions.push(child);\n this._flagAdditions = true;\n return;\n }\n\n // If we're passing from one parent to another...\n index = _.indexOf(this.additions, child);\n\n if (index >= 0) {\n this.additions.splice(index, 1);\n } else {\n this.subtractions.push(child);\n this._flagSubtractions = true;\n }\n\n delete child.parent;\n\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n\nexport default (this || window).Two;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","// Pressure v2.1.2 | Created By Stuart Yamartino | MIT License | 2015 - 2017\n!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?module.exports=t():e.Pressure=t()}(this,function(){\"use strict\";function e(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function t(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},i=function(){function e(e,t){for(var s=0;s=.5?this._startDeepPress(t):this._endDeepPress()}},{key:\"runPolyfill\",value:function(e){this.increment=0===d.get(\"polyfillSpeedUp\",this.options)?1:10/d.get(\"polyfillSpeedUp\",this.options),this.decrement=0===d.get(\"polyfillSpeedDown\",this.options)?1:10/d.get(\"polyfillSpeedDown\",this.options),this.setPressed(!0),this.runClosure(\"start\",e),this.runningPolyfill===!1&&this.loopPolyfillForce(0,e)}},{key:\"loopPolyfillForce\",value:function(e,t){this.nativeSupport===!1&&(this.isPressed()?(this.runningPolyfill=!0,e=e+this.increment>1?1:e+this.increment,this.runClosure(\"change\",e,t),this.deepPress(e,t),setTimeout(this.loopPolyfillForce.bind(this,e,t),10)):(e=e-this.decrement<0?0:e-this.decrement,e<.5&&this.isDeepPressed()&&(this.setDeepPressed(!1),this.runClosure(\"endDeepPress\")),0===e?(this.runningPolyfill=!1,this.setPressed(!0),this._endPress()):(this.runClosure(\"change\",e,t),this.deepPress(e,t),setTimeout(this.loopPolyfillForce.bind(this,e,t),10))))}}]),e}(),h=function(n){function o(t,n,i){return s(this,o),e(this,(o.__proto__||Object.getPrototypeOf(o)).call(this,t,n,i))}return t(o,n),i(o,[{key:\"bindEvents\",value:function(){this.add(\"webkitmouseforcewillbegin\",this._startPress.bind(this)),this.add(\"mousedown\",this.support.bind(this)),this.add(\"webkitmouseforcechanged\",this.change.bind(this)),this.add(\"webkitmouseforcedown\",this._startDeepPress.bind(this)),this.add(\"webkitmouseforceup\",this._endDeepPress.bind(this)),this.add(\"mouseleave\",this._endPress.bind(this)),this.add(\"mouseup\",this._endPress.bind(this))}},{key:\"support\",value:function(e){this.isPressed()===!1&&this.fail(e,this.runKey)}},{key:\"change\",value:function(e){this.isPressed()&&e.webkitForce>0&&this._changePress(this.normalizeForce(e.webkitForce),e)}},{key:\"normalizeForce\",value:function(e){return this.reachOne(f(e,1,3,0,1))}},{key:\"reachOne\",value:function(e){return e>.995?1:e}}]),o}(u),l=function(n){function o(t,n,i){return s(this,o),e(this,(o.__proto__||Object.getPrototypeOf(o)).call(this,t,n,i))}return t(o,n),i(o,[{key:\"bindEvents\",value:function(){g?(this.add(\"touchforcechange\",this.start.bind(this)),this.add(\"touchstart\",this.support.bind(this,0)),this.add(\"touchend\",this._endPress.bind(this))):(this.add(\"touchstart\",this.startLegacy.bind(this)),this.add(\"touchend\",this._endPress.bind(this)))}},{key:\"start\",value:function(e){e.touches.length>0&&(this._startPress(e),this.touch=this.selectTouch(e),this.touch&&this._changePress(this.touch.force,e))}},{key:\"support\",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.runKey;this.isPressed()===!1&&(e<=6?(e++,setTimeout(this.support.bind(this,e,t,s),10)):this.fail(t,s))}},{key:\"startLegacy\",value:function(e){this.initialForce=e.touches[0].force,this.supportLegacy(0,e,this.runKey,this.initialForce)}},{key:\"supportLegacy\",value:function(e,t,s,n){n!==this.initialForce?(this._startPress(t),this.loopForce(t)):e<=6?(e++,setTimeout(this.supportLegacy.bind(this,e,t,s,n),10)):this.fail(t,s)}},{key:\"loopForce\",value:function(e){this.isPressed()&&(this.touch=this.selectTouch(e),setTimeout(this.loopForce.bind(this,e),10),this._changePress(this.touch.force,e))}},{key:\"selectTouch\",value:function(e){if(1===e.touches.length)return this.returnTouch(e.touches[0],e);for(var t=0;t1?this.fail(e,this.runKey):(this._startPress(e),this._changePress(e.pressure,e)))}},{key:\"change\",value:function(e){this.isPressed()&&e.pressure>0&&.5!==e.pressure&&(this._changePress(e.pressure,e),this.deepPress(e.pressure,e))}}]),o}(u),d={polyfill:!0,polyfillSpeedUp:1e3,polyfillSpeedDown:0,preventSelect:!0,only:null,get:function(e,t){return t.hasOwnProperty(e)?t[e]:this[e]},set:function(e){for(var t in e)e.hasOwnProperty(t)&&this.hasOwnProperty(t)&&\"get\"!=t&&\"set\"!=t&&(this[t]=e[t])}},a=function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(\"string\"==typeof e||e instanceof String)for(var n=document.querySelectorAll(e),i=0;iP.length&&P.push(a)}\nfunction S(a,b,d,c){var e=typeof a;if(\"undefined\"===e||\"boolean\"===e)a=null;var g=!1;if(null===a)g=!0;else switch(e){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return d(c,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;hthis.eventPool.length&&this.eventPool.push(a)}\nfunction hb(a){a.eventPool=[];a.getPooled=ib;a.release=jb}var kb=y.extend({data:null}),lb=y.extend({data:null}),mb=[9,13,27,32],nb=Ra&&\"CompositionEvent\"in window,ob=null;Ra&&\"documentMode\"in document&&(ob=document.documentMode);\nvar pb=Ra&&\"TextEvent\"in window&&!ob,qb=Ra&&(!nb||ob&&8=ob),rb=String.fromCharCode(32),sb={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},tb=!1;\nfunction ub(a,b){switch(a){case \"keyup\":return-1!==mb.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function vb(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var wb=!1;function xb(a,b){switch(a){case \"compositionend\":return vb(b);case \"keypress\":if(32!==b.which)return null;tb=!0;return rb;case \"textInput\":return a=b.data,a===rb&&tb?null:a;default:return null}}\nfunction yb(a,b){if(wb)return\"compositionend\"===a||!nb&&ub(a,b)?(a=eb(),db=cb=bb=null,wb=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1b}return!1}function C(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new C(a,0,!1,a,null)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new C(b,1,!1,a[1],null)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new C(a,2,!1,a.toLowerCase(),null)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new C(a,2,!1,a,null)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new C(a,3,!1,a.toLowerCase(),null)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new C(a,3,!0,a,null)});\n[\"capture\",\"download\"].forEach(function(a){D[a]=new C(a,4,!1,a,null)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new C(a,6,!1,a,null)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new C(a,5,!1,a.toLowerCase(),null)});var rc=/[\\-:]([a-z])/g;function sc(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(rc,\nsc);D[b]=new C(b,1,!1,a,null)});\"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(rc,sc);D[b]=new C(b,1,!1,a,\"http://www.w3.org/1999/xlink\")});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(rc,sc);D[b]=new C(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\")});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new C(a,1,!1,a.toLowerCase(),null)});\nfunction tc(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2zd.length&&zd.push(a)}}}var Fd={},Gd=0,Hd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);\nfunction Id(a){Object.prototype.hasOwnProperty.call(a,Hd)||(a[Hd]=Gd++,Fd[a[Hd]]={});return Fd[a[Hd]]}function Jd(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Kd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ld(a,b){var c=Kd(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Kd(c)}}function Md(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Md(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Nd(){for(var a=window,b=Jd();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Jd(a.document)}return b}function Od(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Pd(){var a=Nd();if(Od(a)){if(\"selectionStart\"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{b=(b=a.ownerDocument)&&b.defaultView||window;var c=b.getSelection&&b.getSelection();if(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(A){b=null;break a}var f=0,g=-1,h=-1,l=0,k=0,m=a,p=null;b:for(;;){for(var t;;){m!==b||0!==d&&3!==m.nodeType||(g=f+d);m!==e||0!==c&&3!==m.nodeType||(h=f+c);3===m.nodeType&&(f+=m.nodeValue.length);\nif(null===(t=m.firstChild))break;p=m;m=t}for(;;){if(m===a)break b;p===b&&++l===d&&(g=f);p===e&&++k===c&&(h=f);if(null!==(t=m.nextSibling))break;m=p;p=m.parentNode}m=t}b=-1===g||-1===h?null:{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;return{focusedElem:a,selectionRange:b}}\nfunction Qd(a){var b=Nd(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Md(c.ownerDocument.documentElement,c)){if(null!==d&&Od(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ld(c,f);var g=Ld(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Sd={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},Td=null,Ud=null,Vd=null,Wd=!1;\nfunction Xd(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(Wd||null==Td||Td!==Jd(c))return null;c=Td;\"selectionStart\"in c&&Od(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return Vd&&dd(Vd,c)?null:(Vd=c,a=y.getPooled(Sd.select,Ud,a,b),a.type=\"select\",a.target=Td,Qa(a),a)}\nvar Yd={eventTypes:Sd,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Id(e);f=sa.onSelect;for(var g=0;g=b.length?void 0:x(\"93\"),b=b[0]),c=b),null==c&&(c=\"\"));a._wrapperState={initialValue:uc(c)}}\nfunction de(a,b){var c=uc(b.value),d=uc(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function ee(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var fe={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction ge(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function he(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?ge(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ie=void 0,je=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==fe.svg||\"innerHTML\"in a)a.innerHTML=b;else{ie=ie||document.createElement(\"div\");ie.innerHTML=\"\"+b+\"\";for(b=ie.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ke(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar le={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(le).forEach(function(a){me.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);le[b]=le[a]})});function ne(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||le.hasOwnProperty(a)&&le[a]?(\"\"+b).trim():b+\"px\"}\nfunction oe(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ne(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var pe=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction qe(a,b){b&&(pe[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?x(\"137\",a,\"\"):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?x(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:x(\"61\")),null!=b.style&&\"object\"!==typeof b.style?x(\"62\",\"\"):void 0)}\nfunction re(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}\nfunction se(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Id(a);b=sa[b];for(var d=0;dGe||(a.current=Fe[Ge],Fe[Ge]=null,Ge--)}function G(a,b){Ge++;Fe[Ge]=a.current;a.current=b}var He={},H={current:He},I={current:!1},Ie=He;\nfunction Je(a,b){var c=a.type.contextTypes;if(!c)return He;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function J(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Ke(a){F(I,a);F(H,a)}function Le(a){F(I,a);F(H,a)}\nfunction Me(a,b,c){H.current!==He?x(\"168\"):void 0;G(H,b,a);G(I,c,a)}function Ne(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0:x(\"108\",ic(b)||\"Unknown\",e);return n({},c,d)}function Oe(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||He;Ie=H.current;G(H,b,a);G(I,I.current,a);return!0}\nfunction Pe(a,b,c){var d=a.stateNode;d?void 0:x(\"169\");c?(b=Ne(a,b,Ie),d.__reactInternalMemoizedMergedChildContext=b,F(I,a),F(H,a),G(H,b,a)):F(I,a);G(I,c,a)}var Qe=null,Re=null;function Se(a){return function(b){try{return a(b)}catch(c){}}}\nfunction Te(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Qe=Se(function(a){return b.onCommitFiberRoot(c,a)});Re=Se(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}\nfunction Ue(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function K(a,b,c,d){return new Ue(a,b,c,d)}\nfunction Ve(a){a=a.prototype;return!(!a||!a.isReactComponent)}function We(a){if(\"function\"===typeof a)return Ve(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===cc)return 11;if(a===ec)return 14}return 2}\nfunction Xe(a,b){var c=a.alternate;null===c?(c=K(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.contextDependencies=a.contextDependencies;c.sibling=a.sibling;\nc.index=a.index;c.ref=a.ref;return c}\nfunction Ye(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Ve(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case Xb:return Ze(c.children,e,f,b);case bc:return $e(c,e|3,f,b);case Yb:return $e(c,e|2,f,b);case Zb:return a=K(12,c,b,e|4),a.elementType=Zb,a.type=Zb,a.expirationTime=f,a;case dc:return a=K(13,c,b,e),a.elementType=dc,a.type=dc,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case $b:g=10;break a;case ac:g=9;break a;case cc:g=11;break a;case ec:g=\n14;break a;case fc:g=16;d=null;break a}x(\"130\",null==a?a:typeof a,\"\")}b=K(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Ze(a,b,c,d){a=K(7,a,d,b);a.expirationTime=c;return a}function $e(a,b,c,d){a=K(8,a,d,b);b=0===(b&1)?Yb:bc;a.elementType=b;a.type=b;a.expirationTime=c;return a}function af(a,b,c){a=K(6,a,null,b);a.expirationTime=c;return a}\nfunction bf(a,b,c){b=K(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function cf(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:cb&&(a.latestPendingTime=b);df(b,a)}\nfunction ef(a,b){a.didError=!1;if(0===b)a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=0;else{bb?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>b&&(a.earliestPendingTime=a.latestPendingTime));c=a.earliestSuspendedTime;0===c?cf(a,b):bc&&cf(a,b)}df(0,a)}function ff(a,b){a.didError=!1;a.latestPingedTime>=b&&(a.latestPingedTime=0);var c=a.earliestPendingTime,d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c);c=a.earliestSuspendedTime;d=a.latestSuspendedTime;0===c?a.earliestSuspendedTime=a.latestSuspendedTime=b:cb&&(a.latestSuspendedTime=b);df(b,a)}\nfunction gf(a,b){var c=a.earliestPendingTime;a=a.earliestSuspendedTime;c>b&&(b=c);a>b&&(b=a);return b}function df(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f;0===e&&(0===a||da&&(a=c);b.nextExpirationTimeToWorkOn=e;b.expirationTime=a}function L(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}\nfunction hf(a){var b=a._result;switch(a._status){case 1:return b;case 2:throw b;case 0:throw b;default:a._status=0;b=a._ctor;b=b();b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)});switch(a._status){case 1:return a._result;case 2:throw a._result;}a._result=b;throw b;}}var jf=(new aa.Component).refs;\nfunction kf(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;d=a.updateQueue;null!==d&&0===a.expirationTime&&(d.baseState=c)}\nvar tf={isMounted:function(a){return(a=a._reactInternalFiber)?2===ed(a):!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=lf();d=mf(d,a);var e=nf(d);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);of();pf(a,e);qf(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=lf();d=mf(d,a);var e=nf(d);e.tag=rf;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);of();pf(a,e);qf(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=lf();c=mf(c,a);var d=nf(c);d.tag=\nsf;void 0!==b&&null!==b&&(d.callback=b);of();pf(a,d);qf(a,c)}};function uf(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!dd(c,d)||!dd(e,f):!0}\nfunction vf(a,b,c){var d=!1,e=He;var f=b.contextType;\"object\"===typeof f&&null!==f?f=M(f):(e=J(b)?Ie:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Je(a,e):He);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=tf;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction wf(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&tf.enqueueReplaceState(b,b.state,null)}\nfunction xf(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jf;var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=M(f):(f=J(b)?Ie:H.current,e.context=Je(a,f));f=a.updateQueue;null!==f&&(yf(a,f,c,e,d),e.state=a.memoizedState);f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kf(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==\ntypeof e.componentWillMount||(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&tf.enqueueReplaceState(e,e.state,null),f=a.updateQueue,null!==f&&(yf(a,f,c,e,d),e.state=a.memoizedState));\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var zf=Array.isArray;\nfunction Af(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;var d=void 0;c&&(1!==c.tag?x(\"309\"):void 0,d=c.stateNode);d?void 0:x(\"147\",a);var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===jf&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}\"string\"!==typeof a?x(\"284\"):void 0;c._owner?void 0:x(\"290\",a)}return a}\nfunction Bf(a,b){\"textarea\"!==a.type&&x(\"31\",\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\")}\nfunction Cf(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=Xe(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,du?(B=q,q=null):B=q.sibling;var w=t(e,q,h[u],k);if(null===w){null===q&&(q=B);break}a&&\nq&&null===w.alternate&&b(e,q);g=f(w,g,u);null===m?l=w:m.sibling=w;m=w;q=B}if(u===h.length)return c(e,q),l;if(null===q){for(;uu?(B=q,q=null):B=q.sibling;var v=t(e,q,w.value,k);if(null===v){q||(q=B);break}a&&q&&null===v.alternate&&b(e,q);g=f(v,g,u);null===m?l=v:m.sibling=v;m=v;q=B}if(w.done)return c(e,q),l;if(null===q){for(;!w.done;u++,w=h.next())w=p(e,w.value,k),null!==w&&(g=f(w,g,u),null===m?l=w:m.sibling=w,m=w);return l}for(q=d(e,q);!w.done;u++,w=h.next())w=A(q,e,u,w.value,k),null!==w&&(a&&null!==w.alternate&&q.delete(null===w.key?u:\nw.key),g=f(w,g,u),null===m?l=w:m.sibling=w,m=w);a&&q.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===Xb&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Vb:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Xb:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Xb?f.props.children:f.props,h);d.ref=Af(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,k);k=\nk.sibling}f.type===Xb?(d=Ze(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ye(f.type,f.key,f.props,null,a.mode,h),h.ref=Af(a,d,f),h.return=a,a=h)}return g(a);case Wb:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=bf(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\n\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=af(f,a.mode,h),d.return=a,a=d),g(a);if(zf(f))return v(a,d,f,h);if(hc(f))return R(a,d,f,h);l&&Bf(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,x(\"152\",h.displayName||h.name||\"Component\")}return c(a,d)}}var Df=Cf(!0),Ef=Cf(!1),Ff={},N={current:Ff},Gf={current:Ff},Hf={current:Ff};function If(a){a===Ff?x(\"174\"):void 0;return a}\nfunction Jf(a,b){G(Hf,b,a);G(Gf,a,a);G(N,Ff,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:he(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=he(b,c)}F(N,a);G(N,b,a)}function Kf(a){F(N,a);F(Gf,a);F(Hf,a)}function Lf(a){If(Hf.current);var b=If(N.current);var c=he(b,a.type);b!==c&&(G(Gf,a,a),G(N,c,a))}function Mf(a){Gf.current===a&&(F(N,a),F(Gf,a))}\nvar Nf=0,Of=2,Pf=4,Qf=8,Rf=16,Sf=32,Tf=64,Uf=128,Vf=Tb.ReactCurrentDispatcher,Wf=0,Xf=null,O=null,P=null,Yf=null,Q=null,Zf=null,$f=0,ag=null,bg=0,cg=!1,dg=null,eg=0;function fg(){x(\"321\")}function gg(a,b){if(null===b)return!1;for(var c=0;c$f&&($f=m)):f=l.eagerReducer===a?l.eagerState:a(f,l.action);g=l;l=l.next}while(null!==l&&l!==d);k||(h=g,e=f);bd(f,b.memoizedState)||(qg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction rg(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===ag?(ag={lastEffect:null},ag.lastEffect=a.next=a):(b=ag.lastEffect,null===b?ag.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,ag.lastEffect=a));return a}function sg(a,b,c,d){var e=mg();bg|=a;e.memoizedState=rg(b,c,void 0,void 0===d?null:d)}\nfunction tg(a,b,c,d){var e=ng();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&gg(d,g.deps)){rg(Nf,c,f,d);return}}bg|=a;e.memoizedState=rg(b,c,f,d)}function ug(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function vg(){}\nfunction wg(a,b,c){25>eg?void 0:x(\"301\");var d=a.alternate;if(a===Xf||null!==d&&d===Xf)if(cg=!0,a={expirationTime:Wf,action:c,eagerReducer:null,eagerState:null,next:null},null===dg&&(dg=new Map),c=dg.get(b),void 0===c)dg.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{of();var e=lf();e=mf(e,a);var f={expirationTime:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===\nd||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var l=b.lastRenderedState,k=d(l,c);f.eagerReducer=d;f.eagerState=k;if(bd(k,l))return}catch(m){}finally{}qf(a,e)}}\nvar kg={readContext:M,useCallback:fg,useContext:fg,useEffect:fg,useImperativeHandle:fg,useLayoutEffect:fg,useMemo:fg,useReducer:fg,useRef:fg,useState:fg,useDebugValue:fg},ig={readContext:M,useCallback:function(a,b){mg().memoizedState=[a,void 0===b?null:b];return a},useContext:M,useEffect:function(a,b){return sg(516,Uf|Tf,a,b)},useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return sg(4,Pf|Sf,ug.bind(null,b,a),c)},useLayoutEffect:function(a,b){return sg(4,Pf|Sf,a,b)},\nuseMemo:function(a,b){var c=mg();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=mg();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=wg.bind(null,Xf,a);return[d.memoizedState,a]},useRef:function(a){var b=mg();a={current:a};return b.memoizedState=a},useState:function(a){var b=mg();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,\nlastRenderedReducer:og,lastRenderedState:a};a=a.dispatch=wg.bind(null,Xf,a);return[b.memoizedState,a]},useDebugValue:vg},jg={readContext:M,useCallback:function(a,b){var c=ng();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&gg(b,d[1]))return d[0];c.memoizedState=[a,b];return a},useContext:M,useEffect:function(a,b){return tg(516,Uf|Tf,a,b)},useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return tg(4,Pf|Sf,ug.bind(null,b,a),c)},useLayoutEffect:function(a,\nb){return tg(4,Pf|Sf,a,b)},useMemo:function(a,b){var c=ng();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&gg(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:pg,useRef:function(){return ng().memoizedState},useState:function(a){return pg(og,a)},useDebugValue:vg},xg=null,yg=null,zg=!1;\nfunction Ag(a,b){var c=K(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function Bg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction Cg(a){if(zg){var b=yg;if(b){var c=b;if(!Bg(a,b)){b=De(c);if(!b||!Bg(a,b)){a.effectTag|=2;zg=!1;xg=a;return}Ag(xg,c)}xg=a;yg=Ee(b)}else a.effectTag|=2,zg=!1,xg=a}}function Dg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&18!==a.tag;)a=a.return;xg=a}function Eg(a){if(a!==xg)return!1;if(!zg)return Dg(a),zg=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!xe(b,a.memoizedProps))for(b=yg;b;)Ag(a,b),b=De(b);Dg(a);yg=xg?De(a.stateNode):null;return!0}function Fg(){yg=xg=null;zg=!1}\nvar Gg=Tb.ReactCurrentOwner,qg=!1;function S(a,b,c,d){b.child=null===a?Ef(b,null,c,d):Df(b,a.child,c,d)}function Hg(a,b,c,d,e){c=c.render;var f=b.ref;Ig(b,e);d=hg(a,b,c,d,f,e);if(null!==a&&!qg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),Jg(a,b,e);b.effectTag|=1;S(a,b,d,e);return b.child}\nfunction Kg(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Ve(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,Lg(a,b,g,d,e,f);a=Ye(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e=c)return Sg(a,b,c);b=Jg(a,b,c);return null!==b?b.sibling:null}}return Jg(a,b,c)}}else qg=!1;b.expirationTime=0;switch(b.tag){case 2:d=\nb.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Je(b,H.current);Ig(b,c);e=hg(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;lg();if(J(d)){var f=!0;Oe(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&kf(b,d,g,a);e.updater=tf;b.stateNode=e;e._reactInternalFiber=b;xf(b,d,a,c);b=Qg(null,b,d,!0,f,\nc)}else b.tag=0,S(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=hf(e);b.type=a;e=b.tag=We(a);f=L(a,f);g=void 0;switch(e){case 0:g=Mg(null,b,a,f,c);break;case 1:g=Og(null,b,a,f,c);break;case 11:g=Hg(null,b,a,f,c);break;case 14:g=Kg(null,b,a,L(a.type,f),d,c);break;default:x(\"306\",a,\"\")}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:L(d,e),Mg(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,\ne=b.elementType===d?e:L(d,e),Og(a,b,d,e,c);case 3:Rg(b);d=b.updateQueue;null===d?x(\"282\"):void 0;e=b.memoizedState;e=null!==e?e.element:null;yf(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)Fg(),b=Jg(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)yg=Ee(b.stateNode.containerInfo),xg=b,e=zg=!0;e?(b.effectTag|=2,b.child=Ef(b,null,d,c)):(S(a,b,d,c),Fg());b=b.child}return b;case 5:return Lf(b),null===a&&Cg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,\ng=e.children,xe(d,e)?g=null:null!==f&&xe(d,f)&&(b.effectTag|=16),Ng(a,b),1!==c&&b.mode&1&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(S(a,b,g,c),b=b.child),b;case 6:return null===a&&Cg(b),null;case 13:return Sg(a,b,c);case 4:return Jf(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Df(b,null,d,c):S(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:L(d,e),Hg(a,b,d,e,c);case 7:return S(a,b,b.pendingProps,c),b.child;case 8:return S(a,b,b.pendingProps.children,\nc),b.child;case 12:return S(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;Ug(b,f);if(null!==g){var h=g.value;f=bd(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!I.current){b=Jg(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var l=h.contextDependencies;if(null!==l){g=h.child;for(var k=l.first;null!==k;){if(k.context===d&&0!==\n(k.observedBits&f)){1===h.tag&&(k=nf(c),k.tag=sf,pf(h,k));h.expirationTime=b&&(qg=!0);a.contextDependencies=null}\nfunction M(a,b){if(Yg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)Yg=a,b=1073741823;b={context:a,observedBits:b,next:null};null===Xg?(null===Wg?x(\"308\"):void 0,Xg=b,Wg.contextDependencies={first:b,expirationTime:0}):Xg=Xg.next=b}return a._currentValue}var $g=0,rf=1,sf=2,ah=3,Pg=!1;function bh(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction ch(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function nf(a){return{expirationTime:a,tag:$g,payload:null,callback:null,next:null,nextEffect:null}}function dh(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction pf(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=bh(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=bh(a.memoizedState),e=c.updateQueue=bh(c.memoizedState)):d=a.updateQueue=ch(e):null===e&&(e=c.updateQueue=ch(d));null===e||d===e?dh(d,b):null===d.lastUpdate||null===e.lastUpdate?(dh(d,b),dh(e,b)):(dh(d,b),e.lastUpdate=b)}\nfunction eh(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=bh(a.memoizedState):fh(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function fh(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=ch(b));return b}\nfunction gh(a,b,c,d,e,f){switch(c.tag){case rf:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case ah:a.effectTag=a.effectTag&-2049|64;case $g:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case sf:Pg=!0}return d}\nfunction yf(a,b,c,d,e){Pg=!1;b=fh(a,b);for(var f=b.baseState,g=null,h=0,l=b.firstUpdate,k=f;null!==l;){var m=l.expirationTime;md?e:d);Ih.current=null;d=void 0;1c?b:c;0===b&&(Fh=null);$h(a,b)}\nfunction ai(a){for(;;){var b=a.alternate,c=a.return,d=a.sibling;if(0===(a.effectTag&1024)){T=a;a:{var e=b;b=a;var f=U;var g=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:J(b.type)&&Ke(b);break;case 3:Kf(b);Le(b);g=b.stateNode;g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null);if(null===e||null===e.child)Eg(b),b.effectTag&=-3;mh(b);break;case 5:Mf(b);var h=If(Hf.current);f=b.type;if(null!==e&&null!=b.stateNode)nh(e,b,f,g,h),e.ref!==b.ref&&(b.effectTag|=\n128);else if(g){var l=If(N.current);if(Eg(b)){g=b;e=g.stateNode;var k=g.type,m=g.memoizedProps,p=h;e[Fa]=g;e[Ga]=m;f=void 0;h=k;switch(h){case \"iframe\":case \"object\":E(\"load\",e);break;case \"video\":case \"audio\":for(k=0;k\\x3c/script>\",k=e.removeChild(e.firstChild)):\"string\"===typeof e.is?k=k.createElement(p,{is:e.is}):(k=k.createElement(p),\"select\"===p&&(p=k,e.multiple?p.multiple=!0:e.size&&(p.size=e.size))):k=k.createElementNS(l,p);e=k;e[Fa]=m;e[Ga]=g;lh(e,b,!1,!1);p=e;k=f;m=g;var t=h,A=re(k,m);switch(k){case \"iframe\":case \"object\":E(\"load\",\np);h=m;break;case \"video\":case \"audio\":for(h=0;hg&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==T)return T;null!==c&&0===(c.effectTag&1024)&&(null===c.firstEffect&&\n(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1=v)t=0;else if(-1===t||v component higher in the tree to provide a loading indicator or placeholder to display.\"+jc(k))}Nh=!0;m=jh(m,k);h=l;do{switch(h.tag){case 3:h.effectTag|=2048;h.expirationTime=g;g=Ch(h,m,g);eh(h,g);break a;case 1:if(t=m,A=h.type,k=h.stateNode,0===(h.effectTag&64)&&(\"function\"===typeof A.getDerivedStateFromError||null!==k&&\"function\"===typeof k.componentDidCatch&&(null===Fh||!Fh.has(k)))){h.effectTag|=2048;\nh.expirationTime=g;g=Eh(h,t,g);eh(h,g);break a}}h=h.return}while(null!==h)}T=ai(f);continue}}}break}while(1);Kh=!1;Hh.current=c;Yg=Xg=Wg=null;lg();if(e)Lh=null,a.finishedWork=null;else if(null!==T)a.finishedWork=null;else{c=a.current.alternate;null===c?x(\"281\"):void 0;Lh=null;if(Nh){e=a.latestPendingTime;f=a.latestSuspendedTime;g=a.latestPingedTime;if(0!==e&&eb?0:b)):(a.pendingCommitExpirationTime=d,a.finishedWork=c)}}\nfunction sh(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Fh||!Fh.has(d))){a=jh(b,a);a=Eh(c,a,1073741823);pf(c,a);qf(c,1073741823);return}break;case 3:a=jh(b,a);a=Ch(c,a,1073741823);pf(c,a);qf(c,1073741823);return}c=c.return}3===a.tag&&(c=jh(b,a),c=Ch(a,c,1073741823),pf(a,c),qf(a,1073741823))}\nfunction mf(a,b){var c=r.unstable_getCurrentPriorityLevel(),d=void 0;if(0===(b.mode&1))d=1073741823;else if(Kh&&!Oh)d=U;else{switch(c){case r.unstable_ImmediatePriority:d=1073741823;break;case r.unstable_UserBlockingPriority:d=1073741822-10*(((1073741822-a+15)/10|0)+1);break;case r.unstable_NormalPriority:d=1073741822-25*(((1073741822-a+500)/25|0)+1);break;case r.unstable_LowPriority:case r.unstable_IdlePriority:d=1;break;default:x(\"313\")}null!==Lh&&d===U&&--d}c===r.unstable_UserBlockingPriority&&\n(0===gi||d=d){a.didError=!1;b=a.latestPingedTime;if(0===b||b>c)a.latestPingedTime=c;df(c,a);c=a.expirationTime;0!==c&&Xh(a,c)}}function Ah(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=lf();b=mf(b,a);a=hi(a,b);null!==a&&(cf(a,b),b=a.expirationTime,0!==b&&Xh(a,b))}\nfunction hi(a,b){a.expirationTimeU&&Sh(),cf(a,b),Kh&&!Oh&&Lh===a||Xh(a,a.expirationTime),ii>ji&&(ii=0,x(\"185\")))}function ki(a,b,c,d,e){return r.unstable_runWithPriority(r.unstable_ImmediatePriority,function(){return a(b,c,d,e)})}var li=null,Y=null,mi=0,ni=void 0,W=!1,oi=null,Z=0,gi=0,pi=!1,qi=null,X=!1,ri=!1,si=null,ti=r.unstable_now(),ui=1073741822-(ti/10|0),vi=ui,ji=50,ii=0,wi=null;function xi(){ui=1073741822-((r.unstable_now()-ti)/10|0)}\nfunction yi(a,b){if(0!==mi){if(ba.expirationTime&&(a.expirationTime=b);W||(X?ri&&(oi=a,Z=1073741823,Di(a,1073741823,!1)):1073741823===b?Yh(1073741823,!1):yi(a,b))}\nfunction Ci(){var a=0,b=null;if(null!==Y)for(var c=Y,d=li;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===Y?x(\"244\"):void 0;if(d===d.nextScheduledRoot){li=Y=d.nextScheduledRoot=null;break}else if(d===li)li=e=d.nextScheduledRoot,Y.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===Y){Y=c;Y.nextScheduledRoot=li;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>a&&(a=e,b=d);if(d===Y)break;if(1073741823===\na)break;c=d;d=d.nextScheduledRoot}}oi=b;Z=a}var Ei=!1;function di(){return Ei?!0:r.unstable_shouldYield()?Ei=!0:!1}function zi(){try{if(!di()&&null!==li){xi();var a=li;do{var b=a.expirationTime;0!==b&&ui<=b&&(a.nextExpirationTimeToWorkOn=ui);a=a.nextScheduledRoot}while(a!==li)}Yh(0,!0)}finally{Ei=!1}}\nfunction Yh(a,b){Ci();if(b)for(xi(),vi=ui;null!==oi&&0!==Z&&a<=Z&&!(Ei&&ui>Z);)Di(oi,Z,ui>Z),Ci(),xi(),vi=ui;else for(;null!==oi&&0!==Z&&a<=Z;)Di(oi,Z,!1),Ci();b&&(mi=0,ni=null);0!==Z&&yi(oi,Z);ii=0;wi=null;if(null!==si)for(a=si,si=null,b=0;b=c&&(null===si?si=[d]:si.push(d),d._defer)){a.finishedWork=b;a.expirationTime=0;return}a.finishedWork=null;a===wi?ii++:(wi=a,ii=0);r.unstable_runWithPriority(r.unstable_ImmediatePriority,function(){Zh(a,b)})}function Dh(a){null===oi?x(\"246\"):void 0;oi.expirationTime=0;pi||(pi=!0,qi=a)}function Gi(a,b){var c=X;X=!0;try{return a(b)}finally{(X=c)||W||Yh(1073741823,!1)}}\nfunction Hi(a,b){if(X&&!ri){ri=!0;try{return a(b)}finally{ri=!1}}return a(b)}function Ii(a,b,c){X||W||0===gi||(Yh(gi,!1),gi=0);var d=X;X=!0;try{return r.unstable_runWithPriority(r.unstable_UserBlockingPriority,function(){return a(b,c)})}finally{(X=d)||W||Yh(1073741823,!1)}}\nfunction Ji(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===ed(c)&&1===c.tag?void 0:x(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(J(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);x(\"171\");g=void 0}if(1===c.tag){var h=c.type;if(J(h)){c=Ne(c,h,g);break a}}c=g}else c=He;null===b.context?b.context=c:b.pendingContext=c;b=e;e=nf(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);\nof();pf(f,e);qf(f,d);return d}function Ki(a,b,c,d){var e=b.current,f=lf();e=mf(f,e);return Ji(a,b,c,e,d)}function Li(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function Mi(a,b,c){var d=3=Jh&&(b=Jh-1);this._expirationTime=Jh=b;this._root=a;this._callbacks=this._next=null;this._hasChildren=this._didComplete=!1;this._children=null;this._defer=!0}Ni.prototype.render=function(a){this._defer?void 0:x(\"250\");this._hasChildren=!0;this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new Oi;Ji(a,b,null,c,d._onCommit);return d};\nNi.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]);b.push(a)}};\nNi.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;this._defer&&null!==b?void 0:x(\"251\");if(this._hasChildren){var c=this._expirationTime;if(b!==this){this._hasChildren&&(c=this._expirationTime=b._expirationTime,this.render(this._children));for(var d=null,e=b;e!==this;)d=e,e=e._next;null===d?x(\"251\"):void 0;d._next=e._next;this._next=b;a.firstBatch=this}this._defer=!1;Bi(a,c);b=this._next;this._next=null;b=a.firstBatch=b;null!==b&&b._hasChildren&&b.render(b._children)}else this._next=\nnull,this._defer=!1};Ni.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var a=this._callbacks;if(null!==a)for(var b=0;b=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};function Qi(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}Gb=Gi;Hb=Ii;Ib=function(){W||0===gi||(Yh(gi,!1),gi=0)};\nfunction Ri(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new Pi(a,!1,b)}\nfunction Si(a,b,c,d,e){var f=c._reactRootContainer;if(f){if(\"function\"===typeof e){var g=e;e=function(){var a=Li(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{f=c._reactRootContainer=Ri(c,d);if(\"function\"===typeof e){var h=e;e=function(){var a=Li(f._internalRoot);h.call(a)}}Hi(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Li(f._internalRoot)}\nfunction Ti(a,b){var c=2=b){c=a;break}a=a.next}while(a!==d);null===c?c=d:c===d&&(d=h,p());b=c.previous;b.next=c.previous=h;h.next=c;h.previous=\nb}}function v(){if(-1===k&&null!==d&&1===d.priorityLevel){m=!0;try{do u();while(null!==d&&1===d.priorityLevel)}finally{m=!1,null!==d?p():n=!1}}}function t(a){m=!0;var b=e;e=a;try{if(a)for(;null!==d;){var c=exports.unstable_now();if(d.expirationTime<=c){do u();while(null!==d&&d.expirationTime<=c)}else break}else if(null!==d){do u();while(null!==d&&!w())}}finally{m=!1,e=b,null!==d?p():n=!1,v()}}\nvar x=Date,y=\"function\"===typeof setTimeout?setTimeout:void 0,z=\"function\"===typeof clearTimeout?clearTimeout:void 0,A=\"function\"===typeof requestAnimationFrame?requestAnimationFrame:void 0,B=\"function\"===typeof cancelAnimationFrame?cancelAnimationFrame:void 0,C,D;function E(a){C=A(function(b){z(D);a(b)});D=y(function(){B(C);a(exports.unstable_now())},100)}\nif(\"object\"===typeof performance&&\"function\"===typeof performance.now){var F=performance;exports.unstable_now=function(){return F.now()}}else exports.unstable_now=function(){return x.now()};var r,q,w,G=null;\"undefined\"!==typeof window?G=window:\"undefined\"!==typeof global&&(G=global);\nif(G&&G._schedMock){var H=G._schedMock;r=H[0];q=H[1];w=H[2];exports.unstable_now=H[3]}else if(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var I=null,J=function(a){if(null!==I)try{I(a)}finally{I=null}};r=function(a){null!==I?setTimeout(r,0,a):(I=a,setTimeout(J,0,!1))};q=function(){I=null};w=function(){return!1}}else{\"undefined\"!==typeof console&&(\"function\"!==typeof A&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\n\"function\"!==typeof B&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));var K=null,L=!1,M=-1,N=!1,O=!1,P=0,R=33,S=33;w=function(){return P<=exports.unstable_now()};var T=new MessageChannel,U=T.port2;T.port1.onmessage=function(){L=!1;var a=K,b=M;K=null;M=-1;var c=exports.unstable_now(),f=!1;if(0>=P-c)if(-1!==b&&b<=c)f=!0;else{N||(N=!0,E(V));K=a;M=b;return}if(null!==a){O=!0;try{a(f)}finally{O=!1}}};\nvar V=function(a){if(null!==K){E(V);var b=a-P+S;bb&&(b=8),S=bb?U.postMessage(void 0):N||(N=!0,E(V))};q=function(){K=null;L=!1;M=-1}}exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;\nexports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=g,f=k;g=a;k=exports.unstable_now();try{return b()}finally{g=c,k=f,v()}};exports.unstable_next=function(a){switch(g){case 1:case 2:case 3:var b=3;break;default:b=g}var c=g,f=k;g=b;k=exports.unstable_now();try{return a()}finally{g=c,k=f,v()}};\nexports.unstable_scheduleCallback=function(a,b){var c=-1!==k?k:exports.unstable_now();if(\"object\"===typeof b&&null!==b&&\"number\"===typeof b.timeout)b=c+b.timeout;else switch(g){case 1:b=c+-1;break;case 2:b=c+250;break;case 5:b=c+1073741823;break;case 4:b=c+1E4;break;default:b=c+5E3}a={callback:a,priorityLevel:g,expirationTime:b,next:null,previous:null};if(null===d)d=a.next=a.previous=a,p();else{c=null;var f=d;do{if(f.expirationTime>b){c=f;break}f=f.next}while(f!==d);null===c?c=d:c===d&&(d=a,p());\nb=c.previous;b.next=c.previous=a;a.next=c;a.previous=b}return a};exports.unstable_cancelCallback=function(a){var b=a.next;if(null!==b){if(b===a)d=null;else{a===d&&(d=b);var c=a.previous;c.next=b;b.previous=c}a.next=a.previous=null}};exports.unstable_wrapCallback=function(a){var b=g;return function(){var c=g,f=k;g=b;k=exports.unstable_now();try{return a.apply(this,arguments)}finally{g=c,k=f,v()}}};exports.unstable_getCurrentPriorityLevel=function(){return g};\nexports.unstable_shouldYield=function(){return!e&&(null!==d&&d.expirationTime\" + svgElement.innerHTML + \"\";\n };\n SvgDrawing.prototype.toSvgBase64 = function () {\n var svgXml = this.toSvgXml();\n if (!svgXml)\n return null;\n return \"data:image/svg+xml;base64,\" + btoa(svgXml);\n };\n SvgDrawing.prototype.clearListner = function () {\n this.el.removeEventListener('mousedown', this.mouseDown);\n this.el.removeEventListener('touchstart', this.touchStart);\n };\n SvgDrawing.prototype.init = function () {\n this.appendTo(this.el);\n this.el.addEventListener('mousedown', this.mouseDown, getPassiveOptions(false));\n this.el.addEventListener('touchstart', this.touchStart, getPassiveOptions(false));\n return this;\n };\n SvgDrawing.prototype.drawingStart = function (_a) {\n var x = _a.x, y = _a.y;\n this.current.set(x, y);\n };\n SvgDrawing.prototype.drawingMove = function (_a) {\n var _this = this;\n var x = _a.x, y = _a.y;\n var rect = this.el.getBoundingClientRect();\n var makePoint = function (mx, my) {\n return new Two.Vector(mx - rect.left, my - rect.top);\n };\n if (this.line) {\n if (this.line.linewidth !== this.penWidth ||\n this.line.stroke !== this.penColor) {\n this.drawingEnd();\n return;\n }\n var v = makePoint(x, y);\n this.line.vertices.push(v);\n return;\n }\n var vprev = makePoint(this.current.x, this.current.y);\n var vnext = makePoint(x, y);\n this.current.set(x, y);\n this.line = this.makeCurve([vprev, vnext], true);\n this.line.noFill().stroke = this.penColor;\n this.line.linewidth = this.penWidth;\n this.line.cap = this.strokeCap;\n this.line.join = this.strokeLineJoin;\n this.line.vertices.map(function (v) {\n if (!_this.line)\n return;\n v.addSelf(_this.line.translation);\n });\n this.line.translation.clear();\n };\n SvgDrawing.prototype.drawingEnd = function () {\n this.line = null;\n };\n SvgDrawing.prototype.mouseDown = function (e) {\n e.preventDefault();\n this.drawingStart({ x: e.clientX, y: e.clientY });\n this.el.addEventListener('mousemove', this.mouseMove, getPassiveOptions(false));\n this.el.addEventListener('mouseup', this.mouseUp, getPassiveOptions(false));\n };\n SvgDrawing.prototype.mouseMove = function (e) {\n e.preventDefault();\n this.drawingMove({ x: e.clientX, y: e.clientY });\n };\n SvgDrawing.prototype.mouseUp = function (e) {\n e.preventDefault();\n this.el.removeEventListener('mousemove', this.mouseMove);\n this.el.removeEventListener('mouseup', this.mouseUp);\n this.drawingEnd();\n };\n SvgDrawing.prototype.touchStart = function (e) {\n e.preventDefault();\n var touch = e.touches[0];\n this.drawingStart({ x: touch.pageX, y: touch.pageY });\n this.el.addEventListener('touchmove', this.touchMove, getPassiveOptions(false));\n this.el.addEventListener('touchend', this.touchEnd, getPassiveOptions(false));\n };\n SvgDrawing.prototype.touchMove = function (e) {\n e.preventDefault();\n var touch = e.touches[0];\n this.drawingMove({\n x: touch.pageX,\n y: touch.pageY\n });\n };\n SvgDrawing.prototype.touchEnd = function (e) {\n e.preventDefault();\n this.el.removeEventListener('touchmove', this.touchMove);\n this.el.removeEventListener('touchend', this.touchEnd);\n this.drawingEnd();\n };\n return SvgDrawing;\n}(Two));\nexport { SvgDrawing };\n","export var getPassiveOptions = function (passive) {\n if (passive === void 0) { passive = true; }\n try {\n var check = function () { return null; };\n window.addEventListener('testPassive', check, { passive: passive });\n window.removeEventListener('testPassive', check);\n return { passive: passive };\n }\n catch (e) {\n return false;\n }\n};\n","export var svgFormatting = function (svgString) {\n var parser = new DOMParser();\n var doc = parser.parseFromString(svgString, 'image/svg+xml');\n var svgEle = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var originSvgEle = doc.querySelector('svg');\n if (!originSvgEle)\n return svgEle;\n ['width', 'height', 'viewBox'].map(function (attr) {\n var attrValue = originSvgEle.getAttribute(attr);\n if (attrValue)\n svgEle.setAttribute(attr, attrValue);\n });\n var pathEle = doc.querySelectorAll('path');\n pathEle.forEach(function (path) {\n path.removeAttribute('transform');\n svgEle.appendChild(path);\n });\n return svgEle;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { useRef, useEffect, useCallback } from 'react';\nimport { SvgDrawing } from 'svg-drawing/lib/SvgDrawing';\nimport { downloadBlob } from './utils/downloadBlob';\nexport var useSvgDrawing = function (option) {\n var renderRef = useRef(null);\n var drawingRef = useRef(null);\n var getSvgXML = useCallback(function () {\n if (!drawingRef.current)\n return null;\n return drawingRef.current.toSvgXml();\n }, []);\n var download = useCallback(function () {\n if (!drawingRef.current)\n return;\n var base64 = drawingRef.current.toSvgBase64();\n if (!base64)\n return;\n downloadBlob({\n base64: base64,\n filename: new Date().toISOString() + \".svg\",\n mimeType: 'image/svg+xml'\n });\n }, []);\n var changePenColor = useCallback(function (penColor) {\n if (!drawingRef.current || !penColor)\n return;\n drawingRef.current.penColor = penColor;\n }, []);\n var changePenWidth = useCallback(function (penSise) {\n if (!drawingRef.current)\n return;\n drawingRef.current.penWidth = Number(penSise);\n }, []);\n var clear = useCallback(function () {\n if (!drawingRef.current)\n return;\n drawingRef.current.clear();\n }, []);\n var undo = useCallback(function () {\n if (!drawingRef.current)\n return;\n var drawingChildren = drawingRef.current.scene.children;\n if (drawingChildren.length === 0)\n return;\n drawingRef.current.remove(drawingChildren[drawingChildren.length - 1]);\n }, []);\n useEffect(function () {\n if (drawingRef.current)\n return;\n if (!renderRef.current)\n return;\n drawingRef.current = new SvgDrawing(__assign({}, option, { el: renderRef.current, autostart: true }));\n });\n return [\n renderRef,\n {\n two: drawingRef.current,\n changePenWidth: changePenWidth,\n changePenColor: changePenColor,\n clear: clear,\n undo: undo,\n getSvgXML: getSvgXML,\n download: download\n }\n ];\n};\n","export var downloadBlob = function (_a) {\n var base64 = _a.base64, filename = _a.filename, mimeType = _a.mimeType;\n var bin = atob(base64.replace(/^.*,/, ''));\n var buffer = new Uint8Array(bin.length);\n for (var i = 0; i < bin.length; i++) {\n buffer[i] = bin.charCodeAt(i);\n }\n var blob = new Blob([buffer.buffer], {\n type: mimeType\n });\n if (window.navigator.msSaveBlob) {\n window.navigator.msSaveBlob(blob, filename);\n }\n else if (window.URL && window.URL.createObjectURL) {\n var a = document.createElement('a');\n a.download = filename;\n a.href = window.URL.createObjectURL(blob);\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n else {\n window.open(base64, '_blank');\n }\n};\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport React, { useEffect, Fragment, useCallback, useState } from 'react';\nimport { render } from 'react-dom';\nimport Pressure from 'pressure';\nimport { useSvgDrawing } from '../';\nvar getRandomInt = function (max) {\n return Math.floor(Math.random() * Math.floor(max));\n};\nvar getRandomColor = function () {\n return \"#\" + Array.from({ length: 3 }, function () {\n return String(getRandomInt(255).toString(16)).padStart(2, '0');\n }).join('');\n};\nvar Example = function () {\n var _a = __read(useSvgDrawing({\n penWidth: 3,\n penColor: '#000',\n width: 500,\n height: 500\n }), 2), divRef = _a[0], _b = _a[1], drawingTwo = _b.two, drawingClear = _b.clear, undo = _b.undo, getSvgXML = _b.getSvgXML, download = _b.download, changePenColor = _b.changePenColor, changePenWidth = _b.changePenWidth;\n var _c = __read(useState(false), 2), randomPen = _c[0], switchRandom = _c[1];\n var _d = __read(useState(''), 2), xml = _d[0], setXml = _d[1];\n var _e = __read(useState('normal'), 2), penMode = _e[0], setPenMode = _e[1];\n var _f = __read(useState(5), 2), penWidth = _f[0], setPenWidth = _f[1];\n var _g = __read(useState(0), 2), penThinnerWidth = _g[0], setPenThinnerWidth = _g[1];\n var handleColor = useCallback(function () {\n changePenColor(getRandomColor());\n }, [changePenColor]);\n var handlePenWidth = useCallback(function (e) {\n setPenWidth(Number(e.target.value));\n changePenWidth(Number(e.target.value));\n }, [changePenWidth]);\n var handleChangeXML = useCallback(function () {\n setXml(getSvgXML());\n }, [getSvgXML]);\n var handleChangeMode = useCallback(function (e) {\n setPenMode(e.target.value);\n }, []);\n var handleUpdatePenConfig = useCallback(function (e) {\n if (penMode === 'rainbow') {\n changePenColor(getRandomColor());\n return;\n }\n if (penMode === 'random') {\n changePenWidth(getRandomInt(50) + 5);\n return;\n }\n if (penMode == 'thinner') {\n changePenWidth(penThinnerWidth);\n }\n if (penMode === 'normal') {\n changePenWidth(penWidth);\n }\n }, [penMode, penWidth, changePenWidth, changePenColor, penThinnerWidth]);\n var pressureChange = useCallback(function (force, event) {\n setPenThinnerWidth(30 - Math.floor(force * 40));\n }, [setPenThinnerWidth]);\n useEffect(function () {\n if (!divRef.current)\n return;\n Pressure.set(divRef.current, {\n change: pressureChange\n });\n }, [divRef, pressureChange]);\n return (React.createElement(Fragment, null,\n React.createElement(\"fieldset\", null,\n React.createElement(\"label\", null,\n React.createElement(\"input\", { type: \"checkbox\", checked: penMode === 'normal', value: \"normal\", onChange: handleChangeMode }),\n \"Normal pen.\"),\n React.createElement(\"label\", null,\n React.createElement(\"input\", { type: \"checkbox\", checked: penMode === 'thinner', value: \"thinner\", onChange: handleChangeMode }),\n \"Pen becoming thinner.\"),\n React.createElement(\"label\", null,\n React.createElement(\"input\", { type: \"checkbox\", checked: penMode === 'random', value: \"random\", onChange: handleChangeMode }),\n \"Pen becoming Random Width.\"),\n React.createElement(\"label\", null,\n React.createElement(\"input\", { type: \"checkbox\", checked: penMode === 'rainbow', value: \"rainbow\", onChange: handleChangeMode }),\n \"Rainbow pen.\"),\n ['normal', 'rainbow'].includes(penMode) && (React.createElement(\"div\", null,\n \"pen width\",\n React.createElement(\"input\", { type: \"range\", value: penWidth, min: 1, max: 50, onChange: handlePenWidth }))),\n penMode !== 'rainbow' && (React.createElement(\"button\", { onClick: handleColor }, \"Change Color\"))),\n React.createElement(\"div\", { style: {\n display: 'flex',\n justifyContent: 'flexWrap'\n } },\n React.createElement(\"div\", null,\n React.createElement(\"div\", { ref: divRef, style: {\n border: '1px solid #eee',\n margin: 'auto'\n }, onMouseMove: handleUpdatePenConfig, onTouchMove: handleUpdatePenConfig, onTouchEnd: handleChangeXML, onMouseLeave: handleChangeXML }),\n React.createElement(\"button\", { onClick: undo }, \"Undo\"),\n React.createElement(\"button\", { onClick: drawingClear }, \"Clear\"),\n React.createElement(\"button\", { onClick: download }, \"Download SVG\"))),\n React.createElement(\"p\", { style: {\n fontSize: '8px'\n } }, xml)));\n};\nvar app = document.createElement('div');\ndocument.body.appendChild(app);\nrender(React.createElement(Example, null), app);\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js","webpack:///./node_modules/two.js/build/two.module.js","webpack:///./node_modules/object-assign/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/pressure/dist/pressure.min.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/svg-drawing/lib/SvgDrawing.js","webpack:///./node_modules/svg-drawing/lib/utils/getPassiveOptions.js","webpack:///./node_modules/svg-drawing/lib/utils/svgFormatting.js","webpack:///./src/useDrawing.ts","webpack:///./src/utils/downloadBlob.ts","webpack:///./src/example/index.tsx"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","Two","_","Registry","window","previousTwo","root","toString","_indexAmount","natural","slice","Array","indexOf","keys","Function","identity","isArguments","obj","isFunction","isString","isNumber","isDate","isRegExp","isError","isFinite","isNaN","parseFloat","isBoolean","isNull","isUndefined","isEmpty","isArrayLike","isArray","length","isElement","nodeType","isObject","type","toArray","map","values","range","start","stop","step","Math","max","ceil","idx","list","item","has","func","ctx","apply","arguments","args","extend","base","sources","k","defaults","push","each","iteratee","context","this","result","once","init","after","times","uniqueId","prefix","id","sin","cos","sqrt","acos","atan2","abs","round","PI","HALF_PI","pow","min","count","perf","performance","now","Date","MAX_ARRAY_INDEX","collection","dom","temp","document","createElement","hasEventListeners","addEventListener","elem","event","bool","attachEvent","unbind","removeEventListeners","detachEvent","getRequestAnimationFrame","cancel","lastTime","vendors","request","requestAnimationFrame","callback","element","currTime","getTime","timeToCall","setTimeout","loop","options","params","fullscreen","width","height","Types","svg","autostart","v","test","domElement","tagName","toLowerCase","renderer","Utils","setPlaying","frameCount","fitted","fitToWindow","body","style","overflow","margin","padding","top","left","right","bottom","position","display","setSize","ratio","Events","resize","updateDimensions","scene","Instances","raf","nextFrameID","Float32Array","webgl","canvas","Version","PublishDate","Identifier","play","pause","update","render","change","remove","insert","order","load","Commands","move","line","curve","arc","close","Resolution","noConflict","secret","flag","charAt","toUpperCase","set","Image","isHeadless","shim","CanvasRenderer","release","vertices","children","xhr","path","XMLHttpRequest","open","onreadystatechange","readyState","status","responseText","send","Curve","CollinearityEpsilon","RecursionLimit","CuspLimit","Tolerance","distance","angle","epsilon","Number","EPSILON","abscissas","weights","devicePixelRatio","getBackingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","getRatio","b","playing","getComputedMatrix","matrix","Matrix","parent","matrices","_matrix","reverse","e","elements","multiply","deltaTransformPoint","x","y","dx","a","dy","Vector","decomposeMatrix","px","py","skewX","skewY","translateX","translateY","f","scaleX","scaleY","rotation","extractCSSText","text","styles","commands","command","split","replace","getSvgStyles","node","applySvgViewBox","translation","scale","applySvgAttributes","parentStyles","attr","attributes","extracted","getComputedStyle","computedStyles","nodeName","opacity","visible","visibility","transform","baseVal","getCTM","transforms","cap","join","miter","linewidth","Group","getById","classList","read","g","getAttribute","group","childNodes","tag","add","polygon","points","verts","match","p1","p2","Anchor","poly","Path","noStroke","fill","polyline","closed","control","coords","coord","relative","last","number","numbers","first","j","ct","bin","lower","items","trim","hasDoubleDecimals","lastIndexOf","splice","concat","x1","y1","x2","y2","x3","y3","x4","y4","reflection","n1","n2","undefined","point","addSelf","getReflection","controls","AppendCurveProperties","isZero","rx","ry","xAxisRotation","largeArcFlag","sweepFlag","anchor","rect","getBoundingClientRect","centroid","subSelf","circle","Circle","ellipse","Ellipse","w2","h2","Rectangle","rounded-rect","radius","RoundedRectangle","Line","noFill","lineargradient","ox","oy","stops","matches","child","offset","color","Gradient","Stop","gradient","LinearGradient","radialgradient","cx","cy","fx","fy","RadialGradient","subdivide","limit","amount","getComponentOnCubicBezier","getCurveLength","ax","bx","ay","by","integrate","getCurveBoundingBox","t1","t2","b2ac","sqrtb2ac","tvalues","bounds","mt","jlen","w","A","B","sum","Ax","getCurveFromPoints","prev","mod","next","getControlPoints","a1","angleBetween","a2","d1","distanceBetween","d2","mid","copy","getAnchorsFromArcData","center","ts","td","ccw","translate","rotate","pct","theta","lerp","toFixed","floor","Collection","Error","message","on","handler","_events","off","names","events","ev","trigger","listen","bound","ignore","method","constructor","pop","popped","shift","shifted","pushed","unshift","unshifted","inserted","spliced","sort","solveSegmentIntersection","decoupleShapes","wr","appendTo","appendChild","animated","_lastFrame","timeDelta","objects","clear","makeLine","makeRectangle","makeRoundedRectangle","sides","makeCircle","makeEllipse","makeStar","outerRadius","innerRadius","star","Star","makeCurve","makePolygon","Polygon","makeArcSegment","ir","or","sa","ea","res","arcSegment","ArcSegment","makePath","makeText","Text","makeLinearGradient","makeRadialGradient","makeSprite","cols","rows","frameRate","sprite","Sprite","makeImageSequence","paths","imageSequence","ImageSequence","makeTexture","Texture","makeGroup","interpret","svgNode","shallow","attach","data","innerHTML","define","contains","zero","v1","v2","sub","subtract","ratioBetween","distanceBetweenSquared","MakeObservable","_bound","_x","_y","xgs","ygs","BoundProto","clone","subtractSelf","multiplySelf","multiplyScalar","divide","divideSelf","divideScalar","negate","dot","lengthSquared","normalize","distanceTo","distanceToSquared","setLength","equals","eps","toObject","radians","lx","ly","_broadcast","_command","_relative","ilx","ily","irx","iry","AnchorProto","tan","fix","array","Identity","Multiply","C","z","A0","A1","A2","A3","A4","A5","A6","A7","A8","B0","B1","B2","B3","B4","B5","B6","B7","B8","manual","h","inverse","out","a00","a01","a02","a10","a11","a12","a20","a21","a22","b01","b11","b21","det","sx","sy","fullMatrix","output","hasOutput","version","xlink","alignments","attrs","createElementNS","setAttributes","setAttributeNS","setAttribute","removeAttributes","removeAttribute","string","vx","vy","ux","uy","ar","bl","br","cl","getClip","shape","clip","_renderer","defs","_clip","removeChild","parentNode","orderChild","renderChild","_update","_opacity","_flagOpacity","flagMatrix","_flagMatrix","_flagClassName","_className","_flagAdditions","additions","forEach","_flagSubtractions","subtractions","_flagOrder","_flagMask","_mask","flagReset","changed","_flagVertices","_closed","_fill","_flagFill","_stroke","_flagStroke","stroke","_flagLinewidth","_linewidth","_flagVisible","_visible","_flagCap","_cap","_flagJoin","_join","_flagMiter","_miter","dashes","_flagClip","_flagFamily","_family","_flagSize","_size","_flagLeading","_leading","_flagAlignment","_alignment","_flagBaseline","_baseline","_flagStyle","_style","_flagWeight","_weight","_flagDecoration","_decoration","_flagValue","textContent","_value","linear-gradient","silent","_flagEndPoints","_flagSpread","spreadMethod","_spread","gradientUnits","_flagStops","lengthChanged","_flagOffset","_offset","_flagColor","_color","radial-gradient","_flagCenter","_flagFocal","focal","_flagRadius","_radius","texture","image","_flagLoaded","loaded","href","toDataURL","src","_flagScale","_scale","_flagRepeat","_repeat","patternUnits","appended","Renderer","emptyArray","TWO_PI","isDefaultMatrix","isHidden","middle","prop","val","defaultMatrix","mask","save","restore","forced","parentClipped","isOffset","fillStyle","effect","strokeStyle","lineWidth","miterLimit","lineJoin","lineCap","globalAlpha","setLineDash","beginPath","closePath","renderSvgArcCommand","bezierCurveTo","lineTo","moveTo","font","textAlign","textBaseline","fillText","strokeText","createLinearGradient","addColorStop","createRadialGradient","_flagImage","_flagVideo","createPattern","dx2","dy2","x1p","y1p","rxs","rys","x1ps","y1ps","cr","dq","q","cxp","cyp","startAngle","svgAngle","endAngle","clockwise","deltaAngle","samePoints","tx","ty","renderArcEstimate","smoothing","getContext","overdraw","imageSmoothingEnabled","len","ang","isOne","clearRect","multiplyMatrix","transformation","CanvasUtils","uv","gl","deleteTexture","program","flagParentMatrix","enable","STENCIL_TEST","stencilFunc","ALWAYS","colorMask","stencilOp","KEEP","INCR","NOTEQUAL","DECR","disable","updateCanvas","border","Infinity","forcedParent","flagTexture","triangles","getTriangles","updateBuffer","updateTexture","bindBuffer","ARRAY_BUFFER","textureCoordsBuffer","vertexAttribPointer","textureCoords","FLOAT","bindTexture","TEXTURE_2D","uniformMatrix3fv","buffer","drawArrays","TRIANGLES","measureText","createTexture","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","texImage2D","RGBA","UNSIGNED_BYTE","deleteBuffer","createBuffer","enableVertexAttribArray","bufferData","STATIC_DRAW","shaders","error","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteProgram","source","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","deleteShader","types","vertex","fragment","TextureRegistry","vs","fs","antialias","alpha","premultipliedAlpha","stencil","preserveDrawingBuffer","useProgram","getAttribLocation","getUniformLocation","DEPTH_TEST","BLEND","blendEquationSeparate","FUNC_ADD","blendFuncSeparate","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","ONE","viewport","resolutionLocation","uniform2f","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","Shape","FlagMatrix","isShape","_translation","_rotation","addTo","bubbles","RegExp","curved","flagVertices","FlagVertices","bindVertices","BindVertices","unbindVertices","UnbindVertices","flagFill","FlagFill","flagStroke","FlagStroke","_curved","beginning","ending","className","automatic","target","_length","elapsed","_lengths","dist","getIdByLength","total","getSubdivisions","Properties","_flagLength","_updateLength","_automatic","_beginning","_ending","_collection","corner","v0","c0","c1","bb","getPointAt","ia","ib","t1x","t1y","t2x","t2y","t3x","t3y","brx","bry","alx","aly","plot","bid","eid","low","high","origin","_origin","_width","_height","_flagWidth","_flagHeight","xr","yr","resolution","rc","_sides","_flagSides","_flagStartAngle","_flagEndAngle","_flagInnerRadius","_flagOuterRadius","_startAngle","_endAngle","_innerRadius","_outerRadius","connected","punctured","amp","outerradius","flagRadius","FlagRadius","console","warn","Ratio","leading","size","alignment","baseline","Index","flagStops","FlagStops","bindStops","BindStops","unbindStops","UnbindStops","spread","_stops","flagEndPoints","FlagEndPoints","_flatCenter","regex","video","flagOffset","FlagOffset","flagScale","FlagScale","RegularExpressions","ImageRegistry","getAbsoluteURL","loadHeadlessBuffer","getImage","absoluteSrc","crossOrigin","Register","_src","img","removeEventListener","videoWidth","videoHeight","_flagSrc","_image","index","_loaded","columns","_flagTexture","_flagColumns","_flagRows","_flagFrameRate","flagIndex","_amount","_duration","_startTime","_playing","_firstFrame","_loop","_texture","_columns","_rows","_frameRate","_index","firstFrame","lastFrame","onLastFrame","_onLastFrame","duration","iw","ih","frames","flagTextures","FlagTextures","bindTextures","BindTextures","unbindTextures","UnbindTextures","textures","GenerateTexture","DefaultFrameRate","_flagTextures","_textures","_flagIndex","effects","Children","ids","detach","replaceParent","newParent","InsertChildren","RemoveChildren","OrderChildren","properties","_flagBeginning","_flagEnding","MakeGetterSetters","_children","insertChildren","removeChildren","orderChildren","MakeGetterSetter","search","found","getByClassName","getByType","grandparent","bd","ed","__webpack_exports__","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","err","shouldUseNative","from","symbols","to","TypeError","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","ReferenceError","writable","configurable","setPrototypeOf","__proto__","iterator","config","routeEvents","preventSelect","adapter","P","u","bindUnsupportedEvent","bindEvents","webkitTouchCallout","webkitUserSelect","khtmlUserSelect","MozUserSelect","msUserSelect","userSelect","el","block","pressed","deepPressed","nativeSupport","runningPolyfill","runKey","random","runPolyfill","runClosure","isPressed","setPressed","isDeepPressed","setDeepPressed","_endDeepPress","_startDeepPress","increment","decrement","loopPolyfillForce","deepPress","_endPress","getPrototypeOf","_startPress","support","fail","webkitForce","_changePress","normalizeForce","reachOne","startLegacy","touches","touch","selectTouch","force","initialForce","supportLegacy","loopForce","returnTouch","pressure","polyfill","polyfillSpeedUp","polyfillSpeedDown","only","querySelectorAll","HTMLElement","Touch","for","aa","ba","encodeURIComponent","framesToPop","ca","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","D","E","props","refs","updater","F","G","isReactComponent","setState","forceUpdate","H","isPureReactComponent","I","current","J","K","L","ref","__self","__source","M","defaultProps","$$typeof","_owner","N","O","Q","keyPrefix","R","U","S","T","done","=",":","escape","fa","V","da","W","X","createRef","Component","PureComponent","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","forwardRef","lazy","_ctor","_status","_result","memo","compare","useCallback","useContext","useEffect","useImperativeHandle","useDebugValue","useLayoutEffect","useMemo","useReducer","useRef","useState","Fragment","StrictMode","Suspense","cloneElement","createFactory","isValidElement","unstable_ConcurrentMode","unstable_Profiler","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentOwner","Y","default","Z","ha","onError","ja","la","ma","na","oa","extractEvents","eventTypes","pa","phasedRegistrationNames","qa","registrationName","ra","dependencies","ta","ua","va","wa","currentTarget","ka","xa","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","Ba","injectEventPluginOrder","injectEventPluginsByName","Ca","stateNode","disabled","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","return","Ma","dispatchConfig","Na","_targetInst","Oa","Pa","Qa","Ra","Sa","Ta","animationend","animationiteration","animationstart","transitionend","Ua","Va","Wa","animation","transition","Xa","Ya","Za","$a","ab","cb","db","eb","fb","gb","nativeEvent","Interface","isDefaultPrevented","defaultPrevented","returnValue","eventPool","jb","destructor","hb","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","cancelable","timeStamp","isTrusted","kb","lb","mb","nb","ob","documentMode","pb","qb","rb","sb","beforeInput","bubbled","captured","compositionEnd","compositionStart","compositionUpdate","tb","ub","keyCode","vb","detail","wb","zb","locale","which","xb","ctrlKey","altKey","metaKey","char","yb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","date","datetime","datetime-local","email","month","password","tel","time","url","week","Mb","Nb","srcElement","correspondingUseElement","Ob","Pb","Rb","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","Qb","Sb","checked","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","displayName","jc","_debugOwner","_debugSource","fileName","lineNumber","kc","lc","mc","nc","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sc","tc","pc","qc","oc","uc","vc","defaultChecked","defaultValue","_wrapperState","initialChecked","wc","initialValue","controlled","xc","yc","zc","Ac","ownerDocument","activeElement","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","_isInputEventSupported","Qc","view","Rc","Alt","Control","Meta","Shift","Sc","getModifierState","Tc","Uc","Vc","Wc","Xc","Yc","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Zc","pointerId","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","$c","mouseEnter","mouseLeave","pointerEnter","pointerLeave","ad","defaultView","parentWindow","alternate","cd","dd","effectTag","fd","hd","sibling","gd","animationName","elapsedTime","pseudoElement","jd","clipboardData","kd","ld","charCode","md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","nd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","od","location","repeat","pd","dataTransfer","qd","targetTouches","changedTouches","rd","sd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","ud","vd","wd","isInteractive","xd","isInteractiveTopLevelEventType","yd","zd","Ad","targetInst","ancestors","containerInfo","topLevelType","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","firstChild","Ld","nextSibling","Nd","HTMLIFrameElement","contentWindow","Od","contentEditable","Qd","focusedElem","selectionRange","Md","compareDocumentPosition","documentElement","end","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","Rd","Sd","select","Td","Ud","Vd","Wd","Xd","Yd","onSelect","$d","Zd","ae","selected","defaultSelected","be","dangerouslySetInnerHTML","ce","de","ee","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","fe","html","mathml","ge","he","ie","je","namespaceURI","MSApp","execUnsafeLocalFunction","ke","lastChild","nodeValue","le","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","me","ne","oe","setProperty","substring","pe","menuitem","area","col","embed","hr","input","keygen","link","meta","param","track","wbr","qe","re","is","se","blur","te","ue","ve","we","autoFocus","xe","__html","ye","ze","clearTimeout","Ae","unstable_scheduleCallback","Be","unstable_cancelCallback","De","Ee","Set","Fe","Ge","He","Ie","Je","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","Ke","Le","Me","Ne","getChildContext","Oe","__reactInternalMemoizedMergedChildContext","Pe","Qe","Re","Se","Ue","elementType","pendingProps","contextDependencies","memoizedState","updateQueue","memoizedProps","lastEffect","firstEffect","nextEffect","childExpirationTime","expirationTime","Ve","Xe","Ye","Ze","$e","af","bf","pendingChildren","implementation","cf","didError","earliestPendingTime","latestPendingTime","df","ff","latestPingedTime","earliestSuspendedTime","latestSuspendedTime","gf","nextExpirationTimeToWorkOn","jf","kf","baseState","tf","_reactInternalFiber","lf","nf","mf","payload","of","pf","qf","rf","sf","uf","shouldComponentUpdate","vf","contextType","state","wf","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","xf","yf","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","zf","Af","_stringRef","Bf","Cf","Map","delete","Df","Ef","Ff","Gf","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","queue","baseUpdate","ng","og","pg","lastRenderedReducer","dispatch","action","qg","lastRenderedState","eagerReducer","eagerState","rg","destroy","deps","sg","tg","ug","vg","wg","readContext","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","Qg","getDerivedStateFromError","Rg","pendingContext","Sg","timedOutAt","fallback","Tg","Ug","then","hf","We","hydrate","hidden","observedBits","unstable_observedBits","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstCapturedEffect","lastCapturedEffect","ch","dh","eh","fh","gh","hh","jh","stack","kh","lh","mh","nh","oh","onClick","onclick","ph","WeakSet","qh","rh","sh","th","vh","componentWillUnmount","wh","xh","yh","insertBefore","_reactRootContainer","zh","wasMultiple","multiple","Ce","uh","hi","Xh","Bh","WeakMap","Ch","Dh","Eh","componentDidCatch","Fh","componentStack","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","__reactInternalSnapshotBeforeUpdate","Vh","Zh","pendingCommitExpirationTime","ef","Pd","Yh","unstable_runWithPriority","unstable_NormalPriority","finishedWork","$h","ai","createTextNode","bi","ci","di","maxDuration","pingCache","ei","fi","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","unstable_UserBlockingPriority","unstable_LowPriority","unstable_IdlePriority","gi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","unstable_now","ui","vi","wi","xi","yi","zi","timeout","timeoutHandle","Bi","Ci","nextScheduledRoot","Di","Ei","unstable_shouldYield","_onComplete","Fi","firstBatch","_expirationTime","_defer","Gi","Hi","Ii","Ji","Ki","Li","Ni","_root","_callbacks","_next","_hasChildren","_didComplete","Oi","_didCommit","_onCommit","Pi","_internalRoot","Qi","Si","legacy_renderSubtreeIntoContainer","hasAttribute","Ri","Ti","Mi","JSON","stringify","form","commit","unmount","createBatch","Vi","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","unstable_interactiveUpdates","flushSync","unstable_createRoot","unstable_flushControlled","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Te","overrideProps","currentDispatcherRef","findHostInstanceByFiber","bundleType","rendererPackageName","Wi","Xi","previous","priorityLevel","cancelAnimationFrame","_schedMock","MessageChannel","port2","port1","onmessage","postMessage","unstable_next","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","originalModule","webpackPolyfill","__webpack_amd_options__","extendStatics","getPassiveOptions","passive","check","__extends","__","SvgDrawing_SvgDrawing","_super","SvgDrawing","_this","clearListner","toSvgXml","toSvgBase64","drawingStart","drawingMove","drawingEnd","mouseUp","mouseMove","mouseDown","touchStart","touchMove","touchEnd","two_module","penColor","penWidth","strokeCap","strokeLineJoin","clientWidth","clientHeight","svgXML","doc","svgEle","originSvgEle","svgElement","outerHTML","DOMParser","parseFromString","querySelector","attrValue","svgXml","btoa","_a","makePoint","mx","my","vprev","vnext","__assign","useSvgDrawing","option","renderRef","react","drawingRef","getSvgXML","download","base64","filename","mimeType","atob","Uint8Array","charCodeAt","blob","Blob","navigator","msSaveBlob","URL","createObjectURL","click","downloadBlob","toISOString","changePenColor","changePenWidth","penSise","undo","drawingChildren","two","__read","getRandomInt","getRandomColor","padStart","app","react_dom","react_default","divRef","_b","drawingClear","_c","_d","xml","setXml","_e","penMode","setPenMode","_f","setPenWidth","_g","penThinnerWidth","setPenThinnerWidth","handleColor","handlePenWidth","handleChangeXML","handleChangeMode","handleUpdatePenConfig","pressureChange","pressure_min_default","onChange","includes","justifyContent","onMouseMove","onTouchMove","onTouchEnd","onMouseLeave","fontSize"],"mappings":"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","file":"main.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n\nMIT License\n\nCopyright (c) 2012 - 2017 jonobr1 / http://jonobr1.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n*/\n\n(this || window).Two = (function(previousTwo) {\n\n var root = typeof window != 'undefined' ? window : typeof global != 'undefined' ? global : null;\n var toString = Object.prototype.toString;\n /**\n * @name _\n * @interface\n * @private\n * @description A collection of useful functions borrowed and repurposed from Underscore.js.\n * @see {@link http://underscorejs.org/}\n */\n var _ = {\n // http://underscorejs.org/ • 1.8.3\n _indexAmount: 0,\n natural: {\n slice: Array.prototype.slice,\n indexOf: Array.prototype.indexOf,\n keys: Object.keys,\n bind: Function.prototype.bind,\n create: Object.create\n },\n identity: function(value) {\n return value;\n },\n isArguments: function(obj) {\n return toString.call(obj) === '[object Arguments]';\n },\n isFunction: function(obj) {\n return toString.call(obj) === '[object Function]';\n },\n isString: function(obj) {\n return toString.call(obj) === '[object String]';\n },\n isNumber: function(obj) {\n return toString.call(obj) === '[object Number]';\n },\n isDate: function(obj) {\n return toString.call(obj) === '[object Date]';\n },\n isRegExp: function(obj) {\n return toString.call(obj) === '[object RegExp]';\n },\n isError: function(obj) {\n return toString.call(obj) === '[object Error]';\n },\n isFinite: function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n },\n isNaN: function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n },\n isBoolean: function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n },\n isNull: function(obj) {\n return obj === null;\n },\n isUndefined: function(obj) {\n return obj === void 0;\n },\n isEmpty: function(obj) {\n if (obj == null) return true;\n if (isArrayLike && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n },\n isElement: function(obj) {\n return !!(obj && obj.nodeType === 1);\n },\n isArray: Array.isArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n },\n isObject: function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n },\n toArray: function(obj) {\n if (!obj) {\n return [];\n }\n if (_.isArray(obj)) {\n return slice.call(obj);\n }\n if (isArrayLike(obj)) {\n return _.map(obj, _.identity);\n }\n return _.values(obj);\n },\n range: function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n },\n indexOf: function(list, item) {\n if (!!_.natural.indexOf) {\n return _.natural.indexOf.call(list, item);\n }\n for (var i = 0; i < list.length; i++) {\n if (list[i] === item) {\n return i;\n }\n }\n return -1;\n },\n has: function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n },\n bind: function(func, ctx) {\n var natural = _.natural.bind;\n if (natural && func.bind === natural) {\n return natural.apply(func, slice.call(arguments, 1));\n }\n var args = slice.call(arguments, 2);\n return function() {\n func.apply(ctx, args);\n };\n },\n extend: function(base) {\n var sources = slice.call(arguments, 1);\n for (var i = 0; i < sources.length; i++) {\n var obj = sources[i];\n for (var k in obj) {\n base[k] = obj[k];\n }\n }\n return base;\n },\n defaults: function(base) {\n var sources = slice.call(arguments, 1);\n for (var i = 0; i < sources.length; i++) {\n var obj = sources[i];\n for (var k in obj) {\n if (base[k] === void 0) {\n base[k] = obj[k];\n }\n }\n }\n return base;\n },\n keys: function(obj) {\n if (!_.isObject(obj)) {\n return [];\n }\n if (_.natural.keys) {\n return _.natural.keys(obj);\n }\n var keys = [];\n for (var k in obj) {\n if (_.has(obj, k)) {\n keys.push(k);\n }\n }\n return keys;\n },\n values: function(obj) {\n var keys = _.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n values.push(obj[k]);\n }\n return values;\n },\n each: function(obj, iteratee, context) {\n var ctx = context || this;\n var keys = !isArrayLike(obj) && _.keys(obj);\n var length = (keys || obj).length;\n for (var i = 0; i < length; i++) {\n var k = keys ? keys[i] : i;\n iteratee.call(ctx, obj[k], k, obj);\n }\n return obj;\n },\n map: function(obj, iteratee, context) {\n var ctx = context || this;\n var keys = !isArrayLike(obj) && _.keys(obj);\n var length = (keys || obj).length;\n var result = [];\n for (var i = 0; i < length; i++) {\n var k = keys ? keys[i] : i;\n result[i] = iteratee.call(ctx, obj[k], k, obj);\n }\n return result;\n },\n once: function(func) {\n var init = false;\n return function() {\n if (!!init) {\n return func;\n }\n init = true;\n return func.apply(this, arguments);\n }\n },\n after: function(times, func) {\n return function() {\n while (--times < 1) {\n return func.apply(this, arguments);\n }\n }\n },\n uniqueId: function(prefix) {\n var id = ++_._indexAmount + '';\n return prefix ? prefix + id : id;\n }\n };\n\n // Constants\n\n var sin = Math.sin,\n cos = Math.cos,\n acos = Math.acos,\n atan2 = Math.atan2,\n sqrt = Math.sqrt,\n round = Math.round,\n abs = Math.abs,\n PI = Math.PI,\n TWO_PI = PI * 2,\n HALF_PI = PI / 2,\n pow = Math.pow,\n min = Math.min,\n max = Math.max;\n\n // Localized variables\n\n var count = 0;\n var slice = _.natural.slice;\n var perf = ((root.performance && root.performance.now) ? root.performance : Date);\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = function(obj) {\n return obj == null ? void 0 : obj['length'];\n };\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Cross browser dom events.\n\n var dom = {\n\n temp: (root.document ? root.document.createElement('div') : {}),\n\n hasEventListeners: _.isFunction(root.addEventListener),\n\n bind: function(elem, event, func, bool) {\n if (this.hasEventListeners) {\n elem.addEventListener(event, func, !!bool);\n } else {\n elem.attachEvent('on' + event, func);\n }\n return dom;\n },\n\n unbind: function(elem, event, func, bool) {\n if (dom.hasEventListeners) {\n elem.removeEventListeners(event, func, !!bool);\n } else {\n elem.detachEvent('on' + event, func);\n }\n return dom;\n },\n\n getRequestAnimationFrame: function() {\n\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n var request = root.requestAnimationFrame, cancel;\n\n if(!request) {\n for (var i = 0; i < vendors.length; i++) {\n request = root[vendors[i] + 'RequestAnimationFrame'] || request;\n cancel = root[vendors[i] + 'CancelAnimationFrame']\n || root[vendors[i] + 'CancelRequestAnimationFrame'] || cancel;\n }\n\n request = request || function(callback, element) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = root.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n // cancel = cancel || function(id) {\n // clearTimeout(id);\n // };\n }\n\n request.init = _.once(loop);\n\n return request;\n\n }\n\n };\n\n /**\n * @name Two\n * @class\n * @global\n * @param {Object} [options]\n * @param {Boolean} [options.fullscreen=false] - Set to `true` to automatically make the stage adapt to the width and height of the parent document. This parameter overrides `width` and `height` parameters if set to `true`.\n * @param {Number} [options.width=640] - The width of the stage on construction. This can be set at a later time.\n * @param {Number} [options.height=480] - The height of the stage on construction. This can be set at a later time.\n * @param {String} [options.type=Two.Types.svg] - The type of renderer to setup drawing with. See [`Two.Types`]{@link Two.Types} for available options.\n * @param {Boolean} [options.autostart=false] - Set to `true` to add the instance to draw on `requestAnimationFrame`. This is a convenient substitute for {@link Two#play}.\n * @description The entrypoint for Two.js. Instantiate a `new Two` in order to setup a scene to render to. `Two` is also the publicly accessible namespace that all other sub-classes, functions, and utilities attach to.\n */\n var Two = root.Two = function(options) {\n\n // Determine what Renderer to use and setup a scene.\n\n var params = _.defaults(options || {}, {\n fullscreen: false,\n width: 640,\n height: 480,\n type: Two.Types.svg,\n autostart: false\n });\n\n _.each(params, function(v, k) {\n if (/fullscreen/i.test(k) || /autostart/i.test(k)) {\n return;\n }\n this[k] = v;\n }, this);\n\n // Specified domElement overrides type declaration only if the element does not support declared renderer type.\n if (_.isElement(params.domElement)) {\n var tagName = params.domElement.tagName.toLowerCase();\n // TODO: Reconsider this if statement's logic.\n if (!/^(CanvasRenderer-canvas|WebGLRenderer-canvas|SVGRenderer-svg)$/.test(this.type+'-'+tagName)) {\n this.type = Two.Types[tagName];\n }\n }\n\n this.renderer = new Two[this.type](this);\n Two.Utils.setPlaying.call(this, params.autostart);\n this.frameCount = 0;\n\n if (params.fullscreen) {\n\n var fitted = _.bind(fitToWindow, this);\n _.extend(document.body.style, {\n overflow: 'hidden',\n margin: 0,\n padding: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n position: 'fixed'\n });\n _.extend(this.renderer.domElement.style, {\n display: 'block',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n position: 'fixed'\n });\n dom.bind(root, 'resize', fitted);\n fitted();\n\n\n } else if (!_.isElement(params.domElement)) {\n\n this.renderer.setSize(params.width, params.height, this.ratio);\n this.width = params.width;\n this.height = params.height;\n\n }\n\n this.renderer.bind(Two.Events.resize, _.bind(updateDimensions, this));\n this.scene = this.renderer.scene;\n\n Two.Instances.push(this);\n if (params.autostart) {\n raf.init();\n }\n\n };\n\n _.extend(Two, {\n\n // Access to root in other files.\n\n /**\n * @name Two.root\n * @description The root of the session context. In the browser this is the `window` variable. This varies in headless environments.\n */\n root: root,\n\n /**\n * @name Two.nextFrameID\n * @property {Integer}\n * @description The id of the next requestAnimationFrame function.\n */\n nextFrameID: null,\n\n // Primitive\n\n /**\n * @name Two.Array\n * @description A simple polyfill for Float32Array.\n */\n Array: root.Float32Array || Array,\n\n /**\n * @name Two.Types\n * @property {Object} - The different rendering types availabe in the library.\n */\n Types: {\n webgl: 'WebGLRenderer',\n svg: 'SVGRenderer',\n canvas: 'CanvasRenderer'\n },\n\n /**\n * @name Two.Version\n * @property {String} - The current working version of the library.\n */\n Version: 'v0.7.0-beta.3',\n\n /**\n * @name Two.PublishDate\n * @property {String} - The automatically generated publish date in the build process to verify version release candidates.\n */\n PublishDate: '2018-12-08T22:41:43+01:00',\n\n /**\n * @name Two.Identifier\n * @property {String} - String prefix for all Two.js object's ids. This trickles down to SVG ids.\n */\n Identifier: 'two-',\n\n /**\n * @name Two.Events\n * @property {Object} - Map of possible events in Two.js.\n */\n Events: {\n play: 'play',\n pause: 'pause',\n update: 'update',\n render: 'render',\n resize: 'resize',\n change: 'change',\n remove: 'remove',\n insert: 'insert',\n order: 'order',\n load: 'load'\n },\n\n /**\n * @name Two.Commands\n * @property {Object} - Map of possible path commands. Taken from the SVG specification.\n */\n Commands: {\n move: 'M',\n line: 'L',\n curve: 'C',\n arc: 'A',\n close: 'Z'\n },\n\n /**\n * @name Two.Resolution\n * @property {Number} - Default amount of vertices to be used for interpreting Arcs and ArcSegments.\n */\n Resolution: 12,\n\n /**\n * @name Two.Instances\n * @property {Array} - Registered list of all Two.js instances in the current session.\n */\n Instances: [],\n\n /**\n * @function Two.noConflict\n * @description A function to revert the global namespaced `Two` variable to its previous incarnation.\n * @returns {Two} Returns access to the top-level Two.js library for local use.\n */\n noConflict: function() {\n root.Two = previousTwo;\n return Two;\n },\n\n /**\n * @function Two.uniqueId\n * @description Simple method to access an incrementing value. Used for `id` allocation on all Two.js objects.\n * @returns {Number} Ever increasing integer.\n */\n uniqueId: function() {\n var id = count;\n count++;\n return id;\n },\n\n /**\n * @name Two.Utils\n * @interface\n * @implements {_}\n * @description A hodgepodge of handy functions, math, and properties are stored here.\n */\n Utils: _.extend(_, {\n\n /**\n * @name Two.Utils.performance\n * @property {Date} - A special `Date` like object to get the current millis of the session. Used internally to calculate time between frames.\n * e.g: `Two.Utils.performance.now() // milliseconds since epoch`\n */\n performance: perf,\n\n /**\n * @name Two.Utils.defineProperty\n * @function\n * @this Two#\n * @param {String} property - The property to add an enumerable getter / setter to.\n * @description Convenience function to setup the flag based getter / setter that most properties are defined as in Two.js.\n */\n defineProperty: function(property) {\n\n var object = this;\n var secret = '_' + property;\n var flag = '_flag' + property.charAt(0).toUpperCase() + property.slice(1);\n\n Object.defineProperty(object, property, {\n enumerable: true,\n get: function() {\n return this[secret];\n },\n set: function(v) {\n this[secret] = v;\n this[flag] = true;\n }\n });\n\n },\n\n Image: null,\n\n isHeadless: false,\n\n /**\n * @name Two.Utils.shim\n * @function\n * @param {canvas} canvas - The instanced `Canvas` object provided by `node-canvas`.\n * @param {Image} [Image] - The prototypical `Image` object provided by `node-canvas`. This is only necessary to pass if you're going to load bitmap imagery.\n * @returns {canvas} Returns the instanced canvas object you passed from with additional attributes needed for Two.js.\n * @description Convenience method for defining all the dependencies from the npm package `node-canvas`. See [node-canvas]{@link https://github.com/Automattic/node-canvas} for additional information on setting up HTML5 `` drawing in a node.js environment.\n */\n shim: function(canvas, Image) {\n Two.CanvasRenderer.Utils.shim(canvas);\n if (!_.isUndefined(Image)) {\n Two.Utils.Image = Image;\n }\n Two.Utils.isHeadless = true;\n return canvas;\n },\n\n /**\n * @name Two.Utils.release\n * @function\n * @param {Object} obj\n * @returns {Object} The object passed for event deallocation.\n * @description Release an arbitrary class' events from the Two.js corpus and recurse through its children and or vertices.\n */\n release: function(obj) {\n\n if (!_.isObject(obj)) {\n return;\n }\n\n if (_.isFunction(obj.unbind)) {\n obj.unbind();\n }\n\n if (obj.vertices) {\n if (_.isFunction(obj.vertices.unbind)) {\n obj.vertices.unbind();\n }\n _.each(obj.vertices, function(v) {\n if (_.isFunction(v.unbind)) {\n v.unbind();\n }\n });\n }\n\n if (obj.children) {\n _.each(obj.children, function(obj) {\n Two.Utils.release(obj);\n });\n }\n\n return obj;\n\n },\n\n /**\n * @name Two.Utils.xhr\n * @function\n * @param {String} path\n * @param {Function} callback\n * @returns {XMLHttpRequest} The constructed and called XHR request.\n * @description Canonical method to initiate `GET` requests in the browser. Mainly used by {@link Two#load} method.\n */\n xhr: function(path, callback) {\n\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path);\n\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4 && xhr.status === 200) {\n callback(xhr.responseText);\n }\n };\n\n xhr.send();\n return xhr;\n\n },\n\n /**\n * @name Two.Utils.Curve\n * @property {Object} - Additional utility constant variables related to curve math and calculations.\n */\n Curve: {\n\n CollinearityEpsilon: pow(10, -30),\n\n RecursionLimit: 16,\n\n CuspLimit: 0,\n\n Tolerance: {\n distance: 0.25,\n angle: 0,\n epsilon: Number.EPSILON\n },\n\n // Lookup tables for abscissas and weights with values for n = 2 .. 16.\n // As values are symmetric, only store half of them and adapt algorithm\n // to factor in symmetry.\n abscissas: [\n [ 0.5773502691896257645091488],\n [0,0.7745966692414833770358531],\n [ 0.3399810435848562648026658,0.8611363115940525752239465],\n [0,0.5384693101056830910363144,0.9061798459386639927976269],\n [ 0.2386191860831969086305017,0.6612093864662645136613996,0.9324695142031520278123016],\n [0,0.4058451513773971669066064,0.7415311855993944398638648,0.9491079123427585245261897],\n [ 0.1834346424956498049394761,0.5255324099163289858177390,0.7966664774136267395915539,0.9602898564975362316835609],\n [0,0.3242534234038089290385380,0.6133714327005903973087020,0.8360311073266357942994298,0.9681602395076260898355762],\n [ 0.1488743389816312108848260,0.4333953941292471907992659,0.6794095682990244062343274,0.8650633666889845107320967,0.9739065285171717200779640],\n [0,0.2695431559523449723315320,0.5190961292068118159257257,0.7301520055740493240934163,0.8870625997680952990751578,0.9782286581460569928039380],\n [ 0.1252334085114689154724414,0.3678314989981801937526915,0.5873179542866174472967024,0.7699026741943046870368938,0.9041172563704748566784659,0.9815606342467192506905491],\n [0,0.2304583159551347940655281,0.4484927510364468528779129,0.6423493394403402206439846,0.8015780907333099127942065,0.9175983992229779652065478,0.9841830547185881494728294],\n [ 0.1080549487073436620662447,0.3191123689278897604356718,0.5152486363581540919652907,0.6872929048116854701480198,0.8272013150697649931897947,0.9284348836635735173363911,0.9862838086968123388415973],\n [0,0.2011940939974345223006283,0.3941513470775633698972074,0.5709721726085388475372267,0.7244177313601700474161861,0.8482065834104272162006483,0.9372733924007059043077589,0.9879925180204854284895657],\n [ 0.0950125098376374401853193,0.2816035507792589132304605,0.4580167776572273863424194,0.6178762444026437484466718,0.7554044083550030338951012,0.8656312023878317438804679,0.9445750230732325760779884,0.9894009349916499325961542]\n ],\n\n weights: [\n [1],\n [0.8888888888888888888888889,0.5555555555555555555555556],\n [0.6521451548625461426269361,0.3478548451374538573730639],\n [0.5688888888888888888888889,0.4786286704993664680412915,0.2369268850561890875142640],\n [0.4679139345726910473898703,0.3607615730481386075698335,0.1713244923791703450402961],\n [0.4179591836734693877551020,0.3818300505051189449503698,0.2797053914892766679014678,0.1294849661688696932706114],\n [0.3626837833783619829651504,0.3137066458778872873379622,0.2223810344533744705443560,0.1012285362903762591525314],\n [0.3302393550012597631645251,0.3123470770400028400686304,0.2606106964029354623187429,0.1806481606948574040584720,0.0812743883615744119718922],\n [0.2955242247147528701738930,0.2692667193099963550912269,0.2190863625159820439955349,0.1494513491505805931457763,0.0666713443086881375935688],\n [0.2729250867779006307144835,0.2628045445102466621806889,0.2331937645919904799185237,0.1862902109277342514260976,0.1255803694649046246346943,0.0556685671161736664827537],\n [0.2491470458134027850005624,0.2334925365383548087608499,0.2031674267230659217490645,0.1600783285433462263346525,0.1069393259953184309602547,0.0471753363865118271946160],\n [0.2325515532308739101945895,0.2262831802628972384120902,0.2078160475368885023125232,0.1781459807619457382800467,0.1388735102197872384636018,0.0921214998377284479144218,0.0404840047653158795200216],\n [0.2152638534631577901958764,0.2051984637212956039659241,0.1855383974779378137417166,0.1572031671581935345696019,0.1215185706879031846894148,0.0801580871597602098056333,0.0351194603317518630318329],\n [0.2025782419255612728806202,0.1984314853271115764561183,0.1861610000155622110268006,0.1662692058169939335532009,0.1395706779261543144478048,0.1071592204671719350118695,0.0703660474881081247092674,0.0307532419961172683546284],\n [0.1894506104550684962853967,0.1826034150449235888667637,0.1691565193950025381893121,0.1495959888165767320815017,0.1246289712555338720524763,0.0951585116824927848099251,0.0622535239386478928628438,0.0271524594117540948517806]\n ]\n\n },\n\n devicePixelRatio: root.devicePixelRatio || 1,\n\n getBackingStoreRatio: function(ctx) {\n return ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio || 1;\n },\n\n /**\n * @name Two.Utils.getRatio\n * @function\n * @param {Canvas.context2D} ctx\n * @returns {Number} The ratio of a unit in Two.js to the pixel density of a session's screen.\n * @see [High DPI Rendering]{@link http://www.html5rocks.com/en/tutorials/canvas/hidpi/}\n */\n getRatio: function(ctx) {\n return Two.Utils.devicePixelRatio / getBackingStoreRatio(ctx);\n },\n\n /**\n * @name Two.Utils.setPlaying\n * @function\n * @this Two#\n * @returns {Two} The instance called with for potential chaining.\n * @description Internal convenience method to properly defer play calling until after all objects have been updated with their newest styles.\n */\n setPlaying: function(b) {\n\n this.playing = !!b;\n return this;\n\n },\n\n /**\n * @name Two.Utils.getComputedMatrix\n * @function\n * @param {Two.Shape} object - The Two.js object that has a matrix property to calculate from.\n * @param {Two.Matrix} [matrix] - The matrix to apply calculated transformations to if available.\n * @returns {Two.Matrix} The computed matrix of a nested object. If no `matrix` was passed in arguments then a `new Two.Matrix` is returned.\n * @description Method to get the world space transformation of a given object in a Two.js scene.\n */\n getComputedMatrix: function(object, matrix) {\n\n matrix = (matrix && matrix.identity()) || new Two.Matrix();\n var parent = object, matrices = [];\n\n while (parent && parent._matrix) {\n matrices.push(parent._matrix);\n parent = parent.parent;\n }\n\n matrices.reverse();\n\n for (var i = 0; i < matrices.length; i++) {\n\n var m = matrices[i];\n var e = m.elements;\n matrix.multiply(\n e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8], e[9]);\n\n }\n\n return matrix;\n\n },\n\n /**\n * @name Two.Utils.deltaTransformPoint\n * @function\n * @param {Two.Matrix} matrix\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector}\n * @description Used by {@link Two.Utils.decomposeMatrix}\n */\n deltaTransformPoint: function(matrix, x, y) {\n\n var dx = x * matrix.a + y * matrix.c + 0;\n var dy = x * matrix.b + y * matrix.d + 0;\n\n return new Two.Vector(dx, dy);\n\n },\n\n /**\n * @name Two.Utils.decomposeMatrix\n * @function\n * @param {Two.Matrix} matrix - The matrix to decompose.\n * @returns {Object} An object containing relevant skew values.\n * @description Decompose a 2D 3x3 Matrix to find the skew.\n * @see {@link https://gist.github.com/2052247}\n */\n decomposeMatrix: function(matrix) {\n\n // calculate delta transform point\n var px = Two.Utils.deltaTransformPoint(matrix, 0, 1);\n var py = Two.Utils.deltaTransformPoint(matrix, 1, 0);\n\n // calculate skew\n var skewX = ((180 / Math.PI) * Math.atan2(px.y, px.x) - 90);\n var skewY = ((180 / Math.PI) * Math.atan2(py.y, py.x));\n\n return {\n translateX: matrix.e,\n translateY: matrix.f,\n scaleX: Math.sqrt(matrix.a * matrix.a + matrix.b * matrix.b),\n scaleY: Math.sqrt(matrix.c * matrix.c + matrix.d * matrix.d),\n skewX: skewX,\n skewY: skewY,\n rotation: skewX // rotation is the same as skew x\n };\n\n },\n\n /**\n * @name Two.Utils.extractCSSText\n * @function\n * @param {String} text - The CSS text body to be parsed and extracted.\n * @param {Object} [styles] - The styles object to apply CSS key values to.\n * @returns {Object} styles\n * @description Parse CSS text body and apply them as key value pairs to a JavaScript object.\n */\n extractCSSText: function(text, styles) {\n\n var commands, command, name, value;\n\n if (!styles) {\n styles = {};\n }\n\n commands = text.split(';');\n\n for (var i = 0; i < commands.length; i++) {\n command = commands[i].split(':');\n name = command[0];\n value = command[1];\n if (_.isUndefined(name) || _.isUndefined(value)) {\n continue;\n }\n styles[name] = value.replace(/\\s/, '');\n }\n\n return styles;\n\n },\n\n /**\n * @name Two.Utils.getSvgStyles\n * @function\n * @param {SvgNode} node - The SVG node to parse.\n * @returns {Object} styles\n * @description Get the CSS comands from the `style` attribute of an SVG node and apply them as key value pairs to a JavaScript object.\n */\n getSvgStyles: function(node) {\n\n var styles = {};\n\n for (var i = 0; i < node.style.length; i++) {\n var command = node.style[i];\n styles[command] = node.style[command];\n }\n\n return styles;\n\n },\n\n /**\n * @name Two.Utils.applySvgViewBox\n * @function\n * @param {Two.Shape} node - The Two.js object to apply viewbox matrix to\n * @param {String} value - The viewBox value from the SVG attribute\n * @returns {Two.Shape} node\n @ @description\n */\n applySvgViewBox: function(node, value) {\n\n var elements = value.split(/\\s/);\n\n var x = parseFloat(elements[0]);\n var y = parseFloat(elements[1]);\n var width = parseFloat(elements[2]);\n var height = parseFloat(elements[3]);\n\n var s = Math.min(this.width / width, this.height / height);\n\n node.translation.x -= x * s;\n node.translation.y -= y * s;\n node.scale = s;\n\n return node;\n\n },\n\n /**\n * @name Two.Utils.applySvgAttributes\n * @function\n * @param {SvgNode} node - An SVG Node to extrapolate attributes from.\n * @param {Two.Shape} elem - The Two.js object to apply extrapolated attributes to.\n * @returns {Two.Shape} The Two.js object passed now with applied attributes.\n * @description This function iterates through an SVG Node's properties and stores ones of interest. It tries to resolve styles applied via CSS as well.\n * @TODO Reverse calculate `Two.Gradient`s for fill / stroke of any given path.\n */\n applySvgAttributes: function(node, elem, parentStyles) {\n\n var styles = {}, attributes = {}, extracted = {}, i, key, value, attr;\n\n // Not available in non browser environments\n if (root.getComputedStyle) {\n // Convert CSSStyleDeclaration to a normal object\n var computedStyles = root.getComputedStyle(node);\n i = computedStyles.length;\n\n while (i--) {\n key = computedStyles[i];\n value = computedStyles[key];\n // Gecko returns undefined for unset properties\n // Webkit returns the default value\n if (!_.isUndefined(value)) {\n styles[key] = value;\n }\n }\n }\n\n // Convert NodeMap to a normal object\n for (i = 0; i < node.attributes.length; i++) {\n attr = node.attributes[i];\n if (/style/i.test(attr.nodeName)) {\n Two.Utils.extractCSSText(attr.value, extracted);\n } else {\n attributes[attr.nodeName] = attr.value;\n }\n }\n\n // Getting the correct opacity is a bit tricky, since SVG path elements don't\n // support opacity as an attribute, but you can apply it via CSS.\n // So we take the opacity and set (stroke/fill)-opacity to the same value.\n if (!_.isUndefined(styles.opacity)) {\n styles['stroke-opacity'] = styles.opacity;\n styles['fill-opacity'] = styles.opacity;\n delete styles.opacity;\n }\n\n // Merge attributes and applied styles (attributes take precedence)\n if (parentStyles) {\n _.defaults(styles, parentStyles);\n }\n _.extend(styles, attributes, extracted);\n\n // Similarly visibility is influenced by the value of both display and visibility.\n // Calculate a unified value here which defaults to `true`.\n styles.visible = !(_.isUndefined(styles.display) && /none/i.test(styles.display))\n || (_.isUndefined(styles.visibility) && /hidden/i.test(styles.visibility));\n\n // Now iterate the whole thing\n for (key in styles) {\n value = styles[key];\n\n switch (key) {\n case 'transform':\n // TODO: Check this out https://github.com/paperjs/paper.js/blob/develop/src/svg/SvgImport.js#L315\n if (/none/i.test(value)) break;\n var m = (node.transform && node.transform.baseVal && node.transform.baseVal.length > 0)\n ? node.transform.baseVal[0].matrix\n : (node.getCTM ? node.getCTM() : null);\n\n // Might happen when transform string is empty or not valid.\n if (_.isNull(m)) break;\n\n // // Option 1: edit the underlying matrix and don't force an auto calc.\n // var m = node.getCTM();\n // elem._matrix.manual = true;\n // elem._matrix.set(m.a, m.b, m.c, m.d, m.e, m.f);\n\n // Option 2: Decompose and infer Two.js related properties.\n var transforms = Two.Utils.decomposeMatrix(m);\n\n elem.translation.set(transforms.translateX, transforms.translateY);\n elem.rotation = transforms.rotation;\n elem.scale = new Two.Vector(transforms.scaleX, transforms.scaleY);\n\n var x = parseFloat((styles.x + '').replace('px'));\n var y = parseFloat((styles.y + '').replace('px'));\n\n // Override based on attributes.\n if (x) {\n elem.translation.x = x;\n }\n\n if (y) {\n elem.translation.y = y;\n }\n\n break;\n case 'viewBox':\n Two.Utils.applySvgViewBox.call(this, elem, value);\n break;\n case 'visible':\n elem.visible = value;\n break;\n case 'stroke-linecap':\n elem.cap = value;\n break;\n case 'stroke-linejoin':\n elem.join = value;\n break;\n case 'stroke-miterlimit':\n elem.miter = value;\n break;\n case 'stroke-width':\n elem.linewidth = parseFloat(value);\n break;\n case 'opacity':\n case 'stroke-opacity':\n case 'fill-opacity':\n // Only apply styles to rendered shapes\n // in the scene.\n if (!(elem instanceof Two.Group)) {\n elem.opacity = parseFloat(value);\n }\n break;\n case 'fill':\n case 'stroke':\n if (/url\\(\\#.*\\)/i.test(value)) {\n elem[key] = this.getById(\n value.replace(/url\\(\\#(.*)\\)/i, '$1'));\n } else {\n elem[key] = (/none/i.test(value)) ? 'transparent' : value;\n }\n break;\n case 'id':\n elem.id = value;\n break;\n case 'class':\n case 'className':\n elem.classList = value.split(' ');\n break;\n }\n }\n\n return styles;\n\n },\n\n /**\n * @name Two.Utils.read\n * @property {Object} read - A map of functions to read any number of SVG node types and create Two.js equivalents of them. Primarily used by the {@link Two#interpret} method.\n */\n read: {\n\n svg: function(node) {\n\n var svg = Two.Utils.read.g.call(this, node);\n var viewBox = node.getAttribute('viewBox');\n // Two.Utils.applySvgViewBox(svg, viewBox);\n\n return svg;\n\n },\n\n g: function(node) {\n\n var styles, attrs;\n var group = new Two.Group();\n\n // Switched up order to inherit more specific styles\n styles = Two.Utils.getSvgStyles.call(this, node);\n\n for (var i = 0, l = node.childNodes.length; i < l; i++) {\n var n = node.childNodes[i];\n var tag = n.nodeName;\n if (!tag) return;\n\n var tagName = tag.replace(/svg\\:/ig, '').toLowerCase();\n\n if (tagName in Two.Utils.read) {\n var o = Two.Utils.read[tagName].call(group, n, styles);\n group.add(o);\n }\n }\n\n return group;\n\n },\n\n polygon: function(node, parentStyles) {\n\n var points = node.getAttribute('points');\n\n var verts = [];\n points.replace(/(-?[\\d\\.?]+)[,|\\s](-?[\\d\\.?]+)/g, function(match, p1, p2) {\n verts.push(new Two.Anchor(parseFloat(p1), parseFloat(p2)));\n });\n\n var poly = new Two.Path(verts, true).noStroke();\n poly.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, poly, parentStyles);\n\n return poly;\n\n },\n\n polyline: function(node, parentStyles) {\n var poly = Two.Utils.read.polygon.call(this, node, parentStyles);\n poly.closed = false;\n return poly;\n },\n\n path: function(node, parentStyles) {\n\n var path = node.getAttribute('d');\n\n // Create a Two.Path from the paths.\n\n var coord = new Two.Anchor();\n var control, coords;\n var closed = false, relative = false;\n var commands = path.match(/[a-df-z][^a-df-z]*/ig);\n var last = commands.length - 1;\n\n // Split up polybeziers\n\n _.each(commands.slice(0), function(command, i) {\n\n var number, fid, lid, numbers, first, s;\n var j, k, ct, l, times;\n\n var type = command[0];\n var lower = type.toLowerCase();\n var items = command.slice(1).trim().split(/[\\s,]+|(?=\\s?[+\\-])/);\n var pre, post, result = [], bin;\n var hasDoubleDecimals = false;\n\n // Handle double decimal values e.g: 48.6037.71.8\n // Like: https://m.abcsofchinese.com/images/svg/亼ji2.svg\n for (j = 0; j < items.length; j++) {\n\n number = items[j];\n fid = number.indexOf('.');\n lid = number.lastIndexOf('.');\n\n if (fid !== lid) {\n\n numbers = number.split('.');\n first = numbers[0] + '.' + numbers[1];\n\n items.splice(j, 1, first);\n\n for (s = 2; s < numbers.length; s++) {\n items.splice(j + s - 1, 0, '0.' + numbers[s]);\n }\n\n hasDoubleDecimals = true;\n\n }\n\n }\n\n if (hasDoubleDecimals) {\n command = type + items.join(',');\n }\n\n if (i <= 0) {\n commands = [];\n }\n\n switch (lower) {\n case 'h':\n case 'v':\n if (items.length > 1) {\n bin = 1;\n }\n break;\n case 'm':\n case 'l':\n case 't':\n if (items.length > 2) {\n bin = 2;\n }\n break;\n case 's':\n case 'q':\n if (items.length > 4) {\n bin = 4;\n }\n break;\n case 'c':\n if (items.length > 6) {\n bin = 6;\n }\n break;\n case 'a':\n if (items.length > 7) {\n bin = 7;\n }\n break;\n }\n\n // This means we have a polybezier.\n if (bin) {\n\n for (j = 0, l = items.length, times = 0; j < l; j+=bin) {\n\n ct = type;\n if (times > 0) {\n\n switch (type) {\n case 'm':\n ct = 'l';\n break;\n case 'M':\n ct = 'L';\n break;\n }\n\n }\n\n result.push(ct + items.slice(j, j + bin).join(' '));\n times++;\n\n }\n\n commands = Array.prototype.concat.apply(commands, result);\n\n } else {\n\n commands.push(command);\n\n }\n\n });\n\n // Create the vertices for our Two.Path\n\n var points = [];\n _.each(commands, function(command, i) {\n\n var result, x, y;\n var type = command[0];\n var lower = type.toLowerCase();\n\n coords = command.slice(1).trim();\n coords = coords.replace(/(-?\\d+(?:\\.\\d*)?)[eE]([+\\-]?\\d+)/g, function(match, n1, n2) {\n return parseFloat(n1) * pow(10, n2);\n });\n coords = coords.split(/[\\s,]+|(?=\\s?[+\\-])/);\n relative = type === lower;\n\n var x1, y1, x2, y2, x3, y3, x4, y4, reflection;\n\n switch (lower) {\n\n case 'z':\n if (i >= last) {\n closed = true;\n } else {\n x = coord.x;\n y = coord.y;\n result = new Two.Anchor(\n x, y,\n undefined, undefined,\n undefined, undefined,\n Two.Commands.close\n );\n // Make coord be the last `m` command\n for (var i = points.length - 1; i >= 0; i--) {\n var point = points[i];\n if (/m/i.test(point.command)) {\n coord = point;\n break;\n }\n }\n }\n break;\n\n case 'm':\n case 'l':\n\n control = undefined;\n\n x = parseFloat(coords[0]);\n y = parseFloat(coords[1]);\n\n result = new Two.Anchor(\n x, y,\n undefined, undefined,\n undefined, undefined,\n /m/i.test(lower) ? Two.Commands.move : Two.Commands.line\n );\n\n if (relative) {\n result.addSelf(coord);\n }\n\n // result.controls.left.copy(result);\n // result.controls.right.copy(result);\n\n coord = result;\n break;\n\n case 'h':\n case 'v':\n\n var a = /h/i.test(lower) ? 'x' : 'y';\n var b = /x/i.test(a) ? 'y' : 'x';\n\n result = new Two.Anchor(\n undefined, undefined,\n undefined, undefined,\n undefined, undefined,\n Two.Commands.line\n );\n result[a] = parseFloat(coords[0]);\n result[b] = coord[b];\n\n if (relative) {\n result[a] += coord[a];\n }\n\n // result.controls.left.copy(result);\n // result.controls.right.copy(result);\n\n coord = result;\n break;\n\n case 'c':\n case 's':\n\n x1 = coord.x;\n y1 = coord.y;\n\n if (!control) {\n control = new Two.Vector();//.copy(coord);\n }\n\n if (/c/i.test(lower)) {\n\n x2 = parseFloat(coords[0]);\n y2 = parseFloat(coords[1]);\n x3 = parseFloat(coords[2]);\n y3 = parseFloat(coords[3]);\n x4 = parseFloat(coords[4]);\n y4 = parseFloat(coords[5]);\n\n } else {\n\n // Calculate reflection control point for proper x2, y2\n // inclusion.\n\n reflection = getReflection(coord, control, relative);\n\n x2 = reflection.x;\n y2 = reflection.y;\n x3 = parseFloat(coords[0]);\n y3 = parseFloat(coords[1]);\n x4 = parseFloat(coords[2]);\n y4 = parseFloat(coords[3]);\n\n }\n\n if (relative) {\n x2 += x1;\n y2 += y1;\n x3 += x1;\n y3 += y1;\n x4 += x1;\n y4 += y1;\n }\n\n if (!_.isObject(coord.controls)) {\n Two.Anchor.AppendCurveProperties(coord);\n }\n\n coord.controls.right.set(x2 - coord.x, y2 - coord.y);\n result = new Two.Anchor(\n x4, y4,\n x3 - x4, y3 - y4,\n undefined, undefined,\n Two.Commands.curve\n );\n\n coord = result;\n control = result.controls.left;\n\n break;\n\n case 't':\n case 'q':\n\n x1 = coord.x;\n y1 = coord.y;\n\n if (!control) {\n control = new Two.Vector();//.copy(coord);\n }\n\n if (control.isZero()) {\n x2 = x1;\n y2 = y1;\n } else {\n x2 = control.x;\n y2 = control.y;\n }\n\n if (/q/i.test(lower)) {\n\n x3 = parseFloat(coords[0]);\n y3 = parseFloat(coords[1]);\n x4 = parseFloat(coords[2]);\n y4 = parseFloat(coords[3]);\n\n } else {\n\n reflection = getReflection(coord, control, relative);\n\n x3 = reflection.x;\n y3 = reflection.y;\n x4 = parseFloat(coords[0]);\n y4 = parseFloat(coords[1]);\n\n }\n\n if (relative) {\n x2 += x1;\n y2 += y1;\n x3 += x1;\n y3 += y1;\n x4 += x1;\n y4 += y1;\n }\n\n if (!_.isObject(coord.controls)) {\n Two.Anchor.AppendCurveProperties(coord);\n }\n\n coord.controls.right.set(x2 - coord.x, y2 - coord.y);\n result = new Two.Anchor(\n x4, y4,\n x3 - x4, y3 - y4,\n undefined, undefined,\n Two.Commands.curve\n );\n\n coord = result;\n control = result.controls.left;\n\n break;\n\n case 'a':\n\n x1 = coord.x;\n y1 = coord.y;\n\n var rx = parseFloat(coords[0]);\n var ry = parseFloat(coords[1]);\n var xAxisRotation = parseFloat(coords[2]);// * PI / 180;\n var largeArcFlag = parseFloat(coords[3]);\n var sweepFlag = parseFloat(coords[4]);\n\n x4 = parseFloat(coords[5]);\n y4 = parseFloat(coords[6]);\n\n if (relative) {\n x4 += x1;\n y4 += y1;\n }\n\n var anchor = new Two.Anchor(x4, y4);\n anchor.command = Two.Commands.arc;\n anchor.rx = rx;\n anchor.ry = ry;\n anchor.xAxisRotation = xAxisRotation;\n anchor.largeArcFlag = largeArcFlag;\n anchor.sweepFlag = sweepFlag;\n\n result = anchor;\n\n coord = anchor;\n control = undefined;\n\n break;\n\n }\n\n if (result) {\n if (_.isArray(result)) {\n points = points.concat(result);\n } else {\n points.push(result);\n }\n }\n\n });\n\n if (points.length <= 1) {\n return;\n }\n\n var path = new Two.Path(points, closed, undefined, true).noStroke();\n path.fill = 'black';\n\n var rect = path.getBoundingClientRect(true);\n\n // Center objects to stay consistent\n // with the rest of the Two.js API.\n rect.centroid = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n };\n\n _.each(path.vertices, function(v) {\n v.subSelf(rect.centroid);\n });\n\n path.translation.addSelf(rect.centroid);\n\n Two.Utils.applySvgAttributes.call(this, node, path, parentStyles);\n\n return path;\n\n },\n\n circle: function(node, parentStyles) {\n\n var x = parseFloat(node.getAttribute('cx'));\n var y = parseFloat(node.getAttribute('cy'));\n var r = parseFloat(node.getAttribute('r'));\n\n var circle = new Two.Circle(x, y, r).noStroke();\n circle.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, circle, parentStyles);\n\n return circle;\n\n },\n\n ellipse: function(node, parentStyles) {\n\n var x = parseFloat(node.getAttribute('cx'));\n var y = parseFloat(node.getAttribute('cy'));\n var width = parseFloat(node.getAttribute('rx'));\n var height = parseFloat(node.getAttribute('ry'));\n\n var ellipse = new Two.Ellipse(x, y, width, height).noStroke();\n ellipse.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, ellipse, parentStyles);\n\n return ellipse;\n\n },\n\n rect: function(node, parentStyles) {\n\n var rx = parseFloat(node.getAttribute('rx'));\n var ry = parseFloat(node.getAttribute('ry'));\n\n if (!_.isNaN(rx) || !_.isNaN(ry)) {\n return Two.Utils.read['rounded-rect'](node);\n }\n\n var x = parseFloat(node.getAttribute('x')) || 0;\n var y = parseFloat(node.getAttribute('y')) || 0;\n var width = parseFloat(node.getAttribute('width'));\n var height = parseFloat(node.getAttribute('height'));\n\n var w2 = width / 2;\n var h2 = height / 2;\n\n var rect = new Two.Rectangle(x + w2, y + h2, width, height)\n .noStroke();\n rect.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, rect, parentStyles);\n\n return rect;\n\n },\n\n 'rounded-rect': function(node, parentStyles) {\n\n var x = parseFloat(node.getAttribute('x')) || 0;\n var y = parseFloat(node.getAttribute('y')) || 0;\n var rx = parseFloat(node.getAttribute('rx')) || 0;\n var ry = parseFloat(node.getAttribute('ry')) || 0;\n\n var width = parseFloat(node.getAttribute('width'));\n var height = parseFloat(node.getAttribute('height'));\n\n var w2 = width / 2;\n var h2 = height / 2;\n var radius = new Two.Vector(rx, ry);\n\n var rect = new Two.RoundedRectangle(x + w2, y + h2, width, height, radius)\n .noStroke();\n rect.fill = 'black';\n\n Two.Utils.applySvgAttributes.call(this, node, rect, parentStyles);\n\n return rect;\n\n },\n\n line: function(node, parentStyles) {\n\n var x1 = parseFloat(node.getAttribute('x1'));\n var y1 = parseFloat(node.getAttribute('y1'));\n var x2 = parseFloat(node.getAttribute('x2'));\n var y2 = parseFloat(node.getAttribute('y2'));\n\n var line = new Two.Line(x1, y1, x2, y2).noFill();\n\n Two.Utils.applySvgAttributes.call(this, node, line, parentStyles);\n\n return line;\n\n },\n\n lineargradient: function(node, parentStyles) {\n\n var x1 = parseFloat(node.getAttribute('x1'));\n var y1 = parseFloat(node.getAttribute('y1'));\n var x2 = parseFloat(node.getAttribute('x2'));\n var y2 = parseFloat(node.getAttribute('y2'));\n\n var ox = (x2 + x1) / 2;\n var oy = (y2 + y1) / 2;\n\n var stops = [];\n for (var i = 0; i < node.children.length; i++) {\n\n var child = node.children[i];\n\n var offset = parseFloat(child.getAttribute('offset'));\n var color = child.getAttribute('stop-color');\n var opacity = child.getAttribute('stop-opacity');\n var style = child.getAttribute('style');\n\n if (_.isNull(color)) {\n var matches = style ? style.match(/stop\\-color\\:\\s?([\\#a-fA-F0-9]*)/) : false;\n color = matches && matches.length > 1 ? matches[1] : undefined;\n }\n\n if (_.isNull(opacity)) {\n var matches = style ? style.match(/stop\\-opacity\\:\\s?([0-9\\.\\-]*)/) : false;\n opacity = matches && matches.length > 1 ? parseFloat(matches[1]) : 1;\n }\n\n stops.push(new Two.Gradient.Stop(offset, color, opacity));\n\n }\n\n var gradient = new Two.LinearGradient(x1 - ox, y1 - oy, x2 - ox,\n y2 - oy, stops);\n\n Two.Utils.applySvgAttributes.call(this, node, gradient, parentStyles);\n\n return gradient;\n\n },\n\n radialgradient: function(node, parentStyles) {\n\n var cx = parseFloat(node.getAttribute('cx')) || 0;\n var cy = parseFloat(node.getAttribute('cy')) || 0;\n var r = parseFloat(node.getAttribute('r'));\n\n var fx = parseFloat(node.getAttribute('fx'));\n var fy = parseFloat(node.getAttribute('fy'));\n\n if (_.isNaN(fx)) {\n fx = cx;\n }\n\n if (_.isNaN(fy)) {\n fy = cy;\n }\n\n var ox = abs(cx + fx) / 2;\n var oy = abs(cy + fy) / 2;\n\n var stops = [];\n for (var i = 0; i < node.children.length; i++) {\n\n var child = node.children[i];\n\n var offset = parseFloat(child.getAttribute('offset'));\n var color = child.getAttribute('stop-color');\n var opacity = child.getAttribute('stop-opacity');\n var style = child.getAttribute('style');\n\n if (_.isNull(color)) {\n var matches = style ? style.match(/stop\\-color\\:\\s?([\\#a-fA-F0-9]*)/) : false;\n color = matches && matches.length > 1 ? matches[1] : undefined;\n }\n\n if (_.isNull(opacity)) {\n var matches = style ? style.match(/stop\\-opacity\\:\\s?([0-9\\.\\-]*)/) : false;\n opacity = matches && matches.length > 1 ? parseFloat(matches[1]) : 1;\n }\n\n stops.push(new Two.Gradient.Stop(offset, color, opacity));\n\n }\n\n var gradient = new Two.RadialGradient(cx - ox, cy - oy, r,\n stops, fx - ox, fy - oy);\n\n Two.Utils.applySvgAttributes.call(this, node, gradient, parentStyles);\n\n return gradient;\n\n }\n\n },\n\n /**\n * @name Two.Utils.subdivide\n * @function\n * @param {Number} x1 - x position of first anchor point.\n * @param {Number} y1 - y position of first anchor point.\n * @param {Number} x2 - x position of first anchor point's \"right\" bezier handle.\n * @param {Number} y2 - y position of first anchor point's \"right\" bezier handle.\n * @param {Number} x3 - x position of second anchor point's \"left\" bezier handle.\n * @param {Number} y3 - y position of second anchor point's \"left\" bezier handle.\n * @param {Number} x4 - x position of second anchor point.\n * @param {Number} y4 - y position of second anchor point.\n * @param {Number} [limit=Two.Utils.Curve.RecursionLimit] - The amount of vertices to create by subdividing.\n * @returns {Two.Anchor[]} A list of anchor points ordered in between `x1`, `y1` and `x4`, `y4`\n * @description Given 2 points (a, b) and corresponding control point for each return an array of points that represent points plotted along the curve. The number of returned points is determined by `limit`.\n */\n subdivide: function(x1, y1, x2, y2, x3, y3, x4, y4, limit) {\n\n limit = limit || Two.Utils.Curve.RecursionLimit;\n var amount = limit + 1;\n\n // TODO: Abstract 0.001 to a limiting variable\n // Don't recurse if the end points are identical\n if (abs(x1 - x4) < 0.001 && abs(y1 - y4) < 0.001) {\n return [new Two.Anchor(x4, y4)];\n }\n\n var result = [];\n\n for (var i = 0; i < amount; i++) {\n var t = i / amount;\n var x = getComponentOnCubicBezier(t, x1, x2, x3, x4);\n var y = getComponentOnCubicBezier(t, y1, y2, y3, y4);\n result.push(new Two.Anchor(x, y));\n }\n\n return result;\n\n },\n\n /**\n * @name Two.Utils.getComponentOnCubicBezier\n * @function\n * @param {Number} t - Zero-to-one value describing what percentage to calculate.\n * @param {Number} a - The firt point's component value.\n * @param {Number} b - The first point's bezier component value.\n * @param {Number} c - The second point's bezier component value.\n * @param {Number} d - The second point's component value.\n * @returns {Number} The coordinate value for a specific component along a cubic bezier curve by `t`.\n */\n getComponentOnCubicBezier: function(t, a, b, c, d) {\n var k = 1 - t;\n return (k * k * k * a) + (3 * k * k * t * b) + (3 * k * t * t * c) +\n (t * t * t * d);\n },\n\n /**\n * @name Two.Utils.getCurveLength\n * @function\n * @param {Number} x1 - x position of first anchor point.\n * @param {Number} y1 - y position of first anchor point.\n * @param {Number} x2 - x position of first anchor point's \"right\" bezier handle.\n * @param {Number} y2 - y position of first anchor point's \"right\" bezier handle.\n * @param {Number} x3 - x position of second anchor point's \"left\" bezier handle.\n * @param {Number} y3 - y position of second anchor point's \"left\" bezier handle.\n * @param {Number} x4 - x position of second anchor point.\n * @param {Number} y4 - y position of second anchor point.\n * @param {Number} [limit=Two.Utils.Curve.RecursionLimit] - The amount of vertices to create by subdividing.\n * @returns {Number} The length of a curve.\n * @description Given 2 points (a, b) and corresponding control point for each, return a float that represents the length of the curve using Gauss-Legendre algorithm. Limit iterations of calculation by `limit`.\n */\n getCurveLength: function(x1, y1, x2, y2, x3, y3, x4, y4, limit) {\n\n // TODO: Better / fuzzier equality check\n // Linear calculation\n if (x1 === x2 && y1 === y2 && x3 === x4 && y3 === y4) {\n var dx = x4 - x1;\n var dy = y4 - y1;\n return sqrt(dx * dx + dy * dy);\n }\n\n // Calculate the coefficients of a Bezier derivative.\n var ax = 9 * (x2 - x3) + 3 * (x4 - x1),\n bx = 6 * (x1 + x3) - 12 * x2,\n cx = 3 * (x2 - x1),\n\n ay = 9 * (y2 - y3) + 3 * (y4 - y1),\n by = 6 * (y1 + y3) - 12 * y2,\n cy = 3 * (y2 - y1);\n\n var integrand = function(t) {\n // Calculate quadratic equations of derivatives for x and y\n var dx = (ax * t + bx) * t + cx,\n dy = (ay * t + by) * t + cy;\n return sqrt(dx * dx + dy * dy);\n };\n\n return integrate(\n integrand, 0, 1, limit || Two.Utils.Curve.RecursionLimit\n );\n\n },\n\n /**\n * @name Two.Utils.getCurveBoundingBox\n * @function\n * @param {Number} x1 - x position of first anchor point.\n * @param {Number} y1 - y position of first anchor point.\n * @param {Number} x2 - x position of first anchor point's \"right\" bezier handle.\n * @param {Number} y2 - y position of first anchor point's \"right\" bezier handle.\n * @param {Number} x3 - x position of second anchor point's \"left\" bezier handle.\n * @param {Number} y3 - y position of second anchor point's \"left\" bezier handle.\n * @param {Number} x4 - x position of second anchor point.\n * @param {Number} y4 - y position of second anchor point.\n * @returns {Object} Object contains min and max `x` / `y` bounds.\n * @see {@link https://github.com/adobe-webplatform/Snap.svg/blob/master/src/path.js#L856}\n */\n getCurveBoundingBox: function(x1, y1, x2, y2, x3, y3, x4, y4) {\n\n var tvalues = [];\n var bounds = [[], []];\n var a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n for (var i = 0; i < 2; ++i) {\n if (i == 0) {\n b = 6 * x1 - 12 * x2 + 6 * x3;\n a = -3 * x1 + 9 * x2 - 9 * x3 + 3 * x4;\n c = 3 * x2 - 3 * x1;\n } else {\n b = 6 * y1 - 12 * y2 + 6 * y3;\n a = -3 * y1 + 9 * y2 - 9 * y3 + 3 * y4;\n c = 3 * y2 - 3 * y1;\n }\n if (abs(a) < 1e-12) {\n if (abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x, y, j = tvalues.length;\n var jlen = j;\n var mt;\n\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x1 + 3 * mt * mt * t * x2 + 3 * mt * t * t * x3 + t * t * t * x4;\n bounds[1][j] = mt * mt * mt * y1 + 3 * mt * mt * t * y2 + 3 * mt * t * t * y3 + t * t * t * y4;\n }\n\n bounds[0][jlen] = x1;\n bounds[1][jlen] = y1;\n bounds[0][jlen + 1] = x4;\n bounds[1][jlen + 1] = y4;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return {\n min: { x: Math.min.apply(0, bounds[0]), y: Math.min.apply(0, bounds[1]) },\n max: { x: Math.max.apply(0, bounds[0]), y: Math.max.apply(0, bounds[1]) }\n };\n\n },\n\n /**\n * @name Two.Utils.integrate\n * @function\n * @param {Function} f\n * @param {Number} a\n * @param {Number} b\n * @param {Integer} n\n * @description Integration for `getCurveLength` calculations.\n * @see [Paper.js]{@link https://github.com/paperjs/paper.js/blob/master/src/util/Numerical.js#L101}\n */\n integrate: function(f, a, b, n) {\n var x = Two.Utils.Curve.abscissas[n - 2],\n w = Two.Utils.Curve.weights[n - 2],\n A = 0.5 * (b - a),\n B = A + a,\n i = 0,\n m = (n + 1) >> 1,\n sum = n & 1 ? w[i++] * f(B) : 0; // Handle odd n\n while (i < m) {\n var Ax = A * x[i];\n sum += w[i++] * (f(B + Ax) + f(B - Ax));\n }\n return A * sum;\n },\n\n /**\n * @name Two.Utils.getCurveFromPoints\n * @function\n * @param {Two.Anchor[]} points\n * @param {Boolean} closed\n * @description Sets the bezier handles on `Two.Anchor`s in the `points` list with estimated values to create a catmull-rom like curve. Used by {@link Two.Path#plot}.\n */\n getCurveFromPoints: function(points, closed) {\n\n var l = points.length, last = l - 1;\n\n for (var i = 0; i < l; i++) {\n\n var point = points[i];\n\n if (!_.isObject(point.controls)) {\n Two.Anchor.AppendCurveProperties(point);\n }\n\n var prev = closed ? mod(i - 1, l) : max(i - 1, 0);\n var next = closed ? mod(i + 1, l) : min(i + 1, last);\n\n var a = points[prev];\n var b = point;\n var c = points[next];\n getControlPoints(a, b, c);\n\n b.command = i === 0 ? Two.Commands.move : Two.Commands.curve;\n\n }\n\n },\n\n /**\n * @name Two.Utils.getControlPoints\n * @function\n * @param {Two.Anchor} a\n * @param {Two.Anchor} b\n * @param {Two.Anchor} c\n * @returns {Two.Anchor} Returns the passed middle point `b`.\n * @description Given three coordinates set the control points for the middle, b, vertex based on its position with the adjacent points.\n */\n getControlPoints: function(a, b, c) {\n\n var a1 = Two.Vector.angleBetween(a, b);\n var a2 = Two.Vector.angleBetween(c, b);\n\n var d1 = Two.Vector.distanceBetween(a, b);\n var d2 = Two.Vector.distanceBetween(c, b);\n\n var mid = (a1 + a2) / 2;\n\n // TODO: Issue 73\n if (d1 < 0.0001 || d2 < 0.0001) {\n if (_.isBoolean(b.relative) && !b.relative) {\n b.controls.left.copy(b);\n b.controls.right.copy(b);\n }\n return b;\n }\n\n d1 *= 0.33; // Why 0.33?\n d2 *= 0.33;\n\n if (a2 < a1) {\n mid += HALF_PI;\n } else {\n mid -= HALF_PI;\n }\n\n b.controls.left.x = cos(mid) * d1;\n b.controls.left.y = sin(mid) * d1;\n\n mid -= PI;\n\n b.controls.right.x = cos(mid) * d2;\n b.controls.right.y = sin(mid) * d2;\n\n if (_.isBoolean(b.relative) && !b.relative) {\n b.controls.left.x += b.x;\n b.controls.left.y += b.y;\n b.controls.right.x += b.x;\n b.controls.right.y += b.y;\n }\n\n return b;\n\n },\n\n /**\n * @name Two.Utils.getReflection\n * @function\n * @param {Two.Vector} a\n * @param {Two.Vector} b\n * @param {Boolean} [relative=false]\n * @returns {Two.Vector} New `Two.Vector` that represents the reflection point.\n * @description Get the reflection of a point `b` about point `a`. Where `a` is in absolute space and `b` is relative to `a`.\n * @see {@link http://www.w3.org/TR/SVG11/implnote.html#PathElementImplementationNotes}\n */\n getReflection: function(a, b, relative) {\n\n return new Two.Vector(\n 2 * a.x - (b.x + a.x) - (relative ? a.x : 0),\n 2 * a.y - (b.y + a.y) - (relative ? a.y : 0)\n );\n\n },\n\n /**\n * @name Two.Utils.getAnchorsFromArcData\n * @function\n * @param {Two.Vector} center\n * @param {Radians} xAxisRotation\n * @param {Number} rx - x radius\n * @param {Number} ry - y radius\n * @param {Radians} ts\n * @param {Radians} td\n * @param {Boolean} [ccw=false] - Set path traversal to counter-clockwise\n */\n getAnchorsFromArcData: function(center, xAxisRotation, rx, ry, ts, td, ccw) {\n\n var matrix = new Two.Matrix()\n .translate(center.x, center.y)\n .rotate(xAxisRotation);\n\n var l = Two.Resolution;\n\n return _.map(_.range(l), function(i) {\n\n var pct = (i + 1) / l;\n if (!!ccw) {\n pct = 1 - pct;\n }\n\n var theta = pct * td + ts;\n var x = rx * Math.cos(theta);\n var y = ry * Math.sin(theta);\n\n // x += center.x;\n // y += center.y;\n\n var anchor = new Two.Anchor(x, y);\n Two.Anchor.AppendCurveProperties(anchor);\n anchor.command = Two.Commands.line;\n\n // TODO: Calculate control points here...\n\n return anchor;\n\n });\n\n },\n\n /**\n * @name Two.Utils.lerp\n * @function\n * @param {Number} a - Start value.\n * @param {Number} b - End value.\n * @param {Number} t - Zero-to-one value describing percentage between a and b.\n * @returns {Number}\n * @description Linear interpolation between two values `a` and `b` by an amount `t`.\n */\n lerp: function(a, b, t) {\n return t * (b - a) + a;\n },\n\n /**\n * @name Two.Utils.toFixed\n * @function\n * @param {Number} v - Any float\n * @returns {Number} That float trimmed to the third decimal place.\n * @description A pretty fast toFixed(3) alternative.\n * @see {@link http://jsperf.com/parsefloat-tofixed-vs-math-round/18}\n */\n toFixed: function(v) {\n return Math.floor(v * 1000) / 1000;\n },\n\n /**\n * @name Two.Utils.mod\n * @param {Number} v - The value to modulo\n * @param {Number} l - The value to modulo by\n * @returns {Number}\n * @description Modulo with added functionality to handle negative values in a positive manner.\n */\n mod: function(v, l) {\n\n while (v < 0) {\n v += l;\n }\n\n return v % l;\n\n },\n\n /**\n * @name Two.Utils.Collection\n * @class\n * @extends Two.Utils.Events\n * @description An `Array` like object with additional event propagation on actions. `pop`, `shift`, and `splice` trigger `removed` events. `push`, `unshift`, and `splice` with more than 2 arguments trigger 'inserted'. Finally, `sort` and `reverse` trigger `order` events.\n */\n Collection: function() {\n\n Array.call(this);\n\n if (arguments.length > 1) {\n Array.prototype.push.apply(this, arguments);\n } else if (arguments[0] && Array.isArray(arguments[0])) {\n Array.prototype.push.apply(this, arguments[0]);\n }\n\n },\n\n /**\n * @name Two.Utils.Error\n * @class\n * @description Custom error throwing for Two.js specific identification.\n */\n Error: function(message) {\n this.name = 'two.js';\n this.message = message;\n },\n\n /**\n * @name Two.Utils.Events\n * @interface\n * @description Object inherited by many Two.js objects in order to facilitate custom events.\n */\n Events: {\n\n /**\n * @name Two.Utils.Events.on\n * @function\n * @param {String} name - The name of the event to bind a function to.\n * @param {Function} handler - The function to be invoked when the event is dispatched.\n * @description Call to add a listener to a specific event name.\n */\n on: function(name, handler) {\n\n this._events || (this._events = {});\n var list = this._events[name] || (this._events[name] = []);\n\n list.push(handler);\n\n return this;\n\n },\n\n /**\n * @name Two.Utils.Events.off\n * @function\n * @param {String} [name] - The name of the event intended to be removed.\n * @param {Function} [handler] - The handler intended to be reomved.\n * @description Call to remove listeners from a specific event. If only `name` is passed then all the handlers attached to that `name` will be removed. If no arguments are passed then all handlers for every event on the obejct are removed.\n */\n off: function(name, handler) {\n\n if (!this._events) {\n return this;\n }\n if (!name && !handler) {\n this._events = {};\n return this;\n }\n\n var names = name ? [name] : _.keys(this._events);\n for (var i = 0, l = names.length; i < l; i++) {\n\n var name = names[i];\n var list = this._events[name];\n\n if (!!list) {\n var events = [];\n if (handler) {\n for (var j = 0, k = list.length; j < k; j++) {\n var ev = list[j];\n ev = ev.handler ? ev.handler : ev;\n if (handler && handler !== ev) {\n events.push(ev);\n }\n }\n }\n this._events[name] = events;\n }\n }\n\n return this;\n },\n\n /**\n * @name Two.Utils.Events.trigger\n * @function\n * @param {String} name - The name of the event to dispatch.\n * @param arguments - Anything can be passed after the name and those will be passed on to handlers attached to the event in the order they are passed.\n * @description Call to trigger a custom event. Any additional arguments passed after the name will be passed along to the attached handlers.\n */\n trigger: function(name) {\n if (!this._events) return this;\n var args = slice.call(arguments, 1);\n var events = this._events[name];\n if (events) trigger(this, events, args);\n return this;\n },\n\n listen: function(obj, name, handler) {\n\n var bound = this;\n\n if (obj) {\n\n var event = function () {\n handler.apply(bound, arguments);\n };\n\n // Add references about the object that assigned this listener\n event.obj = obj;\n event.name = name;\n event.handler = handler;\n\n obj.on(name, ev);\n\n }\n\n return this;\n\n },\n\n ignore: function(obj, name, handler) {\n\n obj.off(name, handler);\n return this;\n\n }\n\n }\n\n })\n\n });\n\n /**\n * @name Two.Utils.Events.bind\n * @borrows Two.Utils.Events.on as Two.Utils.Events.bind\n */\n Two.Utils.Events.bind = Two.Utils.Events.on;\n\n /**\n * @name Two.Utils.Events.unbind\n * @borrows Two.Utils.Events.off as Two.Utils.Events.unbind\n */\n Two.Utils.Events.unbind = Two.Utils.Events.off;\n\n var trigger = function(obj, events, args) {\n var method;\n switch (args.length) {\n case 0:\n method = function(i) {\n events[i].call(obj, args[0]);\n };\n break;\n case 1:\n method = function(i) {\n events[i].call(obj, args[0], args[1]);\n };\n break;\n case 2:\n method = function(i) {\n events[i].call(obj, args[0], args[1], args[2]);\n };\n break;\n case 3:\n method = function(i) {\n events[i].call(obj, args[0], args[1], args[2], args[3]);\n };\n break;\n default:\n method = function(i) {\n events[i].apply(obj, args);\n };\n }\n for (var i = 0; i < events.length; i++) {\n method(i);\n }\n };\n\n Two.Utils.Error.prototype = new Error();\n Two.Utils.Error.prototype.constructor = Two.Utils.Error;\n\n Two.Utils.Collection.prototype = new Array();\n Two.Utils.Collection.prototype.constructor = Two.Utils.Collection;\n\n _.extend(Two.Utils.Collection.prototype, Two.Utils.Events, {\n\n pop: function() {\n var popped = Array.prototype.pop.apply(this, arguments);\n this.trigger(Two.Events.remove, [popped]);\n return popped;\n },\n\n shift: function() {\n var shifted = Array.prototype.shift.apply(this, arguments);\n this.trigger(Two.Events.remove, [shifted]);\n return shifted;\n },\n\n push: function() {\n var pushed = Array.prototype.push.apply(this, arguments);\n this.trigger(Two.Events.insert, arguments);\n return pushed;\n },\n\n unshift: function() {\n var unshifted = Array.prototype.unshift.apply(this, arguments);\n this.trigger(Two.Events.insert, arguments);\n return unshifted;\n },\n\n splice: function() {\n var spliced = Array.prototype.splice.apply(this, arguments);\n var inserted;\n\n this.trigger(Two.Events.remove, spliced);\n\n if (arguments.length > 2) {\n inserted = this.slice(arguments[0], arguments[0] + arguments.length - 2);\n this.trigger(Two.Events.insert, inserted);\n this.trigger(Two.Events.order);\n }\n return spliced;\n },\n\n sort: function() {\n Array.prototype.sort.apply(this, arguments);\n this.trigger(Two.Events.order);\n return this;\n },\n\n reverse: function() {\n Array.prototype.reverse.apply(this, arguments);\n this.trigger(Two.Events.order);\n return this;\n }\n\n });\n\n // Localize utils\n\n var getAnchorsFromArcData = Two.Utils.getAnchorsFromArcData,\n getControlPoints = Two.Utils.getControlPoints,\n getCurveFromPoints = Two.Utils.getCurveFromPoints,\n solveSegmentIntersection = Two.Utils.solveSegmentIntersection,\n decoupleShapes = Two.Utils.decoupleShapes,\n mod = Two.Utils.mod,\n getBackingStoreRatio = Two.Utils.getBackingStoreRatio,\n getComponentOnCubicBezier = Two.Utils.getComponentOnCubicBezier,\n getCurveLength = Two.Utils.getCurveLength,\n integrate = Two.Utils.integrate,\n getReflection = Two.Utils.getReflection;\n\n _.extend(Two.prototype, Two.Utils.Events, {\n\n constructor: Two,\n\n /**\n * @name Two#appendTo\n * @function\n * @param {Element} elem - The DOM element to append the Two.js stage to.\n * @description Shorthand method to append your instance of Two.js to the `document`.\n */\n appendTo: function(elem) {\n\n elem.appendChild(this.renderer.domElement);\n return this;\n\n },\n\n /**\n * @name Two#play\n * @function\n * @fires `Two.Events.play` event\n * @description Call to start an internal animation loop.\n * @nota-bene This function initiates a `requestAnimationFrame` loop.\n */\n play: function() {\n\n Two.Utils.setPlaying.call(this, true);\n raf.init();\n return this.trigger(Two.Events.play);\n\n },\n\n /**\n * @name Two#pause\n * @function\n * @fires `Two.Events.pause` event\n * @description Call to stop the internal animation loop for a specific instance of Two.js.\n */\n pause: function() {\n\n this.playing = false;\n return this.trigger(Two.Events.pause);\n\n },\n\n /**\n * @name Two#update\n * @fires `Two.Events.update` event\n * @description Update positions and calculations in one pass before rendering. Then render to the canvas.\n * @nota-bene This function is called automatically if using {@link Two#play} or the `autostart` parameter in construction.\n */\n update: function() {\n\n var animated = !!this._lastFrame;\n var now = perf.now();\n\n if (animated) {\n this.timeDelta = parseFloat((now - this._lastFrame).toFixed(3));\n }\n this._lastFrame = now;\n\n var width = this.width;\n var height = this.height;\n var renderer = this.renderer;\n\n // Update width / height for the renderer\n if (width !== renderer.width || height !== renderer.height) {\n renderer.setSize(width, height, this.ratio);\n }\n\n this.trigger(Two.Events.update, this.frameCount, this.timeDelta);\n\n return this.render();\n\n },\n\n /**\n * @name Two#render\n * @fires `Two.Events.render` event\n * @description Render all drawable and visible objects of the scene.\n */\n render: function() {\n\n this.renderer.render();\n return this.trigger(Two.Events.render, this.frameCount++);\n\n },\n\n // Convenience Methods\n\n /**\n * @name Two#add\n * @function\n * @param {(Two.Shape[]|...Two.Shape)}} [objects] - An array of Two.js objects. Alternatively can add objects as individual arguments.\n * @description A shorthand method to add specific Two.js objects to the scene.\n */\n add: function(o) {\n\n var objects = o;\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n }\n\n this.scene.add(objects);\n return this;\n\n },\n\n /**\n * @name Two#remove\n * @function\n * @param {(Two.Shape[]|...Two.Shape)} [objects] - An array of Two.js objects.\n * @description A shorthand method to remove specific Two.js objects from the scene.\n */\n remove: function(o) {\n\n var objects = o;\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n }\n\n this.scene.remove(objects);\n\n return this;\n\n },\n\n /**\n * @name Two#clear\n * @function\n * @description Remove all all Two.js objects from the scene.\n */\n clear: function() {\n\n this.scene.remove(this.scene.children);\n return this;\n\n },\n\n /**\n * @name Two#makeLine\n * @function\n * @param {Number} x1\n * @param {Number} y1\n * @param {Number} x2\n * @param {Number} y2\n * @returns {Two.Line}\n * @description Creates a Two.js line and adds it to the scene.\n */\n makeLine: function(x1, y1, x2, y2) {\n\n var line = new Two.Line(x1, y1, x2, y2);\n this.scene.add(line);\n\n return line;\n\n },\n\n /**\n * @name Two#makeRectangle\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} width\n * @param {Number} height\n * @returns {Two.Rectangle}\n * @description Creates a Two.js rectangle and adds it to the scene.\n */\n makeRectangle: function(x, y, width, height) {\n\n var rect = new Two.Rectangle(x, y, width, height);\n this.scene.add(rect);\n\n return rect;\n\n },\n\n /**\n * @name Two#makeRoundedRectangle\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} width\n * @param {Number} height\n * @param {Number} sides\n * @returns {Two.Rectangle}\n * @description Creates a Two.js rounded rectangle and adds it to the scene.\n */\n makeRoundedRectangle: function(x, y, width, height, sides) {\n\n var rect = new Two.RoundedRectangle(x, y, width, height, sides);\n this.scene.add(rect);\n\n return rect;\n\n },\n\n /**\n * @name Two#makeCircle\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} radius\n * @returns {Two.Circle}\n * @description Creates a Two.js circle and adds it to the scene.\n */\n makeCircle: function(x, y, radius) {\n\n var circle = new Two.Circle(x, y, radius);\n this.scene.add(circle);\n\n return circle;\n\n },\n\n /**\n * @name Two#makeEllipse\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} rx\n * @param {Number} ry\n * @returns {Two.Ellipse}\n * @description Creates a Two.js ellipse and adds it to the scene.\n */\n makeEllipse: function(x, y, rx, ry) {\n\n var ellipse = new Two.Ellipse(x, y, rx, ry);\n this.scene.add(ellipse);\n\n return ellipse;\n\n },\n\n /**\n * @name Two#makeStar\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} outerRadius\n * @param {Number} innerRadius\n * @param {Number} sides\n * @returns {Two.Star}\n * @description Creates a Two.js star and adds it to the scene.\n */\n makeStar: function(ox, oy, outerRadius, innerRadius, sides) {\n\n var star = new Two.Star(ox, oy, outerRadius, innerRadius, sides);\n this.scene.add(star);\n\n return star;\n\n },\n\n /**\n * @name Two#makeCurve\n * @function\n * @param {Two.Anchor[]} [points] - An array of `Two.Anchor` points.\n * @param {...Number} - Alternatively you can pass alternating `x` / `y` coordinate values as individual arguments. These will be combined into `Two.Anchor`s for use in the path.\n * @returns {Two.Path} - Where `path.curved` is set to `true`.\n * @description Creates a Two.js path that is curved and adds it to the scene.\n * @nota-bene In either case of passing an array or passing numbered arguments the last argument is an optional `Boolean` that defines whether the path should be open or closed.\n */\n makeCurve: function(p) {\n\n var l = arguments.length, points = p;\n if (!_.isArray(p)) {\n points = [];\n for (var i = 0; i < l; i+=2) {\n var x = arguments[i];\n if (!_.isNumber(x)) {\n break;\n }\n var y = arguments[i + 1];\n points.push(new Two.Anchor(x, y));\n }\n }\n\n var last = arguments[l - 1];\n var curve = new Two.Path(points, !(_.isBoolean(last) ? last : undefined), true);\n var rect = curve.getBoundingClientRect();\n curve.center().translation\n .set(rect.left + rect.width / 2, rect.top + rect.height / 2);\n\n this.scene.add(curve);\n\n return curve;\n\n },\n\n /**\n * @name Two#makePolygon\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} radius\n * @param {Number} sides\n * @returns {Two.Polygon}\n * @description Creates a Two.js polygon and adds it to the scene.\n */\n makePolygon: function(x, y, radius, sides) {\n\n var poly = new Two.Polygon(x, y, radius, sides);\n this.scene.add(poly);\n\n return poly;\n\n },\n\n /**\n * @name Two#makeArcSegment\n * @function\n * @param {Number} x\n * @param {Number} y\n * @param {Number} innerRadius\n * @param {Number} outerRadius\n * @param {Number} startAngle\n * @param {Number} endAngle\n * @param {Number} [resolution=Two.Resolution] - The number of vertices that should comprise the arc segment.\n */\n makeArcSegment: function(ox, oy, ir, or, sa, ea, res) {\n var arcSegment = new Two.ArcSegment(ox, oy, ir, or, sa, ea, res);\n this.scene.add(arcSegment);\n return arcSegment;\n },\n\n /**\n * @name Two#makePath\n * @function\n * @param {Two.Anchor[]} [points] - An array of `Two.Anchor` points.\n * @param {...Number} - Alternatively you can pass alternating `x` / `y` coordinate values as individual arguments. These will be combined into `Two.Anchor`s for use in the path.\n * @returns {Two.Path}\n * @description Creates a Two.js path and adds it to the scene.\n * @nota-bene In either case of passing an array or passing numbered arguments the last argument is an optional `Boolean` that defines whether the path should be open or closed.\n */\n makePath: function(p) {\n\n var l = arguments.length, points = p;\n if (!_.isArray(p)) {\n points = [];\n for (var i = 0; i < l; i+=2) {\n var x = arguments[i];\n if (!_.isNumber(x)) {\n break;\n }\n var y = arguments[i + 1];\n points.push(new Two.Anchor(x, y));\n }\n }\n\n var last = arguments[l - 1];\n var path = new Two.Path(points, !(_.isBoolean(last) ? last : undefined));\n var rect = path.getBoundingClientRect();\n path.center().translation\n .set(rect.left + rect.width / 2, rect.top + rect.height / 2);\n\n this.scene.add(path);\n\n return path;\n\n },\n\n /**\n * @name Two#makeText\n * @function\n * @param {String} message\n * @param {Number} x\n * @param {Number} y\n * @param {Object} [styles] - An object to describe any of the {@link Two.Text.Properties} including `fill`, `stroke`, `linewidth`, `family`, `alignment`, `leading`, `opacity`, etc..\n * @returns {Two.Text}\n * @description Creates a Two.js text object and adds it to the scene.\n */\n makeText: function(message, x, y, styles) {\n var text = new Two.Text(message, x, y, styles);\n this.add(text);\n return text;\n },\n\n /**\n * @name Two#makeLinearGradient\n * @function\n * @param {Number} x1\n * @param {Number} y1\n * @param {Number} x2\n * @param {Number} y2\n * @param {...Two.Stop} [stops] - Any number of color stops sometimes reffered to as ramp stops. If none are supplied then the default black-to-white two stop gradient is applied.\n * @returns {Two.LinearGradient}\n * @description Creates a Two.js linear gradient and ads it to the scene. In the case of an effect it's added to an invisible \"definitions\" group.\n */\n makeLinearGradient: function(x1, y1, x2, y2 /* stops */) {\n\n var stops = slice.call(arguments, 4);\n var gradient = new Two.LinearGradient(x1, y1, x2, y2, stops);\n\n this.add(gradient);\n\n return gradient;\n\n },\n\n /**\n * @name Two#makeRadialGradient\n * @function\n * @param {Number} x1\n * @param {Number} y1\n * @param {Number} radius\n * @param {...Two.Stop} [stops] - Any number of color stops sometimes reffered to as ramp stops. If none are supplied then the default black-to-white two stop gradient is applied.\n * @returns {Two.RadialGradient}\n * @description Creates a Two.js linear-gradient object and ads it to the scene. In the case of an effect it's added to an invisible \"definitions\" group.\n */\n makeRadialGradient: function(x1, y1, r /* stops */) {\n\n var stops = slice.call(arguments, 3);\n var gradient = new Two.RadialGradient(x1, y1, r, stops);\n\n this.add(gradient);\n\n return gradient;\n\n },\n\n /**\n * @name Two#makeSprite\n * @function\n * @param {(String|Two.Texture)} pathOrTexture - The URL path to an image or an already created `Two.Texture`.\n * @param {Number} x\n * @param {Number} y\n * @param {Number} [columns=1]\n * @param {Number} [rows=1]\n * @param {Integer} [frameRate=0]\n * @param {Boolean} [autostart=false]\n * @returns {Two.Sprite}\n * @description Creates a Two.js sprite object and adds it to the scene. Sprites can be used for still images as well as animations.\n */\n makeSprite: function(path, x, y, cols, rows, frameRate, autostart) {\n\n var sprite = new Two.Sprite(path, x, y, cols, rows, frameRate);\n if (!!autostart) {\n sprite.play();\n }\n this.add(sprite);\n\n return sprite;\n\n },\n\n /**\n * @name Two#makeImageSequence\n * @function\n * @param {(String[]|Two.Texture[])} pathsOrTextures - An array of paths or of `Two.Textures`.\n * @param {Number} x\n * @param {Number} y\n * @param {Number} [frameRate=0]\n * @param {Boolean} [autostart=false]\n * @returns {Two.ImageSequence}\n * @description Creates a Two.js image sequence object and adds it to the scene.\n */\n makeImageSequence: function(paths, x, y, frameRate, autostart) {\n\n var imageSequence = new Two.ImageSequence(paths, x, y, frameRate);\n if (!!autostart) {\n imageSequence.play();\n }\n this.add(imageSequence);\n\n return imageSequence;\n\n },\n\n /**\n * @name Two#makeTexture\n * @function\n * @param {(String|Image|Canvas|Video)} [pathOrSource] - The URL path to an image or a DOM image-like element.\n * @param {Function} [callback] - Function to be invoked when the image is loaded.\n * @returns {Two.Texture}\n * @description Creates a Two.js texture object.\n */\n makeTexture: function(path, callback) {\n\n var texture = new Two.Texture(path, callback);\n return texture;\n\n },\n\n /**\n * @name Two#makeGroup\n * @function\n * @param {(Two.Shape[]|...Two.Shape)} [objects] - Two.js objects to be added to the group in the form of an array or as individual arguments.\n * @returns {Two.Group}\n * @description Creates a Two.js group object and adds it to the scene.\n */\n makeGroup: function(o) {\n\n var objects = o;\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n }\n\n var group = new Two.Group();\n this.scene.add(group);\n group.add(objects);\n\n return group;\n\n },\n\n /**\n * @name Two#interpret\n * @function\n * @param {SvgNode} svgNode - The SVG node to be parsed.\n * @param {Boolean} shallow - Don't create a top-most group but append all content directly.\n * @param {Boolean} add – Automatically add the reconstructed SVG node to scene.\n * @returns {Two.Group}\n * @description Interpret an SVG Node and add it to this instance's scene. The distinction should be made that this doesn't `import` svg's, it solely interprets them into something compatible for Two.js — this is slightly different than a direct transcription.\n */\n interpret: function(svgNode, shallow, add) {\n\n var tag = svgNode.tagName.toLowerCase(),\n add = (typeof add !== 'undefined') ? add : true;\n\n if (!(tag in Two.Utils.read)) {\n return null;\n }\n\n var node = Two.Utils.read[tag].call(this, svgNode);\n\n if (!!add) {\n this.add(shallow && node instanceof Two.Group ? node.children : node);\n }\n\n return node;\n\n },\n\n /**\n * @name Two#load\n * @function\n * @param {String} pathOrSVGContent - The URL path of an SVG file or an SVG document as text.\n * @param {Function} callback - Function to call once loading has completed.\n * @returns {Two.Group}\n * @description Load an SVG file or SVG text and interpret it into Two.js legible objects.\n */\n load: function(text, callback) {\n\n var group = new Two.Group();\n var elem, i, j;\n\n var attach = _.bind(function(data) {\n\n dom.temp.innerHTML = data;\n\n for (i = 0; i < dom.temp.children.length; i++) {\n elem = dom.temp.children[i];\n if (/svg/i.test(elem.nodeName)) {\n // Two.Utils.applySvgViewBox.call(this, group, elem.getAttribute('viewBox'));\n for (j = 0; j < elem.children.length; j++) {\n group.add(this.interpret(elem.children[j]));\n }\n } else {\n group.add(this.interpret(elem));\n }\n }\n\n if (_.isFunction(callback)) {\n var svg = dom.temp.children.length <= 1\n ? dom.temp.children[0] : dom.temp.children;\n callback(group, svg);\n }\n\n }, this);\n\n if (/.*\\.svg$/ig.test(text)) {\n\n Two.Utils.xhr(text, attach);\n\n return group;\n\n }\n\n attach(text);\n\n return group;\n\n }\n\n });\n\n function fitToWindow() {\n\n var wr = document.body.getBoundingClientRect();\n\n var width = this.width = wr.width;\n var height = this.height = wr.height;\n\n this.renderer.setSize(width, height, this.ratio);\n\n }\n\n function updateDimensions(width, height) {\n this.width = width;\n this.height = height;\n this.trigger(Two.Events.resize, width, height);\n }\n\n // Request Animation Frame\n\n var raf = dom.getRequestAnimationFrame();\n\n function loop() {\n\n for (var i = 0; i < Two.Instances.length; i++) {\n var t = Two.Instances[i];\n if (t.playing) {\n t.update();\n }\n }\n\n Two.nextFrameID = raf(loop);\n\n }\n\n if (typeof define === 'function' && define.amd) {\n define('two', [], function() {\n return Two;\n });\n } else if (typeof module != 'undefined' && module.exports) {\n module.exports = Two;\n }\n\n return Two;\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n /**\n * @name Two.Registry\n * @class\n * @description An arbitrary class to manage a directory of things. Mainly used for keeping tabs of textures in Two.js.\n */\n var Registry = Two.Registry = function() {\n\n this.map = {};\n\n };\n\n _.extend(Registry.prototype, {\n\n constructor: Registry,\n\n /**\n * @name Two.Registry#add\n * @function\n * @param {String} id - A unique identifier.\n * @param value - Any type of variable to be registered to the directory.\n * @description Adds any value to the directory. Assigned by the `id`.\n */\n add: function(id, obj) {\n this.map[id] = obj;\n return this;\n },\n\n /**\n * @name Two.Registry#remove\n * @function\n * @param {String} id - A unique identifier.\n * @description Remove any value from the directory by its `id`.\n */\n remove: function(id) {\n delete this.map[id];\n return this;\n },\n\n /**\n * @name Two.Registry#get\n * @function\n * @param {String} id - A unique identifier.\n * @returns value - The associated value. If unavailable then `undefined` is returned.\n * @description Get a registered value by its `id`.\n */\n get: function(id) {\n return this.map[id];\n },\n\n /**\n * @name Two.Registry#contains\n * @function\n * @param {String} id - A unique identifier.\n * @returns {Boolean}\n * @description Convenience method to see if a value is registered to an `id` already.\n */\n contains: function(id) {\n return id in this.map;\n }\n\n });\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n /**\n * @name Two.Vector\n * @class\n * @param {Number} [x=0] - Any number to represent the horizontal x-component of the vector.\n * @param {Number} [y=0] - Any number to represent the vertical y-component of the vector.\n * @description A class to store x / y component vector data. In addition to storing data `Two.Vector` has suped up methods for commonplace mathematical operations.\n */\n var Vector = Two.Vector = function(x, y) {\n\n /**\n * @name Two.Vector#x\n * @property {Number} - The horizontal x-component of the vector.\n */\n this.x = x || 0;\n\n /**\n * @name Two.Vector#y\n * @property {Number} - The vertical y-component of the vector.\n */\n this.y = y || 0;\n\n };\n\n _.extend(Vector, {\n\n /**\n * @name Two.Vector.zero\n * @readonly\n * @property {Two.Vector} - Handy reference to a vector with component values 0, 0 at all times.\n */\n zero: new Two.Vector(),\n\n /**\n * @name Two.Vector.add\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Two.Vector}\n * @description Add two vectors together.\n */\n add: function(v1, v2) {\n return new Vector(v1.x + v2.x, v1.y + v2.y);\n },\n\n /**\n * @name Two.Vector.sub\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Two.Vector}\n * @description Subtract two vectors: `v2` from `v1`.\n */\n sub: function(v1, v2) {\n return new Vector(v1.x - v2.x, v1.y - v2.y);\n },\n\n /**\n * @name Two.Vector.subtract\n * @borrows Two.Vector.sub as Two.Vector.subtract\n */\n subtract: function(v1, v2) {\n return Vector.sub(v1, v2);\n },\n\n /**\n * @name Two.Vector.ratioBetween\n * @function\n * @param {Two.Vector} A\n * @param {Two.Vector} B\n * @returns {Number} The ratio betwen two points `v1` and `v2`.\n */\n ratioBetween: function(v1, v2) {\n\n return (v1.x * v2.x + v1.y * v2.y) / (v1.length() * v2.length());\n\n },\n\n /**\n * @name Two.Vector.angleBetween\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Radians} The angle between points `v1` and `v2`.\n */\n angleBetween: function(v1, v2) {\n\n var dx, dy;\n\n if (arguments.length >= 4) {\n\n dx = arguments[0] - arguments[2];\n dy = arguments[1] - arguments[3];\n\n return Math.atan2(dy, dx);\n\n }\n\n dx = v1.x - v2.x;\n dy = v1.y - v2.y;\n\n return Math.atan2(dy, dx);\n\n },\n\n /**\n * @name Two.Vector.distanceBetween\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Number} The distance between points `v1` and `v2`. Distance is always positive.\n */\n distanceBetween: function(v1, v2) {\n\n return Math.sqrt(Vector.distanceBetweenSquared(v1, v2));\n\n },\n\n /**\n * @name Two.Vector.distanceBetweenSquared\n * @function\n * @param {Two.Vector} v1\n * @param {Two.Vector} v2\n * @returns {Number} The squared distance between points `v1` and `v2`.\n */\n distanceBetweenSquared: function(v1, v2) {\n\n var dx = v1.x - v2.x;\n var dy = v1.y - v2.y;\n\n return dx * dx + dy * dy;\n\n },\n\n /**\n * @name Two.Vector.MakeObservable\n * @function\n * @param {Object} object - The object to make observable.\n * @description Convenience function to apply observable qualities of a `Two.Vector` to any object. Handy if you'd like to extend the `Two.Vector` class on a custom class.\n */\n MakeObservable: function(object) {\n\n // /**\n // * Override Backbone bind / on in order to add properly broadcasting.\n // * This allows Two.Vector to not broadcast events unless event listeners\n // * are explicity bound to it.\n // */\n\n object.bind = object.on = function() {\n\n if (!this._bound) {\n this._x = this.x;\n this._y = this.y;\n Object.defineProperty(this, 'x', xgs);\n Object.defineProperty(this, 'y', ygs);\n _.extend(this, BoundProto);\n this._bound = true; // Reserved for event initialization check\n }\n\n Two.Utils.Events.bind.apply(this, arguments);\n\n return this;\n\n };\n\n }\n\n });\n\n _.extend(Vector.prototype, Two.Utils.Events, {\n\n constructor: Vector,\n\n /**\n * @name Two.Vector#set\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Set the x / y components of a vector to specific number values.\n */\n set: function(x, y) {\n this.x = x;\n this.y = y;\n return this;\n },\n\n /**\n * @name Two.Vector#copy\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Copy the x / y components of another object `v`.\n */\n copy: function(v) {\n this.x = v.x;\n this.y = v.y;\n return this;\n },\n\n /**\n * @name Two.Vector#clear\n * @function\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Set the x / y component values of the vector to zero.\n */\n clear: function() {\n this.x = 0;\n this.y = 0;\n return this;\n },\n\n /**\n * @name Two.Vector#clone\n * @function\n * @returns {Two.Vector} - A new instance of `Two.Vector`.\n * @description Create a new vector and copy the existing values onto the newly created instance.\n */\n clone: function() {\n return new Vector(this.x, this.y);\n },\n\n /**\n * @name Two.Vector#add\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Add an object with x / y component values to the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#add\n * @function\n * @param {Number} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Add the **same** number to both x / y component values of the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#add\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Add `x` / `y` values to their respective component value on the instance.\n * @overloaded\n */\n add: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this.x += x;\n this.y += x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this.x += x.x;\n this.y += x.y;\n }\n } else {\n this.x += x;\n this.y += y;\n }\n return this;\n },\n\n /**\n * @name Two.Vector#addSelf\n * @borrows Two.Vector#add as Two.Vector#addSelf\n */\n addSelf: function(v) {\n return this.add.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#sub\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Subtract an object with x / y component values to the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#sub\n * @function\n * @param {Number} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Subtract the **same** number to both x / y component values of the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#sub\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Subtract `x` / `y` values to their respective component value on the instance.\n * @overloaded\n */\n sub: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this.x -= x;\n this.y -= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this.x -= x.x;\n this.y -= x.y;\n }\n } else {\n this.x -= x;\n this.y -= y;\n }\n return this;\n },\n\n /**\n * @name Two.Vector#subtract\n * @borrows Two.Vector#sub as Two.Vector#subtract\n */\n subtract: function() {\n return this.sub.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#subSelf\n * @borrows Two.Vector#sub as Two.Vector#subSelf\n */\n subSelf: function(v) {\n return this.sub.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#subtractSelf\n * @borrows Two.Vector#sub as Two.Vector#subtractSelf\n */\n subtractSelf: function(v) {\n return this.sub.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#multiply\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Multiply an object with x / y component values to the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#multiply\n * @function\n * @param {Number} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Multiply the **same** number to both x / y component values of the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#multiply\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Multiply `x` / `y` values to their respective component value on the instance.\n * @overloaded\n */\n multiply: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this.x *= x;\n this.y *= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this.x *= x.x;\n this.y *= x.y;\n }\n } else {\n this.x *= x;\n this.y *= y;\n }\n return this;\n },\n\n /**\n * @name Two.Vector#multiplySelf\n * @borrows Two.Vector#multiply as Two.Vector#multiplySelf\n */\n multiplySelf: function(v) {\n return this.multiply.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#multiplyScalar\n * @function\n * @param {Number} s - The scalar to multiply by.\n * @description Mulitiply the vector by a single number. Shorthand to call {@link Two.Vector#multiply} directly.\n */\n multiplyScalar: function(s) {\n return this.multiply(s);\n },\n\n /**\n * @name Two.Vector#divide\n * @function\n * @param {Two.Vector} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Divide an object with x / y component values to the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#divide\n * @function\n * @param {Number} v\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Divide the **same** number to both x / y component values of the instance.\n * @overloaded\n */\n\n /**\n * @name Two.Vector#divide\n * @function\n * @param {Number} x\n * @param {Number} y\n * @returns {Two.Vector} - An instance of itself for the purpose of chaining.\n * @description Divide `x` / `y` values to their respective component value on the instance.\n * @overloaded\n */\n divide: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this.x /= x;\n this.y /= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this.x /= x.x;\n this.y /= x.y;\n }\n } else {\n this.x /= x;\n this.y /= y;\n }\n if (_.isNaN(this.x)) {\n this.x = 0;\n }\n if (_.isNaN(this.y)) {\n this.y = 0;\n }\n return this;\n },\n\n /**\n * @name Two.Vector#divideSelf\n * @borrows Two.Vector#divide as Two.Vector#divideSelf\n */\n divideSelf: function(v) {\n return this.divide.apply(this, arguments);\n },\n\n /**\n * @name Two.Vector#divideScalar\n * @function\n * @param {Number} s - The scalar to divide by.\n * @description Divide the vector by a single number. Shorthand to call {@link Two.Vector#divide} directly.\n */\n divideScalar: function(s) {\n return this.divide(s);\n },\n\n /**\n * @name Two.Vector#negate\n * @function\n * @description Invert each component's sign value.\n */\n negate: function() {\n return this.multiply(-1);\n },\n\n /**\n * @name Two.Vector#negate\n * @function\n * @returns {Number}\n * @description Get the [dot product]{@link https://en.wikipedia.org/wiki/Dot_product} of the vector.\n */\n dot: function(v) {\n return this.x * v.x + this.y * v.y;\n },\n\n /**\n * @name Two.Vector#length\n * @function\n * @returns {Number}\n * @description Get the length of a vector.\n */\n length: function() {\n return Math.sqrt(this.lengthSquared());\n },\n\n /**\n * @name Two.Vector#lengthSquared\n * @function\n * @returns {Number}\n * @description Get the length of the vector to the power of two. Widely used as less expensive than {@link Two.Vector#length}, because it isn't square-rooting any numbers.\n */\n lengthSquared: function() {\n return this.x * this.x + this.y * this.y;\n },\n\n /**\n * @name Two.Vector#normalize\n * @function\n * @description Normalize the vector from negative one to one.\n */\n normalize: function() {\n return this.divideScalar(this.length());\n },\n\n /**\n * @name Two.Vector#distanceTo\n * @function\n * @returns {Number}\n * @description Get the distance between two vectors.\n */\n distanceTo: function(v) {\n return Math.sqrt(this.distanceToSquared(v));\n },\n\n /**\n * @name Two.Vector#distanceToSquared\n * @function\n * @returns {Number}\n * @description Get the distance between two vectors to the power of two. Widely used as less expensive than {@link Two.Vector#distanceTo}, because it isn't square-rooting any numbers.\n */\n distanceToSquared: function(v) {\n var dx = this.x - v.x,\n dy = this.y - v.y;\n return dx * dx + dy * dy;\n },\n\n /**\n * @name Two.Vector#setLength\n * @function\n * @param {Number} l - length to set vector to.\n * @description Set the length of a vector.\n */\n setLength: function(l) {\n return this.normalize().multiplyScalar(l);\n },\n\n /**\n * @name Two.Vector#equals\n * @function\n * @param {Two.Vector} v - The vector to compare against.\n * @param {Number} [eps=0.0001] - An options epsilon for precision.\n * @returns {Boolean}\n * @description Qualify if one vector roughly equal another. With a margin of error defined by epsilon.\n */\n equals: function(v, eps) {\n eps = (typeof eps === 'undefined') ? 0.0001 : eps;\n return (this.distanceTo(v) < eps);\n },\n\n /**\n * @name Two.Vector#lerp\n * @function\n * @param {Two.Vector} v - The destination vector to step towards.\n * @param {Number} t - The zero to one value of how close the current vector gets to the destination vector.\n * @description Linear interpolate one vector to another by an amount `t` defined as a zero to one number.\n * @see [Matt DesLauriers]{@link https://twitter.com/mattdesl/status/1031305279227478016} has a good thread about this.\n */\n lerp: function(v, t) {\n var x = (v.x - this.x) * t + this.x;\n var y = (v.y - this.y) * t + this.y;\n return this.set(x, y);\n },\n\n /**\n * @name Two.Vector#isZero\n * @function\n * @param {Number} [eps=0.0001] - Optional precision amount to check against.\n * @returns {Boolean}\n * @description Check to see if vector is roughly zero, based on the `epsilon` precision value.\n */\n isZero: function(eps) {\n eps = (typeof eps === 'undefined') ? 0.0001 : eps;\n return (this.length() < eps);\n },\n\n /**\n * @name Two.Vector#toString\n * @function\n * @returns {String}\n * @description Return a comma-separated string of x, y value. Great for storing in a database.\n */\n toString: function() {\n return this.x + ', ' + this.y;\n },\n\n /**\n * @name Two.Vector#toObject\n * @function\n * @returns {Object}\n * @description Return a JSON compatible plain object that represents the vector.\n */\n toObject: function() {\n return { x: this.x, y: this.y };\n },\n\n /**\n * @name Two.Vector#rotate\n * @function\n * @param {Radians} radians - The amoun to rotate the vector by.\n * @description Rotate a vector.\n */\n rotate: function(radians) {\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n this.x = this.x * cos - this.y * sin;\n this.y = this.x * sin + this.y * cos;\n return this;\n }\n\n });\n\n // The same set of prototypical functions, but using the underlying\n // getter or setter for `x` and `y` values. This set of functions\n // is used instead of the previously documented ones above when\n // Two.Vector#bind is invoked and there is event dispatching processed\n // on x / y property changes.\n var BoundProto = {\n\n constructor: Vector,\n\n set: function(x, y) {\n this._x = x;\n this._y = y;\n return this.trigger(Two.Events.change);\n },\n\n copy: function(v) {\n this._x = v.x;\n this._y = v.y;\n return this.trigger(Two.Events.change);\n },\n\n clear: function() {\n this._x = 0;\n this._y = 0;\n return this.trigger(Two.Events.change);\n },\n\n clone: function() {\n return new Vector(this._x, this._y);\n },\n\n add: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this._x += x;\n this._y += x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this._x += x.x;\n this._y += x.y;\n }\n } else {\n this._x += x;\n this._y += y;\n }\n return this.trigger(Two.Events.change);\n },\n\n sub: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this._x -= x;\n this._y -= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this._x -= x.x;\n this._y -= x.y;\n }\n } else {\n this._x -= x;\n this._y -= y;\n }\n return this.trigger(Two.Events.change);\n },\n\n multiply: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this._x *= x;\n this._y *= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this._x *= x.x;\n this._y *= x.y;\n }\n } else {\n this._x *= x;\n this._y *= y;\n }\n return this.trigger(Two.Events.change);\n },\n\n divide: function(x, y) {\n if (arguments.length <= 0) {\n return this;\n } else if (arguments.length <= 1) {\n if (_.isNumber(x)) {\n this._x /= x;\n this._y /= x;\n } else if (x && _.isNumber(x.x) && _.isNumber(x.y)) {\n this._x /= x.x;\n this._y /= x.y;\n }\n } else {\n this._x /= x;\n this._y /= y;\n }\n if (_.isNaN(this._x)) {\n this._x = 0;\n }\n if (_.isNaN(this._y)) {\n this._y = 0;\n }\n return this.trigger(Two.Events.change);\n },\n\n dot: function(v) {\n return this._x * v.x + this._y * v.y;\n },\n\n lengthSquared: function() {\n return this._x * this._x + this._y * this._y;\n },\n\n distanceToSquared: function(v) {\n var dx = this._x - v.x,\n dy = this._y - v.y;\n return dx * dx + dy * dy;\n },\n\n lerp: function(v, t) {\n var x = (v.x - this._x) * t + this._x;\n var y = (v.y - this._y) * t + this._y;\n return this.set(x, y);\n },\n\n toString: function() {\n return this._x + ', ' + this._y;\n },\n\n toObject: function() {\n return { x: this._x, y: this._y };\n },\n\n rotate: function (radians) {\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n this._x = this._x * cos - this._y * sin;\n this._y = this._x * sin + this._y * cos;\n return this;\n }\n\n };\n\n var xgs = {\n enumerable: true,\n get: function() {\n return this._x;\n },\n set: function(v) {\n this._x = v;\n this.trigger(Two.Events.change, 'x');\n }\n };\n\n var ygs = {\n enumerable: true,\n get: function() {\n return this._y;\n },\n set: function(v) {\n this._y = v;\n this.trigger(Two.Events.change, 'y');\n }\n };\n\n Vector.MakeObservable(Vector.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Localized variables\n var commands = Two.Commands;\n var _ = Two.Utils;\n\n /**\n * @class\n * @name Two.Anchor\n * @param {Number} [x=0] - The x position of the root anchor point.\n * @param {Number} [y=0] - The y position of the root anchor point.\n * @param {Number} [lx=0] - The x position of the left handle point.\n * @param {Number} [ly=0] - The y position of the left handle point.\n * @param {Number} [rx=0] - The x position of the right handle point.\n * @param {Number} [ry=0] - The y position of the right handle point.\n * @param {String} [command=Two.Commands.move] - The command to describe how to render. Applicable commands are {@link Two.Commands}\n * @extends Two.Vector\n * @description An object that holds 3 `Two.Vector`s, the anchor point and its corresponding handles: `left` and `right`. In order to properly describe the bezier curve about the point there is also a command property to describe what type of drawing should occur when Two.js renders the anchors.\n */\n var Anchor = Two.Anchor = function(x, y, lx, ly, rx, ry, command) {\n\n Two.Vector.call(this, x, y);\n\n this._broadcast = _.bind(function() {\n this.trigger(Two.Events.change);\n }, this);\n\n this._command = command || commands.move;\n this._relative = true;\n\n var ilx = _.isNumber(lx);\n var ily = _.isNumber(ly);\n var irx = _.isNumber(rx);\n var iry = _.isNumber(ry);\n\n // Append the `controls` object only if control points are specified,\n // keeping the Two.Anchor inline with a Two.Vector until it needs to\n // evolve beyond those functions — e.g: a simple 2 component vector.\n if (ilx || ily || irx || iry) {\n Two.Anchor.AppendCurveProperties(this);\n }\n\n if (ilx) {\n this.controls.left.x = lx;\n }\n if (ily) {\n this.controls.left.y = ly;\n }\n if (irx) {\n this.controls.right.x = rx;\n }\n if (iry) {\n this.controls.right.y = ry;\n }\n\n };\n\n _.extend(Two.Anchor, {\n\n /**\n * @name Two.Anchor.AppendCurveProperties\n * @function\n * @param {Two.Anchor} anchor - The instance to append the `control`object to.\n * @description Adds the `controls` property as an object with `left` and `right` properties to access the bezier control handles that define how the curve is drawn. It also sets the `relative` property to `true` making vectors in the `controls` object relative to their corresponding root anchor point.\n */\n AppendCurveProperties: function(anchor) {\n\n anchor.relative = true;\n\n /**\n * @name Two.Anchor#controls\n * @property {Object} controls\n * @description An plain object that holds the controls handles for a {@link Two.Anchor}.\n */\n anchor.controls = {};\n\n /**\n * @name Two.Anchor#controls#left\n * @property {Two.Vector} left\n * @description The \"left\" control point to define handles on a bezier curve.\n */\n anchor.controls.left = new Two.Vector(0, 0);\n\n /**\n * @name Two.Anchor#controls#right\n * @property {Two.Vector} right\n * @description The \"left\" control point to define handles on a bezier curve.\n */\n anchor.controls.right = new Two.Vector(0, 0);\n\n },\n\n /**\n * @name Two.Anchor.MakeObservable\n * @function\n * @param {Object} object - The object to make observable.\n * @description Convenience function to apply observable qualities of a `Two.Anchor` to any object. Handy if you'd like to extend the `Two.Anchor` class on a custom class.\n */\n MakeObservable: function(object) {\n\n /**\n * @name Two.Anchor#command\n * @property {Two.Commands}\n * @description A draw command associated with the anchor point.\n */\n Object.defineProperty(object, 'command', {\n\n enumerable: true,\n\n get: function() {\n return this._command;\n },\n\n set: function(c) {\n this._command = c;\n if (this._command === commands.curve && !_.isObject(this.controls)) {\n Anchor.AppendCurveProperties(this);\n }\n return this.trigger(Two.Events.change);\n }\n\n });\n\n /**\n * @name Two.Anchor#relative\n * @property {Boolean}\n * @description A boolean to render control points relative to the root anchor point or in global coordinate-space to the rest of the scene.\n */\n Object.defineProperty(object, 'relative', {\n\n enumerable: true,\n\n get: function() {\n return this._relative;\n },\n\n set: function(b) {\n if (this._relative == b) {\n return this;\n }\n this._relative = !!b;\n return this.trigger(Two.Events.change);\n }\n\n });\n\n _.extend(object, Two.Vector.prototype, AnchorProto);\n\n // Make it possible to bind and still have the Anchor specific\n // inheritance from Two.Vector. In this case relying on `Two.Vector`\n // to do much of the heavy event-listener binding / unbinding.\n object.bind = object.on = function() {\n var bound = this._bound;\n Two.Vector.prototype.bind.apply(this, arguments);\n if (!bound) {\n _.extend(this, AnchorProto);\n }\n };\n\n }\n\n });\n\n var AnchorProto = {\n\n constructor: Two.Anchor,\n\n /**\n * @name Two.Anchor#listen\n * @function\n * @description Convenience method used mainly by {@link Two.Path#vertices} to listen and propagate changes from control points up to their respective anchors and further if necessary.\n */\n listen: function() {\n\n if (!_.isObject(this.controls)) {\n Two.Anchor.AppendCurveProperties(this);\n }\n\n this.controls.left.bind(Two.Events.change, this._broadcast);\n this.controls.right.bind(Two.Events.change, this._broadcast);\n\n return this;\n\n },\n\n /**\n * @name Two.Anchor#ignore\n * @function\n * @description Convenience method used mainly by {@link Two.Path#vertices} to ignore changes from a specific anchor's control points.\n */\n ignore: function() {\n\n this.controls.left.unbind(Two.Events.change, this._broadcast);\n this.controls.right.unbind(Two.Events.change, this._broadcast);\n\n return this;\n\n },\n\n /**\n * @name Two.Anchor#copy\n * @function\n * @param {Two.Anchor} v - The anchor to apply values to.\n * @description Copy the properties of one {@link Two.Anchor} onto another.\n */\n copy: function(v) {\n\n this.x = v.x;\n this.y = v.y;\n\n if (_.isString(v.command)) {\n this.command = v.command;\n }\n if (_.isObject(v.controls)) {\n if (!_.isObject(this.controls)) {\n Two.Anchor.AppendCurveProperties(this);\n }\n // TODO: Do we need to listen here?\n this.controls.left.copy(v.controls.left);\n this.controls.right.copy(v.controls.right);\n }\n if (_.isBoolean(v.relative)) {\n this.relative = v.relative;\n }\n\n // TODO: Hack for `Two.Commands.arc`\n if (this.command === Two.Commands.arc) {\n this.rx = v.rx;\n this.ry = v.ry;\n this.xAxisRotation = v.xAxisRotation;\n this.largeArcFlag = v.largeArcFlag;\n this.sweepFlag = v.sweepFlag;\n }\n\n return this;\n\n },\n\n /**\n * @name Two.Anchor#clone\n * @function\n * @returns {Two.Anchor}\n * @description Create a new {@link Two.Anchor}, set all its values to the current instance and return it for use.\n */\n clone: function() {\n\n var controls = this.controls;\n\n var clone = new Two.Anchor(\n this.x,\n this.y,\n controls && controls.left.x,\n controls && controls.left.y,\n controls && controls.right.x,\n controls && controls.right.y,\n this.command\n );\n clone.relative = this._relative;\n return clone;\n\n },\n\n /**\n * @name Two.Anchor#toObject\n * @function\n * @returns {Object} - An object with properties filled out to mirror {@link Two.Anchor}.\n * @description Create a JSON compatible plain object of the current instance. Intended for use with storing values in a database.\n */\n toObject: function() {\n var o = {\n x: this.x,\n y: this.y\n };\n if (this._command) {\n o.command = this._command;\n }\n if (this._relative) {\n o.relative = this._relative;\n }\n if (this.controls) {\n o.controls = {\n left: this.controls.left.toObject(),\n right: this.controls.right.toObject()\n };\n }\n return o;\n },\n\n /**\n * @name Two.Anchor#toString\n * @function\n * @returns {String} - A String with comma-separated values reflecting the various values on the current instance.\n * @description Create a string form of the current instance. Intended for use with storing values in a database. This is lighter to store than the JSON compatible {@link Two.Anchor#toObject}.\n */\n toString: function() {\n if (!this.controls) {\n return [this._x, this._y].join(', ');\n }\n return [this._x, this._y, this.controls.left.x, this.controls.left.y,\n this.controls.right.x, this.controls.right.y, this._command,\n this._relative ? 1 : 0].join(', ');\n }\n\n };\n\n Two.Anchor.MakeObservable(Two.Anchor.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Constants\n\n var cos = Math.cos, sin = Math.sin, tan = Math.tan;\n var _ = Two.Utils, fix = _.toFixed;\n var array = [];\n\n /**\n * @name Two.Matrix\n * @class\n * @param {Number} [a=1] - The value for element at the first column and first row.\n * @param {Number} [b=0] - The value for element at the second column and first row.\n * @param {Number} [c=0] - The value for element at the third column and first row.\n * @param {Number} [d=0] - The value for element at the first column and second row.\n * @param {Number} [e=1] - The value for element at the second column and second row.\n * @param {Number} [f=0] - The value for element at the third column and second row.\n * @param {Number} [g=0] - The value for element at the first column and third row.\n * @param {Number} [h=0] - The value for element at the second column and third row.\n * @param {Number} [i=1] - The value for element at the third column and third row.\n * @description A class to store 3 x 3 transformation matrix information. In addition to storing data `Two.Matrix` has suped up methods for commonplace mathematical operations.\n * @nota-bene Order is based on how to construct transformation strings for the browser.\n */\n var Matrix = Two.Matrix = function(a, b, c, d, e, f) {\n\n /**\n * @name Two.Matrix#elements\n * @property {Array} - The underlying data stored as an array.\n */\n this.elements = new Two.Array(9);\n\n var elements = a;\n if (!_.isArray(elements)) {\n elements = _.toArray(arguments);\n }\n\n // initialize the elements with default values.\n this.identity();\n\n if (elements.length > 0) {\n this.set(elements);\n }\n\n };\n\n _.extend(Matrix, {\n\n /**\n * @name Two.Matrix.Identity\n * @property {Array} - A stored reference to the default value of a 3 x 3 matrix.\n */\n Identity: [\n 1, 0, 0,\n 0, 1, 0,\n 0, 0, 1\n ],\n\n /**\n * @name Two.Matrix.Multiply\n * @function\n * @param {Two.Matrix} A\n * @param {Two.Matrix} B\n * @param {Two.Matrix} [C] - An optional matrix to apply the multiplication to.\n * @returns {Two.Matrix} - If an optional `C` matrix isn't passed then a new one is created and returned.\n * @description Multiply two matrices together and return the result.\n */\n Multiply: function(A, B, C) {\n\n if (B.length <= 3) { // Multiply Vector\n\n var x, y, z, e = A;\n\n var a = B[0] || 0,\n b = B[1] || 0,\n c = B[2] || 0;\n\n // Go down rows first\n // a, d, g, b, e, h, c, f, i\n\n x = e[0] * a + e[1] * b + e[2] * c;\n y = e[3] * a + e[4] * b + e[5] * c;\n z = e[6] * a + e[7] * b + e[8] * c;\n\n return { x: x, y: y, z: z };\n\n }\n\n var A0 = A[0], A1 = A[1], A2 = A[2];\n var A3 = A[3], A4 = A[4], A5 = A[5];\n var A6 = A[6], A7 = A[7], A8 = A[8];\n\n var B0 = B[0], B1 = B[1], B2 = B[2];\n var B3 = B[3], B4 = B[4], B5 = B[5];\n var B6 = B[6], B7 = B[7], B8 = B[8];\n\n C = C || new Two.Array(9);\n\n C[0] = A0 * B0 + A1 * B3 + A2 * B6;\n C[1] = A0 * B1 + A1 * B4 + A2 * B7;\n C[2] = A0 * B2 + A1 * B5 + A2 * B8;\n C[3] = A3 * B0 + A4 * B3 + A5 * B6;\n C[4] = A3 * B1 + A4 * B4 + A5 * B7;\n C[5] = A3 * B2 + A4 * B5 + A5 * B8;\n C[6] = A6 * B0 + A7 * B3 + A8 * B6;\n C[7] = A6 * B1 + A7 * B4 + A8 * B7;\n C[8] = A6 * B2 + A7 * B5 + A8 * B8;\n\n return C;\n\n }\n\n });\n\n _.extend(Matrix.prototype, Two.Utils.Events, {\n\n constructor: Matrix,\n\n /**\n * @name Two.Matrix#manual\n * @property {Boolean} - Determines whether Two.js automatically calculates the values for the matrix or if the developer intends to manage the matrix.\n * @nota-bene - Setting to `true` nullifies {@link Two.Shape#translation}, {@link Two.Shape#rotation}, and {@link Two.Shape#scale}.\n */\n manual: false,\n\n /**\n * @name Two.Matrix#set\n * @function\n * @param {Number} a - The value for element at the first column and first row.\n * @param {Number} b - The value for element at the second column and first row.\n * @param {Number} c - The value for element at the third column and first row.\n * @param {Number} d - The value for element at the first column and second row.\n * @param {Number} e - The value for element at the second column and second row.\n * @param {Number} f - The value for element at the third column and second row.\n * @param {Number} g - The value for element at the first column and third row.\n * @param {Number} h - The value for element at the second column and third row.\n * @param {Number} i - The value for element at the third column and third row.\n * @description Set an array of values onto the matrix. Order described in {@link Two.Matrix}.\n */\n\n /**\n * @name Two.Matrix#set\n * @function\n * @param {Number[]} a - The array of elements to apply.\n * @description Set an array of values onto the matrix. Order described in {@link Two.Matrix}.\n */\n set: function(a) {\n\n var elements = a;\n if (arguments.length > 1) {\n elements = _.toArray(arguments);\n }\n\n this.elements[0] = elements[0];\n this.elements[1] = elements[1];\n this.elements[2] = elements[2];\n this.elements[3] = elements[3];\n this.elements[4] = elements[4];\n this.elements[5] = elements[5];\n this.elements[6] = elements[6];\n this.elements[7] = elements[7];\n this.elements[8] = elements[8];\n\n return this.trigger(Two.Events.change);\n\n },\n\n /**\n * @name Two.Matrix#identity\n * @function\n * @description Turn matrix to the identity, like resetting.\n */\n identity: function() {\n\n this.elements[0] = Matrix.Identity[0];\n this.elements[1] = Matrix.Identity[1];\n this.elements[2] = Matrix.Identity[2];\n this.elements[3] = Matrix.Identity[3];\n this.elements[4] = Matrix.Identity[4];\n this.elements[5] = Matrix.Identity[5];\n this.elements[6] = Matrix.Identity[6];\n this.elements[7] = Matrix.Identity[7];\n this.elements[8] = Matrix.Identity[8];\n\n return this.trigger(Two.Events.change);\n\n },\n\n /**\n * @name Two.Matrix.multiply\n * @function\n * @param {Number} a - The scalar to be multiplied.\n * @description Multiply all components of the matrix against a single scalar value.\n */\n\n /**\n * @name Two.Matrix.multiply\n * @function\n * @param {Number} a - The x component to be multiplied.\n * @param {Number} b - The y component to be multiplied.\n * @param {Number} c - The z component to be multiplied.\n * @description Multiply all components of a matrix against a 3 component vector.\n */\n\n /**\n * @name Two.Matrix.multiply\n * @function\n * @param {Number} a - The value at the first column and first row of the matrix to be multiplied.\n * @param {Number} b - The value at the second column and first row of the matrix to be multiplied.\n * @param {Number} c - The value at the third column and first row of the matrix to be multiplied.\n * @param {Number} d - The value at the first column and second row of the matrix to be multiplied.\n * @param {Number} e - The value at the second column and second row of the matrix to be multiplied.\n * @param {Number} f - The value at the third column and second row of the matrix to be multiplied.\n * @param {Number} g - The value at the first column and third row of the matrix to be multiplied.\n * @param {Number} h - The value at the second column and third row of the matrix to be multiplied.\n * @param {Number} i - The value at the third column and third row of the matrix to be multiplied.\n * @description Multiply all components of a matrix against another matrix.\n */\n multiply: function(a, b, c, d, e, f, g, h, i) {\n\n var elements = arguments, l = elements.length;\n\n // Multiply scalar\n\n if (l <= 1) {\n\n this.elements[0] *= a;\n this.elements[1] *= a;\n this.elements[2] *= a;\n this.elements[3] *= a;\n this.elements[4] *= a;\n this.elements[5] *= a;\n this.elements[6] *= a;\n this.elements[7] *= a;\n this.elements[8] *= a;\n\n return this.trigger(Two.Events.change);\n\n }\n\n if (l <= 3) { // Multiply Vector\n\n var x, y, z;\n a = a || 0;\n b = b || 0;\n c = c || 0;\n e = this.elements;\n\n // Go down rows first\n // a, d, g, b, e, h, c, f, i\n\n x = e[0] * a + e[1] * b + e[2] * c;\n y = e[3] * a + e[4] * b + e[5] * c;\n z = e[6] * a + e[7] * b + e[8] * c;\n\n return { x: x, y: y, z: z };\n\n }\n\n // Multiple matrix\n\n var A = this.elements;\n var B = elements;\n\n var A0 = A[0], A1 = A[1], A2 = A[2];\n var A3 = A[3], A4 = A[4], A5 = A[5];\n var A6 = A[6], A7 = A[7], A8 = A[8];\n\n var B0 = B[0], B1 = B[1], B2 = B[2];\n var B3 = B[3], B4 = B[4], B5 = B[5];\n var B6 = B[6], B7 = B[7], B8 = B[8];\n\n this.elements[0] = A0 * B0 + A1 * B3 + A2 * B6;\n this.elements[1] = A0 * B1 + A1 * B4 + A2 * B7;\n this.elements[2] = A0 * B2 + A1 * B5 + A2 * B8;\n\n this.elements[3] = A3 * B0 + A4 * B3 + A5 * B6;\n this.elements[4] = A3 * B1 + A4 * B4 + A5 * B7;\n this.elements[5] = A3 * B2 + A4 * B5 + A5 * B8;\n\n this.elements[6] = A6 * B0 + A7 * B3 + A8 * B6;\n this.elements[7] = A6 * B1 + A7 * B4 + A8 * B7;\n this.elements[8] = A6 * B2 + A7 * B5 + A8 * B8;\n\n return this.trigger(Two.Events.change);\n\n },\n\n /**\n * @name Two.Matrix#inverse\n * @function\n * @param {Two.Matrix} [out] - The optional matrix to apply the inversion to.\n * @description Return an inverted version of the matrix. If no optional one is passed a new matrix is created and returned.\n */\n inverse: function(out) {\n\n var a = this.elements;\n out = out || new Two.Matrix();\n\n var a00 = a[0], a01 = a[1], a02 = a[2];\n var a10 = a[3], a11 = a[4], a12 = a[5];\n var a20 = a[6], a21 = a[7], a22 = a[8];\n\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20;\n\n // Calculate the determinant\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n\n out.elements[0] = b01 * det;\n out.elements[1] = (-a22 * a01 + a02 * a21) * det;\n out.elements[2] = (a12 * a01 - a02 * a11) * det;\n out.elements[3] = b11 * det;\n out.elements[4] = (a22 * a00 - a02 * a20) * det;\n out.elements[5] = (-a12 * a00 + a02 * a10) * det;\n out.elements[6] = b21 * det;\n out.elements[7] = (-a21 * a00 + a01 * a20) * det;\n out.elements[8] = (a11 * a00 - a01 * a10) * det;\n\n return out;\n\n },\n\n /**\n * @name Two.Matrix#scale\n * @function\n * @param {Number} scale - The one dimensional scale to apply to the matrix.\n * @description Uniformly scale the transformation matrix.\n */\n\n /**\n * @name Two.Matrix#scale\n * @function\n * @param {Number} sx - The horizontal scale factor.\n * @param {Number} sy - The vertical scale factor\n * @description Scale the transformation matrix in two dimensions.\n */\n scale: function(sx, sy) {\n\n var l = arguments.length;\n if (l <= 1) {\n sy = sx;\n }\n\n return this.multiply(sx, 0, 0, 0, sy, 0, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#rotate\n * @function\n * @param {Radians} radians - The amount to rotate in radians.\n * @description Rotate the matrix.\n */\n rotate: function(radians) {\n\n var c = cos(radians);\n var s = sin(radians);\n\n return this.multiply(c, -s, 0, s, c, 0, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#translate\n * @function\n * @param {Number} x - The horizontal translation value to apply.\n * @param {Number} y - The vertical translation value to apply.\n * @description Translate the matrix.\n */\n translate: function(x, y) {\n\n return this.multiply(1, 0, x, 0, 1, y, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#skewX\n * @function\n * @param {Radians} radians - The amount to skew in radians.\n * @description Skew the matrix by an angle in the x axis direction.\n */\n skewX: function(radians) {\n\n var a = tan(radians);\n\n return this.multiply(1, a, 0, 0, 1, 0, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#skewY\n * @function\n * @param {Radians} radians - The amount to skew in radians.\n * @description Skew the matrix by an angle in the y axis direction.\n */\n skewY: function(radians) {\n\n var a = tan(radians);\n\n return this.multiply(1, 0, 0, a, 1, 0, 0, 0, 1);\n\n },\n\n /**\n * @name Two.Matrix#toString\n * @function\n * @param {Boolean} [fullMatrix=false] - Return the full 9 elements of the matrix or just 6 for 2D transformations.\n * @returns {String} - The transformation matrix as a 6 component string separated by spaces.\n * @description Create a transform string. Used for the Two.js rendering APIs.\n */\n toString: function(fullMatrix) {\n\n array.length = 0;\n this.toArray(fullMatrix, array);\n\n return array.join(' ');\n\n },\n\n /**\n * @name Two.Matrix#toArray\n * @function\n * @param {Boolean} [fullMatrix=false] - Return the full 9 elements of the matrix or just 6 for 2D transformations.\n * @param {Number[]} [output] - An array empty or otherwise to apply the values to.\n * @description Create a transform array. Used for the Two.js rendering APIs.\n */\n toArray: function(fullMatrix, output) {\n\n var elements = this.elements;\n var hasOutput = !!output;\n\n var a = fix(elements[0]);\n var b = fix(elements[1]);\n var c = fix(elements[2]);\n var d = fix(elements[3]);\n var e = fix(elements[4]);\n var f = fix(elements[5]);\n\n if (!!fullMatrix) {\n\n var g = fix(elements[6]);\n var h = fix(elements[7]);\n var i = fix(elements[8]);\n\n if (hasOutput) {\n output[0] = a;\n output[1] = d;\n output[2] = g;\n output[3] = b;\n output[4] = e;\n output[5] = h;\n output[6] = c;\n output[7] = f;\n output[8] = i;\n return;\n }\n\n return [\n a, d, g, b, e, h, c, f, i\n ];\n }\n\n if (hasOutput) {\n output[0] = a;\n output[1] = d;\n output[2] = b;\n output[3] = e;\n output[4] = c;\n output[5] = f;\n return;\n }\n\n return [\n a, d, b, e, c, f // Specific format see LN:19\n ];\n\n },\n\n /**\n * @name Two.Matrix#clone\n * @function\n * @description Clone the current matrix.\n */\n clone: function() {\n var a, b, c, d, e, f, g, h, i;\n\n a = this.elements[0];\n b = this.elements[1];\n c = this.elements[2];\n d = this.elements[3];\n e = this.elements[4];\n f = this.elements[5];\n g = this.elements[6];\n h = this.elements[7];\n i = this.elements[8];\n\n var matrix = new Two.Matrix(a, b, c, d, e, f, g, h, i);\n matrix.manual = this.manual;\n\n return matrix;\n\n }\n\n });\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Localize variables\n var mod = Two.Utils.mod, toFixed = Two.Utils.toFixed;\n var _ = Two.Utils;\n\n var svg = {\n\n version: 1.1,\n\n ns: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n\n alignments: {\n left: 'start',\n center: 'middle',\n right: 'end'\n },\n\n /**\n * Create an svg namespaced element.\n */\n createElement: function(name, attrs) {\n var tag = name;\n var elem = document.createElementNS(svg.ns, tag);\n if (tag === 'svg') {\n attrs = _.defaults(attrs || {}, {\n version: svg.version\n });\n }\n if (!_.isEmpty(attrs)) {\n svg.setAttributes(elem, attrs);\n }\n return elem;\n },\n\n /**\n * Add attributes from an svg element.\n */\n setAttributes: function(elem, attrs) {\n var keys = Object.keys(attrs);\n for (var i = 0; i < keys.length; i++) {\n if (/href/.test(keys[i])) {\n elem.setAttributeNS(svg.xlink, keys[i], attrs[keys[i]]);\n } else {\n elem.setAttribute(keys[i], attrs[keys[i]]);\n }\n }\n return this;\n },\n\n /**\n * Remove attributes from an svg element.\n */\n removeAttributes: function(elem, attrs) {\n for (var key in attrs) {\n elem.removeAttribute(key);\n }\n return this;\n },\n\n /**\n * Turn a set of vertices into a string for the d property of a path\n * element. It is imperative that the string collation is as fast as\n * possible, because this call will be happening multiple times a\n * second.\n */\n toString: function(points, closed) {\n\n var l = points.length,\n last = l - 1,\n d, // The elusive last Two.Commands.move point\n string = '';\n\n for (var i = 0; i < l; i++) {\n var b = points[i];\n var command;\n var prev = closed ? mod(i - 1, l) : Math.max(i - 1, 0);\n var next = closed ? mod(i + 1, l) : Math.min(i + 1, last);\n\n var a = points[prev];\n var c = points[next];\n\n var vx, vy, ux, uy, ar, bl, br, cl;\n var rx, ry, xAxisRotation, largeArcFlag, sweepFlag;\n\n // Access x and y directly,\n // bypassing the getter\n var x = toFixed(b.x);\n var y = toFixed(b.y);\n\n switch (b.command) {\n\n case Two.Commands.close:\n command = Two.Commands.close;\n break;\n\n case Two.Commands.arc:\n\n rx = b.rx;\n ry = b.ry;\n xAxisRotation = b.xAxisRotation;\n largeArcFlag = b.largeArcFlag;\n sweepFlag = b.sweepFlag;\n\n command = Two.Commands.arc + ' ' + rx + ' ' + ry + ' '\n + xAxisRotation + ' ' + largeArcFlag + ' ' + sweepFlag + ' '\n + x + ' ' + y;\n break;\n\n case Two.Commands.curve:\n\n ar = (a.controls && a.controls.right) || Two.Vector.zero;\n bl = (b.controls && b.controls.left) || Two.Vector.zero;\n\n if (a.relative) {\n vx = toFixed((ar.x + a.x));\n vy = toFixed((ar.y + a.y));\n } else {\n vx = toFixed(ar.x);\n vy = toFixed(ar.y);\n }\n\n if (b.relative) {\n ux = toFixed((bl.x + b.x));\n uy = toFixed((bl.y + b.y));\n } else {\n ux = toFixed(bl.x);\n uy = toFixed(bl.y);\n }\n\n command = ((i === 0) ? Two.Commands.move : Two.Commands.curve) +\n ' ' + vx + ' ' + vy + ' ' + ux + ' ' + uy + ' ' + x + ' ' + y;\n break;\n\n case Two.Commands.move:\n d = b;\n command = Two.Commands.move + ' ' + x + ' ' + y;\n break;\n\n default:\n command = b.command + ' ' + x + ' ' + y;\n\n }\n\n // Add a final point and close it off\n\n if (i >= last && closed) {\n\n if (b.command === Two.Commands.curve) {\n\n // Make sure we close to the most previous Two.Commands.move\n c = d;\n\n br = (b.controls && b.controls.right) || b;\n cl = (c.controls && c.controls.left) || c;\n\n if (b.relative) {\n vx = toFixed((br.x + b.x));\n vy = toFixed((br.y + b.y));\n } else {\n vx = toFixed(br.x);\n vy = toFixed(br.y);\n }\n\n if (c.relative) {\n ux = toFixed((cl.x + c.x));\n uy = toFixed((cl.y + c.y));\n } else {\n ux = toFixed(cl.x);\n uy = toFixed(cl.y);\n }\n\n x = toFixed(c.x);\n y = toFixed(c.y);\n\n command +=\n ' C ' + vx + ' ' + vy + ' ' + ux + ' ' + uy + ' ' + x + ' ' + y;\n\n }\n\n if (b.command !== Two.Commands.close) {\n command += ' Z';\n }\n\n }\n\n string += command + ' ';\n\n }\n\n return string;\n\n },\n\n getClip: function(shape) {\n\n var clip = shape._renderer.clip;\n\n if (!clip) {\n\n var root = shape;\n\n while (root.parent) {\n root = root.parent;\n }\n\n clip = shape._renderer.clip = svg.createElement('clipPath');\n root.defs.appendChild(clip);\n\n }\n\n return clip;\n\n },\n\n group: {\n\n // TODO: Can speed up.\n // TODO: How does this effect a f\n appendChild: function(object) {\n\n var elem = object._renderer.elem;\n\n if (!elem) {\n return;\n }\n\n var tag = elem.nodeName;\n\n if (!tag || /(radial|linear)gradient/i.test(tag) || object._clip) {\n return;\n }\n\n this.elem.appendChild(elem);\n\n },\n\n removeChild: function(object) {\n\n var elem = object._renderer.elem;\n\n if (!elem || elem.parentNode != this.elem) {\n return;\n }\n\n var tag = elem.nodeName;\n\n if (!tag) {\n return;\n }\n\n // Defer subtractions while clipping.\n if (object._clip) {\n return;\n }\n\n this.elem.removeChild(elem);\n\n },\n\n orderChild: function(object) {\n this.elem.appendChild(object._renderer.elem);\n },\n\n renderChild: function(child) {\n svg[child._renderer.type].render.call(child, this);\n },\n\n render: function(domElement) {\n\n this._update();\n\n // Shortcut for hidden objects.\n // Doesn't reset the flags, so changes are stored and\n // applied once the object is visible again\n if (this._opacity === 0 && !this._flagOpacity) {\n return this;\n }\n\n if (!this._renderer.elem) {\n this._renderer.elem = svg.createElement('g', {\n id: this.id\n });\n domElement.appendChild(this._renderer.elem);\n }\n\n // _Update styles for the \n var flagMatrix = this._matrix.manual || this._flagMatrix;\n var context = {\n domElement: domElement,\n elem: this._renderer.elem\n };\n\n if (flagMatrix) {\n this._renderer.elem.setAttribute('transform', 'matrix(' + this._matrix.toString() + ')');\n }\n\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n svg[child._renderer.type].render.call(child, domElement);\n }\n\n if (this._flagOpacity) {\n this._renderer.elem.setAttribute('opacity', this._opacity);\n }\n\n if (this._flagClassName) {\n this._renderer.elem.setAttribute('class', this._className);\n }\n\n if (this._flagAdditions) {\n this.additions.forEach(svg.group.appendChild, context);\n }\n\n if (this._flagSubtractions) {\n this.subtractions.forEach(svg.group.removeChild, context);\n }\n\n if (this._flagOrder) {\n this.children.forEach(svg.group.orderChild, context);\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (this._flagClip) {\n\n // clip = svg.getClip(this);\n // elem = this._renderer.elem;\n\n // if (this._clip) {\n // elem.removeAttribute('id');\n // clip.setAttribute('id', this.id);\n // clip.appendChild(elem);\n // } else {\n // clip.removeAttribute('id');\n // elem.setAttribute('id', this.id);\n // this.parent._renderer.elem.appendChild(elem); // TODO: should be insertBefore\n // }\n\n // }\n\n if (this._flagMask) {\n if (this._mask) {\n this._renderer.elem.setAttribute('clip-path', 'url(#' + this._mask.id + ')');\n } else {\n this._renderer.elem.removeAttribute('clip-path');\n }\n }\n\n return this.flagReset();\n\n }\n\n },\n\n path: {\n\n render: function(domElement) {\n\n this._update();\n\n // Shortcut for hidden objects.\n // Doesn't reset the flags, so changes are stored and\n // applied once the object is visible again\n if (this._opacity === 0 && !this._flagOpacity) {\n return this;\n }\n\n // Collect any attribute that needs to be changed here\n var changed = {};\n\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n\n if (flagMatrix) {\n changed.transform = 'matrix(' + this._matrix.toString() + ')';\n }\n\n if (this._flagVertices) {\n var vertices = svg.toString(this._renderer.vertices, this._closed);\n changed.d = vertices;\n }\n\n if (this._fill && this._fill._renderer) {\n this._fill._update();\n svg[this._fill._renderer.type].render.call(this._fill, domElement, true);\n }\n\n if (this._flagFill) {\n changed.fill = this._fill && this._fill.id\n ? 'url(#' + this._fill.id + ')' : this._fill;\n }\n\n if (this._stroke && this._stroke._renderer) {\n this._stroke._update();\n svg[this._stroke._renderer.type].render.call(this._stroke, domElement, true);\n }\n\n if (this._flagStroke) {\n changed.stroke = this._stroke && this._stroke.id\n ? 'url(#' + this._stroke.id + ')' : this._stroke;\n }\n\n if (this._flagLinewidth) {\n changed['stroke-width'] = this._linewidth;\n }\n\n if (this._flagOpacity) {\n changed['stroke-opacity'] = this._opacity;\n changed['fill-opacity'] = this._opacity;\n }\n\n if (this._flagClassName) {\n changed['class'] = this._className;\n }\n\n if (this._flagVisible) {\n changed.visibility = this._visible ? 'visible' : 'hidden';\n }\n\n if (this._flagCap) {\n changed['stroke-linecap'] = this._cap;\n }\n\n if (this._flagJoin) {\n changed['stroke-linejoin'] = this._join;\n }\n\n if (this._flagMiter) {\n changed['stroke-miterlimit'] = this._miter;\n }\n\n if (this.dashes && this.dashes.length > 0) {\n changed['stroke-dasharray'] = this.dashes.join(' ');\n }\n\n // If there is no attached DOM element yet,\n // create it with all necessary attributes.\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n this._renderer.elem = svg.createElement('path', changed);\n domElement.appendChild(this._renderer.elem);\n\n // Otherwise apply all pending attributes\n } else {\n svg.setAttributes(this._renderer.elem, changed);\n }\n\n if (this._flagClip) {\n\n var clip = svg.getClip(this);\n var elem = this._renderer.elem;\n\n if (this._clip) {\n elem.removeAttribute('id');\n clip.setAttribute('id', this.id);\n clip.appendChild(elem);\n } else {\n clip.removeAttribute('id');\n elem.setAttribute('id', this.id);\n this.parent._renderer.elem.appendChild(elem); // TODO: should be insertBefore\n }\n\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (this._flagMask) {\n // if (this._mask) {\n // elem.setAttribute('clip-path', 'url(#' + this._mask.id + ')');\n // } else {\n // elem.removeAttribute('clip-path');\n // }\n // }\n\n return this.flagReset();\n\n }\n\n },\n\n text: {\n\n render: function(domElement) {\n\n this._update();\n\n var changed = {};\n\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n\n if (flagMatrix) {\n changed.transform = 'matrix(' + this._matrix.toString() + ')';\n }\n\n if (this._flagFamily) {\n changed['font-family'] = this._family;\n }\n if (this._flagSize) {\n changed['font-size'] = this._size;\n }\n if (this._flagLeading) {\n changed['line-height'] = this._leading;\n }\n if (this._flagAlignment) {\n changed['text-anchor'] = svg.alignments[this._alignment] || this._alignment;\n }\n if (this._flagBaseline) {\n changed['alignment-baseline'] = changed['dominant-baseline'] = this._baseline;\n }\n if (this._flagStyle) {\n changed['font-style'] = this._style;\n }\n if (this._flagWeight) {\n changed['font-weight'] = this._weight;\n }\n if (this._flagDecoration) {\n changed['text-decoration'] = this._decoration;\n }\n if (this._fill && this._fill._renderer) {\n this._fill._update();\n svg[this._fill._renderer.type].render.call(this._fill, domElement, true);\n }\n if (this._flagFill) {\n changed.fill = this._fill && this._fill.id\n ? 'url(#' + this._fill.id + ')' : this._fill;\n }\n if (this._stroke && this._stroke._renderer) {\n this._stroke._update();\n svg[this._stroke._renderer.type].render.call(this._stroke, domElement, true);\n }\n if (this._flagStroke) {\n changed.stroke = this._stroke && this._stroke.id\n ? 'url(#' + this._stroke.id + ')' : this._stroke;\n }\n if (this._flagLinewidth) {\n changed['stroke-width'] = this._linewidth;\n }\n if (this._flagOpacity) {\n changed.opacity = this._opacity;\n }\n if (this._flagClassName) {\n changed['class'] = this._className;\n }\n if (this._flagVisible) {\n changed.visibility = this._visible ? 'visible' : 'hidden';\n }\n if (this.dashes && this.dashes.length > 0) {\n changed['stroke-dasharray'] = this.dashes.join(' ');\n }\n\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n\n this._renderer.elem = svg.createElement('text', changed);\n domElement.defs.appendChild(this._renderer.elem);\n\n } else {\n\n svg.setAttributes(this._renderer.elem, changed);\n\n }\n\n if (this._flagClip) {\n\n var clip = svg.getClip(this);\n var elem = this._renderer.elem;\n\n if (this._clip) {\n elem.removeAttribute('id');\n clip.setAttribute('id', this.id);\n clip.appendChild(elem);\n } else {\n clip.removeAttribute('id');\n elem.setAttribute('id', this.id);\n this.parent._renderer.elem.appendChild(elem); // TODO: should be insertBefore\n }\n\n }\n\n if (this._flagValue) {\n this._renderer.elem.textContent = this._value;\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'linear-gradient': {\n\n render: function(domElement, silent) {\n\n if (!silent) {\n this._update();\n }\n\n var changed = {};\n\n if (this._flagEndPoints) {\n changed.x1 = this.left._x;\n changed.y1 = this.left._y;\n changed.x2 = this.right._x;\n changed.y2 = this.right._y;\n }\n\n if (this._flagSpread) {\n changed.spreadMethod = this._spread;\n }\n\n // If there is no attached DOM element yet,\n // create it with all necessary attributes.\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n changed.gradientUnits = 'userSpaceOnUse';\n this._renderer.elem = svg.createElement('linearGradient', changed);\n domElement.defs.appendChild(this._renderer.elem);\n\n // Otherwise apply all pending attributes\n } else {\n\n svg.setAttributes(this._renderer.elem, changed);\n\n }\n\n if (this._flagStops) {\n\n var lengthChanged = this._renderer.elem.childNodes.length\n !== this.stops.length;\n\n if (lengthChanged) {\n this._renderer.elem.childNodes.length = 0;\n }\n\n for (var i = 0; i < this.stops.length; i++) {\n\n var stop = this.stops[i];\n var attrs = {};\n\n if (stop._flagOffset) {\n attrs.offset = 100 * stop._offset + '%';\n }\n if (stop._flagColor) {\n attrs['stop-color'] = stop._color;\n }\n if (stop._flagOpacity) {\n attrs['stop-opacity'] = stop._opacity;\n }\n\n if (!stop._renderer.elem) {\n stop._renderer.elem = svg.createElement('stop', attrs);\n } else {\n svg.setAttributes(stop._renderer.elem, attrs);\n }\n\n if (lengthChanged) {\n this._renderer.elem.appendChild(stop._renderer.elem);\n }\n stop.flagReset();\n\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'radial-gradient': {\n\n render: function(domElement, silent) {\n\n if (!silent) {\n this._update();\n }\n\n var changed = {};\n\n if (this._flagCenter) {\n changed.cx = this.center._x;\n changed.cy = this.center._y;\n }\n if (this._flagFocal) {\n changed.fx = this.focal._x;\n changed.fy = this.focal._y;\n }\n\n if (this._flagRadius) {\n changed.r = this._radius;\n }\n\n if (this._flagSpread) {\n changed.spreadMethod = this._spread;\n }\n\n // If there is no attached DOM element yet,\n // create it with all necessary attributes.\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n changed.gradientUnits = 'userSpaceOnUse';\n this._renderer.elem = svg.createElement('radialGradient', changed);\n domElement.defs.appendChild(this._renderer.elem);\n\n // Otherwise apply all pending attributes\n } else {\n\n svg.setAttributes(this._renderer.elem, changed);\n\n }\n\n if (this._flagStops) {\n\n var lengthChanged = this._renderer.elem.childNodes.length\n !== this.stops.length;\n\n if (lengthChanged) {\n this._renderer.elem.childNodes.length = 0;\n }\n\n for (var i = 0; i < this.stops.length; i++) {\n\n var stop = this.stops[i];\n var attrs = {};\n\n if (stop._flagOffset) {\n attrs.offset = 100 * stop._offset + '%';\n }\n if (stop._flagColor) {\n attrs['stop-color'] = stop._color;\n }\n if (stop._flagOpacity) {\n attrs['stop-opacity'] = stop._opacity;\n }\n\n if (!stop._renderer.elem) {\n stop._renderer.elem = svg.createElement('stop', attrs);\n } else {\n svg.setAttributes(stop._renderer.elem, attrs);\n }\n\n if (lengthChanged) {\n this._renderer.elem.appendChild(stop._renderer.elem);\n }\n stop.flagReset();\n\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n texture: {\n\n render: function(domElement, silent) {\n\n if (!silent) {\n this._update();\n }\n\n var changed = {};\n var styles = { x: 0, y: 0 };\n var image = this.image;\n\n if (this._flagLoaded && this.loaded) {\n\n switch (image.nodeName.toLowerCase()) {\n\n case 'canvas':\n styles.href = styles['xlink:href'] = image.toDataURL('image/png');\n break;\n case 'img':\n case 'image':\n styles.href = styles['xlink:href'] = this.src;\n break;\n\n }\n\n }\n\n if (this._flagOffset || this._flagLoaded || this._flagScale) {\n\n changed.x = this._offset.x;\n changed.y = this._offset.y;\n\n if (image) {\n\n changed.x -= image.width / 2;\n changed.y -= image.height / 2;\n\n if (this._scale instanceof Two.Vector) {\n changed.x *= this._scale.x;\n changed.y *= this._scale.y;\n } else {\n changed.x *= this._scale;\n changed.y *= this._scale;\n }\n }\n\n if (changed.x > 0) {\n changed.x *= - 1;\n }\n if (changed.y > 0) {\n changed.y *= - 1;\n }\n\n }\n\n if (this._flagScale || this._flagLoaded || this._flagRepeat) {\n\n changed.width = 0;\n changed.height = 0;\n\n if (image) {\n\n styles.width = changed.width = image.width;\n styles.height = changed.height = image.height;\n\n // TODO: Hack / Bandaid\n switch (this._repeat) {\n case 'no-repeat':\n changed.width += 1;\n changed.height += 1;\n break;\n }\n\n if (this._scale instanceof Two.Vector) {\n changed.width *= this._scale.x;\n changed.height *= this._scale.y;\n } else {\n changed.width *= this._scale;\n changed.height *= this._scale;\n }\n }\n\n }\n\n if (this._flagScale || this._flagLoaded) {\n if (!this._renderer.image) {\n this._renderer.image = svg.createElement('image', styles);\n } else if (!_.isEmpty(styles)) {\n svg.setAttributes(this._renderer.image, styles);\n }\n }\n\n if (!this._renderer.elem) {\n\n changed.id = this.id;\n changed.patternUnits = 'userSpaceOnUse';\n this._renderer.elem = svg.createElement('pattern', changed);\n domElement.defs.appendChild(this._renderer.elem);\n\n } else if (!_.isEmpty(changed)) {\n\n svg.setAttributes(this._renderer.elem, changed);\n\n }\n\n if (this._renderer.elem && this._renderer.image && !this._renderer.appended) {\n this._renderer.elem.appendChild(this._renderer.image);\n this._renderer.appended = true;\n }\n\n return this.flagReset();\n\n }\n\n }\n\n };\n\n /**\n * @class\n */\n var Renderer = Two[Two.Types.svg] = function(params) {\n\n this.domElement = params.domElement || svg.createElement('svg');\n\n this.scene = new Two.Group();\n this.scene.parent = this;\n\n this.defs = svg.createElement('defs');\n this.domElement.appendChild(this.defs);\n this.domElement.defs = this.defs;\n this.domElement.style.overflow = 'hidden';\n\n };\n\n _.extend(Renderer, {\n\n Utils: svg\n\n });\n\n _.extend(Renderer.prototype, Two.Utils.Events, {\n\n constructor: Renderer,\n\n setSize: function(width, height) {\n\n this.width = width;\n this.height = height;\n\n svg.setAttributes(this.domElement, {\n width: width,\n height: height\n });\n\n return this.trigger(Two.Events.resize, width, height);\n\n },\n\n render: function() {\n\n svg.group.render.call(this.scene, this.domElement);\n\n return this;\n\n }\n\n });\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n /**\n * Constants\n */\n var mod = Two.Utils.mod, toFixed = Two.Utils.toFixed;\n var getRatio = Two.Utils.getRatio;\n var _ = Two.Utils;\n var emptyArray = [];\n var TWO_PI = Math.PI * 2,\n max = Math.max,\n min = Math.min,\n abs = Math.abs,\n sin = Math.sin,\n cos = Math.cos,\n acos = Math.acos,\n sqrt = Math.sqrt;\n\n // Returns true if this is a non-transforming matrix\n var isDefaultMatrix = function (m) {\n return (m[0] == 1 && m[3] == 0 && m[1] == 0 && m[4] == 1 && m[2] == 0 && m[5] == 0);\n };\n\n var canvas = {\n\n isHidden: /(none|transparent)/i,\n\n alignments: {\n left: 'start',\n middle: 'center',\n right: 'end'\n },\n\n shim: function(elem, name) {\n elem.tagName = elem.nodeName = name || 'canvas';\n elem.nodeType = 1;\n elem.getAttribute = function(prop) {\n return this[prop];\n };\n elem.setAttribute = function(prop, val) {\n this[prop] = val;\n return this;\n };\n return elem;\n },\n\n group: {\n\n renderChild: function(child) {\n canvas[child._renderer.type].render.call(child, this.ctx, true, this.clip);\n },\n\n render: function(ctx) {\n\n // TODO: Add a check here to only invoke _update if need be.\n this._update();\n\n var matrix = this._matrix.elements;\n var parent = this.parent;\n this._renderer.opacity = this._opacity * (parent && parent._renderer ? parent._renderer.opacity : 1);\n\n var defaultMatrix = isDefaultMatrix(matrix);\n\n var mask = this._mask;\n // var clip = this._clip;\n\n if (!this._renderer.context) {\n this._renderer.context = {};\n }\n\n this._renderer.context.ctx = ctx;\n // this._renderer.context.clip = clip;\n\n if (!defaultMatrix) {\n ctx.save();\n ctx.transform(matrix[0], matrix[3], matrix[1], matrix[4], matrix[2], matrix[5]);\n }\n\n if (mask) {\n canvas[mask._renderer.type].render.call(mask, ctx, true);\n }\n\n if (this.opacity > 0 && this.scale !== 0) {\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n canvas[child._renderer.type].render.call(child, ctx);\n }\n }\n\n if (!defaultMatrix) {\n ctx.restore();\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (clip) {\n // ctx.clip();\n // }\n\n return this.flagReset();\n\n }\n\n },\n\n path: {\n\n render: function(ctx, forced, parentClipped) {\n\n var matrix, stroke, linewidth, fill, opacity, visible, cap, join, miter,\n closed, commands, length, last, next, prev, a, b, c, d, ux, uy, vx, vy,\n ar, bl, br, cl, x, y, mask, clip, defaultMatrix, isOffset, dashes;\n\n // TODO: Add a check here to only invoke _update if need be.\n this._update();\n\n matrix = this._matrix.elements;\n stroke = this._stroke;\n linewidth = this._linewidth;\n fill = this._fill;\n opacity = this._opacity * this.parent._renderer.opacity;\n visible = this._visible;\n cap = this._cap;\n join = this._join;\n miter = this._miter;\n closed = this._closed;\n commands = this._renderer.vertices; // Commands\n length = commands.length;\n last = length - 1;\n defaultMatrix = isDefaultMatrix(matrix);\n dashes = this.dashes;\n\n // mask = this._mask;\n clip = this._clip;\n\n if (!forced && (!visible || clip)) {\n return this;\n }\n\n // Transform\n if (!defaultMatrix) {\n ctx.save();\n ctx.transform(matrix[0], matrix[3], matrix[1], matrix[4], matrix[2], matrix[5]);\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (mask) {\n // canvas[mask._renderer.type].render.call(mask, ctx, true);\n // }\n\n // Styles\n if (fill) {\n if (_.isString(fill)) {\n ctx.fillStyle = fill;\n } else {\n canvas[fill._renderer.type].render.call(fill, ctx);\n ctx.fillStyle = fill._renderer.effect;\n }\n }\n if (stroke) {\n if (_.isString(stroke)) {\n ctx.strokeStyle = stroke;\n } else {\n canvas[stroke._renderer.type].render.call(stroke, ctx);\n ctx.strokeStyle = stroke._renderer.effect;\n }\n }\n if (linewidth) {\n ctx.lineWidth = linewidth;\n }\n if (miter) {\n ctx.miterLimit = miter;\n }\n if (join) {\n ctx.lineJoin = join;\n }\n if (cap) {\n ctx.lineCap = cap;\n }\n if (_.isNumber(opacity)) {\n ctx.globalAlpha = opacity;\n }\n\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(dashes);\n }\n\n ctx.beginPath();\n\n for (var i = 0; i < commands.length; i++) {\n\n b = commands[i];\n\n x = toFixed(b.x);\n y = toFixed(b.y);\n\n switch (b.command) {\n\n case Two.Commands.close:\n ctx.closePath();\n break;\n\n case Two.Commands.arc:\n\n var rx = b.rx;\n var ry = b.ry;\n var xAxisRotation = b.xAxisRotation;\n var largeArcFlag = b.largeArcFlag;\n var sweepFlag = b.sweepFlag;\n\n prev = closed ? mod(i - 1, length) : max(i - 1, 0);\n a = commands[prev];\n\n var ax = toFixed(a.x);\n var ay = toFixed(a.y);\n\n canvas.renderSvgArcCommand(ctx, ax, ay, rx, ry, largeArcFlag, sweepFlag, xAxisRotation, x, y);\n break;\n\n case Two.Commands.curve:\n\n prev = closed ? mod(i - 1, length) : Math.max(i - 1, 0);\n next = closed ? mod(i + 1, length) : Math.min(i + 1, last);\n\n a = commands[prev];\n c = commands[next];\n ar = (a.controls && a.controls.right) || Two.Vector.zero;\n bl = (b.controls && b.controls.left) || Two.Vector.zero;\n\n if (a._relative) {\n vx = (ar.x + toFixed(a.x));\n vy = (ar.y + toFixed(a.y));\n } else {\n vx = toFixed(ar.x);\n vy = toFixed(ar.y);\n }\n\n if (b._relative) {\n ux = (bl.x + toFixed(b.x));\n uy = (bl.y + toFixed(b.y));\n } else {\n ux = toFixed(bl.x);\n uy = toFixed(bl.y);\n }\n\n ctx.bezierCurveTo(vx, vy, ux, uy, x, y);\n\n if (i >= last && closed) {\n\n c = d;\n\n br = (b.controls && b.controls.right) || Two.Vector.zero;\n cl = (c.controls && c.controls.left) || Two.Vector.zero;\n\n if (b._relative) {\n vx = (br.x + toFixed(b.x));\n vy = (br.y + toFixed(b.y));\n } else {\n vx = toFixed(br.x);\n vy = toFixed(br.y);\n }\n\n if (c._relative) {\n ux = (cl.x + toFixed(c.x));\n uy = (cl.y + toFixed(c.y));\n } else {\n ux = toFixed(cl.x);\n uy = toFixed(cl.y);\n }\n\n x = toFixed(c.x);\n y = toFixed(c.y);\n\n ctx.bezierCurveTo(vx, vy, ux, uy, x, y);\n\n }\n\n break;\n\n case Two.Commands.line:\n ctx.lineTo(x, y);\n break;\n\n case Two.Commands.move:\n d = b;\n ctx.moveTo(x, y);\n break;\n\n }\n }\n\n // Loose ends\n\n if (closed) {\n ctx.closePath();\n }\n\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(emptyArray);\n }\n\n if (!clip && !parentClipped) {\n if (!canvas.isHidden.test(fill)) {\n isOffset = fill._renderer && fill._renderer.offset\n if (isOffset) {\n ctx.save();\n ctx.translate(\n - fill._renderer.offset.x, - fill._renderer.offset.y);\n ctx.scale(fill._renderer.scale.x, fill._renderer.scale.y);\n }\n ctx.fill();\n if (isOffset) {\n ctx.restore();\n }\n }\n if (!canvas.isHidden.test(stroke)) {\n isOffset = stroke._renderer && stroke._renderer.offset;\n if (isOffset) {\n ctx.save();\n ctx.translate(\n - stroke._renderer.offset.x, - stroke._renderer.offset.y);\n ctx.scale(stroke._renderer.scale.x, stroke._renderer.scale.y);\n ctx.lineWidth = linewidth / stroke._renderer.scale.x;\n }\n ctx.stroke();\n if (isOffset) {\n ctx.restore();\n }\n }\n }\n\n if (!defaultMatrix) {\n ctx.restore();\n }\n\n if (clip && !parentClipped) {\n ctx.clip();\n }\n\n return this.flagReset();\n\n }\n\n },\n\n text: {\n\n render: function(ctx, forced, parentClipped) {\n\n // TODO: Add a check here to only invoke _update if need be.\n this._update();\n\n var matrix = this._matrix.elements;\n var stroke = this._stroke;\n var linewidth = this._linewidth;\n var fill = this._fill;\n var opacity = this._opacity * this.parent._renderer.opacity;\n var visible = this._visible;\n var defaultMatrix = isDefaultMatrix(matrix);\n var isOffset = fill._renderer && fill._renderer.offset\n && stroke._renderer && stroke._renderer.offset;\n var dashes = this.dashes;\n\n var a, b, c, d, e, sx, sy;\n\n // mask = this._mask;\n var clip = this._clip;\n\n if (!forced && (!visible || clip)) {\n return this;\n }\n\n // Transform\n if (!defaultMatrix) {\n ctx.save();\n ctx.transform(matrix[0], matrix[3], matrix[1], matrix[4], matrix[2], matrix[5]);\n }\n\n /**\n * Commented two-way functionality of clips / masks with groups and\n * polygons. Uncomment when this bug is fixed:\n * https://code.google.com/p/chromium/issues/detail?id=370951\n */\n\n // if (mask) {\n // canvas[mask._renderer.type].render.call(mask, ctx, true);\n // }\n\n if (!isOffset) {\n ctx.font = [this._style, this._weight, this._size + 'px/' +\n this._leading + 'px', this._family].join(' ');\n }\n\n ctx.textAlign = canvas.alignments[this._alignment] || this._alignment;\n ctx.textBaseline = this._baseline;\n\n // Styles\n if (fill) {\n if (_.isString(fill)) {\n ctx.fillStyle = fill;\n } else {\n canvas[fill._renderer.type].render.call(fill, ctx);\n ctx.fillStyle = fill._renderer.effect;\n }\n }\n if (stroke) {\n if (_.isString(stroke)) {\n ctx.strokeStyle = stroke;\n } else {\n canvas[stroke._renderer.type].render.call(stroke, ctx);\n ctx.strokeStyle = stroke._renderer.effect;\n }\n }\n if (linewidth) {\n ctx.lineWidth = linewidth;\n }\n if (_.isNumber(opacity)) {\n ctx.globalAlpha = opacity;\n }\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(dashes);\n }\n\n if (!clip && !parentClipped) {\n\n if (!canvas.isHidden.test(fill)) {\n\n if (fill._renderer && fill._renderer.offset) {\n\n sx = toFixed(fill._renderer.scale.x);\n sy = toFixed(fill._renderer.scale.y);\n\n ctx.save();\n ctx.translate( - toFixed(fill._renderer.offset.x),\n - toFixed(fill._renderer.offset.y));\n ctx.scale(sx, sy);\n\n a = this._size / fill._renderer.scale.y;\n b = this._leading / fill._renderer.scale.y;\n ctx.font = [this._style, this._weight, toFixed(a) + 'px/',\n toFixed(b) + 'px', this._family].join(' ');\n\n c = fill._renderer.offset.x / fill._renderer.scale.x;\n d = fill._renderer.offset.y / fill._renderer.scale.y;\n\n ctx.fillText(this.value, toFixed(c), toFixed(d));\n ctx.restore();\n\n } else {\n ctx.fillText(this.value, 0, 0);\n }\n\n }\n\n if (!canvas.isHidden.test(stroke)) {\n\n if (stroke._renderer && stroke._renderer.offset) {\n\n sx = toFixed(stroke._renderer.scale.x);\n sy = toFixed(stroke._renderer.scale.y);\n\n ctx.save();\n ctx.translate(- toFixed(stroke._renderer.offset.x),\n - toFixed(stroke._renderer.offset.y));\n ctx.scale(sx, sy);\n\n a = this._size / stroke._renderer.scale.y;\n b = this._leading / stroke._renderer.scale.y;\n ctx.font = [this._style, this._weight, toFixed(a) + 'px/',\n toFixed(b) + 'px', this._family].join(' ');\n\n c = stroke._renderer.offset.x / stroke._renderer.scale.x;\n d = stroke._renderer.offset.y / stroke._renderer.scale.y;\n e = linewidth / stroke._renderer.scale.x;\n\n ctx.lineWidth = toFixed(e);\n ctx.strokeText(this.value, toFixed(c), toFixed(d));\n ctx.restore();\n\n } else {\n ctx.strokeText(this.value, 0, 0);\n }\n }\n }\n\n if (!defaultMatrix) {\n ctx.restore();\n }\n\n // TODO: Test for text\n if (clip && !parentClipped) {\n ctx.clip();\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'linear-gradient': {\n\n render: function(ctx) {\n\n this._update();\n\n if (!this._renderer.effect || this._flagEndPoints || this._flagStops) {\n\n this._renderer.effect = ctx.createLinearGradient(\n this.left._x, this.left._y,\n this.right._x, this.right._y\n );\n\n for (var i = 0; i < this.stops.length; i++) {\n var stop = this.stops[i];\n this._renderer.effect.addColorStop(stop._offset, stop._color);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'radial-gradient': {\n\n render: function(ctx) {\n\n this._update();\n\n if (!this._renderer.effect || this._flagCenter || this._flagFocal\n || this._flagRadius || this._flagStops) {\n\n this._renderer.effect = ctx.createRadialGradient(\n this.center._x, this.center._y, 0,\n this.focal._x, this.focal._y, this._radius\n );\n\n for (var i = 0; i < this.stops.length; i++) {\n var stop = this.stops[i];\n this._renderer.effect.addColorStop(stop._offset, stop._color);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n texture: {\n\n render: function(ctx) {\n\n this._update();\n\n var image = this.image;\n var repeat;\n\n if (!this._renderer.effect || ((this._flagLoaded || this._flagImage || this._flagVideo || this._flagRepeat) && this.loaded)) {\n this._renderer.effect = ctx.createPattern(this.image, this._repeat);\n }\n\n if (this._flagOffset || this._flagLoaded || this._flagScale) {\n\n if (!(this._renderer.offset instanceof Two.Vector)) {\n this._renderer.offset = new Two.Vector();\n }\n\n this._renderer.offset.x = - this._offset.x;\n this._renderer.offset.y = - this._offset.y;\n\n if (image) {\n\n this._renderer.offset.x += image.width / 2;\n this._renderer.offset.y += image.height / 2;\n\n if (this._scale instanceof Two.Vector) {\n this._renderer.offset.x *= this._scale.x;\n this._renderer.offset.y *= this._scale.y;\n } else {\n this._renderer.offset.x *= this._scale;\n this._renderer.offset.y *= this._scale;\n }\n }\n\n }\n\n if (this._flagScale || this._flagLoaded) {\n\n if (!(this._renderer.scale instanceof Two.Vector)) {\n this._renderer.scale = new Two.Vector();\n }\n\n if (this._scale instanceof Two.Vector) {\n this._renderer.scale.copy(this._scale);\n } else {\n this._renderer.scale.set(this._scale, this._scale);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n renderSvgArcCommand: function(ctx, ax, ay, rx, ry, largeArcFlag, sweepFlag, xAxisRotation, x, y) {\n\n xAxisRotation = xAxisRotation * Math.PI / 180;\n\n // Ensure radii are positive\n rx = abs(rx);\n ry = abs(ry);\n\n // Compute (x1′, y1′)\n var dx2 = (ax - x) / 2.0;\n var dy2 = (ay - y) / 2.0;\n var x1p = cos(xAxisRotation) * dx2 + sin(xAxisRotation) * dy2;\n var y1p = - sin(xAxisRotation) * dx2 + cos(xAxisRotation) * dy2;\n\n // Compute (cx′, cy′)\n var rxs = rx * rx;\n var rys = ry * ry;\n var x1ps = x1p * x1p;\n var y1ps = y1p * y1p;\n\n // Ensure radii are large enough\n var cr = x1ps / rxs + y1ps / rys;\n\n if (cr > 1) {\n\n // scale up rx,ry equally so cr == 1\n var s = sqrt(cr);\n rx = s * rx;\n ry = s * ry;\n rxs = rx * rx;\n rys = ry * ry;\n\n }\n\n var dq = (rxs * y1ps + rys * x1ps);\n var pq = (rxs * rys - dq) / dq;\n var q = sqrt(max(0, pq));\n if (largeArcFlag === sweepFlag) q = - q;\n var cxp = q * rx * y1p / ry;\n var cyp = - q * ry * x1p / rx;\n\n // Step 3: Compute (cx, cy) from (cx′, cy′)\n var cx = cos(xAxisRotation) * cxp\n - sin(xAxisRotation) * cyp + (ax + x) / 2;\n var cy = sin(xAxisRotation) * cxp\n + cos(xAxisRotation) * cyp + (ay + y) / 2;\n\n // Step 4: Compute θ1 and Δθ\n var startAngle = svgAngle(1, 0, (x1p - cxp) / rx, (y1p - cyp) / ry);\n var delta = svgAngle((x1p - cxp) / rx, (y1p - cyp) / ry,\n (- x1p - cxp) / rx, (- y1p - cyp) / ry) % TWO_PI;\n\n var endAngle = startAngle + delta;\n\n var clockwise = sweepFlag === 0;\n\n renderArcEstimate(ctx, cx, cy, rx, ry, startAngle, endAngle,\n clockwise, xAxisRotation);\n\n }\n\n };\n\n var Renderer = Two[Two.Types.canvas] = function(params) {\n // Smoothing property. Defaults to true\n // Set it to false when working with pixel art.\n // false can lead to better performance, since it would use a cheaper interpolation algorithm.\n // It might not make a big difference on GPU backed canvases.\n var smoothing = (params.smoothing !== false);\n this.domElement = params.domElement || document.createElement('canvas');\n this.ctx = this.domElement.getContext('2d');\n this.overdraw = params.overdraw || false;\n\n if (!_.isUndefined(this.ctx.imageSmoothingEnabled)) {\n this.ctx.imageSmoothingEnabled = smoothing;\n }\n\n // Everything drawn on the canvas needs to be added to the scene.\n this.scene = new Two.Group();\n this.scene.parent = this;\n };\n\n\n _.extend(Renderer, {\n\n Utils: canvas\n\n });\n\n _.extend(Renderer.prototype, Two.Utils.Events, {\n\n constructor: Renderer,\n\n setSize: function(width, height, ratio) {\n\n this.width = width;\n this.height = height;\n\n this.ratio = _.isUndefined(ratio) ? getRatio(this.ctx) : ratio;\n\n this.domElement.width = width * this.ratio;\n this.domElement.height = height * this.ratio;\n\n if (this.domElement.style) {\n _.extend(this.domElement.style, {\n width: width + 'px',\n height: height + 'px'\n });\n }\n\n return this.trigger(Two.Events.resize, width, height, ratio);\n\n },\n\n render: function() {\n\n var isOne = this.ratio === 1;\n\n if (!isOne) {\n this.ctx.save();\n this.ctx.scale(this.ratio, this.ratio);\n }\n\n if (!this.overdraw) {\n this.ctx.clearRect(0, 0, this.width, this.height);\n }\n\n canvas.group.render.call(this.scene, this.ctx);\n\n if (!isOne) {\n this.ctx.restore();\n }\n\n return this;\n\n }\n\n });\n\n function renderArcEstimate(ctx, ox, oy, rx, ry, startAngle, endAngle, clockwise, xAxisRotation) {\n\n var epsilon = Two.Utils.Curve.Tolerance.epsilon;\n var deltaAngle = endAngle - startAngle;\n var samePoints = Math.abs(deltaAngle) < epsilon;\n\n // ensures that deltaAngle is 0 .. 2 PI\n deltaAngle = mod(deltaAngle, TWO_PI);\n\n if (deltaAngle < epsilon) {\n\n if (samePoints) {\n\n deltaAngle = 0;\n\n } else {\n\n deltaAngle = TWO_PI;\n\n }\n\n }\n\n if (clockwise === true && ! samePoints) {\n\n if (deltaAngle === TWO_PI) {\n\n deltaAngle = - TWO_PI;\n\n } else {\n\n deltaAngle = deltaAngle - TWO_PI;\n\n }\n\n }\n\n for (var i = 0; i < Two.Resolution; i++) {\n\n var t = i / (Two.Resolution - 1);\n\n var angle = startAngle + t * deltaAngle;\n var x = ox + rx * Math.cos(angle);\n var y = oy + ry * Math.sin(angle);\n\n if (xAxisRotation !== 0) {\n\n var cos = Math.cos(xAxisRotation);\n var sin = Math.sin(xAxisRotation);\n\n var tx = x - ox;\n var ty = y - oy;\n\n // Rotate the point about the center of the ellipse.\n x = tx * cos - ty * sin + ox;\n y = tx * sin + ty * cos + oy;\n\n }\n\n ctx.lineTo(x, y);\n\n }\n\n }\n\n function svgAngle(ux, uy, vx, vy) {\n\n var dot = ux * vx + uy * vy;\n var len = sqrt(ux * ux + uy * uy) * sqrt(vx * vx + vy * vy);\n // floating point precision, slightly over values appear\n var ang = acos(max(-1, min(1, dot / len)));\n if ((ux * vy - uy * vx) < 0) {\n ang = - ang;\n }\n\n return ang;\n\n }\n\n function resetTransform(ctx) {\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n /**\n * Constants\n */\n\n var root = Two.root,\n multiplyMatrix = Two.Matrix.Multiply,\n mod = Two.Utils.mod,\n identity = [1, 0, 0, 0, 1, 0, 0, 0, 1],\n transformation = new Two.Array(9),\n getRatio = Two.Utils.getRatio,\n getComputedMatrix = Two.Utils.getComputedMatrix,\n toFixed = Two.Utils.toFixed,\n CanvasUtils = Two[Two.Types.canvas].Utils,\n _ = Two.Utils;\n\n var webgl = {\n\n isHidden: /(none|transparent)/i,\n\n canvas: (root.document ? root.document.createElement('canvas') : { getContext: _.identity }),\n\n alignments: {\n left: 'start',\n middle: 'center',\n right: 'end'\n },\n\n matrix: new Two.Matrix(),\n\n uv: new Two.Array([\n 0, 0,\n 1, 0,\n 0, 1,\n 0, 1,\n 1, 0,\n 1, 1\n ]),\n\n group: {\n\n removeChild: function(child, gl) {\n if (child.children) {\n for (var i = 0; i < child.children.length; i++) {\n webgl.group.removeChild(child.children[i], gl);\n }\n return;\n }\n // Deallocate texture to free up gl memory.\n gl.deleteTexture(child._renderer.texture);\n delete child._renderer.texture;\n },\n\n renderChild: function(child) {\n webgl[child._renderer.type].render.call(child, this.gl, this.program);\n },\n\n render: function(gl, program) {\n\n this._update();\n\n var parent = this.parent;\n var flagParentMatrix = (parent._matrix && parent._matrix.manual) || parent._flagMatrix;\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n\n if (flagParentMatrix || flagMatrix) {\n\n if (!this._renderer.matrix) {\n this._renderer.matrix = new Two.Array(9);\n }\n\n // Reduce amount of object / array creation / deletion\n this._matrix.toArray(true, transformation);\n\n multiplyMatrix(transformation, parent._renderer.matrix, this._renderer.matrix);\n this._renderer.scale = this._scale * parent._renderer.scale;\n\n if (flagParentMatrix) {\n this._flagMatrix = true;\n }\n\n }\n\n if (this._mask) {\n\n gl.enable(gl.STENCIL_TEST);\n gl.stencilFunc(gl.ALWAYS, 1, 1);\n\n gl.colorMask(false, false, false, true);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.INCR);\n\n webgl[this._mask._renderer.type].render.call(this._mask, gl, program, this);\n\n gl.colorMask(true, true, true, true);\n gl.stencilFunc(gl.NOTEQUAL, 0, 1);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n\n }\n\n this._flagOpacity = parent._flagOpacity || this._flagOpacity;\n\n this._renderer.opacity = this._opacity\n * (parent && parent._renderer ? parent._renderer.opacity : 1);\n\n if (this._flagSubtractions) {\n for (var i = 0; i < this.subtractions.length; i++) {\n webgl.group.removeChild(this.subtractions[i], gl);\n }\n }\n\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n webgl[child._renderer.type].render.call(child, gl, program);\n }\n\n this.children.forEach(webgl.group.renderChild, {\n gl: gl,\n program: program\n });\n\n if (this._mask) {\n\n gl.colorMask(false, false, false, false);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.DECR);\n\n webgl[this._mask._renderer.type].render.call(this._mask, gl, program, this);\n\n gl.colorMask(true, true, true, true);\n gl.stencilFunc(gl.NOTEQUAL, 0, 1);\n gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n\n gl.disable(gl.STENCIL_TEST);\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n path: {\n\n updateCanvas: function(elem) {\n\n var next, prev, a, c, ux, uy, vx, vy, ar, bl, br, cl, x, y;\n var isOffset;\n\n var commands = elem._renderer.vertices;\n var canvas = this.canvas;\n var ctx = this.ctx;\n\n // Styles\n var scale = elem._renderer.scale;\n var stroke = elem._stroke;\n var linewidth = elem._linewidth;\n var fill = elem._fill;\n var opacity = elem._renderer.opacity || elem._opacity;\n var cap = elem._cap;\n var join = elem._join;\n var miter = elem._miter;\n var closed = elem._closed;\n var dashes = elem.dashes;\n var length = commands.length;\n var last = length - 1;\n\n canvas.width = Math.max(Math.ceil(elem._renderer.rect.width * scale), 1);\n canvas.height = Math.max(Math.ceil(elem._renderer.rect.height * scale), 1);\n\n var centroid = elem._renderer.rect.centroid;\n var cx = centroid.x;\n var cy = centroid.y;\n\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n if (fill) {\n if (_.isString(fill)) {\n ctx.fillStyle = fill;\n } else {\n webgl[fill._renderer.type].render.call(fill, ctx, elem);\n ctx.fillStyle = fill._renderer.effect;\n }\n }\n if (stroke) {\n if (_.isString(stroke)) {\n ctx.strokeStyle = stroke;\n } else {\n webgl[stroke._renderer.type].render.call(stroke, ctx, elem);\n ctx.strokeStyle = stroke._renderer.effect;\n }\n }\n if (linewidth) {\n ctx.lineWidth = linewidth;\n }\n if (miter) {\n ctx.miterLimit = miter;\n }\n if (join) {\n ctx.lineJoin = join;\n }\n if (cap) {\n ctx.lineCap = cap;\n }\n if (_.isNumber(opacity)) {\n ctx.globalAlpha = opacity;\n }\n\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(dashes);\n }\n\n var d;\n ctx.save();\n ctx.scale(scale, scale);\n ctx.translate(cx, cy);\n\n ctx.beginPath();\n for (var i = 0; i < commands.length; i++) {\n\n var b = commands[i];\n\n x = toFixed(b.x);\n y = toFixed(b.y);\n\n switch (b.command) {\n\n case Two.Commands.close:\n ctx.closePath();\n break;\n\n case Two.Commands.arc:\n\n var rx = b.rx;\n var ry = b.ry;\n var xAxisRotation = b.xAxisRotation;\n var largeArcFlag = b.largeArcFlag;\n var sweepFlag = b.sweepFlag;\n\n prev = closed ? mod(i - 1, length) : max(i - 1, 0);\n a = commands[prev];\n\n var ax = toFixed(a.x);\n var ay = toFixed(a.y);\n\n CanvasUtils.renderSvgArcCommand(ctx, ax, ay, rx, ry, largeArcFlag, sweepFlag, xAxisRotation, x, y);\n break;\n\n case Two.Commands.curve:\n\n prev = closed ? mod(i - 1, length) : Math.max(i - 1, 0);\n next = closed ? mod(i + 1, length) : Math.min(i + 1, last);\n\n a = commands[prev];\n c = commands[next];\n ar = (a.controls && a.controls.right) || Two.Vector.zero;\n bl = (b.controls && b.controls.left) || Two.Vector.zero;\n\n if (a._relative) {\n vx = toFixed((ar.x + a.x));\n vy = toFixed((ar.y + a.y));\n } else {\n vx = toFixed(ar.x);\n vy = toFixed(ar.y);\n }\n\n if (b._relative) {\n ux = toFixed((bl.x + b.x));\n uy = toFixed((bl.y + b.y));\n } else {\n ux = toFixed(bl.x);\n uy = toFixed(bl.y);\n }\n\n ctx.bezierCurveTo(vx, vy, ux, uy, x, y);\n\n if (i >= last && closed) {\n\n c = d;\n\n br = (b.controls && b.controls.right) || Two.Vector.zero;\n cl = (c.controls && c.controls.left) || Two.Vector.zero;\n\n if (b._relative) {\n vx = toFixed((br.x + b.x));\n vy = toFixed((br.y + b.y));\n } else {\n vx = toFixed(br.x);\n vy = toFixed(br.y);\n }\n\n if (c._relative) {\n ux = toFixed((cl.x + c.x));\n uy = toFixed((cl.y + c.y));\n } else {\n ux = toFixed(cl.x);\n uy = toFixed(cl.y);\n }\n\n x = toFixed(c.x);\n y = toFixed(c.y);\n\n ctx.bezierCurveTo(vx, vy, ux, uy, x, y);\n\n }\n\n break;\n\n case Two.Commands.line:\n ctx.lineTo(x, y);\n break;\n\n case Two.Commands.move:\n d = b;\n ctx.moveTo(x, y);\n break;\n\n }\n\n }\n\n // Loose ends\n\n if (closed) {\n ctx.closePath();\n }\n\n if (!webgl.isHidden.test(fill)) {\n isOffset = fill._renderer && fill._renderer.offset\n if (isOffset) {\n ctx.save();\n ctx.translate(\n - fill._renderer.offset.x, - fill._renderer.offset.y);\n ctx.scale(fill._renderer.scale.x, fill._renderer.scale.y);\n }\n ctx.fill();\n if (isOffset) {\n ctx.restore();\n }\n }\n\n if (!webgl.isHidden.test(stroke)) {\n isOffset = stroke._renderer && stroke._renderer.offset;\n if (isOffset) {\n ctx.save();\n ctx.translate(\n - stroke._renderer.offset.x, - stroke._renderer.offset.y);\n ctx.scale(stroke._renderer.scale.x, stroke._renderer.scale.y);\n ctx.lineWidth = linewidth / stroke._renderer.scale.x;\n }\n ctx.stroke();\n if (isOffset) {\n ctx.restore();\n }\n }\n\n ctx.restore();\n\n },\n\n /**\n * Returns the rect of a set of verts. Typically takes vertices that are\n * \"centered\" around 0 and returns them to be anchored upper-left.\n */\n getBoundingClientRect: function(vertices, border, rect) {\n\n var left = Infinity, right = -Infinity,\n top = Infinity, bottom = -Infinity,\n width, height;\n\n vertices.forEach(function(v) {\n\n var x = v.x, y = v.y, controls = v.controls;\n var a, b, c, d, cl, cr;\n\n top = Math.min(y, top);\n left = Math.min(x, left);\n right = Math.max(x, right);\n bottom = Math.max(y, bottom);\n\n if (!v.controls) {\n return;\n }\n\n cl = controls.left;\n cr = controls.right;\n\n if (!cl || !cr) {\n return;\n }\n\n a = v._relative ? cl.x + x : cl.x;\n b = v._relative ? cl.y + y : cl.y;\n c = v._relative ? cr.x + x : cr.x;\n d = v._relative ? cr.y + y : cr.y;\n\n if (!a || !b || !c || !d) {\n return;\n }\n\n top = Math.min(b, d, top);\n left = Math.min(a, c, left);\n right = Math.max(a, c, right);\n bottom = Math.max(b, d, bottom);\n\n });\n\n // Expand borders\n\n if (_.isNumber(border)) {\n top -= border;\n left -= border;\n right += border;\n bottom += border;\n }\n\n width = right - left;\n height = bottom - top;\n\n rect.top = top;\n rect.left = left;\n rect.right = right;\n rect.bottom = bottom;\n rect.width = width;\n rect.height = height;\n\n if (!rect.centroid) {\n rect.centroid = {};\n }\n\n rect.centroid.x = - left;\n rect.centroid.y = - top;\n\n },\n\n render: function(gl, program, forcedParent) {\n\n if (!this._visible || !this._opacity) {\n return this;\n }\n\n this._update();\n\n // Calculate what changed\n\n var parent = this.parent;\n var flagParentMatrix = parent._matrix.manual || parent._flagMatrix;\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n var flagTexture = this._flagVertices || this._flagFill\n || (this._fill instanceof Two.LinearGradient && (this._fill._flagSpread || this._fill._flagStops || this._fill._flagEndPoints))\n || (this._fill instanceof Two.RadialGradient && (this._fill._flagSpread || this._fill._flagStops || this._fill._flagRadius || this._fill._flagCenter || this._fill._flagFocal))\n || (this._fill instanceof Two.Texture && (this._fill._flagLoaded && this._fill.loaded || this._fill._flagImage || this._fill._flagVideo || this._fill._flagRepeat || this._fill._flagOffset || this._fill._flagScale))\n || (this._stroke instanceof Two.LinearGradient && (this._stroke._flagSpread || this._stroke._flagStops || this._stroke._flagEndPoints))\n || (this._stroke instanceof Two.RadialGradient && (this._stroke._flagSpread || this._stroke._flagStops || this._stroke._flagRadius || this._stroke._flagCenter || this._stroke._flagFocal))\n || (this._stroke instanceof Two.Texture && (this._stroke._flagLoaded && this._stroke.loaded || this._stroke._flagImage || this._stroke._flagVideo || this._stroke._flagRepeat || this._stroke._flagOffset || this._fill._flagScale))\n || this._flagStroke || this._flagLinewidth || this._flagOpacity\n || parent._flagOpacity || this._flagVisible || this._flagCap\n || this._flagJoin || this._flagMiter || this._flagScale\n || (this.dashes && this.dashes.length > 0)\n || !this._renderer.texture;\n\n if (flagParentMatrix || flagMatrix) {\n\n if (!this._renderer.matrix) {\n this._renderer.matrix = new Two.Array(9);\n }\n\n // Reduce amount of object / array creation / deletion\n\n this._matrix.toArray(true, transformation);\n\n multiplyMatrix(transformation, parent._renderer.matrix, this._renderer.matrix);\n this._renderer.scale = this._scale * parent._renderer.scale;\n\n }\n\n if (flagTexture) {\n\n if (!this._renderer.rect) {\n this._renderer.rect = {};\n }\n\n if (!this._renderer.triangles) {\n this._renderer.triangles = new Two.Array(12);\n }\n\n this._renderer.opacity = this._opacity * parent._renderer.opacity;\n\n webgl.path.getBoundingClientRect(this._renderer.vertices, this._linewidth, this._renderer.rect);\n webgl.getTriangles(this._renderer.rect, this._renderer.triangles);\n\n webgl.updateBuffer.call(webgl, gl, this, program);\n webgl.updateTexture.call(webgl, gl, this);\n\n } else {\n\n // We still need to update child Two elements on the fill and\n // stroke properties.\n if (!_.isString(this._fill)) {\n this._fill._update();\n }\n if (!_.isString(this._stroke)) {\n this._stroke._update();\n }\n\n }\n\n // if (this._mask) {\n // webgl[this._mask._renderer.type].render.call(mask, gl, program, this);\n // }\n\n if (this._clip && !forcedParent) {\n return;\n }\n\n // Draw Texture\n\n gl.bindBuffer(gl.ARRAY_BUFFER, this._renderer.textureCoordsBuffer);\n\n gl.vertexAttribPointer(program.textureCoords, 2, gl.FLOAT, false, 0, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, this._renderer.texture);\n\n\n // Draw Rect\n\n gl.uniformMatrix3fv(program.matrix, false, this._renderer.matrix);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, this._renderer.buffer);\n\n gl.vertexAttribPointer(program.position, 2, gl.FLOAT, false, 0, 0);\n\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n return this.flagReset();\n\n }\n\n },\n\n text: {\n\n updateCanvas: function(elem) {\n\n var canvas = this.canvas;\n var ctx = this.ctx;\n\n // Styles\n var scale = elem._renderer.scale;\n var stroke = elem._stroke;\n var linewidth = elem._linewidth * scale;\n var fill = elem._fill;\n var opacity = elem._renderer.opacity || elem._opacity;\n var dashes = elem.dashes;\n\n canvas.width = Math.max(Math.ceil(elem._renderer.rect.width * scale), 1);\n canvas.height = Math.max(Math.ceil(elem._renderer.rect.height * scale), 1);\n\n var centroid = elem._renderer.rect.centroid;\n var cx = centroid.x;\n var cy = centroid.y;\n\n var a, b, c, d, e, sx, sy;\n var isOffset = fill._renderer && fill._renderer.offset\n && stroke._renderer && stroke._renderer.offset;\n\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n if (!isOffset) {\n ctx.font = [elem._style, elem._weight, elem._size + 'px/' +\n elem._leading + 'px', elem._family].join(' ');\n }\n\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n // Styles\n if (fill) {\n if (_.isString(fill)) {\n ctx.fillStyle = fill;\n } else {\n webgl[fill._renderer.type].render.call(fill, ctx, elem);\n ctx.fillStyle = fill._renderer.effect;\n }\n }\n if (stroke) {\n if (_.isString(stroke)) {\n ctx.strokeStyle = stroke;\n } else {\n webgl[stroke._renderer.type].render.call(stroke, ctx, elem);\n ctx.strokeStyle = stroke._renderer.effect;\n }\n }\n if (linewidth) {\n ctx.lineWidth = linewidth;\n }\n if (_.isNumber(opacity)) {\n ctx.globalAlpha = opacity;\n }\n if (dashes && dashes.length > 0) {\n ctx.setLineDash(dashes);\n }\n\n ctx.save();\n ctx.scale(scale, scale);\n ctx.translate(cx, cy);\n\n if (!webgl.isHidden.test(fill)) {\n\n if (fill._renderer && fill._renderer.offset) {\n\n sx = toFixed(fill._renderer.scale.x);\n sy = toFixed(fill._renderer.scale.y);\n\n ctx.save();\n ctx.translate( - toFixed(fill._renderer.offset.x),\n - toFixed(fill._renderer.offset.y));\n ctx.scale(sx, sy);\n\n a = elem._size / fill._renderer.scale.y;\n b = elem._leading / fill._renderer.scale.y;\n ctx.font = [elem._style, elem._weight, toFixed(a) + 'px/',\n toFixed(b) + 'px', elem._family].join(' ');\n\n c = fill._renderer.offset.x / fill._renderer.scale.x;\n d = fill._renderer.offset.y / fill._renderer.scale.y;\n\n ctx.fillText(elem.value, toFixed(c), toFixed(d));\n ctx.restore();\n\n } else {\n ctx.fillText(elem.value, 0, 0);\n }\n\n }\n\n if (!webgl.isHidden.test(stroke)) {\n\n if (stroke._renderer && stroke._renderer.offset) {\n\n sx = toFixed(stroke._renderer.scale.x);\n sy = toFixed(stroke._renderer.scale.y);\n\n ctx.save();\n ctx.translate(- toFixed(stroke._renderer.offset.x),\n - toFixed(stroke._renderer.offset.y));\n ctx.scale(sx, sy);\n\n a = elem._size / stroke._renderer.scale.y;\n b = elem._leading / stroke._renderer.scale.y;\n ctx.font = [elem._style, elem._weight, toFixed(a) + 'px/',\n toFixed(b) + 'px', elem._family].join(' ');\n\n c = stroke._renderer.offset.x / stroke._renderer.scale.x;\n d = stroke._renderer.offset.y / stroke._renderer.scale.y;\n e = linewidth / stroke._renderer.scale.x;\n\n ctx.lineWidth = toFixed(e);\n ctx.strokeText(elem.value, toFixed(c), toFixed(d));\n ctx.restore();\n\n } else {\n ctx.strokeText(elem.value, 0, 0);\n }\n\n }\n\n ctx.restore();\n\n },\n\n getBoundingClientRect: function(elem, rect) {\n\n var ctx = webgl.ctx;\n\n ctx.font = [elem._style, elem._weight, elem._size + 'px/' +\n elem._leading + 'px', elem._family].join(' ');\n\n ctx.textAlign = 'center';\n ctx.textBaseline = elem._baseline;\n\n // TODO: Estimate this better\n var width = ctx.measureText(elem._value).width;\n var height = Math.max(elem._size || elem._leading);\n\n if (this._linewidth && !webgl.isHidden.test(this._stroke)) {\n // width += this._linewidth; // TODO: Not sure if the `measure` calcs this.\n height += this._linewidth;\n }\n\n var w = width / 2;\n var h = height / 2;\n\n switch (webgl.alignments[elem._alignment] || elem._alignment) {\n\n case webgl.alignments.left:\n rect.left = 0;\n rect.right = width;\n break;\n case webgl.alignments.right:\n rect.left = - width;\n rect.right = 0;\n break;\n default:\n rect.left = - w;\n rect.right = w;\n }\n\n // TODO: Gradients aren't inherited...\n switch (elem._baseline) {\n case 'bottom':\n rect.top = - height;\n rect.bottom = 0;\n break;\n case 'top':\n rect.top = 0;\n rect.bottom = height;\n break;\n default:\n rect.top = - h;\n rect.bottom = h;\n }\n\n rect.width = width;\n rect.height = height;\n\n if (!rect.centroid) {\n rect.centroid = {};\n }\n\n // TODO:\n rect.centroid.x = w;\n rect.centroid.y = h;\n\n },\n\n render: function(gl, program, forcedParent) {\n\n if (!this._visible || !this._opacity) {\n return this;\n }\n\n this._update();\n\n // Calculate what changed\n\n var parent = this.parent;\n var flagParentMatrix = parent._matrix.manual || parent._flagMatrix;\n var flagMatrix = this._matrix.manual || this._flagMatrix;\n var flagTexture = this._flagVertices || this._flagFill\n || (this._fill instanceof Two.LinearGradient && (this._fill._flagSpread || this._fill._flagStops || this._fill._flagEndPoints))\n || (this._fill instanceof Two.RadialGradient && (this._fill._flagSpread || this._fill._flagStops || this._fill._flagRadius || this._fill._flagCenter || this._fill._flagFocal))\n || (this._fill instanceof Two.Texture && (this._fill._flagLoaded && this._fill.loaded || this._fill._flagImage || this._fill._flagVideo || this._fill._flagRepeat || this._fill._flagOffset || this._fill._flagScale))\n || (this._stroke instanceof Two.LinearGradient && (this._stroke._flagSpread || this._stroke._flagStops || this._stroke._flagEndPoints))\n || (this._stroke instanceof Two.RadialGradient && (this._stroke._flagSpread || this._stroke._flagStops || this._stroke._flagRadius || this._stroke._flagCenter || this._stroke._flagFocal))\n || (this._stroke instanceof Two.Texture && (this._stroke._flagLoaded && this._stroke.loaded || this._stroke._flagImage || this._stroke._flagVideo || this._stroke._flagRepeat || this._stroke._flagOffset || this._fill._flagScale))\n || this._flagStroke || this._flagLinewidth || this._flagOpacity\n || parent._flagOpacity || this._flagVisible || this._flagScale\n || this._flagValue || this._flagFamily || this._flagSize\n || this._flagLeading || this._flagAlignment || this._flagBaseline\n || this._flagStyle || this._flagWeight || this._flagDecoration\n || (this.dashes && this.dashes.length > 0)\n || !this._renderer.texture;\n\n if (flagParentMatrix || flagMatrix) {\n\n if (!this._renderer.matrix) {\n this._renderer.matrix = new Two.Array(9);\n }\n\n // Reduce amount of object / array creation / deletion\n\n this._matrix.toArray(true, transformation);\n\n multiplyMatrix(transformation, parent._renderer.matrix, this._renderer.matrix);\n this._renderer.scale = this._scale * parent._renderer.scale;\n\n }\n\n if (flagTexture) {\n\n if (!this._renderer.rect) {\n this._renderer.rect = {};\n }\n\n if (!this._renderer.triangles) {\n this._renderer.triangles = new Two.Array(12);\n }\n\n this._renderer.opacity = this._opacity * parent._renderer.opacity;\n\n webgl.text.getBoundingClientRect(this, this._renderer.rect);\n webgl.getTriangles(this._renderer.rect, this._renderer.triangles);\n\n webgl.updateBuffer.call(webgl, gl, this, program);\n webgl.updateTexture.call(webgl, gl, this);\n\n } else {\n\n // We still need to update child Two elements on the fill and\n // stroke properties.\n if (!_.isString(this._fill)) {\n this._fill._update();\n }\n if (!_.isString(this._stroke)) {\n this._stroke._update();\n }\n\n }\n\n // if (this._mask) {\n // webgl[this._mask._renderer.type].render.call(mask, gl, program, this);\n // }\n\n if (this._clip && !forcedParent) {\n return;\n }\n\n // Draw Texture\n\n gl.bindBuffer(gl.ARRAY_BUFFER, this._renderer.textureCoordsBuffer);\n\n gl.vertexAttribPointer(program.textureCoords, 2, gl.FLOAT, false, 0, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, this._renderer.texture);\n\n\n // Draw Rect\n\n gl.uniformMatrix3fv(program.matrix, false, this._renderer.matrix);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, this._renderer.buffer);\n\n gl.vertexAttribPointer(program.position, 2, gl.FLOAT, false, 0, 0);\n\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n return this.flagReset();\n\n }\n\n },\n\n 'linear-gradient': {\n\n render: function(ctx, elem) {\n\n if (!ctx.canvas.getContext('2d')) {\n return;\n }\n\n this._update();\n\n if (!this._renderer.effect || this._flagEndPoints || this._flagStops) {\n\n this._renderer.effect = ctx.createLinearGradient(\n this.left._x, this.left._y,\n this.right._x, this.right._y\n );\n\n for (var i = 0; i < this.stops.length; i++) {\n var stop = this.stops[i];\n this._renderer.effect.addColorStop(stop._offset, stop._color);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n 'radial-gradient': {\n\n render: function(ctx, elem) {\n\n if (!ctx.canvas.getContext('2d')) {\n return;\n }\n\n this._update();\n\n if (!this._renderer.effect || this._flagCenter || this._flagFocal\n || this._flagRadius || this._flagStops) {\n\n this._renderer.effect = ctx.createRadialGradient(\n this.center._x, this.center._y, 0,\n this.focal._x, this.focal._y, this._radius\n );\n\n for (var i = 0; i < this.stops.length; i++) {\n var stop = this.stops[i];\n this._renderer.effect.addColorStop(stop._offset, stop._color);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n texture: {\n\n render: function(ctx, elem) {\n\n if (!ctx.canvas.getContext('2d')) {\n return;\n }\n\n this._update();\n\n var image = this.image;\n var repeat;\n\n if (((this._flagLoaded || this._flagImage || this._flagVideo || this._flagRepeat) && this.loaded)) {\n this._renderer.effect = ctx.createPattern(image, this._repeat);\n } else if (!this._renderer.effect) {\n return this.flagReset();\n }\n\n if (this._flagOffset || this._flagLoaded || this._flagScale) {\n\n if (!(this._renderer.offset instanceof Two.Vector)) {\n this._renderer.offset = new Two.Vector();\n }\n\n this._renderer.offset.x = - this._offset.x;\n this._renderer.offset.y = - this._offset.y;\n\n if (image) {\n\n this._renderer.offset.x += image.width / 2;\n this._renderer.offset.y += image.height / 2;\n\n if (this._scale instanceof Two.Vector) {\n this._renderer.offset.x *= this._scale.x;\n this._renderer.offset.y *= this._scale.y;\n } else {\n this._renderer.offset.x *= this._scale;\n this._renderer.offset.y *= this._scale;\n }\n }\n\n }\n\n if (this._flagScale || this._flagLoaded) {\n\n if (!(this._renderer.scale instanceof Two.Vector)) {\n this._renderer.scale = new Two.Vector();\n }\n\n if (this._scale instanceof Two.Vector) {\n this._renderer.scale.copy(this._scale);\n } else {\n this._renderer.scale.set(this._scale, this._scale);\n }\n\n }\n\n return this.flagReset();\n\n }\n\n },\n\n getTriangles: function(rect, triangles) {\n\n var top = rect.top,\n left = rect.left,\n right = rect.right,\n bottom = rect.bottom;\n\n // First Triangle\n\n triangles[0] = left;\n triangles[1] = top;\n\n triangles[2] = right;\n triangles[3] = top;\n\n triangles[4] = left;\n triangles[5] = bottom;\n\n // Second Triangle\n\n triangles[6] = left;\n triangles[7] = bottom;\n\n triangles[8] = right;\n triangles[9] = top;\n\n triangles[10] = right;\n triangles[11] = bottom;\n\n },\n\n updateTexture: function(gl, elem) {\n\n this[elem._renderer.type].updateCanvas.call(webgl, elem);\n\n if (elem._renderer.texture) {\n gl.deleteTexture(elem._renderer.texture);\n }\n\n gl.bindBuffer(gl.ARRAY_BUFFER, elem._renderer.textureCoordsBuffer);\n\n // TODO: Is this necessary every time or can we do once?\n // TODO: Create a registry for textures\n elem._renderer.texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, elem._renderer.texture);\n\n // Set the parameters so we can render any size image.\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n // gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n // gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n // gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\n if (this.canvas.width <= 0 || this.canvas.height <= 0) {\n return;\n }\n\n // Upload the image into the texture.\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this.canvas);\n\n },\n\n updateBuffer: function(gl, elem, program) {\n\n if (_.isObject(elem._renderer.buffer)) {\n gl.deleteBuffer(elem._renderer.buffer);\n }\n\n elem._renderer.buffer = gl.createBuffer();\n\n gl.bindBuffer(gl.ARRAY_BUFFER, elem._renderer.buffer);\n gl.enableVertexAttribArray(program.position);\n\n gl.bufferData(gl.ARRAY_BUFFER, elem._renderer.triangles, gl.STATIC_DRAW);\n\n if (_.isObject(elem._renderer.textureCoordsBuffer)) {\n gl.deleteBuffer(elem._renderer.textureCoordsBuffer);\n }\n\n elem._renderer.textureCoordsBuffer = gl.createBuffer();\n\n gl.bindBuffer(gl.ARRAY_BUFFER, elem._renderer.textureCoordsBuffer);\n gl.enableVertexAttribArray(program.textureCoords);\n\n gl.bufferData(gl.ARRAY_BUFFER, this.uv, gl.STATIC_DRAW);\n\n },\n\n program: {\n\n create: function(gl, shaders) {\n var program, linked, error;\n program = gl.createProgram();\n _.each(shaders, function(s) {\n gl.attachShader(program, s);\n });\n\n gl.linkProgram(program);\n linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n if (!linked) {\n error = gl.getProgramInfoLog(program);\n gl.deleteProgram(program);\n throw new Two.Utils.Error('unable to link program: ' + error);\n }\n\n return program;\n\n }\n\n },\n\n shaders: {\n\n create: function(gl, source, type) {\n var shader, compiled, error;\n shader = gl.createShader(gl[type]);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n if (!compiled) {\n error = gl.getShaderInfoLog(shader);\n gl.deleteShader(shader);\n throw new Two.Utils.Error('unable to compile shader ' + shader + ': ' + error);\n }\n\n return shader;\n\n },\n\n types: {\n vertex: 'VERTEX_SHADER',\n fragment: 'FRAGMENT_SHADER'\n },\n\n vertex: [\n 'attribute vec2 a_position;',\n 'attribute vec2 a_textureCoords;',\n '',\n 'uniform mat3 u_matrix;',\n 'uniform vec2 u_resolution;',\n '',\n 'varying vec2 v_textureCoords;',\n '',\n '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;',\n '',\n ' gl_Position = vec4(clipspace * vec2(1.0, -1.0), 0.0, 1.0);',\n ' v_textureCoords = a_textureCoords;',\n '}'\n ].join('\\n'),\n\n fragment: [\n 'precision mediump float;',\n '',\n 'uniform sampler2D u_image;',\n 'varying vec2 v_textureCoords;',\n '',\n 'void main() {',\n ' gl_FragColor = texture2D(u_image, v_textureCoords);',\n '}'\n ].join('\\n')\n\n },\n\n TextureRegistry: new Two.Registry()\n\n };\n\n webgl.ctx = webgl.canvas.getContext('2d');\n\n var Renderer = Two[Two.Types.webgl] = function(options) {\n\n var params, gl, vs, fs;\n this.domElement = options.domElement || document.createElement('canvas');\n\n // Everything drawn on the canvas needs to come from the stage.\n this.scene = new Two.Group();\n this.scene.parent = this;\n\n this._renderer = {\n matrix: new Two.Array(identity),\n scale: 1,\n opacity: 1\n };\n this._flagMatrix = true;\n\n // http://games.greggman.com/game/webgl-and-alpha/\n // http://www.khronos.org/registry/webgl/specs/latest/#5.2\n params = _.defaults(options || {}, {\n antialias: false,\n alpha: true,\n premultipliedAlpha: true,\n stencil: true,\n preserveDrawingBuffer: true,\n overdraw: false\n });\n\n this.overdraw = params.overdraw;\n\n gl = this.ctx = this.domElement.getContext('webgl', params) ||\n this.domElement.getContext('experimental-webgl', params);\n\n if (!this.ctx) {\n throw new Two.Utils.Error(\n 'unable to create a webgl context. Try using another renderer.');\n }\n\n // Compile Base Shaders to draw in pixel space.\n vs = webgl.shaders.create(\n gl, webgl.shaders.vertex, webgl.shaders.types.vertex);\n fs = webgl.shaders.create(\n gl, webgl.shaders.fragment, webgl.shaders.types.fragment);\n\n this.program = webgl.program.create(gl, [vs, fs]);\n gl.useProgram(this.program);\n\n // Create and bind the drawing buffer\n\n // look up where the vertex data needs to go.\n this.program.position = gl.getAttribLocation(this.program, 'a_position');\n this.program.matrix = gl.getUniformLocation(this.program, 'u_matrix');\n this.program.textureCoords = gl.getAttribLocation(this.program, 'a_textureCoords');\n\n // Copied from Three.js WebGLRenderer\n gl.disable(gl.DEPTH_TEST);\n\n // Setup some initial statements of the gl context\n gl.enable(gl.BLEND);\n\n // https://code.google.com/p/chromium/issues/detail?id=316393\n // gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, gl.TRUE);\n\n gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_ADD);\n gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA,\n gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\n };\n\n _.extend(Renderer, {\n\n Utils: webgl\n\n });\n\n _.extend(Renderer.prototype, Two.Utils.Events, {\n\n constructor: Renderer,\n\n setSize: function(width, height, ratio) {\n\n this.width = width;\n this.height = height;\n\n this.ratio = _.isUndefined(ratio) ? getRatio(this.ctx) : ratio;\n\n this.domElement.width = width * this.ratio;\n this.domElement.height = height * this.ratio;\n\n _.extend(this.domElement.style, {\n width: width + 'px',\n height: height + 'px'\n });\n\n width *= this.ratio;\n height *= this.ratio;\n\n // Set for this.stage parent scaling to account for HDPI\n this._renderer.matrix[0] = this._renderer.matrix[4] = this._renderer.scale = this.ratio;\n\n this._flagMatrix = true;\n\n this.ctx.viewport(0, 0, width, height);\n\n var resolutionLocation = this.ctx.getUniformLocation(\n this.program, 'u_resolution');\n this.ctx.uniform2f(resolutionLocation, width, height);\n\n return this.trigger(Two.Events.resize, width, height, ratio);\n\n },\n\n render: function() {\n\n var gl = this.ctx;\n\n if (!this.overdraw) {\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n }\n\n webgl.group.render.call(this.scene, gl, this.program);\n this._flagMatrix = false;\n\n return this;\n\n }\n\n });\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n /**\n * @name Two.Shape\n * @class\n * @extends Two.Utils.Events\n * @description The foundational transformation object for the Two.js scenegraph.\n */\n var Shape = Two.Shape = function() {\n\n /**\n * @name Two.Shape#_renderer\n * @property {Object}\n * @private\n * @description A private object to store relevant renderer specific variables.\n * @nota-bene With the {@link Two.SvgRenderer} you can access the underlying SVG element created via `shape._renderer.elem`.\n */\n this._renderer = {};\n this._renderer.flagMatrix = _.bind(Shape.FlagMatrix, this);\n this.isShape = true;\n\n /**\n * @name Two.Shape#id\n * @property {String} - Session specific unique identifier.\n * @nota-bene In the {@link Two.SvgRenderer} change this to change the underlying SVG element's id too.\n */\n this.id = Two.Identifier + Two.uniqueId();\n\n /**\n * @name Two.Shape#classList\n * @property {Array}\n * @description A list of class strings stored if imported / interpreted from an SVG element.\n */\n this.classList = [];\n\n /**\n * @name Two.Shape#_matrix\n * @property\n * @description The transformation matrix of the shape.\n * @nota-bene {@link Two.Shape#translation}, {@link Two.Shape#rotation}, and {@link Two.Shape#scale} apply their values to the matrix when changed. The matrix is what is sent to the renderer to be drawn.\n */\n this._matrix = new Two.Matrix();\n\n /**\n * @name Two.Shape#translation\n * @property {Two.Vector} - The x and y value for where the shape is placed relative to its parent.\n */\n this.translation = new Two.Vector();\n\n /**\n * @name Two.Shape#rotation\n * @property {Radians} - The value in radians for how much the shape is rotated relative to its parent.\n */\n this.rotation = 0;\n\n /**\n * @name Two.Shape#scale\n * @property {Number} - The value for how much the shape is scaled relative to its parent.\n * @nota-bene This value can be replaced with a {@link Two.Vector} to do non-uniform scaling. e.g: `shape.scale = new Two.Vector(2, 1);`\n */\n this.scale = 1;\n\n };\n\n _.extend(Shape, {\n\n /**\n * @name Two.Shape.FlagMatrix\n * @function\n * @description Utility function used in conjunction with event handlers to update the flagMatrix of a shape.\n */\n FlagMatrix: function() {\n this._flagMatrix = true;\n },\n\n /**\n * @name Two.Shape.MakeObservable\n * @function\n * @param {Object} object - The object to make observable.\n * @description Convenience function to apply observable qualities of a `Two.Shape` to any object. Handy if you'd like to extend the `Two.Shape` class on a custom class.\n */\n MakeObservable: function(object) {\n\n Object.defineProperty(object, 'translation', {\n enumerable: true,\n get: function() {\n return this._translation;\n },\n set: function(v) {\n if (this._translation) {\n this._translation.unbind(Two.Events.change, this._renderer.flagMatrix);\n }\n this._translation = v;\n this._translation.bind(Two.Events.change, this._renderer.flagMatrix);\n Shape.FlagMatrix.call(this);\n }\n });\n\n Object.defineProperty(object, 'rotation', {\n enumerable: true,\n get: function() {\n return this._rotation;\n },\n set: function(v) {\n this._rotation = v;\n this._flagMatrix = true;\n }\n });\n\n Object.defineProperty(object, 'scale', {\n enumerable: true,\n get: function() {\n return this._scale;\n },\n set: function(v) {\n\n if (this._scale instanceof Two.Vector) {\n this._scale.unbind(Two.Events.change, this._renderer.flagMatrix);\n }\n\n this._scale = v;\n\n if (this._scale instanceof Two.Vector) {\n this._scale.bind(Two.Events.change, this._renderer.flagMatrix);\n }\n\n this._flagMatrix = true;\n this._flagScale = true;\n\n }\n });\n\n }\n\n });\n\n _.extend(Shape.prototype, Two.Utils.Events, {\n\n // Flags\n\n /**\n * @name Two.Shape#_flagMatrix\n * @private\n * @property {Boolean} - Determines whether the matrix needs updating.\n */\n _flagMatrix: true,\n\n /**\n * @name Two.Shape#_flagScale\n * @private\n * @property {Boolean} - Determines whether the scale needs updating.\n */\n _flagScale: false,\n\n // _flagMask: false,\n // _flagClip: false,\n\n // Underlying Properties\n\n /**\n * @name Two.Shape#_translation\n * @private\n * @property {Two.Vector} - The translation values as a {@link Two.Vector}.\n */\n _translation: null,\n\n /**\n * @name Two.Shape#_rotation\n * @private\n * @property {Radians} - The rotation value in radians.\n */\n _rotation: 0,\n\n /**\n * @name Two.Shape#_translation\n * @private\n * @property {Two.Vector} - The translation values as a {@link Two.Vector}.\n */\n _scale: 1,\n\n // _mask: null,\n // _clip: false,\n\n constructor: Shape,\n\n /**\n * @name Two.Shape#addTo\n * @function\n * @param {Two.Group} group - The parent the shape adds itself to.\n * @description Convenience method to add itself to the scenegraph.\n */\n addTo: function(group) {\n group.add(this);\n return this;\n },\n\n /**\n * @name Two.Shape#clone\n * @function\n * @param {Two.Group} [parent] - Optional argument to automatically add the shape to a scenegraph.\n * @returns {Two.Shape}\n * @description Create a new `Two.Shape` with the same values as the current shape.\n */\n clone: function(parent) {\n\n var clone = new Shape();\n\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone._update();\n\n },\n\n /**\n * @name Two.Shape#_update\n * @function\n * @private\n * @param {Boolean} [bubbles=false] - Force the parent to `_update` as well.\n * @description This is called before rendering happens by the renderer. This applies all changes necessary so that rendering is up-to-date but not updated more than it needs to be.\n * @nota-bene Try not to call this method more than once a frame.\n */\n _update: function(bubbles) {\n\n if (!this._matrix.manual && this._flagMatrix) {\n\n this._matrix\n .identity()\n .translate(this.translation.x, this.translation.y);\n\n if (this._scale instanceof Two.Vector) {\n this._matrix.scale(this._scale.x, this._scale.y);\n } else {\n this._matrix.scale(this._scale);\n }\n\n this._matrix.rotate(this.rotation);\n\n }\n\n if (bubbles) {\n if (this.parent && this.parent._update) {\n this.parent._update();\n }\n }\n\n return this;\n\n },\n\n /**\n * @name Two.Shape#flagReset\n * @function\n * @private\n * @description Called internally to reset all flags. Ensures that only properties that change are updated before being sent to the renderer.\n */\n flagReset: function() {\n\n this._flagMatrix = this._flagScale = false;\n\n return this;\n\n }\n\n });\n\n Shape.MakeObservable(Shape.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Constants\n\n var min = Math.min, max = Math.max, round = Math.round,\n ceil = Math.ceil, floor = Math.floor,\n getComputedMatrix = Two.Utils.getComputedMatrix;\n\n var commands = {};\n var _ = Two.Utils;\n\n _.each(Two.Commands, function(v, k) {\n commands[k] = new RegExp(v);\n });\n\n /**\n * @name Two.Path\n * @class\n * @extends Two.Shape\n * @param {Two#Anchor[]} [vertices] - A list of Two.Anchors that represent the order and coordinates to construct the rendered shape.\n * @param {Boolean} [closed=false] - Describes whether the shape is closed or open.\n * @param {Boolean} [curved=false] - Describes whether the shape automatically calculates bezier handles for each vertex.\n * @param {Boolean} [manual=false] - Describes whether the developer controls how vertices are plotted or if Two.js automatically plots coordinates based on closed and curved booleans.\n * @description This is the primary primitive class for creating all drawable shapes in Two.js. Unless specified methods return their instance of `Two.Path` for the purpose of chaining.\n */\n var Path = Two.Path = function(vertices, closed, curved, manual) {\n\n Two.Shape.call(this);\n\n this._renderer.type = 'path';\n this._renderer.flagVertices = _.bind(Path.FlagVertices, this);\n this._renderer.bindVertices = _.bind(Path.BindVertices, this);\n this._renderer.unbindVertices = _.bind(Path.UnbindVertices, this);\n\n this._renderer.flagFill = _.bind(Path.FlagFill, this);\n this._renderer.flagStroke = _.bind(Path.FlagStroke, this);\n this._renderer.vertices = [];\n this._renderer.collection = [];\n\n /**\n * @name Two.Path#closed\n * @property {Boolean} - Determines whether a final line is drawn between the final point in the `vertices` array and the first point.\n */\n this._closed = !!closed;\n\n /**\n * @name Two.Path#curved\n * @property {Boolean} - When the path is `automatic = true` this boolean determines whether the lines between the points are curved or not.\n */\n this._curved = !!curved;\n\n /**\n * @name Two.Path#beginning\n * @property {Number} - Number between zero and one to state the beginning of where the path is rendered.\n * @description `Two.Path.beginning` is a percentage value that represents at what percentage into the path should the renderer start drawing.\n * @nota-bene This is great for animating in and out stroked paths in conjunction with {@link Two.Path#ending}.\n */\n this.beginning = 0;\n\n /**\n * @name Two.Path#ending\n * @property {Number} - Number between zero and one to state the ending of where the path is rendered.\n * @description `Two.Path.ending` is a percentage value that represents at what percentage into the path should the renderer start drawing.\n * @nota-bene This is great for animating in and out stroked paths in conjunction with {@link Two.Path#beginning}.\n */\n this.ending = 1;\n\n // Style properties\n\n /**\n * @name Two.Path#fill\n * @property {(CssColor|Two.Gradient|Two.Texture)} - The value of what the path should be filled in with.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/color_value} for more information on CSS Colors.\n */\n this.fill = '#fff';\n\n /**\n * @name Two.Path#stroke\n * @property {(CssColor|Two.Gradient|Two.Texture)} - The value of what the path should be outlined in with.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/color_value} for more information on CSS Colors.\n */\n this.stroke = '#000';\n\n /**\n * @name Two.Path#linewidth\n * @property {Number} - The thickness in pixels of the stroke.\n */\n this.linewidth = 1.0;\n\n /**\n * @name Two.Path#opacity\n * @property {Number} - The opaqueness of the path.\n * @nota-bene Can be used in conjunction with CSS Colors that have an alpha value.\n */\n this.opacity = 1.0;\n\n /**\n * @name Two.Path#className\n * @property {String} - A class name to be searched by in {@link Two.Group}s.\n */\n this.className = '';\n\n /**\n * @name Two.Path#visible\n * @property {Boolean} - Display the path or not.\n * @nota-bene For {@link Two.CanvasRenderer} and {@link Two.WebGLRenderer} when set to false all updating is disabled improving performance dramatically with many objects in the scene.\n */\n this.visible = true;\n\n /**\n * @name Two.Path#cap\n * @property {String}\n * @see {@link https://www.w3.org/TR/SVG11/painting.html#StrokeLinecapProperty}\n */\n this.cap = 'butt'; // Default of Adobe Illustrator\n\n /**\n * @name Two.Path#join\n * @property {String}\n * @see {@link https://www.w3.org/TR/SVG11/painting.html#StrokeLinejoinProperty}\n */\n this.join = 'miter'; // Default of Adobe Illustrator\n\n /**\n * @name Two.Path#miter\n * @property {String}\n * @see {@link https://www.w3.org/TR/SVG11/painting.html#StrokeMiterlimitProperty}\n */\n this.miter = 4; // Default of Adobe Illustrator\n\n /**\n * @name Two.Path#vertices\n * @property {Two.Anchor[]} - An ordered list of anchor points for rendering the path.\n * @description An of `Two.Anchor` objects that consist of what form the path takes.\n * @nota-bene The array when manipulating is actually a {@link Two.Utils.Collection}.\n */\n this.vertices = vertices;\n\n /**\n * @name Two.Path#automatic\n * @property {Boolean} - Determines whether or not Two.js should calculate curves, lines, and commands automatically for you or to let the developer manipulate them for themselves.\n */\n this.automatic = !manual;\n\n /**\n * @name Two.Path#dashes\n * @property {String} - List of dash and gap values.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray} for more information on the SVG stroke-dasharray attribute.\n */\n this.dashes = [];\n\n };\n\n _.extend(Path, {\n\n /**\n * @name Two.Path.Properties\n * @property {String[]} - A list of properties that are on every {@link Two.Path}.\n */\n Properties: [\n 'fill',\n 'stroke',\n 'linewidth',\n 'opacity',\n 'className',\n 'visible',\n 'cap',\n 'join',\n 'miter',\n\n 'closed',\n 'curved',\n 'automatic',\n 'beginning',\n 'ending'\n ],\n\n Utils: {\n getCurveLength: getCurveLength\n },\n\n /**\n * @name Two.Path.FlagVertices\n * @function\n * @description Cached method to let renderers know vertices have been updated on a {@link Two.Path}.\n */\n FlagVertices: function() {\n this._flagVertices = true;\n this._flagLength = true;\n if (this.parent) {\n this.parent._flagLength = true;\n }\n },\n\n /**\n * @name Two.Path.BindVertices\n * @function\n * @description Cached method to let {@link Two.Path} know vertices have been added to the instance.\n */\n BindVertices: function(items) {\n\n // This function is called a lot\n // when importing a large SVG\n var i = items.length;\n while (i--) {\n items[i].bind(Two.Events.change, this._renderer.flagVertices);\n }\n\n this._renderer.flagVertices();\n\n },\n\n /**\n * @name Two.Path.BindVertices\n * @function\n * @description Cached method to let {@link Two.Path} know vertices have been removed from the instance.\n */\n UnbindVertices: function(items) {\n\n var i = items.length;\n while (i--) {\n items[i].unbind(Two.Events.change, this._renderer.flagVertices);\n }\n\n this._renderer.flagVertices();\n\n },\n\n /**\n * @name Two.Path.FlagFill\n * @function\n * @description Cached method to let {@link Two.Path} know the fill has changed.\n */\n FlagFill: function() {\n this._flagFill = true;\n },\n\n /**\n * @name Two.Path.FlagFill\n * @function\n * @description Cached method to let {@link Two.Path} know the stroke has changed.\n */\n FlagStroke: function() {\n this._flagStroke = true;\n },\n\n /**\n * @name Two.Path.MakeObservable\n * @function\n * @param {Object} object - The object to make observable.\n * @description Convenience function to apply observable qualities of a `Two.Path` to any object. Handy if you'd like to extend the `Two.Path` class on a custom class.\n */\n MakeObservable: function(object) {\n\n Two.Shape.MakeObservable(object);\n\n // Only the 7 defined properties are flagged like this. The subsequent\n // properties behave differently and need to be hand written.\n _.each(Path.Properties.slice(2, 9), Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'fill', {\n enumerable: true,\n get: function() {\n return this._fill;\n },\n set: function(f) {\n\n if (this._fill instanceof Two.Gradient\n || this._fill instanceof Two.LinearGradient\n || this._fill instanceof Two.RadialGradient\n || this._fill instanceof Two.Texture) {\n this._fill.unbind(Two.Events.change, this._renderer.flagFill);\n }\n\n this._fill = f;\n this._flagFill = true;\n\n if (this._fill instanceof Two.Gradient\n || this._fill instanceof Two.LinearGradient\n || this._fill instanceof Two.RadialGradient\n || this._fill instanceof Two.Texture) {\n this._fill.bind(Two.Events.change, this._renderer.flagFill);\n }\n\n }\n });\n\n Object.defineProperty(object, 'stroke', {\n enumerable: true,\n get: function() {\n return this._stroke;\n },\n set: function(f) {\n\n if (this._stroke instanceof Two.Gradient\n || this._stroke instanceof Two.LinearGradient\n || this._stroke instanceof Two.RadialGradient\n || this._stroke instanceof Two.Texture) {\n this._stroke.unbind(Two.Events.change, this._renderer.flagStroke);\n }\n\n this._stroke = f;\n this._flagStroke = true;\n\n if (this._stroke instanceof Two.Gradient\n || this._stroke instanceof Two.LinearGradient\n || this._stroke instanceof Two.RadialGradient\n || this._stroke instanceof Two.Texture) {\n this._stroke.bind(Two.Events.change, this._renderer.flagStroke);\n }\n\n }\n });\n\n /**\n * @name Two.Path#length\n * @property {Number} - The sum of distances between all {@link Two.Path#vertices}.\n */\n Object.defineProperty(object, 'length', {\n get: function() {\n if (this._flagLength) {\n this._updateLength();\n }\n return this._length;\n }\n });\n\n Object.defineProperty(object, 'closed', {\n enumerable: true,\n get: function() {\n return this._closed;\n },\n set: function(v) {\n this._closed = !!v;\n this._flagVertices = true;\n }\n });\n\n Object.defineProperty(object, 'curved', {\n enumerable: true,\n get: function() {\n return this._curved;\n },\n set: function(v) {\n this._curved = !!v;\n this._flagVertices = true;\n }\n });\n\n Object.defineProperty(object, 'automatic', {\n enumerable: true,\n get: function() {\n return this._automatic;\n },\n set: function(v) {\n if (v === this._automatic) {\n return;\n }\n this._automatic = !!v;\n var method = this._automatic ? 'ignore' : 'listen';\n _.each(this.vertices, function(v) {\n v[method]();\n });\n }\n });\n\n Object.defineProperty(object, 'beginning', {\n enumerable: true,\n get: function() {\n return this._beginning;\n },\n set: function(v) {\n this._beginning = v;\n this._flagVertices = true;\n }\n });\n\n Object.defineProperty(object, 'ending', {\n enumerable: true,\n get: function() {\n return this._ending;\n },\n set: function(v) {\n this._ending = v;\n this._flagVertices = true;\n }\n });\n\n Object.defineProperty(object, 'vertices', {\n\n enumerable: true,\n\n get: function() {\n return this._collection;\n },\n\n set: function(vertices) {\n\n var updateVertices = this._renderer.flagVertices;\n var bindVertices = this._renderer.bindVertices;\n var unbindVertices = this._renderer.unbindVertices;\n\n // Remove previous listeners\n if (this._collection) {\n this._collection\n .unbind(Two.Events.insert, bindVertices)\n .unbind(Two.Events.remove, unbindVertices);\n }\n\n // Create new Collection with copy of vertices\n if (vertices instanceof Two.Utils.Collection) {\n this._collection = vertices;\n } else {\n this._collection = new Two.Utils.Collection(vertices || []);\n }\n\n\n // Listen for Collection changes and bind / unbind\n this._collection\n .bind(Two.Events.insert, bindVertices)\n .bind(Two.Events.remove, unbindVertices);\n\n // Bind Initial Vertices\n bindVertices(this._collection);\n\n }\n\n });\n\n /**\n * @name Two.Path#clip\n * @property {Two.Shape} - Object to define clipping area.\n * @nota-bene This property is currently not working becuase of SVG spec issues found here {@link https://code.google.com/p/chromium/issues/detail?id=370951}.\n */\n Object.defineProperty(object, 'clip', {\n enumerable: true,\n get: function() {\n return this._clip;\n },\n set: function(v) {\n this._clip = v;\n this._flagClip = true;\n }\n });\n\n }\n\n });\n\n _.extend(Path.prototype, Two.Shape.prototype, {\n\n // Flags\n // http://en.wikipedia.org/wiki/Flag\n\n /**\n * @name Two.Path#_flagVertices\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#vertices} need updating.\n */\n _flagVertices: true,\n\n /**\n * @name Two.Path#_flagLength\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#length} needs updating.\n */\n _flagLength: true,\n\n /**\n * @name Two.Path#_flagFill\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#fill} needs updating.\n */\n _flagFill: true,\n\n /**\n * @name Two.Path#_flagStroke\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#stroke} needs updating.\n */\n _flagStroke: true,\n\n /**\n * @name Two.Path#_flagLinewidth\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#linewidth} needs updating.\n */\n _flagLinewidth: true,\n\n /**\n * @name Two.Path#_flagOpacity\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#opacity} needs updating.\n */\n _flagOpacity: true,\n\n /**\n * @name Two.Path#_flagVisible\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#visible} needs updating.\n */\n _flagVisible: true,\n\n /**\n * @name Two.Path#_flagClassName\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#className} needs updating.\n */\n _flagClassName: true,\n\n /**\n * @name Two.Path#_flagCap\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#cap} needs updating.\n */\n _flagCap: true,\n\n /**\n * @name Two.Path#_flagJoin\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#join} needs updating.\n */\n _flagJoin: true,\n\n /**\n * @name Two.Path#_flagMiter\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#miter} needs updating.\n */\n _flagMiter: true,\n\n /**\n * @name Two.Path#_flagClip\n * @private\n * @property {Boolean} - Determines whether the {@link Two.Path#clip} needs updating.\n */\n _flagClip: false,\n\n // Underlying Properties\n\n /**\n * @name Two.Path#_length\n * @private\n * @see {@link Two.Path#length}\n */\n _length: 0,\n\n /**\n * @name Two.Path#_fill\n * @private\n * @see {@link Two.Path#fill}\n */\n _fill: '#fff',\n\n /**\n * @name Two.Path#_stroke\n * @private\n * @see {@link Two.Path#stroke}\n */\n _stroke: '#000',\n\n /**\n * @name Two.Path#_linewidth\n * @private\n * @see {@link Two.Path#linewidth}\n */\n _linewidth: 1.0,\n\n /**\n * @name Two.Path#_opacity\n * @private\n * @see {@link Two.Path#opacity}\n */\n _opacity: 1.0,\n\n /**\n * @name Two.Path#_className\n * @private\n * @see {@link Two.Path#className}\n */\n _className: '',\n\n /**\n * @name Two.Path#_visible\n * @private\n * @see {@link Two.Path#visible}\n */\n _visible: true,\n\n /**\n * @name Two.Path#_cap\n * @private\n * @see {@link Two.Path#cap}\n */\n _cap: 'round',\n\n /**\n * @name Two.Path#_join\n * @private\n * @see {@link Two.Path#join}\n */\n _join: 'round',\n\n /**\n * @name Two.Path#_miter\n * @private\n * @see {@link Two.Path#miter}\n */\n _miter: 4,\n\n /**\n * @name Two.Path#_closed\n * @private\n * @see {@link Two.Path#closed}\n */\n _closed: true,\n\n /**\n * @name Two.Path#_curved\n * @private\n * @see {@link Two.Path#curved}\n */\n _curved: false,\n\n /**\n * @name Two.Path#_automatic\n * @private\n * @see {@link Two.Path#automatic}\n */\n _automatic: true,\n\n /**\n * @name Two.Path#_beginning\n * @private\n * @see {@link Two.Path#beginning}\n */\n _beginning: 0,\n\n /**\n * @name Two.Path#_ending\n * @private\n * @see {@link Two.Path#ending}\n */\n _ending: 1.0,\n\n /**\n * @name Two.Path#_clip\n * @private\n * @see {@link Two.Path#clip}\n */\n _clip: false,\n\n constructor: Path,\n\n /**\n * @name Two.Path#clone\n * @function\n * @param {Two.Group} parent - The parent group or scene to add the clone to.\n * @returns {Two.Path}\n * @description Create a new instance of {@link Two.Path} with the same properties of the current path.\n */\n clone: function(parent) {\n\n var clone = new Path();\n\n clone.vertices = this.vertices;\n\n for (var i = 0; i < Path.Properties.length; i++) {\n var k = Path.Properties[i];\n clone[k] = this[k];\n }\n\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone._update();\n\n },\n\n /**\n * @name Two.Path#toObject\n * @function\n * @returns {Object}\n * @description Return a JSON compatible plain object that represents the path.\n */\n toObject: function() {\n\n var result = {\n vertices: _.map(this.vertices, function(v) {\n return v.toObject();\n })\n };\n\n _.each(Two.Shape.Properties, function(k) {\n result[k] = this[k];\n }, this);\n\n result.translation = this.translation.toObject();\n result.rotation = this.rotation;\n result.scale = this.scale instanceof Two.Vector ? this.scale.toObject() : this.scale;\n\n return result;\n\n },\n\n /**\n * @name Two.Path#noFill\n * @function\n * @description Short hand method to set fill to `transparent`.\n */\n noFill: function() {\n this.fill = 'transparent';\n return this;\n },\n\n /**\n * @name Two.Path#noStroke\n * @function\n * @description Short hand method to set stroke to `transparent`.\n */\n noStroke: function() {\n this.stroke = 'transparent';\n return this;\n },\n\n /**\n * @name Two.Path#corner\n * @function\n * @description Orient the vertices of the shape to the upper left-hand corner of the path.\n */\n corner: function() {\n\n var rect = this.getBoundingClientRect(true);\n\n rect.centroid = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n };\n\n _.each(this.vertices, function(v) {\n v.addSelf(rect.centroid);\n });\n\n return this;\n\n },\n\n /**\n * @name Two.Path#center\n * @function\n * @description Orient the vertices of the shape to the center of the path.\n */\n center: function() {\n\n var rect = this.getBoundingClientRect(true);\n\n rect.centroid = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n };\n\n _.each(this.vertices, function(v) {\n v.subSelf(rect.centroid);\n });\n\n // this.translation.addSelf(rect.centroid);\n\n return this;\n\n },\n\n /**\n * @name Two.Path#remove\n * @function\n * @description Remove self from the scene / parent.\n */\n remove: function() {\n\n if (!this.parent) {\n return this;\n }\n\n this.parent.remove(this);\n\n return this;\n\n },\n\n /**\n * @name Two.Path#getBoundingClientRect\n * @function\n * @param {Boolean} [shallow=false] - Describes whether to calculate off local matrix or world matrix.\n * @returns {Object} - Returns object with top, left, right, bottom, width, height attributes.\n * @description Return an object with top, left, right, bottom, width, and height parameters of the path.\n */\n getBoundingClientRect: function(shallow) {\n var matrix, border, l, x, y, i, v0, c0, c1, v1;\n\n var left = Infinity, right = -Infinity,\n top = Infinity, bottom = -Infinity;\n\n // TODO: Update this to not __always__ update. Just when it needs to.\n this._update(true);\n\n matrix = !!shallow ? this._matrix : getComputedMatrix(this);\n\n border = this.linewidth / 2;\n l = this._renderer.vertices.length;\n\n if (l <= 0) {\n v = matrix.multiply(0, 0, 1);\n return {\n top: v.y,\n left: v.x,\n right: v.x,\n bottom: v.y,\n width: 0,\n height: 0\n };\n }\n\n for (i = 1; i < l; i++) {\n\n v1 = this._renderer.vertices[i];\n v0 = this._renderer.vertices[i - 1];\n\n if (v0.controls && v1.controls) {\n\n if (v0.relative) {\n c0 = matrix.multiply(\n v0.controls.right.x + v0.x, v0.controls.right.y + v0.y, 1);\n } else {\n c0 = matrix.multiply(\n v0.controls.right.x, v0.controls.right.y, 1);\n }\n v0 = matrix.multiply(v0.x, v0.y, 1);\n\n if (v1.relative) {\n c1 = matrix.multiply(\n v1.controls.left.x + v1.x, v1.controls.left.y + v1.y, 1);\n } else {\n c1 = matrix.multiply(\n v1.controls.left.x, v1.controls.left.y, 1);\n }\n v1 = matrix.multiply(v1.x, v1.y, 1);\n\n var bb = Two.Utils.getCurveBoundingBox(\n v0.x, v0.y, c0.x, c0.y, c1.x, c1.y, v1.x, v1.y);\n\n top = min(bb.min.y - border, top);\n left = min(bb.min.x - border, left);\n right = max(bb.max.x + border, right);\n bottom = max(bb.max.y + border, bottom);\n\n } else {\n\n if (i <= 1) {\n\n v0 = matrix.multiply(v0.x, v0.y, 1);\n\n top = min(v0.y - border, top);\n left = min(v0.x - border, left);\n right = max(v0.x + border, right);\n bottom = max(v0.y + border, bottom);\n\n }\n\n v1 = matrix.multiply(v1.x, v1.y, 1);\n\n top = min(v1.y - border, top);\n left = min(v1.x - border, left);\n right = max(v1.x + border, right);\n bottom = max(v1.y + border, bottom);\n\n }\n\n }\n\n return {\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n width: right - left,\n height: bottom - top\n };\n\n },\n\n /**\n * @name Two.Path#getPointAt\n * @function\n * @param {Boolean} t - Percentage value describing where on the Two.Path to estimate and assign coordinate values.\n * @param {Two.Vector} [obj=undefined] - Object to apply calculated x, y to. If none available returns new Object.\n * @returns {Object}\n * @description Given a float `t` from 0 to 1, return a point or assign a passed `obj`'s coordinates to that percentage on this Two.Path's curve.\n */\n getPointAt: function(t, obj) {\n\n var ia, ib, result;\n var x, x1, x2, x3, x4, y, y1, y2, y3, y4, left, right;\n var target = this.length * Math.min(Math.max(t, 0), 1);\n var length = this.vertices.length;\n var last = length - 1;\n\n var a = null;\n var b = null;\n\n for (var i = 0, l = this._lengths.length, sum = 0; i < l; i++) {\n\n if (sum + this._lengths[i] >= target) {\n\n if (this._closed) {\n ia = Two.Utils.mod(i, length);\n ib = Two.Utils.mod(i - 1, length);\n if (i === 0) {\n ia = ib;\n ib = i;\n }\n } else {\n ia = i;\n ib = Math.min(Math.max(i - 1, 0), last);\n }\n\n a = this.vertices[ia];\n b = this.vertices[ib];\n target -= sum;\n if (this._lengths[i] !== 0) {\n t = target / this._lengths[i];\n } else {\n t = 0;\n }\n\n break;\n\n }\n\n sum += this._lengths[i];\n\n }\n\n if (_.isNull(a) || _.isNull(b)) {\n return null;\n }\n\n if (!a) {\n return b;\n } else if (!b) {\n return a;\n }\n\n right = b.controls && b.controls.right;\n left = a.controls && a.controls.left;\n\n x1 = b.x;\n y1 = b.y;\n x2 = (right || b).x;\n y2 = (right || b).y;\n x3 = (left || a).x;\n y3 = (left || a).y;\n x4 = a.x;\n y4 = a.y;\n\n if (right && b.relative) {\n x2 += b.x;\n y2 += b.y;\n }\n\n if (left && a.relative) {\n x3 += a.x;\n y3 += a.y;\n }\n\n x = Two.Utils.getComponentOnCubicBezier(t, x1, x2, x3, x4);\n y = Two.Utils.getComponentOnCubicBezier(t, y1, y2, y3, y4);\n\n // Higher order points for control calculation.\n var t1x = Two.Utils.lerp(x1, x2, t);\n var t1y = Two.Utils.lerp(y1, y2, t);\n var t2x = Two.Utils.lerp(x2, x3, t);\n var t2y = Two.Utils.lerp(y2, y3, t);\n var t3x = Two.Utils.lerp(x3, x4, t);\n var t3y = Two.Utils.lerp(y3, y4, t);\n\n // Calculate the returned points control points.\n var brx = Two.Utils.lerp(t1x, t2x, t);\n var bry = Two.Utils.lerp(t1y, t2y, t);\n var alx = Two.Utils.lerp(t2x, t3x, t);\n var aly = Two.Utils.lerp(t2y, t3y, t);\n\n if (_.isObject(obj)) {\n\n obj.x = x;\n obj.y = y;\n\n if (!_.isObject(obj.controls)) {\n Two.Anchor.AppendCurveProperties(obj);\n }\n\n obj.controls.left.x = brx;\n obj.controls.left.y = bry;\n obj.controls.right.x = alx;\n obj.controls.right.y = aly;\n\n if (!_.isBoolean(obj.relative) || obj.relative) {\n obj.controls.left.x -= x;\n obj.controls.left.y -= y;\n obj.controls.right.x -= x;\n obj.controls.right.y -= y;\n }\n\n obj.t = t;\n\n return obj;\n\n }\n\n result = new Two.Anchor(\n x, y, brx - x, bry - y, alx - x, aly - y,\n this._curved ? Two.Commands.curve : Two.Commands.line\n );\n\n result.t = t;\n\n return result;\n\n },\n\n /**\n * @name Two.Path#plot\n * @function\n * @description Based on closed / curved and sorting of vertices plot where all points should be and where the respective handles should be too.\n * @nota-bene While this method is public it is internally called by {@link Two.Path#_update} when `automatic = true`.\n */\n plot: function() {\n\n if (this.curved) {\n Two.Utils.getCurveFromPoints(this._collection, this.closed);\n return this;\n }\n\n for (var i = 0; i < this._collection.length; i++) {\n this._collection[i].command = i === 0 ? Two.Commands.move : Two.Commands.line;\n }\n\n return this;\n\n },\n\n /**\n * @name Two.Path#subdivide\n * @function\n * @param {Integer} limit - How many times to recurse subdivisions.\n * @description Insert a {@link Two.Anchor} at the midpoint between every item in {@link Two.Path#vertices}.\n */\n subdivide: function(limit) {\n //TODO: DRYness (function below)\n this._update();\n\n var last = this.vertices.length - 1;\n var b = this.vertices[last];\n var closed = this._closed || this.vertices[last]._command === Two.Commands.close;\n var points = [];\n _.each(this.vertices, function(a, i) {\n\n if (i <= 0 && !closed) {\n b = a;\n return;\n }\n\n if (a.command === Two.Commands.move) {\n points.push(new Two.Anchor(b.x, b.y));\n if (i > 0) {\n points[points.length - 1].command = Two.Commands.line;\n }\n b = a;\n return;\n }\n\n var verts = getSubdivisions(a, b, limit);\n points = points.concat(verts);\n\n // Assign commands to all the verts\n _.each(verts, function(v, i) {\n if (i <= 0 && b.command === Two.Commands.move) {\n v.command = Two.Commands.move;\n } else {\n v.command = Two.Commands.line;\n }\n });\n\n if (i >= last) {\n\n // TODO: Add check if the two vectors in question are the same values.\n if (this._closed && this._automatic) {\n\n b = a;\n\n verts = getSubdivisions(a, b, limit);\n points = points.concat(verts);\n\n // Assign commands to all the verts\n _.each(verts, function(v, i) {\n if (i <= 0 && b.command === Two.Commands.move) {\n v.command = Two.Commands.move;\n } else {\n v.command = Two.Commands.line;\n }\n });\n\n } else if (closed) {\n points.push(new Two.Anchor(a.x, a.y));\n }\n\n points[points.length - 1].command = closed\n ? Two.Commands.close : Two.Commands.line;\n\n }\n\n b = a;\n\n }, this);\n\n this._automatic = false;\n this._curved = false;\n this.vertices = points;\n\n return this;\n\n },\n\n /**\n * @name Two.Path#_updateLength\n * @function\n * @private\n * @param {Integer} [limit=] -\n * @param {Boolean} [silent=false] - If set to `true` then the path isn't updated before calculation. Useful for internal use.\n * @description Recalculate the {@link Two.Path#length} value.\n */\n _updateLength: function(limit, silent) {\n //TODO: DRYness (function above)\n if (!silent) {\n this._update();\n }\n\n var length = this.vertices.length;\n var last = length - 1;\n var b = this.vertices[last];\n var closed = false;//this._closed || this.vertices[last]._command === Two.Commands.close;\n var sum = 0;\n\n if (_.isUndefined(this._lengths)) {\n this._lengths = [];\n }\n\n _.each(this.vertices, function(a, i) {\n\n if ((i <= 0 && !closed) || a.command === Two.Commands.move) {\n b = a;\n this._lengths[i] = 0;\n return;\n }\n\n this._lengths[i] = getCurveLength(a, b, limit);\n this._lengths[i] = Two.Utils.toFixed(this._lengths[i]);\n sum += this._lengths[i];\n\n if (i >= last && closed) {\n\n b = this.vertices[(i + 1) % length];\n\n this._lengths[i + 1] = getCurveLength(a, b, limit);\n this._lengths[i + 1] = Two.Utils.toFixed(this._lengths[i + 1]);\n sum += this._lengths[i + 1];\n\n }\n\n b = a;\n\n }, this);\n\n this._length = sum;\n this._flagLength = false;\n\n return this;\n\n },\n\n /**\n * @name Two.Path#_update\n * @function\n * @private\n * @param {Boolean} [bubbles=false] - Force the parent to `_update` as well.\n * @description This is called before rendering happens by the renderer. This applies all changes necessary so that rendering is up-to-date but not updated more than it needs to be.\n * @nota-bene Try not to call this method more than once a frame.\n */\n _update: function() {\n\n if (this._flagVertices) {\n\n if (this._automatic) {\n this.plot();\n }\n\n if (this._flagLength) {\n this._updateLength(undefined, true);\n }\n\n var l = this._collection.length;\n var last = l - 1;\n var closed = this._closed;\n\n var beginning = Math.min(this._beginning, this._ending);\n var ending = Math.max(this._beginning, this._ending);\n\n var bid = getIdByLength(this, beginning * this._length);\n var eid = getIdByLength(this, ending * this._length);\n\n var low = ceil(bid);\n var high = floor(eid);\n\n var left, right, prev, next, v;\n\n this._renderer.vertices.length = 0;\n\n for (var i = 0; i < l; i++) {\n\n if (this._renderer.collection.length <= i) {\n // Expected to be `relative` anchor points.\n this._renderer.collection.push(new Two.Anchor());\n }\n\n if (i > high && !right) {\n\n v = this._renderer.collection[i];\n v.copy(this._collection[i]);\n this.getPointAt(ending, v);\n v.command = this._renderer.collection[i].command;\n this._renderer.vertices.push(v);\n\n right = v;\n prev = this._collection[i - 1];\n\n // Project control over the percentage `t`\n // of the in-between point\n if (prev && prev.controls) {\n\n v.controls.right.clear();\n\n this._renderer.collection[i - 1].controls.right\n .clear()\n .lerp(prev.controls.right, v.t);\n\n }\n\n } else if (i >= low && i <= high) {\n\n v = this._renderer.collection[i]\n .copy(this._collection[i]);\n this._renderer.vertices.push(v);\n\n if (i === high && contains(this, ending)) {\n right = v;\n if (!closed && right.controls) {\n right.controls.right.clear();\n }\n } else if (i === low && contains(this, beginning)) {\n left = v;\n left.command = Two.Commands.move;\n if (!closed && left.controls) {\n left.controls.left.clear();\n }\n }\n\n }\n\n }\n\n // Prepend the trimmed point if necessary.\n if (low > 0 && !left) {\n\n i = low - 1;\n\n v = this._renderer.collection[i];\n v.copy(this._collection[i]);\n this.getPointAt(beginning, v);\n v.command = Two.Commands.move;\n this._renderer.vertices.unshift(v);\n\n left = v;\n next = this._collection[i + 1];\n\n // Project control over the percentage `t`\n // of the in-between point\n if (next && next.controls) {\n\n v.controls.left.clear();\n\n this._renderer.collection[i + 1].controls.left\n .copy(next.controls.left)\n .lerp(Two.Vector.zero, v.t);\n\n }\n\n }\n\n }\n\n Two.Shape.prototype._update.apply(this, arguments);\n\n return this;\n\n },\n\n /**\n * @name Two.Path#flagReset\n * @function\n * @private\n * @description Called internally to reset all flags. Ensures that only properties that change are updated before being sent to the renderer.\n */\n flagReset: function() {\n\n this._flagVertices = this._flagFill = this._flagStroke =\n this._flagLinewidth = this._flagOpacity = this._flagVisible =\n this._flagCap = this._flagJoin = this._flagMiter =\n this._flagClassName = this._flagClip = false;\n\n Two.Shape.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n Path.MakeObservable(Path.prototype);\n\n // Utility functions\n\n function contains(path, t) {\n\n if (t === 0 || t === 1) {\n return true;\n }\n\n var length = path._length;\n var target = length * t;\n var elapsed = 0;\n\n for (var i = 0; i < path._lengths.length; i++) {\n var dist = path._lengths[i];\n if (elapsed >= target) {\n return target - elapsed >= 0;\n }\n elapsed += dist;\n }\n\n return false;\n\n }\n\n /**\n * @protected\n * @param {Two.Path} path - The path to analyze against.\n * @param {Number} target - The target length at which to find an anchor.\n * @returns {Integer}\n * @description Return the id of an anchor based on a target length.\n */\n function getIdByLength(path, target) {\n\n var total = path._length;\n\n if (target <= 0) {\n return 0;\n } else if (target >= total) {\n return path._lengths.length - 1;\n }\n\n for (var i = 0, sum = 0; i < path._lengths.length; i++) {\n\n if (sum + path._lengths[i] >= target) {\n target -= sum;\n return Math.max(i - 1, 0) + target / path._lengths[i];\n }\n\n sum += path._lengths[i];\n\n }\n\n return - 1;\n\n }\n\n function getCurveLength(a, b, limit) {\n // TODO: DRYness\n var x1, x2, x3, x4, y1, y2, y3, y4;\n\n var right = b.controls && b.controls.right;\n var left = a.controls && a.controls.left;\n\n x1 = b.x;\n y1 = b.y;\n x2 = (right || b).x;\n y2 = (right || b).y;\n x3 = (left || a).x;\n y3 = (left || a).y;\n x4 = a.x;\n y4 = a.y;\n\n if (right && b._relative) {\n x2 += b.x;\n y2 += b.y;\n }\n\n if (left && a._relative) {\n x3 += a.x;\n y3 += a.y;\n }\n\n return Two.Utils.getCurveLength(x1, y1, x2, y2, x3, y3, x4, y4, limit);\n\n }\n\n function getSubdivisions(a, b, limit) {\n // TODO: DRYness\n var x1, x2, x3, x4, y1, y2, y3, y4;\n\n var right = b.controls && b.controls.right;\n var left = a.controls && a.controls.left;\n\n x1 = b.x;\n y1 = b.y;\n x2 = (right || b).x;\n y2 = (right || b).y;\n x3 = (left || a).x;\n y3 = (left || a).y;\n x4 = a.x;\n y4 = a.y;\n\n if (right && b._relative) {\n x2 += b.x;\n y2 += b.y;\n }\n\n if (left && a._relative) {\n x3 += a.x;\n y3 += a.y;\n }\n\n return Two.Utils.subdivide(x1, y1, x2, y2, x3, y3, x4, y4, limit);\n\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path;\n var _ = Two.Utils;\n\n var Line = Two.Line = function(x1, y1, x2, y2) {\n\n var width = x2 - x1;\n var height = y2 - y1;\n\n var w2 = width / 2;\n var h2 = height / 2;\n\n Path.call(this, [\n new Two.Anchor(x1, y1),\n new Two.Anchor(x2, y2)\n ]);\n\n this.vertices[0].command = Two.Commands.move;\n this.vertices[1].command = Two.Commands.line;\n\n this.automatic = false;\n\n };\n\n _.extend(Line.prototype, Path.prototype);\n Line.prototype.constructor = Line;\n\n Path.MakeObservable(Line.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path;\n var _ = Two.Utils;\n\n var Rectangle = Two.Rectangle = function(x, y, width, height) {\n\n Path.call(this, [\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor()\n // new Two.Anchor() // TODO: Figure out how to handle this for `beginning` / `ending` animations\n ], true, false, true);\n\n this.width = width;\n this.height = height;\n\n this.origin = new Two.Vector();\n this.translation.set(x, y);\n\n this._update();\n\n };\n\n _.extend(Rectangle, {\n\n Properties: ['width', 'height'],\n\n MakeObservable: function(object) {\n\n Path.MakeObservable(object);\n _.each(Rectangle.Properties, Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'origin', {\n enumerable: true,\n get: function() {\n return this._origin;\n },\n set: function(v) {\n if (this._origin) {\n this._origin.unbind(Two.Events.change, this._renderer.flagVertices);\n }\n this._origin = v;\n this._origin.bind(Two.Events.change, this._renderer.flagVertices);\n this._renderer.flagVertices();\n }\n });\n\n }\n\n });\n\n _.extend(Rectangle.prototype, Path.prototype, {\n\n _width: 0,\n _height: 0,\n\n _flagWidth: 0,\n _flagHeight: 0,\n\n _origin: null,\n\n constructor: Rectangle,\n\n _update: function() {\n\n if (this._flagWidth || this._flagHeight) {\n\n var xr = this._width / 2;\n var yr = this._height / 2;\n\n this.vertices[0].set(-xr, -yr).add(this._origin).command = Two.Commands.move;\n this.vertices[1].set(xr, -yr).add(this._origin).command = Two.Commands.line;\n this.vertices[2].set(xr, yr).add(this._origin).command = Two.Commands.line;\n this.vertices[3].set(-xr, yr).add(this._origin).command = Two.Commands.line;\n // FYI: Two.Sprite and Two.ImageSequence have 4 verts\n if (this.vertices[4]) {\n this.vertices[4].set(-xr, -yr).add(this._origin).command = Two.Commands.line;\n }\n\n }\n\n Path.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagWidth = this._flagHeight = false;\n Path.prototype.flagReset.call(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Rectangle(0, 0, this.width, this.height);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Rectangle.MakeObservable(Rectangle.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, TWO_PI = Math.PI * 2, HALF_PI = Math.PI / 2;\n var cos = Math.cos, sin = Math.sin;\n var _ = Two.Utils;\n\n // Circular coefficient\n var c = (4 / 3) * Math.tan(Math.PI / 8);\n\n var Ellipse = Two.Ellipse = function(ox, oy, rx, ry, resolution) {\n\n if (!_.isNumber(ry)) {\n ry = rx;\n }\n\n var amount = resolution || 5;\n\n var points = _.map(_.range(amount), function(i) {\n return new Two.Anchor();\n }, this);\n\n Path.call(this, points, true, true, true);\n\n this.width = rx * 2;\n this.height = ry * 2;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(Ellipse, {\n\n Properties: ['width', 'height'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(Ellipse.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(Ellipse.prototype, Path.prototype, {\n\n _width: 0,\n _height: 0,\n\n _flagWidth: false,\n _flagHeight: false,\n\n constructor: Ellipse,\n\n _update: function() {\n\n if (this._flagWidth || this._flagHeight) {\n for (var i = 0, l = this.vertices.length, last = l - 1; i < l; i++) {\n\n var pct = i / last;\n var theta = pct * TWO_PI;\n\n var rx = this._width / 2;\n var ry = this._height / 2;\n var ct = cos(theta);\n var st = sin(theta);\n\n var x = rx * cos(theta);\n var y = ry * sin(theta);\n\n var lx = i === 0 ? 0 : rx * c * cos(theta - HALF_PI);\n var ly = i === 0 ? 0 : ry * c * sin(theta - HALF_PI);\n\n var rx = i === last ? 0 : rx * c * cos(theta + HALF_PI);\n var ry = i === last ? 0 : ry * c * sin(theta + HALF_PI);\n\n var v = this.vertices[i];\n\n v.command = i === 0 ? Two.Commands.move : Two.Commands.curve;\n v.set(x, y);\n v.controls.left.set(lx, ly);\n v.controls.right.set(rx, ry);\n\n }\n }\n\n Path.prototype._update.call(this);\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagWidth = this._flagHeight = false;\n\n Path.prototype.flagReset.call(this);\n return this;\n\n },\n\n clone: function(parent) {\n\n var rx = this.width / 2;\n var ry = this.height / 2;\n var resolution = this.vertices.length;\n var clone = new Ellipse(0, 0, rx, ry, resolution);\n\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Ellipse.MakeObservable(Ellipse.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, TWO_PI = Math.PI * 2, HALF_PI = Math.PI / 2;\n var cos = Math.cos, sin = Math.sin;\n var _ = Two.Utils;\n\n // Circular coefficient\n var c = (4 / 3) * Math.tan(Math.PI / 8);\n\n var Circle = Two.Circle = function(ox, oy, r, res) {\n\n var amount = res || 5;\n\n var points = _.map(_.range(amount), function(i) {\n return new Two.Anchor();\n }, this);\n\n Path.call(this, points, true, true, true);\n\n this.radius = r;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(Circle, {\n\n Properties: ['radius'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(Circle.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(Circle.prototype, Path.prototype, {\n\n _radius: 0,\n _flagRadius: false,\n\n constructor: Circle,\n\n _update: function() {\n\n if (this._flagRadius) {\n for (var i = 0, l = this.vertices.length, last = l - 1; i < l; i++) {\n\n var pct = i / last;\n var theta = pct * TWO_PI;\n\n var radius = this._radius;\n var ct = cos(theta);\n var st = sin(theta);\n var rc = radius * c;\n\n var x = radius * cos(theta);\n var y = radius * sin(theta);\n\n var lx = i === 0 ? 0 : rc * cos(theta - HALF_PI);\n var ly = i === 0 ? 0 : rc * sin(theta - HALF_PI);\n\n var rx = i === last ? 0 : rc * cos(theta + HALF_PI);\n var ry = i === last ? 0 : rc * sin(theta + HALF_PI);\n\n var v = this.vertices[i];\n\n v.command = i === 0 ? Two.Commands.move : Two.Commands.curve;\n v.set(x, y);\n v.controls.left.set(lx, ly);\n v.controls.right.set(rx, ry);\n\n }\n }\n\n Path.prototype._update.call(this);\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagRadius = false;\n\n Path.prototype.flagReset.call(this);\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Circle(0, 0, this.radius, this.vertices.length);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Circle.MakeObservable(Circle.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, TWO_PI = Math.PI * 2, cos = Math.cos, sin = Math.sin;\n var _ = Two.Utils;\n\n var Polygon = Two.Polygon = function(ox, oy, r, sides) {\n\n sides = Math.max(sides || 0, 3);\n\n Path.call(this);\n\n this.closed = true;\n this.automatic = false;\n\n this.width = r * 2;\n this.height = r * 2;\n this.sides = sides;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(Polygon, {\n\n Properties: ['width', 'height', 'sides'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(Polygon.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(Polygon.prototype, Path.prototype, {\n\n _width: 0,\n _height: 0,\n _sides: 0,\n\n _flagWidth: false,\n _flagHeight: false,\n _flagSides: false,\n\n constructor: Polygon,\n\n _update: function() {\n\n if (this._flagWidth || this._flagHeight || this._flagSides) {\n\n var sides = this._sides;\n var amount = sides + 1;\n var length = this.vertices.length;\n\n if (length > sides) {\n this.vertices.splice(sides - 1, length - sides);\n length = sides;\n }\n\n for (var i = 0; i < amount; i++) {\n\n var pct = (i + 0.5) / sides;\n var theta = TWO_PI * pct + Math.PI / 2;\n var x = this._width * cos(theta) / 2;\n var y = this._height * sin(theta) / 2;\n\n if (i >= length) {\n this.vertices.push(new Two.Anchor(x, y));\n } else {\n this.vertices[i].set(x, y);\n }\n\n this.vertices[i].command = i === 0\n ? Two.Commands.move : Two.Commands.line;\n\n }\n\n }\n\n Path.prototype._update.call(this);\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagWidth = this._flagHeight = this._flagSides = false;\n Path.prototype.flagReset.call(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Polygon(0, 0, this.radius, this.sides);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Polygon.MakeObservable(Polygon.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, PI = Math.PI, TWO_PI = Math.PI * 2, HALF_PI = Math.PI / 2,\n cos = Math.cos, sin = Math.sin, abs = Math.abs, _ = Two.Utils;\n\n var ArcSegment = Two.ArcSegment = function(ox, oy, ir, or, sa, ea, res) {\n\n var amount = res || (Two.Resolution * 3);\n var points = _.map(_.range(amount), function() {\n return new Two.Anchor();\n });\n\n Path.call(this, points, true, false, true);\n\n this.innerRadius = ir;\n this.outerRadius = or;\n\n this.startAngle = sa;\n this.endAngle = ea;\n\n this._update();\n this.translation.set(ox, oy);\n\n }\n\n _.extend(ArcSegment, {\n\n Properties: ['startAngle', 'endAngle', 'innerRadius', 'outerRadius'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(ArcSegment.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(ArcSegment.prototype, Path.prototype, {\n\n _flagStartAngle: false,\n _flagEndAngle: false,\n _flagInnerRadius: false,\n _flagOuterRadius: false,\n\n _startAngle: 0,\n _endAngle: TWO_PI,\n _innerRadius: 0,\n _outerRadius: 0,\n\n constructor: ArcSegment,\n\n _update: function() {\n\n if (this._flagStartAngle || this._flagEndAngle || this._flagInnerRadius\n || this._flagOuterRadius) {\n\n var sa = this._startAngle;\n var ea = this._endAngle;\n\n var ir = this._innerRadius;\n var or = this._outerRadius;\n\n var connected = mod(sa, TWO_PI) === mod(ea, TWO_PI);\n var punctured = ir > 0;\n\n var vertices = this.vertices;\n var length = (punctured ? vertices.length / 2 : vertices.length);\n var command, id = 0;\n\n if (connected) {\n length--;\n } else if (!punctured) {\n length -= 2;\n }\n\n /**\n * Outer Circle\n */\n for (var i = 0, last = length - 1; i < length; i++) {\n\n var pct = i / last;\n var v = vertices[id];\n var theta = pct * (ea - sa) + sa;\n var step = (ea - sa) / length;\n\n var x = or * Math.cos(theta);\n var y = or * Math.sin(theta);\n\n switch (i) {\n case 0:\n command = Two.Commands.move;\n break;\n default:\n command = Two.Commands.curve;\n }\n\n v.command = command;\n v.x = x;\n v.y = y;\n v.controls.left.clear();\n v.controls.right.clear();\n\n if (v.command === Two.Commands.curve) {\n var amp = or * step / Math.PI;\n v.controls.left.x = amp * Math.cos(theta - HALF_PI);\n v.controls.left.y = amp * Math.sin(theta - HALF_PI);\n v.controls.right.x = amp * Math.cos(theta + HALF_PI);\n v.controls.right.y = amp * Math.sin(theta + HALF_PI);\n if (i === 1) {\n v.controls.left.multiplyScalar(2);\n }\n if (i === last) {\n v.controls.right.multiplyScalar(2);\n }\n }\n\n id++;\n\n }\n\n if (punctured) {\n\n if (connected) {\n vertices[id].command = Two.Commands.close;\n id++;\n } else {\n length--;\n last = length - 1;\n }\n\n /**\n * Inner Circle\n */\n for (i = 0; i < length; i++) {\n\n pct = i / last;\n v = vertices[id];\n theta = (1 - pct) * (ea - sa) + sa;\n step = (ea - sa) / length;\n\n x = ir * Math.cos(theta);\n y = ir * Math.sin(theta);\n command = Two.Commands.curve;\n if (i <= 0) {\n command = connected ? Two.Commands.move : Two.Commands.line;\n }\n\n v.command = command;\n v.x = x;\n v.y = y;\n v.controls.left.clear();\n v.controls.right.clear();\n\n if (v.command === Two.Commands.curve) {\n amp = ir * step / Math.PI;\n v.controls.left.x = amp * Math.cos(theta + HALF_PI);\n v.controls.left.y = amp * Math.sin(theta + HALF_PI);\n v.controls.right.x = amp * Math.cos(theta - HALF_PI);\n v.controls.right.y = amp * Math.sin(theta - HALF_PI);\n if (i === 1) {\n v.controls.left.multiplyScalar(2);\n }\n if (i === last) {\n v.controls.right.multiplyScalar(2);\n }\n }\n\n id++;\n\n }\n\n // Final Point\n vertices[id].copy(vertices[0]);\n vertices[id].command = Two.Commands.line;\n\n } else if (!connected) {\n\n vertices[id].command = Two.Commands.line;\n vertices[id].x = 0;\n vertices[id].y = 0;\n id++;\n\n // Final Point\n vertices[id].copy(vertices[0]);\n vertices[id].command = Two.Commands.line;\n\n }\n\n }\n\n Path.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n Path.prototype.flagReset.call(this);\n\n this._flagStartAngle = this._flagEndAngle\n = this._flagInnerRadius = this._flagOuterRadius = false;\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var ir = this.innerRadius;\n var or = this.outerradius;\n var sa = this.startAngle;\n var ea = this.endAngle;\n var resolution = this.vertices.length;\n\n var clone = new ArcSegment(0, 0, ir, or, sa, ea, resolution);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n ArcSegment.MakeObservable(ArcSegment.prototype);\n\n function mod(v, l) {\n while (v < 0) {\n v += l;\n }\n return v % l;\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path, TWO_PI = Math.PI * 2, cos = Math.cos, sin = Math.sin;\n var _ = Two.Utils;\n\n var Star = Two.Star = function(ox, oy, ir, or, sides) {\n\n if (arguments.length <= 3) {\n or = ir;\n ir = or / 2;\n }\n\n if (!_.isNumber(sides) || sides <= 0) {\n sides = 5;\n }\n\n var length = sides * 2;\n\n Path.call(this);\n this.closed = true;\n this.automatic = false;\n\n this.innerRadius = ir;\n this.outerRadius = or;\n this.sides = sides;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(Star, {\n\n Properties: ['innerRadius', 'outerRadius', 'sides'],\n\n MakeObservable: function(obj) {\n\n Path.MakeObservable(obj);\n _.each(Star.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n });\n\n _.extend(Star.prototype, Path.prototype, {\n\n _innerRadius: 0,\n _outerRadius: 0,\n _sides: 0,\n\n _flagInnerRadius: false,\n _flagOuterRadius: false,\n _flagSides: false,\n\n constructor: Star,\n\n _update: function() {\n\n if (this._flagInnerRadius || this._flagOuterRadius || this._flagSides) {\n\n var sides = this._sides * 2;\n var amount = sides + 1;\n var length = this.vertices.length;\n\n if (length > sides) {\n this.vertices.splice(sides - 1, length - sides);\n length = sides;\n }\n\n for (var i = 0; i < amount; i++) {\n\n var pct = (i + 0.5) / sides;\n var theta = TWO_PI * pct;\n var r = (!(i % 2) ? this._innerRadius : this._outerRadius) / 2;\n var x = r * cos(theta);\n var y = r * sin(theta);\n\n if (i >= length) {\n this.vertices.push(new Two.Anchor(x, y));\n } else {\n this.vertices[i].set(x, y);\n }\n\n this.vertices[i].command = i === 0\n ? Two.Commands.move : Two.Commands.line;\n\n }\n\n }\n\n Path.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagInnerRadius = this._flagOuterRadius = this._flagSides = false;\n Path.prototype.flagReset.call(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var ir = this.innerRadius;\n var or = this.outerRadius;\n var sides = this.sides;\n\n var clone = new Star(0, 0, ir, or, sides);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n Star.MakeObservable(Star.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var Path = Two.Path;\n var _ = Two.Utils;\n\n var RoundedRectangle = Two.RoundedRectangle = function(ox, oy, width, height, radius) {\n\n if (_.isUndefined(radius)) {\n radius = Math.floor(Math.min(width, height) / 12);\n }\n\n var amount = 10;\n\n var points = _.map(_.range(amount), function(i) {\n return new Two.Anchor(0, 0, 0, 0, 0, 0,\n i === 0 ? Two.Commands.move : Two.Commands.curve);\n });\n\n // points[points.length - 1].command = Two.Commands.close;\n\n Path.call(this, points);\n\n this.closed = true;\n this.automatic = false;\n\n this._renderer.flagRadius = _.bind(RoundedRectangle.FlagRadius, this);\n\n this.width = width;\n this.height = height;\n this.radius = radius;\n\n this._update();\n this.translation.set(ox, oy);\n\n };\n\n _.extend(RoundedRectangle, {\n\n Properties: ['width', 'height'],\n\n FlagRadius: function() {\n this._flagRadius = true;\n },\n\n MakeObservable: function(object) {\n\n Path.MakeObservable(object);\n _.each(RoundedRectangle.Properties, Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'radius', {\n enumerable: true,\n get: function() {\n return this._radius;\n },\n set: function(v) {\n\n if (this._radius instanceof Two.Vector) {\n this._radius.unbind(Two.Events.change, this._renderer.flagRadius);\n }\n\n this._radius = v;\n\n if (this._radius instanceof Two.Vector) {\n this._radius.bind(Two.Events.change, this._renderer.flagRadius);\n }\n\n this._flagRadius = true;\n\n }\n });\n\n }\n\n });\n\n _.extend(RoundedRectangle.prototype, Path.prototype, {\n\n _width: 0,\n _height: 0,\n _radius: 0,\n\n _flagWidth: false,\n _flagHeight: false,\n _flagRadius: false,\n\n constructor: RoundedRectangle,\n\n _update: function() {\n\n if (this._flagWidth || this._flagHeight || this._flagRadius) {\n\n var width = this._width;\n var height = this._height;\n\n var rx, ry;\n\n if (this._radius instanceof Two.Vector) {\n rx = this._radius.x;\n ry = this._radius.y;\n } else {\n rx = this._radius;\n ry = this._radius;\n }\n\n var v;\n var w = width / 2;\n var h = height / 2;\n\n v = this.vertices[0];\n v.x = - (w - rx);\n v.y = - h;\n\n // Upper Right Corner\n\n v = this.vertices[1];\n v.x = (w - rx);\n v.y = - h;\n v.controls.left.clear();\n v.controls.right.x = rx;\n v.controls.right.y = 0;\n\n v = this.vertices[2];\n v.x = w;\n v.y = - (h - ry);\n v.controls.right.clear();\n v.controls.left.clear();\n\n // Bottom Right Corner\n\n v = this.vertices[3];\n v.x = w;\n v.y = (h - ry);\n v.controls.left.clear();\n v.controls.right.x = 0;\n v.controls.right.y = ry;\n\n v = this.vertices[4];\n v.x = (w - rx);\n v.y = h;\n v.controls.right.clear();\n v.controls.left.clear();\n\n // Bottom Left Corner\n\n v = this.vertices[5];\n v.x = - (w - rx);\n v.y = h;\n v.controls.left.clear();\n v.controls.right.x = - rx;\n v.controls.right.y = 0;\n\n v = this.vertices[6];\n v.x = - w;\n v.y = (h - ry);\n v.controls.left.clear();\n v.controls.right.clear();\n\n // Upper Left Corner\n\n v = this.vertices[7];\n v.x = - w;\n v.y = - (h - ry);\n v.controls.left.clear();\n v.controls.right.x = 0;\n v.controls.right.y = - ry;\n\n v = this.vertices[8];\n v.x = - (w - rx);\n v.y = - h;\n v.controls.left.clear();\n v.controls.right.clear();\n\n v = this.vertices[9];\n v.copy(this.vertices[8]);\n\n }\n\n Path.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagWidth = this._flagHeight = this._flagRadius = false;\n Path.prototype.flagReset.call(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var width = this.width;\n var height = this.height;\n var radius = this.radius;\n\n var clone = new RoundedRectangle(0, 0, width, height, radius);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Path.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n }\n\n });\n\n RoundedRectangle.MakeObservable(RoundedRectangle.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var root = Two.root;\n var getComputedMatrix = Two.Utils.getComputedMatrix;\n var _ = Two.Utils;\n\n var canvas = getCanvas();\n var ctx = canvas.getContext('2d');\n\n /**\n * @class\n * @name Two.Text\n * @param {String} message - The String to be rendered to the scene.\n * @param {Number} [x=0] - The position in the x direction for the object.\n * @param {Number} [y=0] - The position in the y direction for the object.\n * @param {Object} [styles] - An object where styles are applied. Attribute must exist in Two.Text.Properties.\n */\n var Text = Two.Text = function(message, x, y, styles) {\n\n Two.Shape.call(this);\n\n this._renderer.type = 'text';\n this._renderer.flagFill = _.bind(Two.Text.FlagFill, this);\n this._renderer.flagStroke = _.bind(Two.Text.FlagStroke, this);\n\n this.value = message;\n\n if (_.isNumber(x)) {\n this.translation.x = x;\n }\n if (_.isNumber(y)) {\n this.translation.y = y;\n }\n\n this.dashes = [];\n\n if (!_.isObject(styles)) {\n return this;\n }\n\n _.each(Two.Text.Properties, function(property) {\n\n if (property in styles) {\n this[property] = styles[property];\n }\n\n }, this);\n\n };\n\n _.extend(Two.Text, {\n\n Ratio: 0.6,\n\n Properties: [\n 'value', 'family', 'size', 'leading', 'alignment', 'linewidth', 'style',\n 'className', 'weight', 'decoration', 'baseline', 'opacity', 'visible',\n 'fill', 'stroke',\n ],\n\n FlagFill: function() {\n this._flagFill = true;\n },\n\n FlagStroke: function() {\n this._flagStroke = true;\n },\n\n MakeObservable: function(object) {\n\n Two.Shape.MakeObservable(object);\n\n _.each(Two.Text.Properties.slice(0, 13), Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'fill', {\n enumerable: true,\n get: function() {\n return this._fill;\n },\n set: function(f) {\n\n if (this._fill instanceof Two.Gradient\n || this._fill instanceof Two.LinearGradient\n || this._fill instanceof Two.RadialGradient\n || this._fill instanceof Two.Texture) {\n this._fill.unbind(Two.Events.change, this._renderer.flagFill);\n }\n\n this._fill = f;\n this._flagFill = true;\n\n if (this._fill instanceof Two.Gradient\n || this._fill instanceof Two.LinearGradient\n || this._fill instanceof Two.RadialGradient\n || this._fill instanceof Two.Texture) {\n this._fill.bind(Two.Events.change, this._renderer.flagFill);\n }\n\n }\n });\n\n Object.defineProperty(object, 'stroke', {\n enumerable: true,\n get: function() {\n return this._stroke;\n },\n set: function(f) {\n\n if (this._stroke instanceof Two.Gradient\n || this._stroke instanceof Two.LinearGradient\n || this._stroke instanceof Two.RadialGradient\n || this._stroke instanceof Two.Texture) {\n this._stroke.unbind(Two.Events.change, this._renderer.flagStroke);\n }\n\n this._stroke = f;\n this._flagStroke = true;\n\n if (this._stroke instanceof Two.Gradient\n || this._stroke instanceof Two.LinearGradient\n || this._stroke instanceof Two.RadialGradient\n || this._stroke instanceof Two.Texture) {\n this._stroke.bind(Two.Events.change, this._renderer.flagStroke);\n }\n\n }\n });\n\n Object.defineProperty(object, 'clip', {\n enumerable: true,\n get: function() {\n return this._clip;\n },\n set: function(v) {\n this._clip = v;\n this._flagClip = true;\n }\n });\n\n }\n\n });\n\n _.extend(Two.Text.prototype, Two.Shape.prototype, {\n\n // Flags\n // http://en.wikipedia.org/wiki/Flag\n\n _flagValue: true,\n _flagFamily: true,\n _flagSize: true,\n _flagLeading: true,\n _flagAlignment: true,\n _flagBaseline: true,\n _flagStyle: true,\n _flagWeight: true,\n _flagDecoration: true,\n\n _flagFill: true,\n _flagStroke: true,\n _flagLinewidth: true,\n _flagOpacity: true,\n _flagClassName: true,\n _flagVisible: true,\n\n _flagClip: false,\n\n // Underlying Properties\n\n _value: '',\n _family: 'sans-serif',\n _size: 13,\n _leading: 17,\n _alignment: 'center',\n _baseline: 'middle',\n _style: 'normal',\n _weight: 500,\n _decoration: 'none',\n\n _fill: '#000',\n _stroke: 'transparent',\n _linewidth: 1,\n _opacity: 1,\n _className: '',\n _visible: true,\n\n _clip: false,\n\n constructor: Two.Text,\n\n remove: function() {\n\n if (!this.parent) {\n return this;\n }\n\n this.parent.remove(this);\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Two.Text(this.value);\n clone.translation.copy(this.translation);\n clone.rotation = this.rotation;\n clone.scale = this.scale;\n\n _.each(Two.Text.Properties, function(property) {\n clone[property] = this[property];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone._update();\n\n },\n\n toObject: function() {\n\n var result = {\n translation: this.translation.toObject(),\n rotation: this.rotation,\n scale: this.scale\n };\n\n _.each(Two.Text.Properties, function(property) {\n result[property] = this[property];\n }, this);\n\n return result;\n\n },\n\n noStroke: function() {\n this.stroke = 'transparent';\n return this;\n },\n\n noFill: function() {\n this.fill = 'transparent';\n return this;\n },\n\n // /**\n // * A shim to not break `getBoundingClientRect` calls. TODO: Implement a\n // * way to calculate proper bounding boxes of `Two.Text`.\n // */\n getBoundingClientRect: function(shallow) {\n\n var matrix, border, l, x, y, i, v;\n var left, right, top, bottom;\n\n // TODO: Update this to not __always__ update. Just when it needs to.\n this._update(true);\n\n matrix = !!shallow ? this._matrix : getComputedMatrix(this);\n\n var height = this.leading;\n var width = this.value.length * this.size * Text.Ratio;\n\n switch (this.alignment) {\n case 'left':\n left = 0;\n right = width;\n break;\n case 'right':\n left = - width;\n right = 0;\n break;\n default:\n left = - width / 2;\n right = width / 2;\n }\n\n switch (this.baseline) {\n case 'top':\n top = 0;\n bottom = height;\n break;\n case 'bottom':\n top = - height;\n bottom = 0;\n break;\n default:\n top = - height / 2;\n bottom = height / 2;\n }\n\n v = matrix.multiply(left, top, 1);\n\n top = v.y;\n left = v.x;\n\n v = matrix.multiply(right, bottom, 1);\n\n right = v.x;\n bottom = v.y;\n\n return {\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n width: right - left,\n height: bottom - top\n };\n\n },\n\n flagReset: function() {\n\n this._flagValue = this._flagFamily = this._flagSize =\n this._flagLeading = this._flagAlignment = this._flagFill =\n this._flagStroke = this._flagLinewidth = this._flagOpacity =\n this._flagVisible = this._flagClip = this._flagDecoration =\n this._flagClassName = this._flagBaseline = false;\n\n Two.Shape.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n Two.Text.MakeObservable(Two.Text.prototype);\n\n function getCanvas() {\n if (root.document) {\n return root.document.createElement('canvas');\n } else {\n console.warn('Two.js: Unable to create canvas for Two.Text measurements.');\n return {\n getContext: _.identity\n }\n }\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n var Stop = Two.Stop = function(offset, color, opacity) {\n\n this._renderer = {};\n this._renderer.type = 'stop';\n\n this.offset = _.isNumber(offset) ? offset\n : Stop.Index <= 0 ? 0 : 1;\n\n this.opacity = _.isNumber(opacity) ? opacity : 1;\n\n this.color = _.isString(color) ? color\n : Stop.Index <= 0 ? '#fff' : '#000';\n\n Stop.Index = (Stop.Index + 1) % 2;\n\n };\n\n _.extend(Stop, {\n\n Index: 0,\n\n Properties: [\n 'offset',\n 'opacity',\n 'color'\n ],\n\n MakeObservable: function(object) {\n\n _.each(Stop.Properties, function(property) {\n\n var object = this;\n var secret = '_' + property;\n var flag = '_flag' + property.charAt(0).toUpperCase() + property.slice(1);\n\n Object.defineProperty(object, property, {\n enumerable: true,\n get: function() {\n return this[secret];\n },\n set: function(v) {\n this[secret] = v;\n this[flag] = true;\n if (this.parent) {\n this.parent._flagStops = true;\n }\n }\n });\n\n }, object);\n\n }\n\n });\n\n _.extend(Stop.prototype, Two.Utils.Events, {\n\n constructor: Stop,\n\n clone: function() {\n\n var clone = new Stop();\n\n _.each(Stop.Properties, function(property) {\n clone[property] = this[property];\n }, this);\n\n return clone;\n\n },\n\n toObject: function() {\n\n var result = {};\n\n _.each(Stop.Properties, function(k) {\n result[k] = this[k];\n }, this);\n\n return result;\n\n },\n\n flagReset: function() {\n\n this._flagOffset = this._flagColor = this._flagOpacity = false;\n\n return this;\n\n }\n\n });\n\n Stop.MakeObservable(Stop.prototype);\n Stop.prototype.constructor = Stop;\n\n var Gradient = Two.Gradient = function(stops) {\n\n this._renderer = {};\n this._renderer.type = 'gradient';\n\n this.id = Two.Identifier + Two.uniqueId();\n this.classList = [];\n\n this._renderer.flagStops = _.bind(Gradient.FlagStops, this);\n this._renderer.bindStops = _.bind(Gradient.BindStops, this);\n this._renderer.unbindStops = _.bind(Gradient.UnbindStops, this);\n\n this.spread = 'pad';\n\n this.stops = stops;\n\n };\n\n _.extend(Gradient, {\n\n Stop: Stop,\n\n Properties: [\n 'spread'\n ],\n\n MakeObservable: function(object) {\n\n _.each(Gradient.Properties, Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'stops', {\n\n enumerable: true,\n\n get: function() {\n return this._stops;\n },\n\n set: function(stops) {\n\n var updateStops = this._renderer.flagStops;\n var bindStops = this._renderer.bindStops;\n var unbindStops = this._renderer.unbindStops;\n\n // Remove previous listeners\n if (this._stops) {\n this._stops\n .unbind(Two.Events.insert, bindStops)\n .unbind(Two.Events.remove, unbindStops);\n }\n\n // Create new Collection with copy of Stops\n this._stops = new Two.Utils.Collection((stops || []).slice(0));\n\n // Listen for Collection changes and bind / unbind\n this._stops\n .bind(Two.Events.insert, bindStops)\n .bind(Two.Events.remove, unbindStops);\n\n // Bind Initial Stops\n bindStops(this._stops);\n\n }\n\n });\n\n },\n\n FlagStops: function() {\n this._flagStops = true;\n },\n\n BindStops: function(items) {\n\n // This function is called a lot\n // when importing a large SVG\n var i = items.length;\n while(i--) {\n items[i].bind(Two.Events.change, this._renderer.flagStops);\n items[i].parent = this;\n }\n\n this._renderer.flagStops();\n\n },\n\n UnbindStops: function(items) {\n\n var i = items.length;\n while(i--) {\n items[i].unbind(Two.Events.change, this._renderer.flagStops);\n delete items[i].parent;\n }\n\n this._renderer.flagStops();\n\n }\n\n });\n\n _.extend(Gradient.prototype, Two.Utils.Events, {\n\n _flagStops: false,\n _flagSpread: false,\n\n clone: function(parent) {\n\n var stops = _.map(this.stops, function(s) {\n return s.clone();\n });\n\n var clone = new Gradient(stops);\n\n _.each(Two.Gradient.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n toObject: function() {\n\n var result = {\n stops: _.map(this.stops, function(s) {\n return s.toObject();\n })\n };\n\n _.each(Gradient.Properties, function(k) {\n result[k] = this[k];\n }, this);\n\n return result;\n\n },\n\n _update: function() {\n\n if (this._flagSpread || this._flagStops) {\n this.trigger(Two.Events.change);\n }\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagSpread = this._flagStops = false;\n\n return this;\n\n }\n\n });\n\n Gradient.MakeObservable(Gradient.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n var LinearGradient = Two.LinearGradient = function(x1, y1, x2, y2, stops) {\n\n Two.Gradient.call(this, stops);\n\n this._renderer.type = 'linear-gradient';\n\n var flagEndPoints = _.bind(LinearGradient.FlagEndPoints, this);\n this.left = new Two.Vector().bind(Two.Events.change, flagEndPoints);\n this.right = new Two.Vector().bind(Two.Events.change, flagEndPoints);\n\n if (_.isNumber(x1)) {\n this.left.x = x1;\n }\n if (_.isNumber(y1)) {\n this.left.y = y1;\n }\n if (_.isNumber(x2)) {\n this.right.x = x2;\n }\n if (_.isNumber(y2)) {\n this.right.y = y2;\n }\n\n };\n\n _.extend(LinearGradient, {\n\n Stop: Two.Gradient.Stop,\n\n MakeObservable: function(object) {\n Two.Gradient.MakeObservable(object);\n },\n\n FlagEndPoints: function() {\n this._flagEndPoints = true;\n }\n\n });\n\n _.extend(LinearGradient.prototype, Two.Gradient.prototype, {\n\n _flagEndPoints: false,\n\n constructor: LinearGradient,\n\n clone: function(parent) {\n\n var stops = _.map(this.stops, function(stop) {\n return stop.clone();\n });\n\n var clone = new LinearGradient(this.left._x, this.left._y,\n this.right._x, this.right._y, stops);\n\n _.each(Two.Gradient.Properties, function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n toObject: function() {\n\n var result = Two.Gradient.prototype.toObject.call(this);\n\n result.left = this.left.toObject();\n result.right = this.right.toObject();\n\n return result;\n\n },\n\n _update: function() {\n\n if (this._flagEndPoints || this._flagSpread || this._flagStops) {\n this.trigger(Two.Events.change);\n }\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagEndPoints = false;\n\n Two.Gradient.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n LinearGradient.MakeObservable(LinearGradient.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n\n var RadialGradient = Two.RadialGradient = function(cx, cy, r, stops, fx, fy) {\n\n Two.Gradient.call(this, stops);\n\n this._renderer.type = 'radial-gradient';\n\n this.center = new Two.Vector()\n .bind(Two.Events.change, _.bind(function() {\n this._flagCenter = true;\n }, this));\n\n this.radius = _.isNumber(r) ? r : 20;\n\n this.focal = new Two.Vector()\n .bind(Two.Events.change, _.bind(function() {\n this._flagFocal = true;\n }, this));\n\n if (_.isNumber(cx)) {\n this.center.x = cx;\n }\n if (_.isNumber(cy)) {\n this.center.y = cy;\n }\n\n this.focal.copy(this.center);\n\n if (_.isNumber(fx)) {\n this.focal.x = fx;\n }\n if (_.isNumber(fy)) {\n this.focal.y = fy;\n }\n\n };\n\n _.extend(RadialGradient, {\n\n Stop: Two.Gradient.Stop,\n\n Properties: [\n 'radius'\n ],\n\n MakeObservable: function(object) {\n\n Two.Gradient.MakeObservable(object);\n\n _.each(RadialGradient.Properties, Two.Utils.defineProperty, object);\n\n }\n\n });\n\n _.extend(RadialGradient.prototype, Two.Gradient.prototype, {\n\n _flagRadius: false,\n _flagCenter: false,\n _flagFocal: false,\n\n constructor: RadialGradient,\n\n clone: function(parent) {\n\n var stops = _.map(this.stops, function(stop) {\n return stop.clone();\n });\n\n var clone = new RadialGradient(this.center._x, this.center._y,\n this._radius, stops, this.focal._x, this.focal._y);\n\n _.each(Two.Gradient.Properties.concat(RadialGradient.Properties), function(k) {\n clone[k] = this[k];\n }, this);\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n toObject: function() {\n\n var result = Two.Gradient.prototype.toObject.call(this);\n\n _.each(RadialGradient.Properties, function(k) {\n result[k] = this[k];\n }, this);\n\n result.center = this.center.toObject();\n result.focal = this.focal.toObject();\n\n return result;\n\n },\n\n _update: function() {\n\n if (this._flagRadius || this._flatCenter || this._flagFocal\n || this._flagSpread || this._flagStops) {\n this.trigger(Two.Events.change);\n }\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagRadius = this._flagCenter = this._flagFocal = false;\n\n Two.Gradient.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n RadialGradient.MakeObservable(RadialGradient.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var root = Two.root;\n var _ = Two.Utils;\n var anchor;\n var regex = {\n video: /\\.(mp4|webm|ogg)$/i,\n image: /\\.(jpe?g|png|gif|tiff)$/i,\n effect: /texture|gradient/i\n };\n\n if (root.document) {\n anchor = document.createElement('a');\n }\n\n var Texture = Two.Texture = function(src, callback) {\n\n this._renderer = {};\n this._renderer.type = 'texture';\n this._renderer.flagOffset = _.bind(Texture.FlagOffset, this);\n this._renderer.flagScale = _.bind(Texture.FlagScale, this);\n\n this.id = Two.Identifier + Two.uniqueId();\n this.classList = [];\n\n this.offset = new Two.Vector();\n\n if (_.isFunction(callback)) {\n var loaded = _.bind(function() {\n this.unbind(Two.Events.load, loaded);\n if (_.isFunction(callback)) {\n callback();\n }\n }, this);\n this.bind(Two.Events.load, loaded);\n }\n\n if (_.isString(src)) {\n this.src = src;\n } else if (_.isElement(src)) {\n this.image = src;\n }\n\n this._update();\n\n };\n\n _.extend(Texture, {\n\n Properties: [\n 'src',\n 'loaded',\n 'repeat'\n ],\n\n RegularExpressions: regex,\n\n ImageRegistry: new Two.Registry(),\n\n getAbsoluteURL: function(path) {\n if (!anchor) {\n // TODO: Fix for headless environments\n return path;\n }\n anchor.href = path;\n return anchor.href;\n },\n\n loadHeadlessBuffer: new Function('texture', 'loaded', [\n 'var fs = require(\"fs\");',\n 'var buffer = fs.readFileSync(texture.src);',\n\n 'texture.image.src = buffer;',\n 'loaded();'\n ].join('\\n')),\n\n getImage: function(src) {\n\n var absoluteSrc = Texture.getAbsoluteURL(src);\n\n if (Texture.ImageRegistry.contains(absoluteSrc)) {\n return Texture.ImageRegistry.get(absoluteSrc);\n }\n\n var image;\n\n if (Two.Utils.Image) {\n\n // TODO: Fix for headless environments\n image = new Two.Utils.Image();\n Two.CanvasRenderer.Utils.shim(image, 'img');\n\n } else if (root.document) {\n\n if (regex.video.test(absoluteSrc)) {\n image = document.createElement('video');\n } else {\n image = document.createElement('img');\n }\n\n } else {\n\n console.warn('Two.js: no prototypical image defined for Two.Texture');\n\n }\n\n image.crossOrigin = 'anonymous';\n\n return image;\n\n },\n\n Register: {\n canvas: function(texture, callback) {\n texture._src = '#' + texture.id;\n Texture.ImageRegistry.add(texture.src, texture.image);\n if (_.isFunction(callback)) {\n callback();\n }\n },\n img: function(texture, callback) {\n\n var loaded = function(e) {\n if (_.isFunction(texture.image.removeEventListener)) {\n texture.image.removeEventListener('load', loaded, false);\n texture.image.removeEventListener('error', error, false);\n }\n if (_.isFunction(callback)) {\n callback();\n }\n };\n var error = function(e) {\n if (_.isFunction(texture.image.removeEventListener)) {\n texture.image.removeEventListener('load', loaded, false);\n texture.image.removeEventListener('error', error, false);\n }\n throw new Two.Utils.Error('unable to load ' + texture.src);\n };\n\n if (_.isNumber(texture.image.width) && texture.image.width > 0\n && _.isNumber(texture.image.height) && texture.image.height > 0) {\n loaded();\n } else if (_.isFunction(texture.image.addEventListener)) {\n texture.image.addEventListener('load', loaded, false);\n texture.image.addEventListener('error', error, false);\n }\n\n texture._src = Texture.getAbsoluteURL(texture._src);\n\n if (texture.image && texture.image.getAttribute('two-src')) {\n return;\n }\n\n texture.image.setAttribute('two-src', texture.src);\n Texture.ImageRegistry.add(texture.src, texture.image);\n\n if (Two.Utils.isHeadless) {\n\n Texture.loadHeadlessBuffer(texture, loaded);\n\n } else {\n\n texture.image.src = texture.src;\n\n }\n\n },\n video: function(texture, callback) {\n\n var loaded = function(e) {\n texture.image.removeEventListener('canplaythrough', loaded, false);\n texture.image.removeEventListener('error', error, false);\n texture.image.width = texture.image.videoWidth;\n texture.image.height = texture.image.videoHeight;\n texture.image.play();\n if (_.isFunction(callback)) {\n callback();\n }\n };\n var error = function(e) {\n texture.image.removeEventListener('canplaythrough', loaded, false);\n texture.image.removeEventListener('error', error, false);\n throw new Two.Utils.Error('unable to load ' + texture.src);\n };\n\n texture._src = Texture.getAbsoluteURL(texture._src);\n texture.image.addEventListener('canplaythrough', loaded, false);\n texture.image.addEventListener('error', error, false);\n\n if (texture.image && texture.image.getAttribute('two-src')) {\n return;\n }\n\n if (Two.Utils.isHeadless) {\n throw new Two.Utils.Error('video textures are not implemented in headless environments.');\n return;\n }\n\n texture.image.setAttribute('two-src', texture.src);\n Texture.ImageRegistry.add(texture.src, texture.image);\n texture.image.src = texture.src;\n texture.image.loop = true;\n texture.image.load();\n\n }\n },\n\n load: function(texture, callback) {\n\n var src = texture.src;\n var image = texture.image;\n var tag = image && image.nodeName.toLowerCase();\n\n if (texture._flagImage) {\n if (/canvas/i.test(tag)) {\n Texture.Register.canvas(texture, callback);\n } else {\n texture._src = image.getAttribute('two-src') || image.src;\n Texture.Register[tag](texture, callback);\n }\n }\n\n if (texture._flagSrc) {\n if (!image) {\n texture.image = Texture.getImage(texture.src);\n }\n tag = texture.image.nodeName.toLowerCase();\n Texture.Register[tag](texture, callback);\n }\n\n },\n\n FlagOffset: function() {\n this._flagOffset = true;\n },\n\n FlagScale: function() {\n this._flagScale = true;\n },\n\n MakeObservable: function(object) {\n\n _.each(Texture.Properties, Two.Utils.defineProperty, object);\n\n Object.defineProperty(object, 'image', {\n enumerable: true,\n get: function() {\n return this._image;\n },\n set: function(image) {\n\n var tag = image && image.nodeName.toLowerCase();\n var index;\n\n switch (tag) {\n case 'canvas':\n index = '#' + image.id;\n break;\n default:\n index = image.src;\n }\n\n if (Texture.ImageRegistry.contains(index)) {\n this._image = Texture.ImageRegistry.get(image.src);\n } else {\n this._image = image;\n }\n\n this._flagImage = true;\n\n }\n\n });\n\n Object.defineProperty(object, 'offset', {\n enumerable: true,\n get: function() {\n return this._offset;\n },\n set: function(v) {\n if (this._offset) {\n this._offset.unbind(Two.Events.change, this._renderer.flagOffset);\n }\n this._offset = v;\n this._offset.bind(Two.Events.change, this._renderer.flagOffset);\n this._flagOffset = true;\n }\n });\n\n Object.defineProperty(object, 'scale', {\n enumerable: true,\n get: function() {\n return this._scale;\n },\n set: function(v) {\n\n if (this._scale instanceof Two.Vector) {\n this._scale.unbind(Two.Events.change, this._renderer.flagScale);\n }\n\n this._scale = v;\n\n if (this._scale instanceof Two.Vector) {\n this._scale.bind(Two.Events.change, this._renderer.flagScale);\n }\n\n this._flagScale = true;\n\n }\n });\n\n }\n\n });\n\n _.extend(Texture.prototype, Two.Utils.Events, Two.Shape.prototype, {\n\n _flagSrc: false,\n _flagImage: false,\n _flagVideo: false,\n _flagLoaded: false,\n _flagRepeat: false,\n\n _flagOffset: false,\n _flagScale: false,\n\n _src: '',\n _image: null,\n _loaded: false,\n _repeat: 'no-repeat',\n\n _scale: 1,\n _offset: null,\n\n constructor: Texture,\n\n clone: function() {\n return new Texture(this.src);\n },\n\n toObject: function() {\n return {\n src: this.src,\n image: this.image\n }\n },\n\n _update: function() {\n\n if (this._flagSrc || this._flagImage) {\n\n this.trigger(Two.Events.change);\n\n if (this._flagSrc || this._flagImage) {\n this.loaded = false;\n Texture.load(this, _.bind(function() {\n this.loaded = true;\n this\n .trigger(Two.Events.change)\n .trigger(Two.Events.load);\n }, this));\n }\n\n }\n\n if (this._image && this._image.readyState >= 4) {\n this._flagVideo = true;\n }\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagSrc = this._flagImage = this._flagLoaded\n = this._flagVideo = this._flagScale = this._flagOffset = false;\n\n return this;\n\n }\n\n });\n\n Texture.MakeObservable(Texture.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n var Path = Two.Path;\n var Rectangle = Two.Rectangle;\n\n var Sprite = Two.Sprite = function(path, ox, oy, cols, rows, frameRate) {\n\n Path.call(this, [\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor()\n ], true);\n\n this.noStroke();\n this.noFill();\n\n if (path instanceof Two.Texture) {\n this.texture = path;\n } else if (_.isString(path)) {\n this.texture = new Two.Texture(path);\n }\n\n this.origin = new Two.Vector();\n\n this._update();\n this.translation.set(ox || 0, oy || 0);\n\n if (_.isNumber(cols)) {\n this.columns = cols;\n }\n if (_.isNumber(rows)) {\n this.rows = rows;\n }\n if (_.isNumber(frameRate)) {\n this.frameRate = frameRate;\n }\n\n };\n\n _.extend(Sprite, {\n\n Properties: [\n 'texture', 'columns', 'rows', 'frameRate', 'index'\n ],\n\n MakeObservable: function(obj) {\n\n Rectangle.MakeObservable(obj);\n _.each(Sprite.Properties, Two.Utils.defineProperty, obj);\n\n }\n\n })\n\n _.extend(Sprite.prototype, Rectangle.prototype, {\n\n _flagTexture: false,\n _flagColumns: false,\n _flagRows: false,\n _flagFrameRate: false,\n flagIndex: false,\n\n // Private variables\n _amount: 1,\n _duration: 0,\n _startTime: 0,\n _playing: false,\n _firstFrame: 0,\n _lastFrame: 0,\n _loop: true,\n\n // Exposed through getter-setter\n _texture: null,\n _columns: 1,\n _rows: 1,\n _frameRate: 0,\n _index: 0,\n _origin: null,\n\n constructor: Sprite,\n\n play: function(firstFrame, lastFrame, onLastFrame) {\n\n this._playing = true;\n this._firstFrame = 0;\n this._lastFrame = this.amount - 1;\n this._startTime = _.performance.now();\n\n if (_.isNumber(firstFrame)) {\n this._firstFrame = firstFrame;\n }\n if (_.isNumber(lastFrame)) {\n this._lastFrame = lastFrame;\n }\n if (_.isFunction(onLastFrame)) {\n this._onLastFrame = onLastFrame;\n } else {\n delete this._onLastFrame;\n }\n\n if (this._index !== this._firstFrame) {\n this._startTime -= 1000 * Math.abs(this._index - this._firstFrame)\n / this._frameRate;\n }\n\n return this;\n\n },\n\n pause: function() {\n\n this._playing = false;\n return this;\n\n },\n\n stop: function() {\n\n this._playing = false;\n this._index = 0;\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new Sprite(\n this.texture, this.translation.x, this.translation.y,\n this.columns, this.rows, this.frameRate\n );\n\n if (this.playing) {\n clone.play(this._firstFrame, this._lastFrame);\n clone._loop = this._loop;\n }\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n _update: function() {\n\n var effect = this._texture;\n var cols = this._columns;\n var rows = this._rows;\n\n var width, height, elapsed, amount, duration;\n var index, iw, ih, isRange, frames;\n\n if (this._flagColumns || this._flagRows) {\n this._amount = this._columns * this._rows;\n }\n\n if (this._flagFrameRate) {\n this._duration = 1000 * this._amount / this._frameRate;\n }\n\n if (this._flagTexture) {\n this.fill = this._texture;\n }\n\n if (this._texture.loaded) {\n\n iw = effect.image.width;\n ih = effect.image.height;\n\n width = iw / cols;\n height = ih / rows;\n amount = this._amount;\n\n if (this.width !== width) {\n this.width = width;\n }\n if (this.height !== height) {\n this.height = height;\n }\n\n if (this._playing && this._frameRate > 0) {\n\n if (_.isNaN(this._lastFrame)) {\n this._lastFrame = amount - 1;\n }\n\n // TODO: Offload perf logic to instance of `Two`.\n elapsed = _.performance.now() - this._startTime;\n frames = this._lastFrame + 1;\n duration = 1000 * (frames - this._firstFrame) / this._frameRate;\n\n if (this._loop) {\n elapsed = elapsed % duration;\n } else {\n elapsed = Math.min(elapsed, duration);\n }\n\n index = _.lerp(this._firstFrame, frames, elapsed / duration);\n index = Math.floor(index);\n\n if (index !== this._index) {\n this._index = index;\n if (index >= this._lastFrame - 1 && this._onLastFrame) {\n this._onLastFrame(); // Shortcut for chainable sprite animations\n }\n }\n\n }\n\n var col = this._index % cols;\n var row = Math.floor(this._index / cols);\n\n var ox = - width * col + (iw - width) / 2;\n var oy = - height * row + (ih - height) / 2;\n\n // TODO: Improve performance\n if (ox !== effect.offset.x) {\n effect.offset.x = ox;\n }\n if (oy !== effect.offset.y) {\n effect.offset.y = oy;\n }\n\n }\n\n Rectangle.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagTexture = this._flagColumns = this._flagRows\n = this._flagFrameRate = false;\n\n Rectangle.prototype.flagReset.call(this);\n\n return this;\n }\n\n\n });\n\n Sprite.MakeObservable(Sprite.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n var _ = Two.Utils;\n var Path = Two.Path;\n var Rectangle = Two.Rectangle;\n\n var ImageSequence = Two.ImageSequence = function(paths, ox, oy, frameRate) {\n\n Path.call(this, [\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor(),\n new Two.Anchor()\n ], true);\n\n this._renderer.flagTextures = _.bind(ImageSequence.FlagTextures, this);\n this._renderer.bindTextures = _.bind(ImageSequence.BindTextures, this);\n this._renderer.unbindTextures = _.bind(ImageSequence.UnbindTextures, this);\n\n this.noStroke();\n this.noFill();\n\n this.textures = _.map(paths, ImageSequence.GenerateTexture, this);\n this.origin = new Two.Vector();\n\n this._update();\n this.translation.set(ox || 0, oy || 0);\n\n if (_.isNumber(frameRate)) {\n this.frameRate = frameRate;\n } else {\n this.frameRate = ImageSequence.DefaultFrameRate;\n }\n\n };\n\n _.extend(ImageSequence, {\n\n Properties: [\n 'frameRate',\n 'index'\n ],\n\n DefaultFrameRate: 30,\n\n FlagTextures: function() {\n this._flagTextures = true;\n },\n\n BindTextures: function(items) {\n\n var i = items.length;\n while (i--) {\n items[i].bind(Two.Events.change, this._renderer.flagTextures);\n }\n\n this._renderer.flagTextures();\n\n },\n\n UnbindTextures: function(items) {\n\n var i = items.length;\n while (i--) {\n items[i].unbind(Two.Events.change, this._renderer.flagTextures);\n }\n\n this._renderer.flagTextures();\n\n },\n\n MakeObservable: function(obj) {\n\n Rectangle.MakeObservable(obj);\n _.each(ImageSequence.Properties, Two.Utils.defineProperty, obj);\n\n Object.defineProperty(obj, 'textures', {\n\n enumerable: true,\n\n get: function() {\n return this._textures;\n },\n\n set: function(textures) {\n\n var updateTextures = this._renderer.flagTextures;\n var bindTextures = this._renderer.bindTextures;\n var unbindTextures = this._renderer.unbindTextures;\n\n // Remove previous listeners\n if (this._textures) {\n this._textures\n .unbind(Two.Events.insert, bindTextures)\n .unbind(Two.Events.remove, unbindTextures);\n }\n\n // Create new Collection with copy of vertices\n this._textures = new Two.Utils.Collection((textures || []).slice(0));\n\n // Listen for Collection changes and bind / unbind\n this._textures\n .bind(Two.Events.insert, bindTextures)\n .bind(Two.Events.remove, unbindTextures);\n\n // Bind Initial Textures\n bindTextures(this._textures);\n\n }\n\n });\n\n },\n\n GenerateTexture: function(obj) {\n if (obj instanceof Two.Texture) {\n return obj;\n } else if (_.isString(obj)) {\n return new Two.Texture(obj);\n }\n }\n\n });\n\n _.extend(ImageSequence.prototype, Rectangle.prototype, {\n\n _flagTextures: false,\n _flagFrameRate: false,\n _flagIndex: false,\n\n // Private variables\n _amount: 1,\n _duration: 0,\n _index: 0,\n _startTime: 0,\n _playing: false,\n _firstFrame: 0,\n _lastFrame: 0,\n _loop: true,\n\n // Exposed through getter-setter\n _textures: null,\n _frameRate: 0,\n _origin: null,\n\n constructor: ImageSequence,\n\n play: function(firstFrame, lastFrame, onLastFrame) {\n\n this._playing = true;\n this._firstFrame = 0;\n this._lastFrame = this.amount - 1;\n this._startTime = _.performance.now();\n\n if (_.isNumber(firstFrame)) {\n this._firstFrame = firstFrame;\n }\n if (_.isNumber(lastFrame)) {\n this._lastFrame = lastFrame;\n }\n if (_.isFunction(onLastFrame)) {\n this._onLastFrame = onLastFrame;\n } else {\n delete this._onLastFrame;\n }\n\n if (this._index !== this._firstFrame) {\n this._startTime -= 1000 * Math.abs(this._index - this._firstFrame)\n / this._frameRate;\n }\n\n return this;\n\n },\n\n pause: function() {\n\n this._playing = false;\n return this;\n\n },\n\n stop: function() {\n\n this._playing = false;\n this._index = 0;\n\n return this;\n\n },\n\n clone: function(parent) {\n\n var clone = new ImageSequence(this.textures, this.translation.x,\n this.translation.y, this.frameRate)\n\n clone._loop = this._loop;\n\n if (this._playing) {\n clone.play();\n }\n\n if (parent) {\n parent.add(clone);\n }\n\n return clone;\n\n },\n\n _update: function() {\n\n var effects = this._textures;\n var width, height, elapsed, amount, duration, texture;\n var index, frames;\n\n if (this._flagTextures) {\n this._amount = effects.length;\n }\n\n if (this._flagFrameRate) {\n this._duration = 1000 * this._amount / this._frameRate;\n }\n\n if (this._playing && this._frameRate > 0) {\n\n amount = this._amount;\n\n if (_.isNaN(this._lastFrame)) {\n this._lastFrame = amount - 1;\n }\n\n // TODO: Offload perf logic to instance of `Two`.\n elapsed = _.performance.now() - this._startTime;\n frames = this._lastFrame + 1;\n duration = 1000 * (frames - this._firstFrame) / this._frameRate;\n\n if (this._loop) {\n elapsed = elapsed % duration;\n } else {\n elapsed = Math.min(elapsed, duration);\n }\n\n index = _.lerp(this._firstFrame, frames, elapsed / duration);\n index = Math.floor(index);\n\n if (index !== this._index) {\n\n this._index = index;\n texture = effects[this._index];\n\n if (texture.loaded) {\n\n width = texture.image.width;\n height = texture.image.height;\n\n if (this.width !== width) {\n this.width = width;\n }\n if (this.height !== height) {\n this.height = height;\n }\n\n this.fill = texture;\n\n if (index >= this._lastFrame - 1 && this._onLastFrame) {\n this._onLastFrame(); // Shortcut for chainable sprite animations\n }\n\n }\n\n }\n\n } else if (this._flagIndex || !(this.fill instanceof Two.Texture)) {\n\n texture = effects[this._index];\n\n if (texture.loaded) {\n\n width = texture.image.width;\n height = texture.image.height;\n\n if (this.width !== width) {\n this.width = width;\n }\n if (this.height !== height) {\n this.height = height;\n }\n\n }\n\n this.fill = texture;\n\n }\n\n Rectangle.prototype._update.call(this);\n\n return this;\n\n },\n\n flagReset: function() {\n\n this._flagTextures = this._flagFrameRate = false;\n Rectangle.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n ImageSequence.MakeObservable(ImageSequence.prototype);\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n(function(Two) {\n\n // Constants\n\n var min = Math.min, max = Math.max;\n var _ = Two.Utils;\n\n /**\n * @class\n * @name Two.Group.Children\n * @extends Two.Utils.Collection\n * @description A children collection which is accesible both by index and by object id\n */\n var Children = function() {\n\n Two.Utils.Collection.apply(this, arguments);\n\n Object.defineProperty(this, '_events', {\n value : {},\n enumerable: false\n });\n\n this.ids = {};\n\n this.on(Two.Events.insert, this.attach);\n this.on(Two.Events.remove, this.detach);\n Children.prototype.attach.apply(this, arguments);\n\n };\n\n Children.prototype = new Two.Utils.Collection();\n\n _.extend(Children.prototype, {\n\n constructor: Children,\n\n attach: function(children) {\n for (var i = 0; i < children.length; i++) {\n this.ids[children[i].id] = children[i];\n }\n return this;\n },\n\n detach: function(children) {\n for (var i = 0; i < children.length; i++) {\n delete this.ids[children[i].id];\n }\n return this;\n }\n\n });\n\n /**\n * @class\n * @name Two.Group\n */\n var Group = Two.Group = function(children) {\n\n Two.Shape.call(this, true);\n\n this._renderer.type = 'group';\n\n this.additions = [];\n this.subtractions = [];\n\n this.children = _.isArray(children) ? children : arguments;\n\n };\n\n _.extend(Group, {\n\n Children: Children,\n\n InsertChildren: function(children) {\n for (var i = 0; i < children.length; i++) {\n replaceParent.call(this, children[i], this);\n }\n },\n\n RemoveChildren: function(children) {\n for (var i = 0; i < children.length; i++) {\n replaceParent.call(this, children[i]);\n }\n },\n\n OrderChildren: function(children) {\n this._flagOrder = true;\n },\n\n Properties: [\n 'fill',\n 'stroke',\n 'linewidth',\n 'visible',\n 'cap',\n 'join',\n 'miter',\n ],\n\n MakeObservable: function(object) {\n\n var properties = Two.Group.Properties;\n\n Object.defineProperty(object, 'opacity', {\n\n enumerable: true,\n\n get: function() {\n return this._opacity;\n },\n\n set: function(v) {\n this._flagOpacity = this._opacity !== v;\n this._opacity = v;\n }\n\n });\n\n Object.defineProperty(object, 'className', {\n\n enumerable: true,\n\n get: function() {\n return this._className;\n },\n\n set: function(v) {\n this._flagClassName = this._className !== v;\n this._className = v;\n }\n\n });\n\n Object.defineProperty(object, 'beginning', {\n\n enumerable: true,\n\n get: function() {\n return this._beginning;\n },\n\n set: function(v) {\n this._flagBeginning = this._beginning !== v;\n this._beginning = v;\n }\n\n });\n\n Object.defineProperty(object, 'ending', {\n\n enumerable: true,\n\n get: function() {\n return this._ending;\n },\n\n set: function(v) {\n this._flagEnding = this._ending !== v;\n this._ending = v;\n }\n\n });\n\n Object.defineProperty(object, 'length', {\n\n enumerable: true,\n\n get: function() {\n if (this._flagLength || this._length <= 0) {\n this._length = 0;\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n this._length += child.length;\n }\n }\n return this._length;\n }\n\n });\n\n Two.Shape.MakeObservable(object);\n Group.MakeGetterSetters(object, properties);\n\n Object.defineProperty(object, 'children', {\n\n enumerable: true,\n\n get: function() {\n return this._children;\n },\n\n set: function(children) {\n\n var insertChildren = _.bind(Group.InsertChildren, this);\n var removeChildren = _.bind(Group.RemoveChildren, this);\n var orderChildren = _.bind(Group.OrderChildren, this);\n\n if (this._children) {\n this._children.unbind();\n }\n\n this._children = new Children(children);\n this._children.bind(Two.Events.insert, insertChildren);\n this._children.bind(Two.Events.remove, removeChildren);\n this._children.bind(Two.Events.order, orderChildren);\n\n }\n\n });\n\n Object.defineProperty(object, 'mask', {\n\n enumerable: true,\n\n get: function() {\n return this._mask;\n },\n\n set: function(v) {\n this._mask = v;\n this._flagMask = true;\n if (!v.clip) {\n v.clip = true;\n }\n }\n\n });\n\n },\n\n MakeGetterSetters: function(group, properties) {\n\n if (!_.isArray(properties)) {\n properties = [properties];\n }\n\n _.each(properties, function(k) {\n Group.MakeGetterSetter(group, k);\n });\n\n },\n\n MakeGetterSetter: function(group, k) {\n\n var secret = '_' + k;\n\n Object.defineProperty(group, k, {\n\n enumerable: true,\n\n get: function() {\n return this[secret];\n },\n\n set: function(v) {\n this[secret] = v;\n _.each(this.children, function(child) { // Trickle down styles\n child[k] = v;\n });\n }\n\n });\n\n }\n\n });\n\n _.extend(Group.prototype, Two.Shape.prototype, {\n\n // Flags\n // http://en.wikipedia.org/wiki/Flag\n\n _flagAdditions: false,\n _flagSubtractions: false,\n _flagOrder: false,\n _flagOpacity: true,\n _flagClassName: false,\n _flagBeginning: false,\n _flagEnding: false,\n\n _flagLength: false,\n _flagMask: false,\n\n // Underlying Properties\n\n _fill: '#fff',\n _stroke: '#000',\n _linewidth: 1.0,\n _opacity: 1.0,\n _className: '',\n _visible: true,\n\n _cap: 'round',\n _join: 'round',\n _miter: 4,\n\n _closed: true,\n _curved: false,\n _automatic: true,\n _beginning: 0,\n _ending: 1.0,\n\n _length: 0,\n _mask: null,\n\n constructor: Group,\n\n // /**\n // * TODO: Group has a gotcha in that it's at the moment required to be bound to\n // * an instance of two in order to add elements correctly. This needs to\n // * be rethought and fixed.\n // */\n clone: function(parent) {\n\n var group = new Group();\n var children = _.map(this.children, function(child) {\n return child.clone();\n });\n\n group.add(children);\n\n group.opacity = this.opacity;\n\n if (this.mask) {\n group.mask = this.mask;\n }\n\n group.translation.copy(this.translation);\n group.rotation = this.rotation;\n group.scale = this.scale;\n group.className = this.className;\n\n if (parent) {\n parent.add(group);\n }\n\n return group._update();\n\n },\n\n // /**\n // * Export the data from the instance of Two.Group into a plain JavaScript\n // * object. This also makes all children plain JavaScript objects. Great\n // * for turning into JSON and storing in a database.\n // */\n toObject: function() {\n\n var result = {\n children: [],\n translation: this.translation.toObject(),\n rotation: this.rotation,\n scale: this.scale instanceof Two.Vector ? this.scale.toObject() : this.scale,\n opacity: this.opacity,\n className: this.className,\n mask: (this.mask ? this.mask.toObject() : null)\n };\n\n _.each(this.children, function(child, i) {\n result.children[i] = child.toObject();\n }, this);\n\n return result;\n\n },\n\n // /**\n // * Anchor all children to the upper left hand corner\n // * of the group.\n // */\n corner: function() {\n\n var rect = this.getBoundingClientRect(true),\n corner = { x: rect.left, y: rect.top };\n\n this.children.forEach(function(child) {\n child.translation.sub(corner);\n });\n\n return this;\n\n },\n\n // /**\n // * Anchors all children around the center of the group,\n // * effectively placing the shape around the unit circle.\n // */\n center: function() {\n\n var rect = this.getBoundingClientRect(true);\n\n rect.centroid = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2\n };\n\n this.children.forEach(function(child) {\n if (child.isShape) {\n child.translation.sub(rect.centroid);\n }\n });\n\n // this.translation.copy(rect.centroid);\n\n return this;\n\n },\n\n // /**\n // * Recursively search for id. Returns the first element found.\n // * Returns null if none found.\n // */\n getById: function (id) {\n var search = function (node, id) {\n if (node.id === id) {\n return node;\n } else if (node.children) {\n var i = node.children.length;\n while (i--) {\n var found = search(node.children[i], id);\n if (found) return found;\n }\n }\n\n };\n return search(this, id) || null;\n },\n\n // /**\n // * Recursively search for classes. Returns an array of matching elements.\n // * Empty array if none found.\n // */\n getByClassName: function (cl) {\n var found = [];\n var search = function (node, cl) {\n if (node.classList.indexOf(cl) != -1) {\n found.push(node);\n } else if (node.children) {\n node.children.forEach(function (child) {\n search(child, cl);\n });\n }\n return found;\n };\n return search(this, cl);\n },\n\n // /**\n // * Recursively search for children of a specific type,\n // * e.g. Two.Polygon. Pass a reference to this type as the param.\n // * Returns an empty array if none found.\n // */\n getByType: function(type) {\n var found = [];\n var search = function (node, type) {\n for (var id in node.children) {\n if (node.children[id] instanceof type) {\n found.push(node.children[id]);\n } else if (node.children[id] instanceof Two.Group) {\n search(node.children[id], type);\n }\n }\n return found;\n };\n return search(this, type);\n },\n\n // /**\n // * Add objects to the group.\n // */\n add: function(objects) {\n\n // Allow to pass multiple objects either as array or as multiple arguments\n // If it's an array also create copy of it in case we're getting passed\n // a childrens array directly.\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n } else {\n objects = objects.slice();\n }\n\n // Add the objects\n for (var i = 0; i < objects.length; i++) {\n if (!(objects[i] && objects[i].id)) continue;\n this.children.push(objects[i]);\n }\n\n return this;\n\n },\n\n // /**\n // * Remove objects from the group.\n // */\n remove: function(objects) {\n\n var l = arguments.length,\n grandparent = this.parent;\n\n // Allow to call remove without arguments\n // This will detach the object from its own parent.\n if (l <= 0 && grandparent) {\n grandparent.remove(this);\n return this;\n }\n\n // Allow to pass multiple objects either as array or as multiple arguments\n // If it's an array also create copy of it in case we're getting passed\n // a childrens array directly.\n if (!(objects instanceof Array)) {\n objects = _.toArray(arguments);\n } else {\n objects = objects.slice();\n }\n\n // Remove the objects\n for (var i = 0; i < objects.length; i++) {\n if (!objects[i] || !(this.children.ids[objects[i].id])) continue;\n this.children.splice(_.indexOf(this.children, objects[i]), 1);\n }\n\n return this;\n\n },\n\n // /**\n // * Return an object with top, left, right, bottom, width, and height\n // * parameters of the group.\n // */\n getBoundingClientRect: function(shallow) {\n var rect;\n\n // TODO: Update this to not __always__ update. Just when it needs to.\n this._update(true);\n\n // Variables need to be defined here, because of nested nature of groups.\n var left = Infinity, right = -Infinity,\n top = Infinity, bottom = -Infinity;\n\n var regex = Two.Texture.RegularExpressions.effect;\n\n for (var i = 0; i < this.children.length; i++) {\n\n var child = this.children[i];\n\n if (!child.visible || regex.test(child._renderer.type)) {\n continue;\n }\n\n rect = child.getBoundingClientRect(shallow);\n\n if (!_.isNumber(rect.top) || !_.isNumber(rect.left) ||\n !_.isNumber(rect.right) || !_.isNumber(rect.bottom)) {\n continue;\n }\n\n top = min(rect.top, top);\n left = min(rect.left, left);\n right = max(rect.right, right);\n bottom = max(rect.bottom, bottom);\n\n }\n\n return {\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n width: right - left,\n height: bottom - top\n };\n\n },\n\n // /**\n // * Trickle down of noFill\n // */\n noFill: function() {\n this.children.forEach(function(child) {\n child.noFill();\n });\n return this;\n },\n\n // /**\n // * Trickle down of noStroke\n // */\n noStroke: function() {\n this.children.forEach(function(child) {\n child.noStroke();\n });\n return this;\n },\n\n // /**\n // * Trickle down subdivide\n // */\n subdivide: function() {\n var args = arguments;\n this.children.forEach(function(child) {\n child.subdivide.apply(child, args);\n });\n return this;\n },\n\n _update: function() {\n\n if (this._flagBeginning || this._flagEnding) {\n\n var beginning = Math.min(this._beginning, this._ending);\n var ending = Math.max(this._beginning, this._ending);\n var length = this.length;\n var sum = 0;\n\n var bd = beginning * length;\n var ed = ending * length;\n var distance = (ed - bd);\n\n for (var i = 0; i < this.children.length; i++) {\n\n var child = this.children[i];\n var l = child.length;\n\n if (bd > sum + l) {\n child.beginning = 1;\n child.ending = 1;\n } else if (ed < sum) {\n child.beginning = 0;\n child.ending = 0;\n } else if (bd > sum && bd < sum + l) {\n child.beginning = (bd - sum) / l;\n child.ending = 1;\n } else if (ed > sum && ed < sum + l) {\n child.beginning = 0;\n child.ending = (ed - sum) / l;\n } else {\n child.beginning = 0;\n child.ending = 1;\n }\n\n sum += l;\n\n }\n\n }\n\n return Two.Shape.prototype._update.apply(this, arguments);\n\n },\n\n flagReset: function() {\n\n if (this._flagAdditions) {\n this.additions.length = 0;\n this._flagAdditions = false;\n }\n\n if (this._flagSubtractions) {\n this.subtractions.length = 0;\n this._flagSubtractions = false;\n }\n\n this._flagOrder = this._flagMask = this._flagOpacity = this._flagClassName\n this._flagBeginning = this._flagEnding = false;\n\n Two.Shape.prototype.flagReset.call(this);\n\n return this;\n\n }\n\n });\n\n Group.MakeObservable(Group.prototype);\n\n // /**\n // * Helper function used to sync parent-child relationship within the\n // * `Two.Group.children` object.\n // *\n // * Set the parent of the passed object to another object\n // * and updates parent-child relationships\n // * Calling with one arguments will simply remove the parenting\n // */\n function replaceParent(child, newParent) {\n\n var parent = child.parent;\n var index;\n\n if (parent === newParent) {\n this.additions.push(child);\n this._flagAdditions = true;\n return;\n }\n\n if (parent && parent.children.ids[child.id]) {\n\n index = _.indexOf(parent.children, child);\n parent.children.splice(index, 1);\n\n // If we're passing from one parent to another...\n index = _.indexOf(parent.additions, child);\n\n if (index >= 0) {\n parent.additions.splice(index, 1);\n } else {\n parent.subtractions.push(child);\n parent._flagSubtractions = true;\n }\n\n }\n\n if (newParent) {\n child.parent = newParent;\n this.additions.push(child);\n this._flagAdditions = true;\n return;\n }\n\n // If we're passing from one parent to another...\n index = _.indexOf(this.additions, child);\n\n if (index >= 0) {\n this.additions.splice(index, 1);\n } else {\n this.subtractions.push(child);\n this._flagSubtractions = true;\n }\n\n delete child.parent;\n\n }\n\n})((typeof global !== 'undefined' ? global : (this || window)).Two);\n\n\nexport default (this || window).Two;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","// Pressure v2.1.2 | Created By Stuart Yamartino | MIT License | 2015 - 2017\n!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?module.exports=t():e.Pressure=t()}(this,function(){\"use strict\";function e(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function t(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},i=function(){function e(e,t){for(var s=0;s=.5?this._startDeepPress(t):this._endDeepPress()}},{key:\"runPolyfill\",value:function(e){this.increment=0===d.get(\"polyfillSpeedUp\",this.options)?1:10/d.get(\"polyfillSpeedUp\",this.options),this.decrement=0===d.get(\"polyfillSpeedDown\",this.options)?1:10/d.get(\"polyfillSpeedDown\",this.options),this.setPressed(!0),this.runClosure(\"start\",e),this.runningPolyfill===!1&&this.loopPolyfillForce(0,e)}},{key:\"loopPolyfillForce\",value:function(e,t){this.nativeSupport===!1&&(this.isPressed()?(this.runningPolyfill=!0,e=e+this.increment>1?1:e+this.increment,this.runClosure(\"change\",e,t),this.deepPress(e,t),setTimeout(this.loopPolyfillForce.bind(this,e,t),10)):(e=e-this.decrement<0?0:e-this.decrement,e<.5&&this.isDeepPressed()&&(this.setDeepPressed(!1),this.runClosure(\"endDeepPress\")),0===e?(this.runningPolyfill=!1,this.setPressed(!0),this._endPress()):(this.runClosure(\"change\",e,t),this.deepPress(e,t),setTimeout(this.loopPolyfillForce.bind(this,e,t),10))))}}]),e}(),h=function(n){function o(t,n,i){return s(this,o),e(this,(o.__proto__||Object.getPrototypeOf(o)).call(this,t,n,i))}return t(o,n),i(o,[{key:\"bindEvents\",value:function(){this.add(\"webkitmouseforcewillbegin\",this._startPress.bind(this)),this.add(\"mousedown\",this.support.bind(this)),this.add(\"webkitmouseforcechanged\",this.change.bind(this)),this.add(\"webkitmouseforcedown\",this._startDeepPress.bind(this)),this.add(\"webkitmouseforceup\",this._endDeepPress.bind(this)),this.add(\"mouseleave\",this._endPress.bind(this)),this.add(\"mouseup\",this._endPress.bind(this))}},{key:\"support\",value:function(e){this.isPressed()===!1&&this.fail(e,this.runKey)}},{key:\"change\",value:function(e){this.isPressed()&&e.webkitForce>0&&this._changePress(this.normalizeForce(e.webkitForce),e)}},{key:\"normalizeForce\",value:function(e){return this.reachOne(f(e,1,3,0,1))}},{key:\"reachOne\",value:function(e){return e>.995?1:e}}]),o}(u),l=function(n){function o(t,n,i){return s(this,o),e(this,(o.__proto__||Object.getPrototypeOf(o)).call(this,t,n,i))}return t(o,n),i(o,[{key:\"bindEvents\",value:function(){g?(this.add(\"touchforcechange\",this.start.bind(this)),this.add(\"touchstart\",this.support.bind(this,0)),this.add(\"touchend\",this._endPress.bind(this))):(this.add(\"touchstart\",this.startLegacy.bind(this)),this.add(\"touchend\",this._endPress.bind(this)))}},{key:\"start\",value:function(e){e.touches.length>0&&(this._startPress(e),this.touch=this.selectTouch(e),this.touch&&this._changePress(this.touch.force,e))}},{key:\"support\",value:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.runKey;this.isPressed()===!1&&(e<=6?(e++,setTimeout(this.support.bind(this,e,t,s),10)):this.fail(t,s))}},{key:\"startLegacy\",value:function(e){this.initialForce=e.touches[0].force,this.supportLegacy(0,e,this.runKey,this.initialForce)}},{key:\"supportLegacy\",value:function(e,t,s,n){n!==this.initialForce?(this._startPress(t),this.loopForce(t)):e<=6?(e++,setTimeout(this.supportLegacy.bind(this,e,t,s,n),10)):this.fail(t,s)}},{key:\"loopForce\",value:function(e){this.isPressed()&&(this.touch=this.selectTouch(e),setTimeout(this.loopForce.bind(this,e),10),this._changePress(this.touch.force,e))}},{key:\"selectTouch\",value:function(e){if(1===e.touches.length)return this.returnTouch(e.touches[0],e);for(var t=0;t1?this.fail(e,this.runKey):(this._startPress(e),this._changePress(e.pressure,e)))}},{key:\"change\",value:function(e){this.isPressed()&&e.pressure>0&&.5!==e.pressure&&(this._changePress(e.pressure,e),this.deepPress(e.pressure,e))}}]),o}(u),d={polyfill:!0,polyfillSpeedUp:1e3,polyfillSpeedDown:0,preventSelect:!0,only:null,get:function(e,t){return t.hasOwnProperty(e)?t[e]:this[e]},set:function(e){for(var t in e)e.hasOwnProperty(t)&&this.hasOwnProperty(t)&&\"get\"!=t&&\"set\"!=t&&(this[t]=e[t])}},a=function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(\"string\"==typeof e||e instanceof String)for(var n=document.querySelectorAll(e),i=0;iP.length&&P.push(a)}\nfunction S(a,b,d,c){var e=typeof a;if(\"undefined\"===e||\"boolean\"===e)a=null;var g=!1;if(null===a)g=!0;else switch(e){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return d(c,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var h=0;hthis.eventPool.length&&this.eventPool.push(a)}\nfunction hb(a){a.eventPool=[];a.getPooled=ib;a.release=jb}var kb=y.extend({data:null}),lb=y.extend({data:null}),mb=[9,13,27,32],nb=Ra&&\"CompositionEvent\"in window,ob=null;Ra&&\"documentMode\"in document&&(ob=document.documentMode);\nvar pb=Ra&&\"TextEvent\"in window&&!ob,qb=Ra&&(!nb||ob&&8=ob),rb=String.fromCharCode(32),sb={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},tb=!1;\nfunction ub(a,b){switch(a){case \"keyup\":return-1!==mb.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function vb(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var wb=!1;function xb(a,b){switch(a){case \"compositionend\":return vb(b);case \"keypress\":if(32!==b.which)return null;tb=!0;return rb;case \"textInput\":return a=b.data,a===rb&&tb?null:a;default:return null}}\nfunction yb(a,b){if(wb)return\"compositionend\"===a||!nb&&ub(a,b)?(a=eb(),db=cb=bb=null,wb=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1b}return!1}function C(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new C(a,0,!1,a,null)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new C(b,1,!1,a[1],null)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new C(a,2,!1,a.toLowerCase(),null)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new C(a,2,!1,a,null)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new C(a,3,!1,a.toLowerCase(),null)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new C(a,3,!0,a,null)});\n[\"capture\",\"download\"].forEach(function(a){D[a]=new C(a,4,!1,a,null)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new C(a,6,!1,a,null)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new C(a,5,!1,a.toLowerCase(),null)});var rc=/[\\-:]([a-z])/g;function sc(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(rc,\nsc);D[b]=new C(b,1,!1,a,null)});\"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(rc,sc);D[b]=new C(b,1,!1,a,\"http://www.w3.org/1999/xlink\")});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(rc,sc);D[b]=new C(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\")});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new C(a,1,!1,a.toLowerCase(),null)});\nfunction tc(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2zd.length&&zd.push(a)}}}var Fd={},Gd=0,Hd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);\nfunction Id(a){Object.prototype.hasOwnProperty.call(a,Hd)||(a[Hd]=Gd++,Fd[a[Hd]]={});return Fd[a[Hd]]}function Jd(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Kd(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ld(a,b){var c=Kd(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Kd(c)}}function Md(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Md(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Nd(){for(var a=window,b=Jd();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Jd(a.document)}return b}function Od(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Pd(){var a=Nd();if(Od(a)){if(\"selectionStart\"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{b=(b=a.ownerDocument)&&b.defaultView||window;var c=b.getSelection&&b.getSelection();if(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(A){b=null;break a}var f=0,g=-1,h=-1,l=0,k=0,m=a,p=null;b:for(;;){for(var t;;){m!==b||0!==d&&3!==m.nodeType||(g=f+d);m!==e||0!==c&&3!==m.nodeType||(h=f+c);3===m.nodeType&&(f+=m.nodeValue.length);\nif(null===(t=m.firstChild))break;p=m;m=t}for(;;){if(m===a)break b;p===b&&++l===d&&(g=f);p===e&&++k===c&&(h=f);if(null!==(t=m.nextSibling))break;m=p;p=m.parentNode}m=t}b=-1===g||-1===h?null:{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;return{focusedElem:a,selectionRange:b}}\nfunction Qd(a){var b=Nd(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Md(c.ownerDocument.documentElement,c)){if(null!==d&&Od(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ld(c,f);var g=Ld(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Sd={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},Td=null,Ud=null,Vd=null,Wd=!1;\nfunction Xd(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(Wd||null==Td||Td!==Jd(c))return null;c=Td;\"selectionStart\"in c&&Od(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return Vd&&dd(Vd,c)?null:(Vd=c,a=y.getPooled(Sd.select,Ud,a,b),a.type=\"select\",a.target=Td,Qa(a),a)}\nvar Yd={eventTypes:Sd,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Id(e);f=sa.onSelect;for(var g=0;g=b.length?void 0:x(\"93\"),b=b[0]),c=b),null==c&&(c=\"\"));a._wrapperState={initialValue:uc(c)}}\nfunction de(a,b){var c=uc(b.value),d=uc(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function ee(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var fe={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction ge(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function he(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?ge(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ie=void 0,je=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==fe.svg||\"innerHTML\"in a)a.innerHTML=b;else{ie=ie||document.createElement(\"div\");ie.innerHTML=\"\"+b+\"\";for(b=ie.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ke(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar le={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(le).forEach(function(a){me.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);le[b]=le[a]})});function ne(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||le.hasOwnProperty(a)&&le[a]?(\"\"+b).trim():b+\"px\"}\nfunction oe(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ne(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var pe=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction qe(a,b){b&&(pe[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?x(\"137\",a,\"\"):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?x(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:x(\"61\")),null!=b.style&&\"object\"!==typeof b.style?x(\"62\",\"\"):void 0)}\nfunction re(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}\nfunction se(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Id(a);b=sa[b];for(var d=0;dGe||(a.current=Fe[Ge],Fe[Ge]=null,Ge--)}function G(a,b){Ge++;Fe[Ge]=a.current;a.current=b}var He={},H={current:He},I={current:!1},Ie=He;\nfunction Je(a,b){var c=a.type.contextTypes;if(!c)return He;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function J(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Ke(a){F(I,a);F(H,a)}function Le(a){F(I,a);F(H,a)}\nfunction Me(a,b,c){H.current!==He?x(\"168\"):void 0;G(H,b,a);G(I,c,a)}function Ne(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0:x(\"108\",ic(b)||\"Unknown\",e);return n({},c,d)}function Oe(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||He;Ie=H.current;G(H,b,a);G(I,I.current,a);return!0}\nfunction Pe(a,b,c){var d=a.stateNode;d?void 0:x(\"169\");c?(b=Ne(a,b,Ie),d.__reactInternalMemoizedMergedChildContext=b,F(I,a),F(H,a),G(H,b,a)):F(I,a);G(I,c,a)}var Qe=null,Re=null;function Se(a){return function(b){try{return a(b)}catch(c){}}}\nfunction Te(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Qe=Se(function(a){return b.onCommitFiberRoot(c,a)});Re=Se(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}\nfunction Ue(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function K(a,b,c,d){return new Ue(a,b,c,d)}\nfunction Ve(a){a=a.prototype;return!(!a||!a.isReactComponent)}function We(a){if(\"function\"===typeof a)return Ve(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===cc)return 11;if(a===ec)return 14}return 2}\nfunction Xe(a,b){var c=a.alternate;null===c?(c=K(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.contextDependencies=a.contextDependencies;c.sibling=a.sibling;\nc.index=a.index;c.ref=a.ref;return c}\nfunction Ye(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Ve(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case Xb:return Ze(c.children,e,f,b);case bc:return $e(c,e|3,f,b);case Yb:return $e(c,e|2,f,b);case Zb:return a=K(12,c,b,e|4),a.elementType=Zb,a.type=Zb,a.expirationTime=f,a;case dc:return a=K(13,c,b,e),a.elementType=dc,a.type=dc,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case $b:g=10;break a;case ac:g=9;break a;case cc:g=11;break a;case ec:g=\n14;break a;case fc:g=16;d=null;break a}x(\"130\",null==a?a:typeof a,\"\")}b=K(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Ze(a,b,c,d){a=K(7,a,d,b);a.expirationTime=c;return a}function $e(a,b,c,d){a=K(8,a,d,b);b=0===(b&1)?Yb:bc;a.elementType=b;a.type=b;a.expirationTime=c;return a}function af(a,b,c){a=K(6,a,null,b);a.expirationTime=c;return a}\nfunction bf(a,b,c){b=K(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function cf(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:cb&&(a.latestPendingTime=b);df(b,a)}\nfunction ef(a,b){a.didError=!1;if(0===b)a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=0;else{bb?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>b&&(a.earliestPendingTime=a.latestPendingTime));c=a.earliestSuspendedTime;0===c?cf(a,b):bc&&cf(a,b)}df(0,a)}function ff(a,b){a.didError=!1;a.latestPingedTime>=b&&(a.latestPingedTime=0);var c=a.earliestPendingTime,d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c);c=a.earliestSuspendedTime;d=a.latestSuspendedTime;0===c?a.earliestSuspendedTime=a.latestSuspendedTime=b:cb&&(a.latestSuspendedTime=b);df(b,a)}\nfunction gf(a,b){var c=a.earliestPendingTime;a=a.earliestSuspendedTime;c>b&&(b=c);a>b&&(b=a);return b}function df(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f;0===e&&(0===a||da&&(a=c);b.nextExpirationTimeToWorkOn=e;b.expirationTime=a}function L(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}\nfunction hf(a){var b=a._result;switch(a._status){case 1:return b;case 2:throw b;case 0:throw b;default:a._status=0;b=a._ctor;b=b();b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)});switch(a._status){case 1:return a._result;case 2:throw a._result;}a._result=b;throw b;}}var jf=(new aa.Component).refs;\nfunction kf(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;d=a.updateQueue;null!==d&&0===a.expirationTime&&(d.baseState=c)}\nvar tf={isMounted:function(a){return(a=a._reactInternalFiber)?2===ed(a):!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=lf();d=mf(d,a);var e=nf(d);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);of();pf(a,e);qf(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=lf();d=mf(d,a);var e=nf(d);e.tag=rf;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);of();pf(a,e);qf(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=lf();c=mf(c,a);var d=nf(c);d.tag=\nsf;void 0!==b&&null!==b&&(d.callback=b);of();pf(a,d);qf(a,c)}};function uf(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!dd(c,d)||!dd(e,f):!0}\nfunction vf(a,b,c){var d=!1,e=He;var f=b.contextType;\"object\"===typeof f&&null!==f?f=M(f):(e=J(b)?Ie:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Je(a,e):He);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=tf;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction wf(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&tf.enqueueReplaceState(b,b.state,null)}\nfunction xf(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jf;var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=M(f):(f=J(b)?Ie:H.current,e.context=Je(a,f));f=a.updateQueue;null!==f&&(yf(a,f,c,e,d),e.state=a.memoizedState);f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kf(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==\ntypeof e.componentWillMount||(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&tf.enqueueReplaceState(e,e.state,null),f=a.updateQueue,null!==f&&(yf(a,f,c,e,d),e.state=a.memoizedState));\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var zf=Array.isArray;\nfunction Af(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;var d=void 0;c&&(1!==c.tag?x(\"309\"):void 0,d=c.stateNode);d?void 0:x(\"147\",a);var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===jf&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}\"string\"!==typeof a?x(\"284\"):void 0;c._owner?void 0:x(\"290\",a)}return a}\nfunction Bf(a,b){\"textarea\"!==a.type&&x(\"31\",\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\")}\nfunction Cf(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=Xe(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,du?(B=q,q=null):B=q.sibling;var w=t(e,q,h[u],k);if(null===w){null===q&&(q=B);break}a&&\nq&&null===w.alternate&&b(e,q);g=f(w,g,u);null===m?l=w:m.sibling=w;m=w;q=B}if(u===h.length)return c(e,q),l;if(null===q){for(;uu?(B=q,q=null):B=q.sibling;var v=t(e,q,w.value,k);if(null===v){q||(q=B);break}a&&q&&null===v.alternate&&b(e,q);g=f(v,g,u);null===m?l=v:m.sibling=v;m=v;q=B}if(w.done)return c(e,q),l;if(null===q){for(;!w.done;u++,w=h.next())w=p(e,w.value,k),null!==w&&(g=f(w,g,u),null===m?l=w:m.sibling=w,m=w);return l}for(q=d(e,q);!w.done;u++,w=h.next())w=A(q,e,u,w.value,k),null!==w&&(a&&null!==w.alternate&&q.delete(null===w.key?u:\nw.key),g=f(w,g,u),null===m?l=w:m.sibling=w,m=w);a&&q.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===Xb&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Vb:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Xb:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Xb?f.props.children:f.props,h);d.ref=Af(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,k);k=\nk.sibling}f.type===Xb?(d=Ze(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ye(f.type,f.key,f.props,null,a.mode,h),h.ref=Af(a,d,f),h.return=a,a=h)}return g(a);case Wb:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=bf(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\n\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=af(f,a.mode,h),d.return=a,a=d),g(a);if(zf(f))return v(a,d,f,h);if(hc(f))return R(a,d,f,h);l&&Bf(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,x(\"152\",h.displayName||h.name||\"Component\")}return c(a,d)}}var Df=Cf(!0),Ef=Cf(!1),Ff={},N={current:Ff},Gf={current:Ff},Hf={current:Ff};function If(a){a===Ff?x(\"174\"):void 0;return a}\nfunction Jf(a,b){G(Hf,b,a);G(Gf,a,a);G(N,Ff,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:he(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=he(b,c)}F(N,a);G(N,b,a)}function Kf(a){F(N,a);F(Gf,a);F(Hf,a)}function Lf(a){If(Hf.current);var b=If(N.current);var c=he(b,a.type);b!==c&&(G(Gf,a,a),G(N,c,a))}function Mf(a){Gf.current===a&&(F(N,a),F(Gf,a))}\nvar Nf=0,Of=2,Pf=4,Qf=8,Rf=16,Sf=32,Tf=64,Uf=128,Vf=Tb.ReactCurrentDispatcher,Wf=0,Xf=null,O=null,P=null,Yf=null,Q=null,Zf=null,$f=0,ag=null,bg=0,cg=!1,dg=null,eg=0;function fg(){x(\"321\")}function gg(a,b){if(null===b)return!1;for(var c=0;c$f&&($f=m)):f=l.eagerReducer===a?l.eagerState:a(f,l.action);g=l;l=l.next}while(null!==l&&l!==d);k||(h=g,e=f);bd(f,b.memoizedState)||(qg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction rg(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===ag?(ag={lastEffect:null},ag.lastEffect=a.next=a):(b=ag.lastEffect,null===b?ag.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,ag.lastEffect=a));return a}function sg(a,b,c,d){var e=mg();bg|=a;e.memoizedState=rg(b,c,void 0,void 0===d?null:d)}\nfunction tg(a,b,c,d){var e=ng();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&gg(d,g.deps)){rg(Nf,c,f,d);return}}bg|=a;e.memoizedState=rg(b,c,f,d)}function ug(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function vg(){}\nfunction wg(a,b,c){25>eg?void 0:x(\"301\");var d=a.alternate;if(a===Xf||null!==d&&d===Xf)if(cg=!0,a={expirationTime:Wf,action:c,eagerReducer:null,eagerState:null,next:null},null===dg&&(dg=new Map),c=dg.get(b),void 0===c)dg.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{of();var e=lf();e=mf(e,a);var f={expirationTime:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===\nd||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var l=b.lastRenderedState,k=d(l,c);f.eagerReducer=d;f.eagerState=k;if(bd(k,l))return}catch(m){}finally{}qf(a,e)}}\nvar kg={readContext:M,useCallback:fg,useContext:fg,useEffect:fg,useImperativeHandle:fg,useLayoutEffect:fg,useMemo:fg,useReducer:fg,useRef:fg,useState:fg,useDebugValue:fg},ig={readContext:M,useCallback:function(a,b){mg().memoizedState=[a,void 0===b?null:b];return a},useContext:M,useEffect:function(a,b){return sg(516,Uf|Tf,a,b)},useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return sg(4,Pf|Sf,ug.bind(null,b,a),c)},useLayoutEffect:function(a,b){return sg(4,Pf|Sf,a,b)},\nuseMemo:function(a,b){var c=mg();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=mg();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=wg.bind(null,Xf,a);return[d.memoizedState,a]},useRef:function(a){var b=mg();a={current:a};return b.memoizedState=a},useState:function(a){var b=mg();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,\nlastRenderedReducer:og,lastRenderedState:a};a=a.dispatch=wg.bind(null,Xf,a);return[b.memoizedState,a]},useDebugValue:vg},jg={readContext:M,useCallback:function(a,b){var c=ng();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&gg(b,d[1]))return d[0];c.memoizedState=[a,b];return a},useContext:M,useEffect:function(a,b){return tg(516,Uf|Tf,a,b)},useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return tg(4,Pf|Sf,ug.bind(null,b,a),c)},useLayoutEffect:function(a,\nb){return tg(4,Pf|Sf,a,b)},useMemo:function(a,b){var c=ng();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&gg(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:pg,useRef:function(){return ng().memoizedState},useState:function(a){return pg(og,a)},useDebugValue:vg},xg=null,yg=null,zg=!1;\nfunction Ag(a,b){var c=K(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function Bg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction Cg(a){if(zg){var b=yg;if(b){var c=b;if(!Bg(a,b)){b=De(c);if(!b||!Bg(a,b)){a.effectTag|=2;zg=!1;xg=a;return}Ag(xg,c)}xg=a;yg=Ee(b)}else a.effectTag|=2,zg=!1,xg=a}}function Dg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&18!==a.tag;)a=a.return;xg=a}function Eg(a){if(a!==xg)return!1;if(!zg)return Dg(a),zg=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!xe(b,a.memoizedProps))for(b=yg;b;)Ag(a,b),b=De(b);Dg(a);yg=xg?De(a.stateNode):null;return!0}function Fg(){yg=xg=null;zg=!1}\nvar Gg=Tb.ReactCurrentOwner,qg=!1;function S(a,b,c,d){b.child=null===a?Ef(b,null,c,d):Df(b,a.child,c,d)}function Hg(a,b,c,d,e){c=c.render;var f=b.ref;Ig(b,e);d=hg(a,b,c,d,f,e);if(null!==a&&!qg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),Jg(a,b,e);b.effectTag|=1;S(a,b,d,e);return b.child}\nfunction Kg(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Ve(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,Lg(a,b,g,d,e,f);a=Ye(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e=c)return Sg(a,b,c);b=Jg(a,b,c);return null!==b?b.sibling:null}}return Jg(a,b,c)}}else qg=!1;b.expirationTime=0;switch(b.tag){case 2:d=\nb.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Je(b,H.current);Ig(b,c);e=hg(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;lg();if(J(d)){var f=!0;Oe(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&kf(b,d,g,a);e.updater=tf;b.stateNode=e;e._reactInternalFiber=b;xf(b,d,a,c);b=Qg(null,b,d,!0,f,\nc)}else b.tag=0,S(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=hf(e);b.type=a;e=b.tag=We(a);f=L(a,f);g=void 0;switch(e){case 0:g=Mg(null,b,a,f,c);break;case 1:g=Og(null,b,a,f,c);break;case 11:g=Hg(null,b,a,f,c);break;case 14:g=Kg(null,b,a,L(a.type,f),d,c);break;default:x(\"306\",a,\"\")}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:L(d,e),Mg(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,\ne=b.elementType===d?e:L(d,e),Og(a,b,d,e,c);case 3:Rg(b);d=b.updateQueue;null===d?x(\"282\"):void 0;e=b.memoizedState;e=null!==e?e.element:null;yf(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)Fg(),b=Jg(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)yg=Ee(b.stateNode.containerInfo),xg=b,e=zg=!0;e?(b.effectTag|=2,b.child=Ef(b,null,d,c)):(S(a,b,d,c),Fg());b=b.child}return b;case 5:return Lf(b),null===a&&Cg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,\ng=e.children,xe(d,e)?g=null:null!==f&&xe(d,f)&&(b.effectTag|=16),Ng(a,b),1!==c&&b.mode&1&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(S(a,b,g,c),b=b.child),b;case 6:return null===a&&Cg(b),null;case 13:return Sg(a,b,c);case 4:return Jf(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Df(b,null,d,c):S(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:L(d,e),Hg(a,b,d,e,c);case 7:return S(a,b,b.pendingProps,c),b.child;case 8:return S(a,b,b.pendingProps.children,\nc),b.child;case 12:return S(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;Ug(b,f);if(null!==g){var h=g.value;f=bd(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!I.current){b=Jg(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var l=h.contextDependencies;if(null!==l){g=h.child;for(var k=l.first;null!==k;){if(k.context===d&&0!==\n(k.observedBits&f)){1===h.tag&&(k=nf(c),k.tag=sf,pf(h,k));h.expirationTime=b&&(qg=!0);a.contextDependencies=null}\nfunction M(a,b){if(Yg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)Yg=a,b=1073741823;b={context:a,observedBits:b,next:null};null===Xg?(null===Wg?x(\"308\"):void 0,Xg=b,Wg.contextDependencies={first:b,expirationTime:0}):Xg=Xg.next=b}return a._currentValue}var $g=0,rf=1,sf=2,ah=3,Pg=!1;function bh(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction ch(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function nf(a){return{expirationTime:a,tag:$g,payload:null,callback:null,next:null,nextEffect:null}}function dh(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction pf(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=bh(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=bh(a.memoizedState),e=c.updateQueue=bh(c.memoizedState)):d=a.updateQueue=ch(e):null===e&&(e=c.updateQueue=ch(d));null===e||d===e?dh(d,b):null===d.lastUpdate||null===e.lastUpdate?(dh(d,b),dh(e,b)):(dh(d,b),e.lastUpdate=b)}\nfunction eh(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=bh(a.memoizedState):fh(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function fh(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=ch(b));return b}\nfunction gh(a,b,c,d,e,f){switch(c.tag){case rf:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case ah:a.effectTag=a.effectTag&-2049|64;case $g:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case sf:Pg=!0}return d}\nfunction yf(a,b,c,d,e){Pg=!1;b=fh(a,b);for(var f=b.baseState,g=null,h=0,l=b.firstUpdate,k=f;null!==l;){var m=l.expirationTime;md?e:d);Ih.current=null;d=void 0;1c?b:c;0===b&&(Fh=null);$h(a,b)}\nfunction ai(a){for(;;){var b=a.alternate,c=a.return,d=a.sibling;if(0===(a.effectTag&1024)){T=a;a:{var e=b;b=a;var f=U;var g=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:J(b.type)&&Ke(b);break;case 3:Kf(b);Le(b);g=b.stateNode;g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null);if(null===e||null===e.child)Eg(b),b.effectTag&=-3;mh(b);break;case 5:Mf(b);var h=If(Hf.current);f=b.type;if(null!==e&&null!=b.stateNode)nh(e,b,f,g,h),e.ref!==b.ref&&(b.effectTag|=\n128);else if(g){var l=If(N.current);if(Eg(b)){g=b;e=g.stateNode;var k=g.type,m=g.memoizedProps,p=h;e[Fa]=g;e[Ga]=m;f=void 0;h=k;switch(h){case \"iframe\":case \"object\":E(\"load\",e);break;case \"video\":case \"audio\":for(k=0;k\\x3c/script>\",k=e.removeChild(e.firstChild)):\"string\"===typeof e.is?k=k.createElement(p,{is:e.is}):(k=k.createElement(p),\"select\"===p&&(p=k,e.multiple?p.multiple=!0:e.size&&(p.size=e.size))):k=k.createElementNS(l,p);e=k;e[Fa]=m;e[Ga]=g;lh(e,b,!1,!1);p=e;k=f;m=g;var t=h,A=re(k,m);switch(k){case \"iframe\":case \"object\":E(\"load\",\np);h=m;break;case \"video\":case \"audio\":for(h=0;hg&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==T)return T;null!==c&&0===(c.effectTag&1024)&&(null===c.firstEffect&&\n(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1=v)t=0;else if(-1===t||v component higher in the tree to provide a loading indicator or placeholder to display.\"+jc(k))}Nh=!0;m=jh(m,k);h=l;do{switch(h.tag){case 3:h.effectTag|=2048;h.expirationTime=g;g=Ch(h,m,g);eh(h,g);break a;case 1:if(t=m,A=h.type,k=h.stateNode,0===(h.effectTag&64)&&(\"function\"===typeof A.getDerivedStateFromError||null!==k&&\"function\"===typeof k.componentDidCatch&&(null===Fh||!Fh.has(k)))){h.effectTag|=2048;\nh.expirationTime=g;g=Eh(h,t,g);eh(h,g);break a}}h=h.return}while(null!==h)}T=ai(f);continue}}}break}while(1);Kh=!1;Hh.current=c;Yg=Xg=Wg=null;lg();if(e)Lh=null,a.finishedWork=null;else if(null!==T)a.finishedWork=null;else{c=a.current.alternate;null===c?x(\"281\"):void 0;Lh=null;if(Nh){e=a.latestPendingTime;f=a.latestSuspendedTime;g=a.latestPingedTime;if(0!==e&&eb?0:b)):(a.pendingCommitExpirationTime=d,a.finishedWork=c)}}\nfunction sh(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Fh||!Fh.has(d))){a=jh(b,a);a=Eh(c,a,1073741823);pf(c,a);qf(c,1073741823);return}break;case 3:a=jh(b,a);a=Ch(c,a,1073741823);pf(c,a);qf(c,1073741823);return}c=c.return}3===a.tag&&(c=jh(b,a),c=Ch(a,c,1073741823),pf(a,c),qf(a,1073741823))}\nfunction mf(a,b){var c=r.unstable_getCurrentPriorityLevel(),d=void 0;if(0===(b.mode&1))d=1073741823;else if(Kh&&!Oh)d=U;else{switch(c){case r.unstable_ImmediatePriority:d=1073741823;break;case r.unstable_UserBlockingPriority:d=1073741822-10*(((1073741822-a+15)/10|0)+1);break;case r.unstable_NormalPriority:d=1073741822-25*(((1073741822-a+500)/25|0)+1);break;case r.unstable_LowPriority:case r.unstable_IdlePriority:d=1;break;default:x(\"313\")}null!==Lh&&d===U&&--d}c===r.unstable_UserBlockingPriority&&\n(0===gi||d=d){a.didError=!1;b=a.latestPingedTime;if(0===b||b>c)a.latestPingedTime=c;df(c,a);c=a.expirationTime;0!==c&&Xh(a,c)}}function Ah(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=lf();b=mf(b,a);a=hi(a,b);null!==a&&(cf(a,b),b=a.expirationTime,0!==b&&Xh(a,b))}\nfunction hi(a,b){a.expirationTimeU&&Sh(),cf(a,b),Kh&&!Oh&&Lh===a||Xh(a,a.expirationTime),ii>ji&&(ii=0,x(\"185\")))}function ki(a,b,c,d,e){return r.unstable_runWithPriority(r.unstable_ImmediatePriority,function(){return a(b,c,d,e)})}var li=null,Y=null,mi=0,ni=void 0,W=!1,oi=null,Z=0,gi=0,pi=!1,qi=null,X=!1,ri=!1,si=null,ti=r.unstable_now(),ui=1073741822-(ti/10|0),vi=ui,ji=50,ii=0,wi=null;function xi(){ui=1073741822-((r.unstable_now()-ti)/10|0)}\nfunction yi(a,b){if(0!==mi){if(ba.expirationTime&&(a.expirationTime=b);W||(X?ri&&(oi=a,Z=1073741823,Di(a,1073741823,!1)):1073741823===b?Yh(1073741823,!1):yi(a,b))}\nfunction Ci(){var a=0,b=null;if(null!==Y)for(var c=Y,d=li;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===Y?x(\"244\"):void 0;if(d===d.nextScheduledRoot){li=Y=d.nextScheduledRoot=null;break}else if(d===li)li=e=d.nextScheduledRoot,Y.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===Y){Y=c;Y.nextScheduledRoot=li;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>a&&(a=e,b=d);if(d===Y)break;if(1073741823===\na)break;c=d;d=d.nextScheduledRoot}}oi=b;Z=a}var Ei=!1;function di(){return Ei?!0:r.unstable_shouldYield()?Ei=!0:!1}function zi(){try{if(!di()&&null!==li){xi();var a=li;do{var b=a.expirationTime;0!==b&&ui<=b&&(a.nextExpirationTimeToWorkOn=ui);a=a.nextScheduledRoot}while(a!==li)}Yh(0,!0)}finally{Ei=!1}}\nfunction Yh(a,b){Ci();if(b)for(xi(),vi=ui;null!==oi&&0!==Z&&a<=Z&&!(Ei&&ui>Z);)Di(oi,Z,ui>Z),Ci(),xi(),vi=ui;else for(;null!==oi&&0!==Z&&a<=Z;)Di(oi,Z,!1),Ci();b&&(mi=0,ni=null);0!==Z&&yi(oi,Z);ii=0;wi=null;if(null!==si)for(a=si,si=null,b=0;b=c&&(null===si?si=[d]:si.push(d),d._defer)){a.finishedWork=b;a.expirationTime=0;return}a.finishedWork=null;a===wi?ii++:(wi=a,ii=0);r.unstable_runWithPriority(r.unstable_ImmediatePriority,function(){Zh(a,b)})}function Dh(a){null===oi?x(\"246\"):void 0;oi.expirationTime=0;pi||(pi=!0,qi=a)}function Gi(a,b){var c=X;X=!0;try{return a(b)}finally{(X=c)||W||Yh(1073741823,!1)}}\nfunction Hi(a,b){if(X&&!ri){ri=!0;try{return a(b)}finally{ri=!1}}return a(b)}function Ii(a,b,c){X||W||0===gi||(Yh(gi,!1),gi=0);var d=X;X=!0;try{return r.unstable_runWithPriority(r.unstable_UserBlockingPriority,function(){return a(b,c)})}finally{(X=d)||W||Yh(1073741823,!1)}}\nfunction Ji(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===ed(c)&&1===c.tag?void 0:x(\"170\");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(J(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);x(\"171\");g=void 0}if(1===c.tag){var h=c.type;if(J(h)){c=Ne(c,h,g);break a}}c=g}else c=He;null===b.context?b.context=c:b.pendingContext=c;b=e;e=nf(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);\nof();pf(f,e);qf(f,d);return d}function Ki(a,b,c,d){var e=b.current,f=lf();e=mf(f,e);return Ji(a,b,c,e,d)}function Li(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function Mi(a,b,c){var d=3=Jh&&(b=Jh-1);this._expirationTime=Jh=b;this._root=a;this._callbacks=this._next=null;this._hasChildren=this._didComplete=!1;this._children=null;this._defer=!0}Ni.prototype.render=function(a){this._defer?void 0:x(\"250\");this._hasChildren=!0;this._children=a;var b=this._root._internalRoot,c=this._expirationTime,d=new Oi;Ji(a,b,null,c,d._onCommit);return d};\nNi.prototype.then=function(a){if(this._didComplete)a();else{var b=this._callbacks;null===b&&(b=this._callbacks=[]);b.push(a)}};\nNi.prototype.commit=function(){var a=this._root._internalRoot,b=a.firstBatch;this._defer&&null!==b?void 0:x(\"251\");if(this._hasChildren){var c=this._expirationTime;if(b!==this){this._hasChildren&&(c=this._expirationTime=b._expirationTime,this.render(this._children));for(var d=null,e=b;e!==this;)d=e,e=e._next;null===d?x(\"251\"):void 0;d._next=e._next;this._next=b;a.firstBatch=this}this._defer=!1;Bi(a,c);b=this._next;this._next=null;b=a.firstBatch=b;null!==b&&b._hasChildren&&b.render(b._children)}else this._next=\nnull,this._defer=!1};Ni.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var a=this._callbacks;if(null!==a)for(var b=0;b=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};function Qi(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}Gb=Gi;Hb=Ii;Ib=function(){W||0===gi||(Yh(gi,!1),gi=0)};\nfunction Ri(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new Pi(a,!1,b)}\nfunction Si(a,b,c,d,e){var f=c._reactRootContainer;if(f){if(\"function\"===typeof e){var g=e;e=function(){var a=Li(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{f=c._reactRootContainer=Ri(c,d);if(\"function\"===typeof e){var h=e;e=function(){var a=Li(f._internalRoot);h.call(a)}}Hi(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Li(f._internalRoot)}\nfunction Ti(a,b){var c=2=b){c=a;break}a=a.next}while(a!==d);null===c?c=d:c===d&&(d=h,p());b=c.previous;b.next=c.previous=h;h.next=c;h.previous=\nb}}function v(){if(-1===k&&null!==d&&1===d.priorityLevel){m=!0;try{do u();while(null!==d&&1===d.priorityLevel)}finally{m=!1,null!==d?p():n=!1}}}function t(a){m=!0;var b=e;e=a;try{if(a)for(;null!==d;){var c=exports.unstable_now();if(d.expirationTime<=c){do u();while(null!==d&&d.expirationTime<=c)}else break}else if(null!==d){do u();while(null!==d&&!w())}}finally{m=!1,e=b,null!==d?p():n=!1,v()}}\nvar x=Date,y=\"function\"===typeof setTimeout?setTimeout:void 0,z=\"function\"===typeof clearTimeout?clearTimeout:void 0,A=\"function\"===typeof requestAnimationFrame?requestAnimationFrame:void 0,B=\"function\"===typeof cancelAnimationFrame?cancelAnimationFrame:void 0,C,D;function E(a){C=A(function(b){z(D);a(b)});D=y(function(){B(C);a(exports.unstable_now())},100)}\nif(\"object\"===typeof performance&&\"function\"===typeof performance.now){var F=performance;exports.unstable_now=function(){return F.now()}}else exports.unstable_now=function(){return x.now()};var r,q,w,G=null;\"undefined\"!==typeof window?G=window:\"undefined\"!==typeof global&&(G=global);\nif(G&&G._schedMock){var H=G._schedMock;r=H[0];q=H[1];w=H[2];exports.unstable_now=H[3]}else if(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var I=null,J=function(a){if(null!==I)try{I(a)}finally{I=null}};r=function(a){null!==I?setTimeout(r,0,a):(I=a,setTimeout(J,0,!1))};q=function(){I=null};w=function(){return!1}}else{\"undefined\"!==typeof console&&(\"function\"!==typeof A&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\n\"function\"!==typeof B&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));var K=null,L=!1,M=-1,N=!1,O=!1,P=0,R=33,S=33;w=function(){return P<=exports.unstable_now()};var T=new MessageChannel,U=T.port2;T.port1.onmessage=function(){L=!1;var a=K,b=M;K=null;M=-1;var c=exports.unstable_now(),f=!1;if(0>=P-c)if(-1!==b&&b<=c)f=!0;else{N||(N=!0,E(V));K=a;M=b;return}if(null!==a){O=!0;try{a(f)}finally{O=!1}}};\nvar V=function(a){if(null!==K){E(V);var b=a-P+S;bb&&(b=8),S=bb?U.postMessage(void 0):N||(N=!0,E(V))};q=function(){K=null;L=!1;M=-1}}exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;\nexports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=g,f=k;g=a;k=exports.unstable_now();try{return b()}finally{g=c,k=f,v()}};exports.unstable_next=function(a){switch(g){case 1:case 2:case 3:var b=3;break;default:b=g}var c=g,f=k;g=b;k=exports.unstable_now();try{return a()}finally{g=c,k=f,v()}};\nexports.unstable_scheduleCallback=function(a,b){var c=-1!==k?k:exports.unstable_now();if(\"object\"===typeof b&&null!==b&&\"number\"===typeof b.timeout)b=c+b.timeout;else switch(g){case 1:b=c+-1;break;case 2:b=c+250;break;case 5:b=c+1073741823;break;case 4:b=c+1E4;break;default:b=c+5E3}a={callback:a,priorityLevel:g,expirationTime:b,next:null,previous:null};if(null===d)d=a.next=a.previous=a,p();else{c=null;var f=d;do{if(f.expirationTime>b){c=f;break}f=f.next}while(f!==d);null===c?c=d:c===d&&(d=a,p());\nb=c.previous;b.next=c.previous=a;a.next=c;a.previous=b}return a};exports.unstable_cancelCallback=function(a){var b=a.next;if(null!==b){if(b===a)d=null;else{a===d&&(d=b);var c=a.previous;c.next=b;b.previous=c}a.next=a.previous=null}};exports.unstable_wrapCallback=function(a){var b=g;return function(){var c=g,f=k;g=b;k=exports.unstable_now();try{return a.apply(this,arguments)}finally{g=c,k=f,v()}}};exports.unstable_getCurrentPriorityLevel=function(){return g};\nexports.unstable_shouldYield=function(){return!e&&(null!==d&&d.expirationTime\" + svgElement.innerHTML + \"\";\n };\n SvgDrawing.prototype.toSvgBase64 = function () {\n var svgXml = this.toSvgXml();\n if (!svgXml)\n return null;\n return \"data:image/svg+xml;base64,\" + btoa(svgXml);\n };\n SvgDrawing.prototype.clearListner = function () {\n this.el.removeEventListener('mousedown', this.mouseDown);\n this.el.removeEventListener('touchstart', this.touchStart);\n };\n SvgDrawing.prototype.init = function () {\n this.appendTo(this.el);\n this.el.addEventListener('mousedown', this.mouseDown, getPassiveOptions(false));\n this.el.addEventListener('touchstart', this.touchStart, getPassiveOptions(false));\n return this;\n };\n SvgDrawing.prototype.drawingStart = function (_a) {\n var x = _a.x, y = _a.y;\n this.current.set(x, y);\n };\n SvgDrawing.prototype.drawingMove = function (_a) {\n var _this = this;\n var x = _a.x, y = _a.y;\n var rect = this.el.getBoundingClientRect();\n var makePoint = function (mx, my) {\n return new Two.Vector(mx - rect.left, my - rect.top);\n };\n if (this.line) {\n if (this.line.linewidth !== this.penWidth ||\n this.line.stroke !== this.penColor) {\n this.drawingEnd();\n return;\n }\n var v = makePoint(x, y);\n this.line.vertices.push(v);\n return;\n }\n var vprev = makePoint(this.current.x, this.current.y);\n var vnext = makePoint(x, y);\n this.current.set(x, y);\n this.line = this.makeCurve([vprev, vnext], true);\n this.line.noFill().stroke = this.penColor;\n this.line.linewidth = this.penWidth;\n this.line.cap = this.strokeCap;\n this.line.join = this.strokeLineJoin;\n this.line.vertices.map(function (v) {\n if (!_this.line)\n return;\n v.addSelf(_this.line.translation);\n });\n this.line.translation.clear();\n };\n SvgDrawing.prototype.drawingEnd = function () {\n this.line = null;\n };\n SvgDrawing.prototype.mouseDown = function (e) {\n e.preventDefault();\n this.drawingStart({ x: e.clientX, y: e.clientY });\n this.el.addEventListener('mousemove', this.mouseMove, getPassiveOptions(false));\n this.el.addEventListener('mouseup', this.mouseUp, getPassiveOptions(false));\n };\n SvgDrawing.prototype.mouseMove = function (e) {\n e.preventDefault();\n this.drawingMove({ x: e.clientX, y: e.clientY });\n };\n SvgDrawing.prototype.mouseUp = function (e) {\n e.preventDefault();\n this.el.removeEventListener('mousemove', this.mouseMove);\n this.el.removeEventListener('mouseup', this.mouseUp);\n this.drawingEnd();\n };\n SvgDrawing.prototype.touchStart = function (e) {\n e.preventDefault();\n var touch = e.touches[0];\n this.drawingStart({ x: touch.clientX, y: touch.clientY });\n this.el.addEventListener('touchmove', this.touchMove, getPassiveOptions(false));\n this.el.addEventListener('touchend', this.touchEnd, getPassiveOptions(false));\n };\n SvgDrawing.prototype.touchMove = function (e) {\n e.preventDefault();\n var touch = e.touches[0];\n this.drawingMove({\n x: touch.clientX,\n y: touch.clientY\n });\n };\n SvgDrawing.prototype.touchEnd = function (e) {\n e.preventDefault();\n this.el.removeEventListener('touchmove', this.touchMove);\n this.el.removeEventListener('touchend', this.touchEnd);\n this.drawingEnd();\n };\n return SvgDrawing;\n}(Two));\nexport { SvgDrawing };\n","export var getPassiveOptions = function (passive) {\n if (passive === void 0) { passive = true; }\n try {\n var check = function () { return null; };\n window.addEventListener('testPassive', check, { passive: passive });\n window.removeEventListener('testPassive', check);\n return { passive: passive };\n }\n catch (e) {\n return false;\n }\n};\n","export var svgFormatting = function (svgXML) {\n var doc = typeof svgXML === 'string'\n ? new DOMParser().parseFromString(svgXML, 'image/svg+xml')\n : svgXML;\n var svgEle = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var originSvgEle = doc.querySelector('svg');\n if (!originSvgEle)\n return svgEle;\n ['width', 'height', 'viewBox'].map(function (attr) {\n var attrValue = originSvgEle.getAttribute(attr);\n if (attrValue)\n svgEle.setAttribute(attr, attrValue);\n });\n var pathEle = doc.querySelectorAll('path');\n pathEle.forEach(function (path) {\n path.removeAttribute('transform');\n svgEle.appendChild(path);\n });\n return svgEle;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { useRef, useEffect, useCallback } from 'react';\nimport { SvgDrawing } from 'svg-drawing/lib/SvgDrawing';\nimport { downloadBlob } from './utils/downloadBlob';\nexport var useSvgDrawing = function (option) {\n var renderRef = useRef(null);\n var drawingRef = useRef(null);\n var getSvgXML = useCallback(function () {\n if (!drawingRef.current)\n return null;\n return drawingRef.current.toSvgXml();\n }, []);\n var download = useCallback(function () {\n if (!drawingRef.current)\n return;\n var base64 = drawingRef.current.toSvgBase64();\n if (!base64)\n return;\n downloadBlob({\n base64: base64,\n filename: new Date().toISOString() + \".svg\",\n mimeType: 'image/svg+xml'\n });\n }, []);\n var changePenColor = useCallback(function (penColor) {\n if (!drawingRef.current || !penColor)\n return;\n drawingRef.current.penColor = penColor;\n }, []);\n var changePenWidth = useCallback(function (penSise) {\n if (!drawingRef.current)\n return;\n drawingRef.current.penWidth = Number(penSise);\n }, []);\n var clear = useCallback(function () {\n if (!drawingRef.current)\n return;\n drawingRef.current.clear();\n }, []);\n var undo = useCallback(function () {\n if (!drawingRef.current)\n return;\n var drawingChildren = drawingRef.current.scene.children;\n if (drawingChildren.length === 0)\n return;\n drawingRef.current.remove(drawingChildren[drawingChildren.length - 1]);\n }, []);\n useEffect(function () {\n if (drawingRef.current)\n return;\n if (!renderRef.current)\n return;\n drawingRef.current = new SvgDrawing(__assign({}, option, { el: renderRef.current, autostart: true }));\n });\n return [\n renderRef,\n {\n two: drawingRef.current,\n changePenWidth: changePenWidth,\n changePenColor: changePenColor,\n clear: clear,\n undo: undo,\n getSvgXML: getSvgXML,\n download: download\n }\n ];\n};\n","export var downloadBlob = function (_a) {\n var base64 = _a.base64, filename = _a.filename, mimeType = _a.mimeType;\n var bin = atob(base64.replace(/^.*,/, ''));\n var buffer = new Uint8Array(bin.length);\n for (var i = 0; i < bin.length; i++) {\n buffer[i] = bin.charCodeAt(i);\n }\n var blob = new Blob([buffer.buffer], {\n type: mimeType\n });\n if (window.navigator.msSaveBlob) {\n window.navigator.msSaveBlob(blob, filename);\n }\n else if (window.URL && window.URL.createObjectURL) {\n var a = document.createElement('a');\n a.download = filename;\n a.href = window.URL.createObjectURL(blob);\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n else {\n window.open(base64, '_blank');\n }\n};\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport React, { useEffect, Fragment, useCallback, useState } from 'react';\nimport { render } from 'react-dom';\nimport Pressure from 'pressure';\nimport { useSvgDrawing } from '../';\nvar getRandomInt = function (max) {\n return Math.floor(Math.random() * Math.floor(max));\n};\nvar getRandomColor = function () {\n return \"#\" + Array.from({ length: 3 }, function () {\n return String(getRandomInt(255).toString(16)).padStart(2, '0');\n }).join('');\n};\nvar Example = function () {\n var _a = __read(useSvgDrawing({\n penWidth: 3,\n penColor: '#000',\n width: 500,\n height: 500\n }), 2), divRef = _a[0], _b = _a[1], drawingTwo = _b.two, drawingClear = _b.clear, undo = _b.undo, getSvgXML = _b.getSvgXML, download = _b.download, changePenColor = _b.changePenColor, changePenWidth = _b.changePenWidth;\n var _c = __read(useState(false), 2), randomPen = _c[0], switchRandom = _c[1];\n var _d = __read(useState(''), 2), xml = _d[0], setXml = _d[1];\n var _e = __read(useState('normal'), 2), penMode = _e[0], setPenMode = _e[1];\n var _f = __read(useState(5), 2), penWidth = _f[0], setPenWidth = _f[1];\n var _g = __read(useState(0), 2), penThinnerWidth = _g[0], setPenThinnerWidth = _g[1];\n var handleColor = useCallback(function () {\n changePenColor(getRandomColor());\n }, [changePenColor]);\n var handlePenWidth = useCallback(function (e) {\n setPenWidth(Number(e.target.value));\n changePenWidth(Number(e.target.value));\n }, [changePenWidth]);\n var handleChangeXML = useCallback(function () {\n setXml(getSvgXML());\n }, [getSvgXML]);\n var handleChangeMode = useCallback(function (e) {\n setPenMode(e.target.value);\n }, []);\n var handleUpdatePenConfig = useCallback(function (e) {\n if (penMode === 'rainbow') {\n changePenColor(getRandomColor());\n return;\n }\n if (penMode === 'random') {\n changePenWidth(getRandomInt(50) + 5);\n return;\n }\n if (penMode == 'thinner') {\n changePenWidth(penThinnerWidth);\n }\n if (penMode === 'normal') {\n changePenWidth(penWidth);\n }\n }, [penMode, penWidth, changePenWidth, changePenColor, penThinnerWidth]);\n var pressureChange = useCallback(function (force, event) {\n setPenThinnerWidth(30 - Math.floor(force * 40));\n }, [setPenThinnerWidth]);\n useEffect(function () {\n if (!divRef.current)\n return;\n Pressure.set(divRef.current, {\n change: pressureChange\n });\n }, [divRef, pressureChange]);\n return (React.createElement(Fragment, null,\n React.createElement(\"fieldset\", null,\n React.createElement(\"label\", null,\n React.createElement(\"input\", { type: \"checkbox\", checked: penMode === 'normal', value: \"normal\", onChange: handleChangeMode }),\n \"Normal pen.\"),\n React.createElement(\"label\", null,\n React.createElement(\"input\", { type: \"checkbox\", checked: penMode === 'thinner', value: \"thinner\", onChange: handleChangeMode }),\n \"Pen becoming thinner.\"),\n React.createElement(\"label\", null,\n React.createElement(\"input\", { type: \"checkbox\", checked: penMode === 'random', value: \"random\", onChange: handleChangeMode }),\n \"Pen becoming Random Width.\"),\n React.createElement(\"label\", null,\n React.createElement(\"input\", { type: \"checkbox\", checked: penMode === 'rainbow', value: \"rainbow\", onChange: handleChangeMode }),\n \"Rainbow pen.\"),\n ['normal', 'rainbow'].includes(penMode) && (React.createElement(\"div\", null,\n \"pen width\",\n React.createElement(\"input\", { type: \"range\", value: penWidth, min: 1, max: 50, onChange: handlePenWidth }))),\n penMode !== 'rainbow' && (React.createElement(\"button\", { onClick: handleColor }, \"Change Color\"))),\n React.createElement(\"div\", { style: {\n display: 'flex',\n justifyContent: 'flexWrap'\n } },\n React.createElement(\"div\", null,\n React.createElement(\"div\", { ref: divRef, style: {\n border: '1px solid #eee',\n margin: 'auto'\n }, onMouseMove: handleUpdatePenConfig, onTouchMove: handleUpdatePenConfig, onTouchEnd: handleChangeXML, onMouseLeave: handleChangeXML }),\n React.createElement(\"button\", { onClick: undo }, \"Undo\"),\n React.createElement(\"button\", { onClick: drawingClear }, \"Clear\"),\n React.createElement(\"button\", { onClick: download }, \"Download SVG\"))),\n React.createElement(\"p\", { style: {\n fontSize: '8px'\n } }, xml)));\n};\nvar app = document.createElement('div');\ndocument.body.appendChild(app);\nrender(React.createElement(Example, null), app);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/index.min.js b/lib/index.min.js index 2d0af668..751b0ce7 100644 --- a/lib/index.min.js +++ b/lib/index.min.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-hooks-svgdrawing"]=e(require("react")):t["react-hooks-svgdrawing"]=e(t.react)}(window,function(t){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=5)}([function(e,i){e.exports=t},function(t,e,i){"use strict";(function(t,r){var n,s,a;window.Two=function(e){var n="undefined"!=typeof window?window:void 0!==t?t:null,s=Object.prototype.toString,a={_indexAmount:0,natural:{slice:Array.prototype.slice,indexOf:Array.prototype.indexOf,keys:Object.keys,bind:Function.prototype.bind,create:Object.create},identity:function(t){return t},isArguments:function(t){return"[object Arguments]"===s.call(t)},isFunction:function(t){return"[object Function]"===s.call(t)},isString:function(t){return"[object String]"===s.call(t)},isNumber:function(t){return"[object Number]"===s.call(t)},isDate:function(t){return"[object Date]"===s.call(t)},isRegExp:function(t){return"[object RegExp]"===s.call(t)},isError:function(t){return"[object Error]"===s.call(t)},isFinite:function(t){return isFinite(t)&&!isNaN(parseFloat(t))},isNaN:function(t){return a.isNumber(t)&&t!==+t},isBoolean:function(t){return!0===t||!1===t||"[object Boolean]"===s.call(t)},isNull:function(t){return null===t},isUndefined:function(t){return void 0===t},isEmpty:function(t){return null==t||(x&&(a.isArray(t)||a.isString(t)||a.isArguments(t))?0===t.length:0===a.keys(t).length)},isElement:function(t){return!(!t||1!==t.nodeType)},isArray:Array.isArray||function(t){return"[object Array]"===s.call(t)},isObject:function(t){var e=typeof t;return"function"===e||"object"===e&&!!t},toArray:function(t){return t?a.isArray(t)?m.call(t):x(t)?a.map(t,a.identity):a.values(t):[]},range:function(t,e,i){null==e&&(e=t||0,t=0),i=i||1;for(var r=Math.max(Math.ceil((e-t)/i),0),n=Array(r),s=0;s=0&&i<=y},b={temp:n.document?n.document.createElement("div"):{},hasEventListeners:a.isFunction(n.addEventListener),bind:function(t,e,i,r){return this.hasEventListeners?t.addEventListener(e,i,!!r):t.attachEvent("on"+e,i),b},unbind:function(t,e,i,r){return b.hasEventListeners?t.removeEventListeners(e,i,!!r):t.detachEvent("on"+e,i),b},getRequestAnimationFrame:function(){var t,e=0,i=["ms","moz","webkit","o"],r=n.requestAnimationFrame;if(!r){for(var s=0;s0?t.transform.baseVal[0].matrix:t.getCTM?t.getCTM():null;if(a.isNull(u))break;var g=w.Utils.decomposeMatrix(u);e.translation.set(g.translateX,g.translateY),e.rotation=g.rotation,e.scale=new w.Vector(g.scaleX,g.scaleY);var _=parseFloat((h.x+"").replace("px")),p=parseFloat((h.y+"").replace("px"));_&&(e.translation.x=_),p&&(e.translation.y=p);break;case"viewBox":w.Utils.applySvgViewBox.call(this,e,o);break;case"visible":e.visible=o;break;case"stroke-linecap":e.cap=o;break;case"stroke-linejoin":e.join=o;break;case"stroke-miterlimit":e.miter=o;break;case"stroke-width":e.linewidth=parseFloat(o);break;case"opacity":case"stroke-opacity":case"fill-opacity":e instanceof w.Group||(e.opacity=parseFloat(o));break;case"fill":case"stroke":/url\(\#.*\)/i.test(o)?e[s]=this.getById(o.replace(/url\(\#(.*)\)/i,"$1")):e[s]=/none/i.test(o)?"transparent":o;break;case"id":e.id=o;break;case"class":case"className":e.classList=o.split(" ")}return h},read:{svg:function(t){var e=w.Utils.read.g.call(this,t);t.getAttribute("viewBox");return e},g:function(t){var e,i=new w.Group;e=w.Utils.getSvgStyles.call(this,t);for(var r=0,n=t.childNodes.length;r1&&(d=1);break;case"m":case"l":case"t":g.length>2&&(d=2);break;case"s":case"q":g.length>4&&(d=4);break;case"c":g.length>6&&(d=6);break;case"a":g.length>7&&(d=7)}if(d){for(a=0,l=g.length,c=0;a0)switch(f){case"m":o="l";break;case"M":o="L"}_.push(o+g.slice(a,a+d).join(" ")),c++}h=Array.prototype.concat.apply(h,_)}else h.push(t)});var d=[];if(a.each(h,function(t,e){var n,h,f,g,_,p,m,v,y,x,b,k,S=t[0],E=S.toLowerCase();switch(r=(r=(r=t.slice(1).trim()).replace(/(-?\d+(?:\.\d*)?)[eE]([+\-]?\d+)/g,function(t,e,i){return parseFloat(e)*u(10,i)})).split(/[\s,]+|(?=\s?[+\-])/),l=S===E,E){case"z":if(e>=c)o=!0;else{h=s.x,f=s.y,n=new w.Anchor(h,f,void 0,void 0,void 0,void 0,w.Commands.close);for(e=d.length-1;e>=0;e--){var A=d[e];if(/m/i.test(A.command)){s=A;break}}}break;case"m":case"l":i=void 0,h=parseFloat(r[0]),f=parseFloat(r[1]),n=new w.Anchor(h,f,void 0,void 0,void 0,void 0,/m/i.test(E)?w.Commands.move:w.Commands.line),l&&n.addSelf(s),s=n;break;case"h":case"v":var C=/h/i.test(E)?"x":"y",R=/x/i.test(C)?"y":"x";(n=new w.Anchor(void 0,void 0,void 0,void 0,void 0,void 0,w.Commands.line))[C]=parseFloat(r[0]),n[R]=s[R],l&&(n[C]+=s[C]),s=n;break;case"c":case"s":g=s.x,_=s.y,i||(i=new w.Vector),/c/i.test(E)?(p=parseFloat(r[0]),m=parseFloat(r[1]),v=parseFloat(r[2]),y=parseFloat(r[3]),x=parseFloat(r[4]),b=parseFloat(r[5])):(p=(k=M(s,i,l)).x,m=k.y,v=parseFloat(r[0]),y=parseFloat(r[1]),x=parseFloat(r[2]),b=parseFloat(r[3])),l&&(p+=g,m+=_,v+=g,y+=_,x+=g,b+=_),a.isObject(s.controls)||w.Anchor.AppendCurveProperties(s),s.controls.right.set(p-s.x,m-s.y),n=new w.Anchor(x,b,v-x,y-b,void 0,void 0,w.Commands.curve),s=n,i=n.controls.left;break;case"t":case"q":g=s.x,_=s.y,i||(i=new w.Vector),i.isZero()?(p=g,m=_):(p=i.x,m=i.y),/q/i.test(E)?(v=parseFloat(r[0]),y=parseFloat(r[1]),x=parseFloat(r[2]),b=parseFloat(r[3])):(v=(k=M(s,i,l)).x,y=k.y,x=parseFloat(r[0]),b=parseFloat(r[1])),l&&(p+=g,m+=_,v+=g,y+=_,x+=g,b+=_),a.isObject(s.controls)||w.Anchor.AppendCurveProperties(s),s.controls.right.set(p-s.x,m-s.y),n=new w.Anchor(x,b,v-x,y-b,void 0,void 0,w.Commands.curve),s=n,i=n.controls.left;break;case"a":g=s.x,_=s.y;var F=parseFloat(r[0]),O=parseFloat(r[1]),P=parseFloat(r[2]),U=parseFloat(r[3]),T=parseFloat(r[4]);x=parseFloat(r[5]),b=parseFloat(r[6]),l&&(x+=g,b+=_);var L=new w.Anchor(x,b);L.command=w.Commands.arc,L.rx=F,L.ry=O,L.xAxisRotation=P,L.largeArcFlag=U,L.sweepFlag=T,n=L,s=L,i=void 0}n&&(a.isArray(n)?d=d.concat(n):d.push(n))}),!(d.length<=1)){(n=new w.Path(d,o,void 0,!0).noStroke()).fill="black";var f=n.getBoundingClientRect(!0);return f.centroid={x:f.left+f.width/2,y:f.top+f.height/2},a.each(n.vertices,function(t){t.subSelf(f.centroid)}),n.translation.addSelf(f.centroid),w.Utils.applySvgAttributes.call(this,t,n,e),n}},circle:function(t,e){var i=parseFloat(t.getAttribute("cx")),r=parseFloat(t.getAttribute("cy")),n=parseFloat(t.getAttribute("r")),s=new w.Circle(i,r,n).noStroke();return s.fill="black",w.Utils.applySvgAttributes.call(this,t,s,e),s},ellipse:function(t,e){var i=parseFloat(t.getAttribute("cx")),r=parseFloat(t.getAttribute("cy")),n=parseFloat(t.getAttribute("rx")),s=parseFloat(t.getAttribute("ry")),a=new w.Ellipse(i,r,n,s).noStroke();return a.fill="black",w.Utils.applySvgAttributes.call(this,t,a,e),a},rect:function(t,e){var i=parseFloat(t.getAttribute("rx")),r=parseFloat(t.getAttribute("ry"));if(!a.isNaN(i)||!a.isNaN(r))return w.Utils.read["rounded-rect"](t);var n=parseFloat(t.getAttribute("x"))||0,s=parseFloat(t.getAttribute("y"))||0,o=parseFloat(t.getAttribute("width")),l=parseFloat(t.getAttribute("height")),h=o/2,c=l/2,d=new w.Rectangle(n+h,s+c,o,l).noStroke();return d.fill="black",w.Utils.applySvgAttributes.call(this,t,d,e),d},"rounded-rect":function(t,e){var i=parseFloat(t.getAttribute("x"))||0,r=parseFloat(t.getAttribute("y"))||0,n=parseFloat(t.getAttribute("rx"))||0,s=parseFloat(t.getAttribute("ry"))||0,a=parseFloat(t.getAttribute("width")),o=parseFloat(t.getAttribute("height")),l=a/2,h=o/2,c=new w.Vector(n,s),d=new w.RoundedRectangle(i+l,r+h,a,o,c).noStroke();return d.fill="black",w.Utils.applySvgAttributes.call(this,t,d,e),d},line:function(t,e){var i=parseFloat(t.getAttribute("x1")),r=parseFloat(t.getAttribute("y1")),n=parseFloat(t.getAttribute("x2")),s=parseFloat(t.getAttribute("y2")),a=new w.Line(i,r,n,s).noFill();return w.Utils.applySvgAttributes.call(this,t,a,e),a},lineargradient:function(t,e){for(var i=parseFloat(t.getAttribute("x1")),r=parseFloat(t.getAttribute("y1")),n=parseFloat(t.getAttribute("x2")),s=parseFloat(t.getAttribute("y2")),o=(n+i)/2,l=(s+r)/2,h=[],c=0;c1?d[1]:void 0;if(a.isNull(_))_=(d=!!p&&p.match(/stop\-opacity\:\s?([0-9\.\-]*)/))&&d.length>1?parseFloat(d[1]):1;h.push(new w.Gradient.Stop(u,g,_))}var m=new w.LinearGradient(i-o,r-l,n-o,s-l,h);return w.Utils.applySvgAttributes.call(this,t,m,e),m},radialgradient:function(t,e){var i=parseFloat(t.getAttribute("cx"))||0,r=parseFloat(t.getAttribute("cy"))||0,n=parseFloat(t.getAttribute("r")),s=parseFloat(t.getAttribute("fx")),o=parseFloat(t.getAttribute("fy"));a.isNaN(s)&&(s=i),a.isNaN(o)&&(o=r);for(var l=c(i+s)/2,h=c(r+o)/2,d=[],f=0;f1?u[1]:void 0;if(a.isNull(m))m=(u=!!v&&v.match(/stop\-opacity\:\s?([0-9\.\-]*)/))&&u.length>1?parseFloat(u[1]):1;d.push(new w.Gradient.Stop(_,p,m))}var y=new w.RadialGradient(i-l,r-h,n,d,s-l,o-h);return w.Utils.applySvgAttributes.call(this,t,y,e),y}},subdivide:function(t,e,i,r,n,s,a,o,l){var h=(l=l||w.Utils.Curve.RecursionLimit)+1;if(c(t-a)<.001&&c(e-o)<.001)return[new w.Anchor(a,o)];for(var d=[],f=0;f>1,c=1&r?s[l++]*t(o):0;l1?Array.prototype.push.apply(this,arguments):arguments[0]&&Array.isArray(arguments[0])&&Array.prototype.push.apply(this,arguments[0])},Error:function(t){this.name="two.js",this.message=t},Events:{on:function(t,e){return this._events||(this._events={}),(this._events[t]||(this._events[t]=[])).push(e),this},off:function(t,e){if(!this._events)return this;if(!t&&!e)return this._events={},this;for(var i=t?[t]:a.keys(this._events),r=0,n=i.length;r2&&(t=this.slice(arguments[0],arguments[0]+arguments.length-2),this.trigger(w.Events.insert,t),this.trigger(w.Events.order)),e},sort:function(){return Array.prototype.sort.apply(this,arguments),this.trigger(w.Events.order),this},reverse:function(){return Array.prototype.reverse.apply(this,arguments),this.trigger(w.Events.order),this}});w.Utils.getAnchorsFromArcData;var S=w.Utils.getControlPoints,E=(w.Utils.getCurveFromPoints,w.Utils.solveSegmentIntersection,w.Utils.decoupleShapes,w.Utils.mod),A=w.Utils.getBackingStoreRatio,C=w.Utils.getComponentOnCubicBezier,R=(w.Utils.getCurveLength,w.Utils.integrate),M=w.Utils.getReflection;function F(){var t=document.body.getBoundingClientRect(),e=this.width=t.width,i=this.height=t.height;this.renderer.setSize(e,i,this.ratio)}function O(t,e){this.width=t,this.height=e,this.trigger(w.Events.resize,t,e)}a.extend(w.prototype,w.Utils.Events,{constructor:w,appendTo:function(t){return t.appendChild(this.renderer.domElement),this},play:function(){return w.Utils.setPlaying.call(this,!0),P.init(),this.trigger(w.Events.play)},pause:function(){return this.playing=!1,this.trigger(w.Events.pause)},update:function(){var t=!!this._lastFrame,e=v.now();t&&(this.timeDelta=parseFloat((e-this._lastFrame).toFixed(3))),this._lastFrame=e;var i=this.width,r=this.height,n=this.renderer;return i===n.width&&r===n.height||n.setSize(i,r,this.ratio),this.trigger(w.Events.update,this.frameCount,this.timeDelta),this.render()},render:function(){return this.renderer.render(),this.trigger(w.Events.render,this.frameCount++)},add:function(t){var e=t;return e instanceof Array||(e=a.toArray(arguments)),this.scene.add(e),this},remove:function(t){var e=t;return e instanceof Array||(e=a.toArray(arguments)),this.scene.remove(e),this},clear:function(){return this.scene.remove(this.scene.children),this},makeLine:function(t,e,i,r){var n=new w.Line(t,e,i,r);return this.scene.add(n),n},makeRectangle:function(t,e,i,r){var n=new w.Rectangle(t,e,i,r);return this.scene.add(n),n},makeRoundedRectangle:function(t,e,i,r,n){var s=new w.RoundedRectangle(t,e,i,r,n);return this.scene.add(s),s},makeCircle:function(t,e,i){var r=new w.Circle(t,e,i);return this.scene.add(r),r},makeEllipse:function(t,e,i,r){var n=new w.Ellipse(t,e,i,r);return this.scene.add(n),n},makeStar:function(t,e,i,r,n){var s=new w.Star(t,e,i,r,n);return this.scene.add(s),s},makeCurve:function(t){var e=arguments.length,i=t;if(!a.isArray(t)){i=[];for(var r=0;r=4?(i=arguments[0]-arguments[2],r=arguments[1]-arguments[3],Math.atan2(r,i)):(i=t.x-e.x,r=t.y-e.y,Math.atan2(r,i))},distanceBetween:function(t,e){return Math.sqrt(i.distanceBetweenSquared(t,e))},distanceBetweenSquared:function(t,e){var i=t.x-e.x,r=t.y-e.y;return i*i+r*r},MakeObservable:function(i){i.bind=i.on=function(){return this._bound||(this._x=this.x,this._y=this.y,Object.defineProperty(this,"x",n),Object.defineProperty(this,"y",s),e.extend(this,r),this._bound=!0),t.Utils.Events.bind.apply(this,arguments),this}}}),e.extend(i.prototype,t.Utils.Events,{constructor:i,set:function(t,e){return this.x=t,this.y=e,this},copy:function(t){return this.x=t.x,this.y=t.y,this},clear:function(){return this.x=0,this.y=0,this},clone:function(){return new i(this.x,this.y)},add:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x+=t,this.y+=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x+=t.x,this.y+=t.y):(this.x+=t,this.y+=i),this)},addSelf:function(t){return this.add.apply(this,arguments)},sub:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x-=t,this.y-=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x-=t.x,this.y-=t.y):(this.x-=t,this.y-=i),this)},subtract:function(){return this.sub.apply(this,arguments)},subSelf:function(t){return this.sub.apply(this,arguments)},subtractSelf:function(t){return this.sub.apply(this,arguments)},multiply:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x*=t,this.y*=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x*=t.x,this.y*=t.y):(this.x*=t,this.y*=i),this)},multiplySelf:function(t){return this.multiply.apply(this,arguments)},multiplyScalar:function(t){return this.multiply(t)},divide:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x/=t,this.y/=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x/=t.x,this.y/=t.y):(this.x/=t,this.y/=i),e.isNaN(this.x)&&(this.x=0),e.isNaN(this.y)&&(this.y=0),this)},divideSelf:function(t){return this.divide.apply(this,arguments)},divideScalar:function(t){return this.divide(t)},negate:function(){return this.multiply(-1)},dot:function(t){return this.x*t.x+this.y*t.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(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return e*e+i*i},setLength:function(t){return this.normalize().multiplyScalar(t)},equals:function(t,e){return e=void 0===e?1e-4:e,this.distanceTo(t)0&&this.set(l)};n.extend(o,{Identity:[1,0,0,0,1,0,0,0,1],Multiply:function(e,i,r){if(i.length<=3){var n=e,s=i[0]||0,a=i[1]||0,o=i[2]||0;return{x:n[0]*s+n[1]*a+n[2]*o,y:n[3]*s+n[4]*a+n[5]*o,z:n[6]*s+n[7]*a+n[8]*o}}var l=e[0],h=e[1],c=e[2],d=e[3],f=e[4],u=e[5],g=e[6],_=e[7],p=e[8],m=i[0],v=i[1],y=i[2],x=i[3],b=i[4],w=i[5],k=i[6],S=i[7],E=i[8];return(r=r||new t.Array(9))[0]=l*m+h*x+c*k,r[1]=l*v+h*b+c*S,r[2]=l*y+h*w+c*E,r[3]=d*m+f*x+u*k,r[4]=d*v+f*b+u*S,r[5]=d*y+f*w+u*E,r[6]=g*m+_*x+p*k,r[7]=g*v+_*b+p*S,r[8]=g*y+_*w+p*E,r}}),n.extend(o.prototype,t.Utils.Events,{constructor:o,manual:!1,set:function(e){var i=e;return arguments.length>1&&(i=n.toArray(arguments)),this.elements[0]=i[0],this.elements[1]=i[1],this.elements[2]=i[2],this.elements[3]=i[3],this.elements[4]=i[4],this.elements[5]=i[5],this.elements[6]=i[6],this.elements[7]=i[7],this.elements[8]=i[8],this.trigger(t.Events.change)},identity:function(){return this.elements[0]=o.Identity[0],this.elements[1]=o.Identity[1],this.elements[2]=o.Identity[2],this.elements[3]=o.Identity[3],this.elements[4]=o.Identity[4],this.elements[5]=o.Identity[5],this.elements[6]=o.Identity[6],this.elements[7]=o.Identity[7],this.elements[8]=o.Identity[8],this.trigger(t.Events.change)},multiply:function(e,i,r,n,s,a,o,l,h){var c=arguments,d=c.length;if(d<=1)return this.elements[0]*=e,this.elements[1]*=e,this.elements[2]*=e,this.elements[3]*=e,this.elements[4]*=e,this.elements[5]*=e,this.elements[6]*=e,this.elements[7]*=e,this.elements[8]*=e,this.trigger(t.Events.change);if(d<=3)return e=e||0,i=i||0,r=r||0,{x:(s=this.elements)[0]*e+s[1]*i+s[2]*r,y:s[3]*e+s[4]*i+s[5]*r,z:s[6]*e+s[7]*i+s[8]*r};var f=this.elements,u=c,g=f[0],_=f[1],p=f[2],m=f[3],v=f[4],y=f[5],x=f[6],b=f[7],w=f[8],k=u[0],S=u[1],E=u[2],A=u[3],C=u[4],R=u[5],M=u[6],F=u[7],O=u[8];return this.elements[0]=g*k+_*A+p*M,this.elements[1]=g*S+_*C+p*F,this.elements[2]=g*E+_*R+p*O,this.elements[3]=m*k+v*A+y*M,this.elements[4]=m*S+v*C+y*F,this.elements[5]=m*E+v*R+y*O,this.elements[6]=x*k+b*A+w*M,this.elements[7]=x*S+b*C+w*F,this.elements[8]=x*E+b*R+w*O,this.trigger(t.Events.change)},inverse:function(e){var i=this.elements;e=e||new t.Matrix;var r=i[0],n=i[1],s=i[2],a=i[3],o=i[4],l=i[5],h=i[6],c=i[7],d=i[8],f=d*o-l*c,u=-d*a+l*h,g=c*a-o*h,_=r*f+n*u+s*g;return _?(_=1/_,e.elements[0]=f*_,e.elements[1]=(-d*n+s*c)*_,e.elements[2]=(l*n-s*o)*_,e.elements[3]=u*_,e.elements[4]=(d*r-s*h)*_,e.elements[5]=(-l*r+s*a)*_,e.elements[6]=g*_,e.elements[7]=(-c*r+n*h)*_,e.elements[8]=(o*r-n*a)*_,e):null},scale:function(t,e){return arguments.length<=1&&(e=t),this.multiply(t,0,0,0,e,0,0,0,1)},rotate:function(t){var r=e(t),n=i(t);return this.multiply(r,-n,0,n,r,0,0,0,1)},translate:function(t,e){return this.multiply(1,0,t,0,1,e,0,0,1)},skewX:function(t){var e=r(t);return this.multiply(1,e,0,0,1,0,0,0,1)},skewY:function(t){var e=r(t);return this.multiply(1,0,0,e,1,0,0,0,1)},toString:function(t){return a.length=0,this.toArray(t,a),a.join(" ")},toArray:function(t,e){var i=this.elements,r=!!e,n=s(i[0]),a=s(i[1]),o=s(i[2]),l=s(i[3]),h=s(i[4]),c=s(i[5]);if(t){var d=s(i[6]),f=s(i[7]),u=s(i[8]);return r?(e[0]=n,e[1]=l,e[2]=d,e[3]=a,e[4]=h,e[5]=f,e[6]=o,e[7]=c,void(e[8]=u)):[n,l,d,a,h,f,o,c,u]}return r?(e[0]=n,e[1]=l,e[2]=a,e[3]=h,e[4]=o,void(e[5]=c)):[n,l,a,h,o,c]},clone:function(){var e,i,r,n,s,a,o,l,h;e=this.elements[0],i=this.elements[1],r=this.elements[2],n=this.elements[3],s=this.elements[4],a=this.elements[5],o=this.elements[6],l=this.elements[7],h=this.elements[8];var c=new t.Matrix(e,i,r,n,s,a,o,l,h);return c.manual=this.manual,c}})}((void 0!==t?t:window).Two),function(t){var e=t.Utils.mod,i=t.Utils.toFixed,r=t.Utils,n={version:1.1,ns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",alignments:{left:"start",center:"middle",right:"end"},createElement:function(t,e){var i=t,s=document.createElementNS(n.ns,i);return"svg"===i&&(e=r.defaults(e||{},{version:n.version})),r.isEmpty(e)||n.setAttributes(s,e),s},setAttributes:function(t,e){for(var i=Object.keys(e),r=0;r=o&&n&&(S.command===t.Commands.curve&&(R=s,m=S.controls&&S.controls.right||S,v=R.controls&&R.controls.left||R,S.relative?(d=i(m.x+S.x),f=i(m.y+S.y)):(d=i(m.x),f=i(m.y)),R.relative?(u=i(v.x+R.x),g=i(v.y+R.y)):(u=i(v.x),g=i(v.y)),c+=" C "+d+" "+f+" "+u+" "+g+" "+(M=i(R.x))+" "+(F=i(R.y))),S.command!==t.Commands.close&&(c+=" Z")),l+=c+" "}return l},getClip:function(t){var e=t._renderer.clip;if(!e){for(var i=t;i.parent;)i=i.parent;e=t._renderer.clip=n.createElement("clipPath"),i.defs.appendChild(e)}return e},group:{appendChild:function(t){var e=t._renderer.elem;if(e){var i=e.nodeName;!i||/(radial|linear)gradient/i.test(i)||t._clip||this.elem.appendChild(e)}},removeChild:function(t){var e=t._renderer.elem;e&&e.parentNode==this.elem&&(e.nodeName&&(t._clip||this.elem.removeChild(e)))},orderChild:function(t){this.elem.appendChild(t._renderer.elem)},renderChild:function(t){n[t._renderer.type].render.call(t,this)},render:function(t){if(this._update(),0===this._opacity&&!this._flagOpacity)return this;this._renderer.elem||(this._renderer.elem=n.createElement("g",{id:this.id}),t.appendChild(this._renderer.elem));var e=this._matrix.manual||this._flagMatrix,i={domElement:t,elem:this._renderer.elem};e&&this._renderer.elem.setAttribute("transform","matrix("+this._matrix.toString()+")");for(var r=0;r0&&(e["stroke-dasharray"]=this.dashes.join(" ")),this._renderer.elem?n.setAttributes(this._renderer.elem,e):(e.id=this.id,this._renderer.elem=n.createElement("path",e),t.appendChild(this._renderer.elem)),this._flagClip){var r=n.getClip(this),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.flagReset()}},text:{render:function(t){this._update();var e={};if((this._matrix.manual||this._flagMatrix)&&(e.transform="matrix("+this._matrix.toString()+")"),this._flagFamily&&(e["font-family"]=this._family),this._flagSize&&(e["font-size"]=this._size),this._flagLeading&&(e["line-height"]=this._leading),this._flagAlignment&&(e["text-anchor"]=n.alignments[this._alignment]||this._alignment),this._flagBaseline&&(e["alignment-baseline"]=e["dominant-baseline"]=this._baseline),this._flagStyle&&(e["font-style"]=this._style),this._flagWeight&&(e["font-weight"]=this._weight),this._flagDecoration&&(e["text-decoration"]=this._decoration),this._fill&&this._fill._renderer&&(this._fill._update(),n[this._fill._renderer.type].render.call(this._fill,t,!0)),this._flagFill&&(e.fill=this._fill&&this._fill.id?"url(#"+this._fill.id+")":this._fill),this._stroke&&this._stroke._renderer&&(this._stroke._update(),n[this._stroke._renderer.type].render.call(this._stroke,t,!0)),this._flagStroke&&(e.stroke=this._stroke&&this._stroke.id?"url(#"+this._stroke.id+")":this._stroke),this._flagLinewidth&&(e["stroke-width"]=this._linewidth),this._flagOpacity&&(e.opacity=this._opacity),this._flagClassName&&(e.class=this._className),this._flagVisible&&(e.visibility=this._visible?"visible":"hidden"),this.dashes&&this.dashes.length>0&&(e["stroke-dasharray"]=this.dashes.join(" ")),this._renderer.elem?n.setAttributes(this._renderer.elem,e):(e.id=this.id,this._renderer.elem=n.createElement("text",e),t.defs.appendChild(this._renderer.elem)),this._flagClip){var i=n.getClip(this),r=this._renderer.elem;this._clip?(r.removeAttribute("id"),i.setAttribute("id",this.id),i.appendChild(r)):(i.removeAttribute("id"),r.setAttribute("id",this.id),this.parent._renderer.elem.appendChild(r))}return this._flagValue&&(this._renderer.elem.textContent=this._value),this.flagReset()}},"linear-gradient":{render:function(t,e){e||this._update();var i={};if(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?n.setAttributes(this._renderer.elem,i):(i.id=this.id,i.gradientUnits="userSpaceOnUse",this._renderer.elem=n.createElement("linearGradient",i),t.defs.appendChild(this._renderer.elem)),this._flagStops){var r=this._renderer.elem.childNodes.length!==this.stops.length;r&&(this._renderer.elem.childNodes.length=0);for(var s=0;s0&&(s.x*=-1),s.y>0&&(s.y*=-1)),(this._flagScale||this._flagLoaded||this._flagRepeat)&&(s.width=0,s.height=0,o)){switch(a.width=s.width=o.width,a.height=s.height=o.height,this._repeat){case"no-repeat":s.width+=1,s.height+=1}this._scale instanceof t.Vector?(s.width*=this._scale.x,s.height*=this._scale.y):(s.width*=this._scale,s.height*=this._scale)}return(this._flagScale||this._flagLoaded)&&(this._renderer.image?r.isEmpty(a)||n.setAttributes(this._renderer.image,a):this._renderer.image=n.createElement("image",a)),this._renderer.elem?r.isEmpty(s)||n.setAttributes(this._renderer.elem,s):(s.id=this.id,s.patternUnits="userSpaceOnUse",this._renderer.elem=n.createElement("pattern",s),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()}}},s=t[t.Types.svg]=function(e){this.domElement=e.domElement||n.createElement("svg"),this.scene=new t.Group,this.scene.parent=this,this.defs=n.createElement("defs"),this.domElement.appendChild(this.defs),this.domElement.defs=this.defs,this.domElement.style.overflow="hidden"};r.extend(s,{Utils:n}),r.extend(s.prototype,t.Utils.Events,{constructor:s,setSize:function(e,i){return this.width=e,this.height=i,n.setAttributes(this.domElement,{width:e,height:i}),this.trigger(t.Events.resize,e,i)},render:function(){return n.group.render.call(this.scene,this.domElement),this}})}((void 0!==t?t:window).Two),function(t){var e=t.Utils.mod,i=t.Utils.toFixed,r=t.Utils.getRatio,n=t.Utils,s=[],a=2*Math.PI,o=Math.max,l=Math.min,h=Math.abs,c=Math.sin,d=Math.cos,f=Math.acos,u=Math.sqrt,g=function(t){return 1==t[0]&&0==t[3]&&0==t[1]&&1==t[4]&&0==t[2]&&0==t[5]},_={isHidden:/(none|transparent)/i,alignments:{left:"start",middle:"center",right:"end"},shim:function(t,e){return t.tagName=t.nodeName=e||"canvas",t.nodeType=1,t.getAttribute=function(t){return this[t]},t.setAttribute=function(t,e){return this[t]=e,this},t},group:{renderChild:function(t){_[t._renderer.type].render.call(t,this.ctx,!0,this.clip)},render:function(t){this._update();var e=this._matrix.elements,i=this.parent;this._renderer.opacity=this._opacity*(i&&i._renderer?i._renderer.opacity:1);var r=g(e),n=this._mask;if(this._renderer.context||(this._renderer.context={}),this._renderer.context.ctx=t,r||(t.save(),t.transform(e[0],e[3],e[1],e[4],e[2],e[5])),n&&_[n._renderer.type].render.call(n,t,!0),this.opacity>0&&0!==this.scale)for(var s=0;s0&&r.setLineDash(z),r.beginPath();for(var H=0;H=k&&x&&(R=M,N=C.controls&&C.controls.right||t.Vector.zero,j=R.controls&&R.controls.left||t.Vector.zero,C._relative?(P=N.x+i(C.x),U=N.y+i(C.y)):(P=i(N.x),U=i(N.y)),R._relative?(F=j.x+i(R.x),O=j.y+i(R.y)):(F=i(j.x),O=i(j.y)),V=i(R.x),B=i(R.y),r.bezierCurveTo(P,U,F,O,V,B));break;case t.Commands.line:r.lineTo(V,B);break;case t.Commands.move:M=C,r.moveTo(V,B)}return x&&r.closePath(),z&&z.length>0&&r.setLineDash(s),I||l||(_.isHidden.test(f)||((D=f._renderer&&f._renderer.offset)&&(r.save(),r.translate(-f._renderer.offset.x,-f._renderer.offset.y),r.scale(f._renderer.scale.x,f._renderer.scale.y)),r.fill(),D&&r.restore()),_.isHidden.test(c)||((D=c._renderer&&c._renderer.offset)&&(r.save(),r.translate(-c._renderer.offset.x,-c._renderer.offset.y),r.scale(c._renderer.scale.x,c._renderer.scale.y),r.lineWidth=d/c._renderer.scale.x),r.stroke(),D&&r.restore())),G||r.restore(),I&&!l&&r.clip(),this.flagReset()}},text:{render:function(t,e,r){this._update();var s,a,o,l,h,c,d,f=this._matrix.elements,u=this._stroke,p=this._linewidth,m=this._fill,v=this._opacity*this.parent._renderer.opacity,y=this._visible,x=g(f),b=m._renderer&&m._renderer.offset&&u._renderer&&u._renderer.offset,w=this.dashes,k=this._clip;return e||y&&!k?(x||(t.save(),t.transform(f[0],f[3],f[1],f[4],f[2],f[5])),b||(t.font=[this._style,this._weight,this._size+"px/"+this._leading+"px",this._family].join(" ")),t.textAlign=_.alignments[this._alignment]||this._alignment,t.textBaseline=this._baseline,m&&(n.isString(m)?t.fillStyle=m:(_[m._renderer.type].render.call(m,t),t.fillStyle=m._renderer.effect)),u&&(n.isString(u)?t.strokeStyle=u:(_[u._renderer.type].render.call(u,t),t.strokeStyle=u._renderer.effect)),p&&(t.lineWidth=p),n.isNumber(v)&&(t.globalAlpha=v),w&&w.length>0&&t.setLineDash(w),k||r||(_.isHidden.test(m)||(m._renderer&&m._renderer.offset?(c=i(m._renderer.scale.x),d=i(m._renderer.scale.y),t.save(),t.translate(-i(m._renderer.offset.x),-i(m._renderer.offset.y)),t.scale(c,d),s=this._size/m._renderer.scale.y,a=this._leading/m._renderer.scale.y,t.font=[this._style,this._weight,i(s)+"px/",i(a)+"px",this._family].join(" "),o=m._renderer.offset.x/m._renderer.scale.x,l=m._renderer.offset.y/m._renderer.scale.y,t.fillText(this.value,i(o),i(l)),t.restore()):t.fillText(this.value,0,0)),_.isHidden.test(u)||(u._renderer&&u._renderer.offset?(c=i(u._renderer.scale.x),d=i(u._renderer.scale.y),t.save(),t.translate(-i(u._renderer.offset.x),-i(u._renderer.offset.y)),t.scale(c,d),s=this._size/u._renderer.scale.y,a=this._leading/u._renderer.scale.y,t.font=[this._style,this._weight,i(s)+"px/",i(a)+"px",this._family].join(" "),o=u._renderer.offset.x/u._renderer.scale.x,l=u._renderer.offset.y/u._renderer.scale.y,h=p/u._renderer.scale.x,t.lineWidth=i(h),t.strokeText(this.value,i(o),i(l)),t.restore()):t.strokeText(this.value,0,0))),x||t.restore(),k&&!r&&t.clip(),this.flagReset()):this}},"linear-gradient":{render:function(t){if(this._update(),!this._renderer.effect||this._flagEndPoints||this._flagStops){this._renderer.effect=t.createLinearGradient(this.left._x,this.left._y,this.right._x,this.right._y);for(var e=0;e1){var R=u(C);k=(s*=R)*s,S=(l*=R)*l}var M=k*A+S*E,F=u(o(0,(k*S-M)/M));f===g&&(F=-F);var O=F*s*w/l,P=-F*l*b/s,U=d(_)*O-c(_)*P+(r+p)/2,T=c(_)*O+d(_)*P+(n+v)/2,L=m(1,0,(b-O)/s,(w-P)/l);!function(i,r,n,s,o,l,h,c,d){var f=t.Utils.Curve.Tolerance.epsilon,u=h-l,g=Math.abs(u)0&&S.setLineDash(T),S.save(),S.scale(E,E),S.translate(B,I),S.beginPath();for(var G=0;G=N&&U&&(a=j,m=D.controls&&D.controls.right||t.Vector.zero,v=a.controls&&a.controls.left||t.Vector.zero,D._relative?(u=o(m.x+D.x),g=o(m.y+D.y)):(u=o(m.x),g=o(m.y)),a._relative?(d=o(v.x+a.x),f=o(v.y+a.y)):(d=o(v.x),f=o(v.y)),y=o(a.x),x=o(a.y),S.bezierCurveTo(u,g,d,f,y,x));break;case t.Commands.line:S.lineTo(y,x);break;case t.Commands.move:j=D,S.moveTo(y,x)}}U&&S.closePath(),c.isHidden.test(R)||((b=R._renderer&&R._renderer.offset)&&(S.save(),S.translate(-R._renderer.offset.x,-R._renderer.offset.y),S.scale(R._renderer.scale.x,R._renderer.scale.y)),S.fill(),b&&S.restore()),c.isHidden.test(A)||((b=A._renderer&&A._renderer.offset)&&(S.save(),S.translate(-A._renderer.offset.x,-A._renderer.offset.y),S.scale(A._renderer.scale.x,A._renderer.scale.y),S.lineWidth=C/A._renderer.scale.x),S.stroke(),b&&S.restore()),S.restore()},getBoundingClientRect:function(t,e,i){var r,n,s=1/0,a=-1/0,o=1/0,l=-1/0;t.forEach(function(t){var e,i,r,n,h,c,d=t.x,f=t.y,u=t.controls;o=Math.min(f,o),s=Math.min(d,s),a=Math.max(d,a),l=Math.max(f,l),t.controls&&(h=u.left,c=u.right,h&&c&&(e=t._relative?h.x+d:h.x,i=t._relative?h.y+f:h.y,r=t._relative?c.x+d:c.x,n=t._relative?c.y+f:c.y,e&&i&&r&&n&&(o=Math.min(i,n,o),s=Math.min(e,r,s),a=Math.max(e,r,a),l=Math.max(i,n,l))))}),h.isNumber(e)&&(o-=e,s-=e,a+=e,l+=e),r=a-s,n=l-o,i.top=o,i.left=s,i.right=a,i.bottom=l,i.width=r,i.height=n,i.centroid||(i.centroid={}),i.centroid.x=-s,i.centroid.y=-o},render:function(e,r,n){if(!this._visible||!this._opacity)return this;this._update();var a=this.parent,o=a._matrix.manual||a._flagMatrix,l=this._matrix.manual||this._flagMatrix,d=this._flagVertices||this._flagFill||this._fill instanceof t.LinearGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagEndPoints)||this._fill instanceof t.RadialGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagRadius||this._fill._flagCenter||this._fill._flagFocal)||this._fill instanceof t.Texture&&(this._fill._flagLoaded&&this._fill.loaded||this._fill._flagImage||this._fill._flagVideo||this._fill._flagRepeat||this._fill._flagOffset||this._fill._flagScale)||this._stroke instanceof t.LinearGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagEndPoints)||this._stroke instanceof t.RadialGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagRadius||this._stroke._flagCenter||this._stroke._flagFocal)||this._stroke instanceof t.Texture&&(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||a._flagOpacity||this._flagVisible||this._flagCap||this._flagJoin||this._flagMiter||this._flagScale||this.dashes&&this.dashes.length>0||!this._renderer.texture;return(o||l)&&(this._renderer.matrix||(this._renderer.matrix=new t.Array(9)),this._matrix.toArray(!0,s),i(s,a._renderer.matrix,this._renderer.matrix),this._renderer.scale=this._scale*a._renderer.scale),d?(this._renderer.rect||(this._renderer.rect={}),this._renderer.triangles||(this._renderer.triangles=new t.Array(12)),this._renderer.opacity=this._opacity*a._renderer.opacity,c.path.getBoundingClientRect(this._renderer.vertices,this._linewidth,this._renderer.rect),c.getTriangles(this._renderer.rect,this._renderer.triangles),c.updateBuffer.call(c,e,this,r),c.updateTexture.call(c,e,this)):(h.isString(this._fill)||this._fill._update(),h.isString(this._stroke)||this._stroke._update()),!this._clip||n?(e.bindBuffer(e.ARRAY_BUFFER,this._renderer.textureCoordsBuffer),e.vertexAttribPointer(r.textureCoords,2,e.FLOAT,!1,0,0),e.bindTexture(e.TEXTURE_2D,this._renderer.texture),e.uniformMatrix3fv(r.matrix,!1,this._renderer.matrix),e.bindBuffer(e.ARRAY_BUFFER,this._renderer.buffer),e.vertexAttribPointer(r.position,2,e.FLOAT,!1,0,0),e.drawArrays(e.TRIANGLES,0,6),this.flagReset()):void 0}},text:{updateCanvas:function(t){var e=this.canvas,i=this.ctx,r=t._renderer.scale,n=t._stroke,s=t._linewidth*r,a=t._fill,l=t._renderer.opacity||t._opacity,d=t.dashes;e.width=Math.max(Math.ceil(t._renderer.rect.width*r),1),e.height=Math.max(Math.ceil(t._renderer.rect.height*r),1);var f,u,g,_,p,m,v,y=t._renderer.rect.centroid,x=y.x,b=y.y,w=a._renderer&&a._renderer.offset&&n._renderer&&n._renderer.offset;i.clearRect(0,0,e.width,e.height),w||(i.font=[t._style,t._weight,t._size+"px/"+t._leading+"px",t._family].join(" ")),i.textAlign="center",i.textBaseline="middle",a&&(h.isString(a)?i.fillStyle=a:(c[a._renderer.type].render.call(a,i,t),i.fillStyle=a._renderer.effect)),n&&(h.isString(n)?i.strokeStyle=n:(c[n._renderer.type].render.call(n,i,t),i.strokeStyle=n._renderer.effect)),s&&(i.lineWidth=s),h.isNumber(l)&&(i.globalAlpha=l),d&&d.length>0&&i.setLineDash(d),i.save(),i.scale(r,r),i.translate(x,b),c.isHidden.test(a)||(a._renderer&&a._renderer.offset?(m=o(a._renderer.scale.x),v=o(a._renderer.scale.y),i.save(),i.translate(-o(a._renderer.offset.x),-o(a._renderer.offset.y)),i.scale(m,v),f=t._size/a._renderer.scale.y,u=t._leading/a._renderer.scale.y,i.font=[t._style,t._weight,o(f)+"px/",o(u)+"px",t._family].join(" "),g=a._renderer.offset.x/a._renderer.scale.x,_=a._renderer.offset.y/a._renderer.scale.y,i.fillText(t.value,o(g),o(_)),i.restore()):i.fillText(t.value,0,0)),c.isHidden.test(n)||(n._renderer&&n._renderer.offset?(m=o(n._renderer.scale.x),v=o(n._renderer.scale.y),i.save(),i.translate(-o(n._renderer.offset.x),-o(n._renderer.offset.y)),i.scale(m,v),f=t._size/n._renderer.scale.y,u=t._leading/n._renderer.scale.y,i.font=[t._style,t._weight,o(f)+"px/",o(u)+"px",t._family].join(" "),g=n._renderer.offset.x/n._renderer.scale.x,_=n._renderer.offset.y/n._renderer.scale.y,p=s/n._renderer.scale.x,i.lineWidth=o(p),i.strokeText(t.value,o(g),o(_)),i.restore()):i.strokeText(t.value,0,0)),i.restore()},getBoundingClientRect:function(t,e){var i=c.ctx;i.font=[t._style,t._weight,t._size+"px/"+t._leading+"px",t._family].join(" "),i.textAlign="center",i.textBaseline=t._baseline;var r=i.measureText(t._value).width,n=Math.max(t._size||t._leading);this._linewidth&&!c.isHidden.test(this._stroke)&&(n+=this._linewidth);var s=r/2,a=n/2;switch(c.alignments[t._alignment]||t._alignment){case c.alignments.left:e.left=0,e.right=r;break;case c.alignments.right:e.left=-r,e.right=0;break;default:e.left=-s,e.right=s}switch(t._baseline){case"bottom":e.top=-n,e.bottom=0;break;case"top":e.top=0,e.bottom=n;break;default:e.top=-a,e.bottom=a}e.width=r,e.height=n,e.centroid||(e.centroid={}),e.centroid.x=s,e.centroid.y=a},render:function(e,r,n){if(!this._visible||!this._opacity)return this;this._update();var a=this.parent,o=a._matrix.manual||a._flagMatrix,l=this._matrix.manual||this._flagMatrix,d=this._flagVertices||this._flagFill||this._fill instanceof t.LinearGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagEndPoints)||this._fill instanceof t.RadialGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagRadius||this._fill._flagCenter||this._fill._flagFocal)||this._fill instanceof t.Texture&&(this._fill._flagLoaded&&this._fill.loaded||this._fill._flagImage||this._fill._flagVideo||this._fill._flagRepeat||this._fill._flagOffset||this._fill._flagScale)||this._stroke instanceof t.LinearGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagEndPoints)||this._stroke instanceof t.RadialGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagRadius||this._stroke._flagCenter||this._stroke._flagFocal)||this._stroke instanceof t.Texture&&(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||a._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;return(o||l)&&(this._renderer.matrix||(this._renderer.matrix=new t.Array(9)),this._matrix.toArray(!0,s),i(s,a._renderer.matrix,this._renderer.matrix),this._renderer.scale=this._scale*a._renderer.scale),d?(this._renderer.rect||(this._renderer.rect={}),this._renderer.triangles||(this._renderer.triangles=new t.Array(12)),this._renderer.opacity=this._opacity*a._renderer.opacity,c.text.getBoundingClientRect(this,this._renderer.rect),c.getTriangles(this._renderer.rect,this._renderer.triangles),c.updateBuffer.call(c,e,this,r),c.updateTexture.call(c,e,this)):(h.isString(this._fill)||this._fill._update(),h.isString(this._stroke)||this._stroke._update()),!this._clip||n?(e.bindBuffer(e.ARRAY_BUFFER,this._renderer.textureCoordsBuffer),e.vertexAttribPointer(r.textureCoords,2,e.FLOAT,!1,0,0),e.bindTexture(e.TEXTURE_2D,this._renderer.texture),e.uniformMatrix3fv(r.matrix,!1,this._renderer.matrix),e.bindBuffer(e.ARRAY_BUFFER,this._renderer.buffer),e.vertexAttribPointer(r.position,2,e.FLOAT,!1,0,0),e.drawArrays(e.TRIANGLES,0,6),this.flagReset()):void 0}},"linear-gradient":{render:function(t,e){if(t.canvas.getContext("2d")){if(this._update(),!this._renderer.effect||this._flagEndPoints||this._flagStops){this._renderer.effect=t.createLinearGradient(this.left._x,this.left._y,this.right._x,this.right._y);for(var i=0;i=i)return i-r>=0;r+=s}return!1}function c(t,e){var i=t._length;if(e<=0)return 0;if(e>=i)return t._lengths.length-1;for(var r=0,n=0;r=e)return e-=n,Math.max(r-1,0)+e/t._lengths[r];n+=t._lengths[r]}return-1}function d(e,i,r){var n,s,a,o,l,h,c,d,f=i.controls&&i.controls.right,u=e.controls&&e.controls.left;return n=i.x,l=i.y,s=(f||i).x,h=(f||i).y,a=(u||e).x,c=(u||e).y,o=e.x,d=e.y,f&&i._relative&&(s+=i.x,h+=i.y),u&&e._relative&&(a+=e.x,c+=e.y),t.Utils.getCurveLength(n,l,s,h,a,c,o,d,r)}function f(e,i,r){var n,s,a,o,l,h,c,d,f=i.controls&&i.controls.right,u=e.controls&&e.controls.left;return n=i.x,l=i.y,s=(f||i).x,h=(f||i).y,a=(u||e).x,c=(u||e).y,o=e.x,d=e.y,f&&i._relative&&(s+=i.x,h+=i.y),u&&e._relative&&(a+=e.x,c+=e.y),t.Utils.subdivide(n,l,s,h,a,c,o,d,r)}o.extend(l,{Properties:["fill","stroke","linewidth","opacity","className","visible","cap","join","miter","closed","curved","automatic","beginning","ending"],Utils:{getCurveLength:d},FlagVertices:function(){this._flagVertices=!0,this._flagLength=!0,this.parent&&(this.parent._flagLength=!0)},BindVertices:function(e){for(var i=e.length;i--;)e[i].bind(t.Events.change,this._renderer.flagVertices);this._renderer.flagVertices()},UnbindVertices:function(e){for(var i=e.length;i--;)e[i].unbind(t.Events.change,this._renderer.flagVertices);this._renderer.flagVertices()},FlagFill:function(){this._flagFill=!0},FlagStroke:function(){this._flagStroke=!0},MakeObservable:function(e){t.Shape.MakeObservable(e),o.each(l.Properties.slice(2,9),t.Utils.defineProperty,e),Object.defineProperty(e,"fill",{enumerable:!0,get:function(){return this._fill},set:function(e){(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.unbind(t.Events.change,this._renderer.flagFill),this._fill=e,this._flagFill=!0,(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.bind(t.Events.change,this._renderer.flagFill)}}),Object.defineProperty(e,"stroke",{enumerable:!0,get:function(){return this._stroke},set:function(e){(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.unbind(t.Events.change,this._renderer.flagStroke),this._stroke=e,this._flagStroke=!0,(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.bind(t.Events.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(t){this._closed=!!t,this._flagVertices=!0}}),Object.defineProperty(e,"curved",{enumerable:!0,get:function(){return this._curved},set:function(t){this._curved=!!t,this._flagVertices=!0}}),Object.defineProperty(e,"automatic",{enumerable:!0,get:function(){return this._automatic},set:function(t){if(t!==this._automatic){this._automatic=!!t;var e=this._automatic?"ignore":"listen";o.each(this.vertices,function(t){t[e]()})}}}),Object.defineProperty(e,"beginning",{enumerable:!0,get:function(){return this._beginning},set:function(t){this._beginning=t,this._flagVertices=!0}}),Object.defineProperty(e,"ending",{enumerable:!0,get:function(){return this._ending},set:function(t){this._ending=t,this._flagVertices=!0}}),Object.defineProperty(e,"vertices",{enumerable:!0,get:function(){return this._collection},set:function(e){this._renderer.flagVertices;var i=this._renderer.bindVertices,r=this._renderer.unbindVertices;this._collection&&this._collection.unbind(t.Events.insert,i).unbind(t.Events.remove,r),e instanceof t.Utils.Collection?this._collection=e:this._collection=new t.Utils.Collection(e||[]),this._collection.bind(t.Events.insert,i).bind(t.Events.remove,r),i(this._collection)}}),Object.defineProperty(e,"clip",{enumerable:!0,get:function(){return this._clip},set:function(t){this._clip=t,this._flagClip=!0}})}}),o.extend(l.prototype,t.Shape.prototype,{_flagVertices:!0,_flagLength:!0,_flagFill:!0,_flagStroke:!0,_flagLinewidth:!0,_flagOpacity:!0,_flagVisible:!0,_flagClassName:!0,_flagCap:!0,_flagJoin:!0,_flagMiter:!0,_flagClip:!1,_length:0,_fill:"#fff",_stroke:"#000",_linewidth:1,_opacity:1,_className:"",_visible:!0,_cap:"round",_join:"round",_miter:4,_closed:!0,_curved:!1,_automatic:!0,_beginning:0,_ending:1,_clip:!1,constructor:l,clone:function(t){var e=new l;e.vertices=this.vertices;for(var i=0;i=y){this._closed?(r=t.Utils.mod(S,x),n=t.Utils.mod(S-1,x),0===S&&(r=n,n=S)):(r=S,n=Math.min(Math.max(S-1,0),b)),w=this.vertices[r],k=this.vertices[n],y-=A,e=0!==this._lengths[S]?y/this._lengths[S]:0;break}A+=this._lengths[S]}if(o.isNull(w)||o.isNull(k))return null;if(!w)return k;if(!k)return w;v=k.controls&&k.controls.right,m=w.controls&&w.controls.left,l=k.x,u=k.y,h=(v||k).x,g=(v||k).y,c=(m||w).x,_=(m||w).y,d=w.x,p=w.y,v&&k.relative&&(h+=k.x,g+=k.y),m&&w.relative&&(c+=w.x,_+=w.y),a=t.Utils.getComponentOnCubicBezier(e,l,h,c,d),f=t.Utils.getComponentOnCubicBezier(e,u,g,_,p);var C=t.Utils.lerp(l,h,e),R=t.Utils.lerp(u,g,e),M=t.Utils.lerp(h,c,e),F=t.Utils.lerp(g,_,e),O=t.Utils.lerp(c,d,e),P=t.Utils.lerp(_,p,e),U=t.Utils.lerp(C,M,e),T=t.Utils.lerp(R,F,e),L=t.Utils.lerp(M,O,e),N=t.Utils.lerp(F,P,e);return o.isObject(i)?(i.x=a,i.y=f,o.isObject(i.controls)||t.Anchor.AppendCurveProperties(i),i.controls.left.x=U,i.controls.left.y=T,i.controls.right.x=L,i.controls.right.y=N,o.isBoolean(i.relative)&&!i.relative||(i.controls.left.x-=a,i.controls.left.y-=f,i.controls.right.x-=a,i.controls.right.y-=f),i.t=e,i):((s=new t.Anchor(a,f,U-a,T-f,L-a,N-f,this._curved?t.Commands.curve:t.Commands.line)).t=e,s)},plot:function(){if(this.curved)return t.Utils.getCurveFromPoints(this._collection,this.closed),this;for(var e=0;e0&&(s[s.length-1].command=t.Commands.line),void(r=a);var h=f(a,r,e);s=s.concat(h),o.each(h,function(e,i){i<=0&&r.command===t.Commands.move?e.command=t.Commands.move:e.command=t.Commands.line}),l>=i&&(this._closed&&this._automatic?(h=f(a,r=a,e),s=s.concat(h),o.each(h,function(e,i){i<=0&&r.command===t.Commands.move?e.command=t.Commands.move:e.command=t.Commands.line})):n&&s.push(new t.Anchor(a.x,a.y)),s[s.length-1].command=n?t.Commands.close:t.Commands.line),r=a}},this),this._automatic=!1,this._curved=!1,this.vertices=s,this},_updateLength:function(e,i){i||this._update();var r=this.vertices.length,n=r-1,s=this.vertices[n],a=0;return o.isUndefined(this._lengths)&&(this._lengths=[]),o.each(this.vertices,function(i,r){if(r<=0||i.command===t.Commands.move)return s=i,void(this._lengths[r]=0);this._lengths[r]=d(i,s,e),this._lengths[r]=t.Utils.toFixed(this._lengths[r]),a+=this._lengths[r],s=i},this),this._length=a,this._flagLength=!1,this},_update:function(){if(this._flagVertices){this._automatic&&this.plot(),this._flagLength&&this._updateLength(void 0,!0);var e,i,s,a,o,l=this._collection.length,d=this._closed,f=Math.min(this._beginning,this._ending),u=Math.max(this._beginning,this._ending),g=c(this,f*this._length),_=c(this,u*this._length),p=r(g),m=n(_);this._renderer.vertices.length=0;for(var v=0;vm&&!i?((o=this._renderer.collection[v]).copy(this._collection[v]),this.getPointAt(u,o),o.command=this._renderer.collection[v].command,this._renderer.vertices.push(o),i=o,(s=this._collection[v-1])&&s.controls&&(o.controls.right.clear(),this._renderer.collection[v-1].controls.right.clear().lerp(s.controls.right,o.t))):v>=p&&v<=m&&(o=this._renderer.collection[v].copy(this._collection[v]),this._renderer.vertices.push(o),v===m&&h(this,u)?(i=o,!d&&i.controls&&i.controls.right.clear()):v===p&&h(this,f)&&((e=o).command=t.Commands.move,!d&&e.controls&&e.controls.left.clear()));p>0&&!e&&(v=p-1,(o=this._renderer.collection[v]).copy(this._collection[v]),this.getPointAt(f,o),o.command=t.Commands.move,this._renderer.vertices.unshift(o),e=o,(a=this._collection[v+1])&&a.controls&&(o.controls.left.clear(),this._renderer.collection[v+1].controls.left.copy(a.controls.left).lerp(t.Vector.zero,o.t)))}return t.Shape.prototype._update.apply(this,arguments),this},flagReset:function(){return this._flagVertices=this._flagFill=this._flagStroke=this._flagLinewidth=this._flagOpacity=this._flagVisible=this._flagCap=this._flagJoin=this._flagMiter=this._flagClassName=this._flagClip=!1,t.Shape.prototype.flagReset.call(this),this}}),l.MakeObservable(l.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=t.Utils,r=t.Line=function(i,r,n,s){e.call(this,[new t.Anchor(i,r),new t.Anchor(n,s)]),this.vertices[0].command=t.Commands.move,this.vertices[1].command=t.Commands.line,this.automatic=!1};i.extend(r.prototype,e.prototype),r.prototype.constructor=r,e.MakeObservable(r.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=t.Utils,r=t.Rectangle=function(i,r,n,s){e.call(this,[new t.Anchor,new t.Anchor,new t.Anchor,new t.Anchor],!0,!1,!0),this.width=n,this.height=s,this.origin=new t.Vector,this.translation.set(i,r),this._update()};i.extend(r,{Properties:["width","height"],MakeObservable:function(n){e.MakeObservable(n),i.each(r.Properties,t.Utils.defineProperty,n),Object.defineProperty(n,"origin",{enumerable:!0,get:function(){return this._origin},set:function(e){this._origin&&this._origin.unbind(t.Events.change,this._renderer.flagVertices),this._origin=e,this._origin.bind(t.Events.change,this._renderer.flagVertices),this._renderer.flagVertices()}})}}),i.extend(r.prototype,e.prototype,{_width:0,_height:0,_flagWidth:0,_flagHeight:0,_origin:null,constructor:r,_update:function(){if(this._flagWidth||this._flagHeight){var i=this._width/2,r=this._height/2;this.vertices[0].set(-i,-r).add(this._origin).command=t.Commands.move,this.vertices[1].set(i,-r).add(this._origin).command=t.Commands.line,this.vertices[2].set(i,r).add(this._origin).command=t.Commands.line,this.vertices[3].set(-i,r).add(this._origin).command=t.Commands.line,this.vertices[4]&&(this.vertices[4].set(-i,-r).add(this._origin).command=t.Commands.line)}return e.prototype._update.call(this),this},flagReset:function(){return this._flagWidth=this._flagHeight=!1,e.prototype.flagReset.call(this),this},clone:function(e){var n=new r(0,0,this.width,this.height);return n.translation.copy(this.translation),n.rotation=this.rotation,n.scale=this.scale,i.each(t.Path.Properties,function(t){n[t]=this[t]},this),e&&e.add(n),n}}),r.MakeObservable(r.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=2*Math.PI,r=Math.PI/2,n=Math.cos,s=Math.sin,a=t.Utils,o=4/3*Math.tan(Math.PI/8),l=t.Ellipse=function(i,r,n,s,o){a.isNumber(s)||(s=n);var l=o||5,h=a.map(a.range(l),function(e){return new t.Anchor},this);e.call(this,h,!0,!0,!0),this.width=2*n,this.height=2*s,this._update(),this.translation.set(i,r)};a.extend(l,{Properties:["width","height"],MakeObservable:function(i){e.MakeObservable(i),a.each(l.Properties,t.Utils.defineProperty,i)}}),a.extend(l.prototype,e.prototype,{_width:0,_height:0,_flagWidth:!1,_flagHeight:!1,constructor:l,_update:function(){if(this._flagWidth||this._flagHeight)for(var a=0,l=this.vertices.length,h=l-1;as&&(this.vertices.splice(s-1,o-s),o=s);for(var l=0;l=o?this.vertices.push(new t.Anchor(c,d)):this.vertices[l].set(c,d),this.vertices[l].command=0===l?t.Commands.move:t.Commands.line}}return e.prototype._update.call(this),this},flagReset:function(){return this._flagWidth=this._flagHeight=this._flagSides=!1,e.prototype.flagReset.call(this),this},clone:function(e){var i=new a(0,0,this.radius,this.sides);return i.translation.copy(this.translation),i.rotation=this.rotation,i.scale=this.scale,s.each(t.Path.Properties,function(t){i[t]=this[t]},this),e&&e.add(i),i}}),a.MakeObservable(a.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=(Math.PI,2*Math.PI),r=Math.PI/2,n=(Math.cos,Math.sin,Math.abs,t.Utils),s=t.ArcSegment=function(i,r,s,a,o,l,h){var c=h||3*t.Resolution,d=n.map(n.range(c),function(){return new t.Anchor});e.call(this,d,!0,!1,!0),this.innerRadius=s,this.outerRadius=a,this.startAngle=o,this.endAngle=l,this._update(),this.translation.set(i,r)};function a(t,e){for(;t<0;)t+=e;return t%e}n.extend(s,{Properties:["startAngle","endAngle","innerRadius","outerRadius"],MakeObservable:function(i){e.MakeObservable(i),n.each(s.Properties,t.Utils.defineProperty,i)}}),n.extend(s.prototype,e.prototype,{_flagStartAngle:!1,_flagEndAngle:!1,_flagInnerRadius:!1,_flagOuterRadius:!1,_startAngle:0,_endAngle:i,_innerRadius:0,_outerRadius:0,constructor:s,_update:function(){if(this._flagStartAngle||this._flagEndAngle||this._flagInnerRadius||this._flagOuterRadius){var n,s=this._startAngle,o=this._endAngle,l=this._innerRadius,h=this._outerRadius,c=a(s,i)===a(o,i),d=l>0,f=this.vertices,u=d?f.length/2:f.length,g=0;c?u--:d||(u-=2);for(var _=0,p=u-1;_s&&(this.vertices.splice(s-1,o-s),o=s);for(var l=0;l=o?this.vertices.push(new t.Anchor(d,f)):this.vertices[l].set(d,f),this.vertices[l].command=0===l?t.Commands.move:t.Commands.line}}return e.prototype._update.call(this),this},flagReset:function(){return this._flagInnerRadius=this._flagOuterRadius=this._flagSides=!1,e.prototype.flagReset.call(this),this},clone:function(e){var i=this.innerRadius,r=this.outerRadius,n=this.sides,o=new a(0,0,i,r,n);return o.translation.copy(this.translation),o.rotation=this.rotation,o.scale=this.scale,s.each(t.Path.Properties,function(t){o[t]=this[t]},this),e&&e.add(o),o}}),a.MakeObservable(a.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=t.Utils,r=t.RoundedRectangle=function(n,s,a,o,l){i.isUndefined(l)&&(l=Math.floor(Math.min(a,o)/12));var h=i.map(i.range(10),function(e){return new t.Anchor(0,0,0,0,0,0,0===e?t.Commands.move:t.Commands.curve)});e.call(this,h),this.closed=!0,this.automatic=!1,this._renderer.flagRadius=i.bind(r.FlagRadius,this),this.width=a,this.height=o,this.radius=l,this._update(),this.translation.set(n,s)};i.extend(r,{Properties:["width","height"],FlagRadius:function(){this._flagRadius=!0},MakeObservable:function(n){e.MakeObservable(n),i.each(r.Properties,t.Utils.defineProperty,n),Object.defineProperty(n,"radius",{enumerable:!0,get:function(){return this._radius},set:function(e){this._radius instanceof t.Vector&&this._radius.unbind(t.Events.change,this._renderer.flagRadius),this._radius=e,this._radius instanceof t.Vector&&this._radius.bind(t.Events.change,this._renderer.flagRadius),this._flagRadius=!0}})}}),i.extend(r.prototype,e.prototype,{_width:0,_height:0,_radius:0,_flagWidth:!1,_flagHeight:!1,_flagRadius:!1,constructor:r,_update:function(){if(this._flagWidth||this._flagHeight||this._flagRadius){var i,r,n,s=this._width,a=this._height;this._radius instanceof t.Vector?(i=this._radius.x,r=this._radius.y):(i=this._radius,r=this._radius);var o=s/2,l=a/2;(n=this.vertices[0]).x=-(o-i),n.y=-l,(n=this.vertices[1]).x=o-i,n.y=-l,n.controls.left.clear(),n.controls.right.x=i,n.controls.right.y=0,(n=this.vertices[2]).x=o,n.y=-(l-r),n.controls.right.clear(),n.controls.left.clear(),(n=this.vertices[3]).x=o,n.y=l-r,n.controls.left.clear(),n.controls.right.x=0,n.controls.right.y=r,(n=this.vertices[4]).x=o-i,n.y=l,n.controls.right.clear(),n.controls.left.clear(),(n=this.vertices[5]).x=-(o-i),n.y=l,n.controls.left.clear(),n.controls.right.x=-i,n.controls.right.y=0,(n=this.vertices[6]).x=-o,n.y=l-r,n.controls.left.clear(),n.controls.right.clear(),(n=this.vertices[7]).x=-o,n.y=-(l-r),n.controls.left.clear(),n.controls.right.x=0,n.controls.right.y=-r,(n=this.vertices[8]).x=-(o-i),n.y=-l,n.controls.left.clear(),n.controls.right.clear(),(n=this.vertices[9]).copy(this.vertices[8])}return e.prototype._update.call(this),this},flagReset:function(){return this._flagWidth=this._flagHeight=this._flagRadius=!1,e.prototype.flagReset.call(this),this},clone:function(e){var n=this.width,s=this.height,a=this.radius,o=new r(0,0,n,s,a);return o.translation.copy(this.translation),o.rotation=this.rotation,o.scale=this.scale,i.each(t.Path.Properties,function(t){o[t]=this[t]},this),e&&e.add(o),o}}),r.MakeObservable(r.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.root,i=t.Utils.getComputedMatrix,r=t.Utils,n=((e.document?e.document.createElement("canvas"):(console.warn("Two.js: Unable to create canvas for Two.Text measurements."),{getContext:r.identity})).getContext("2d"),t.Text=function(e,i,n,s){if(t.Shape.call(this),this._renderer.type="text",this._renderer.flagFill=r.bind(t.Text.FlagFill,this),this._renderer.flagStroke=r.bind(t.Text.FlagStroke,this),this.value=e,r.isNumber(i)&&(this.translation.x=i),r.isNumber(n)&&(this.translation.y=n),this.dashes=[],!r.isObject(s))return this;r.each(t.Text.Properties,function(t){t in s&&(this[t]=s[t])},this)});r.extend(t.Text,{Ratio:.6,Properties:["value","family","size","leading","alignment","linewidth","style","className","weight","decoration","baseline","opacity","visible","fill","stroke"],FlagFill:function(){this._flagFill=!0},FlagStroke:function(){this._flagStroke=!0},MakeObservable:function(e){t.Shape.MakeObservable(e),r.each(t.Text.Properties.slice(0,13),t.Utils.defineProperty,e),Object.defineProperty(e,"fill",{enumerable:!0,get:function(){return this._fill},set:function(e){(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.unbind(t.Events.change,this._renderer.flagFill),this._fill=e,this._flagFill=!0,(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.bind(t.Events.change,this._renderer.flagFill)}}),Object.defineProperty(e,"stroke",{enumerable:!0,get:function(){return this._stroke},set:function(e){(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.unbind(t.Events.change,this._renderer.flagStroke),this._stroke=e,this._flagStroke=!0,(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.bind(t.Events.change,this._renderer.flagStroke)}}),Object.defineProperty(e,"clip",{enumerable:!0,get:function(){return this._clip},set:function(t){this._clip=t,this._flagClip=!0}})}}),r.extend(t.Text.prototype,t.Shape.prototype,{_flagValue:!0,_flagFamily:!0,_flagSize:!0,_flagLeading:!0,_flagAlignment:!0,_flagBaseline:!0,_flagStyle:!0,_flagWeight:!0,_flagDecoration:!0,_flagFill:!0,_flagStroke:!0,_flagLinewidth:!0,_flagOpacity:!0,_flagClassName:!0,_flagVisible:!0,_flagClip:!1,_value:"",_family:"sans-serif",_size:13,_leading:17,_alignment:"center",_baseline:"middle",_style:"normal",_weight:500,_decoration:"none",_fill:"#000",_stroke:"transparent",_linewidth:1,_opacity:1,_className:"",_visible:!0,_clip:!1,constructor:t.Text,remove:function(){return this.parent?(this.parent.remove(this),this):this},clone:function(e){var i=new t.Text(this.value);return i.translation.copy(this.translation),i.rotation=this.rotation,i.scale=this.scale,r.each(t.Text.Properties,function(t){i[t]=this[t]},this),e&&e.add(i),i._update()},toObject:function(){var e={translation:this.translation.toObject(),rotation:this.rotation,scale:this.scale};return r.each(t.Text.Properties,function(t){e[t]=this[t]},this),e},noStroke:function(){return this.stroke="transparent",this},noFill:function(){return this.fill="transparent",this},getBoundingClientRect:function(t){var e,r,s,a,o,l;this._update(!0),e=t?this._matrix:i(this);var h=this.leading,c=this.value.length*this.size*n.Ratio;switch(this.alignment){case"left":s=0,a=c;break;case"right":s=-c,a=0;break;default:s=-c/2,a=c/2}switch(this.baseline){case"top":o=0,l=h;break;case"bottom":o=-h,l=0;break;default:o=-h/2,l=h/2}return{top:o=(r=e.multiply(s,o,1)).y,left:s=r.x,right:a=(r=e.multiply(a,l,1)).x,bottom:l=r.y,width:a-s,height:l-o}},flagReset:function(){return this._flagValue=this._flagFamily=this._flagSize=this._flagLeading=this._flagAlignment=this._flagFill=this._flagStroke=this._flagLinewidth=this._flagOpacity=this._flagVisible=this._flagClip=this._flagDecoration=this._flagClassName=this._flagBaseline=!1,t.Shape.prototype.flagReset.call(this),this}}),t.Text.MakeObservable(t.Text.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.Stop=function(t,r,n){this._renderer={},this._renderer.type="stop",this.offset=e.isNumber(t)?t:i.Index<=0?0:1,this.opacity=e.isNumber(n)?n:1,this.color=e.isString(r)?r:i.Index<=0?"#fff":"#000",i.Index=(i.Index+1)%2};e.extend(i,{Index:0,Properties:["offset","opacity","color"],MakeObservable:function(t){e.each(i.Properties,function(t){var e="_"+t,i="_flag"+t.charAt(0).toUpperCase()+t.slice(1);Object.defineProperty(this,t,{enumerable:!0,get:function(){return this[e]},set:function(t){this[e]=t,this[i]=!0,this.parent&&(this.parent._flagStops=!0)}})},t)}}),e.extend(i.prototype,t.Utils.Events,{constructor:i,clone:function(){var t=new i;return e.each(i.Properties,function(e){t[e]=this[e]},this),t},toObject:function(){var t={};return e.each(i.Properties,function(e){t[e]=this[e]},this),t},flagReset:function(){return this._flagOffset=this._flagColor=this._flagOpacity=!1,this}}),i.MakeObservable(i.prototype),i.prototype.constructor=i;var r=t.Gradient=function(i){this._renderer={},this._renderer.type="gradient",this.id=t.Identifier+t.uniqueId(),this.classList=[],this._renderer.flagStops=e.bind(r.FlagStops,this),this._renderer.bindStops=e.bind(r.BindStops,this),this._renderer.unbindStops=e.bind(r.UnbindStops,this),this.spread="pad",this.stops=i};e.extend(r,{Stop:i,Properties:["spread"],MakeObservable:function(i){e.each(r.Properties,t.Utils.defineProperty,i),Object.defineProperty(i,"stops",{enumerable:!0,get:function(){return this._stops},set:function(e){this._renderer.flagStops;var i=this._renderer.bindStops,r=this._renderer.unbindStops;this._stops&&this._stops.unbind(t.Events.insert,i).unbind(t.Events.remove,r),this._stops=new t.Utils.Collection((e||[]).slice(0)),this._stops.bind(t.Events.insert,i).bind(t.Events.remove,r),i(this._stops)}})},FlagStops:function(){this._flagStops=!0},BindStops:function(e){for(var i=e.length;i--;)e[i].bind(t.Events.change,this._renderer.flagStops),e[i].parent=this;this._renderer.flagStops()},UnbindStops:function(e){for(var i=e.length;i--;)e[i].unbind(t.Events.change,this._renderer.flagStops),delete e[i].parent;this._renderer.flagStops()}}),e.extend(r.prototype,t.Utils.Events,{_flagStops:!1,_flagSpread:!1,clone:function(i){var n=e.map(this.stops,function(t){return t.clone()}),s=new r(n);return e.each(t.Gradient.Properties,function(t){s[t]=this[t]},this),i&&i.add(s),s},toObject:function(){var t={stops:e.map(this.stops,function(t){return t.toObject()})};return e.each(r.Properties,function(e){t[e]=this[e]},this),t},_update:function(){return(this._flagSpread||this._flagStops)&&this.trigger(t.Events.change),this},flagReset:function(){return this._flagSpread=this._flagStops=!1,this}}),r.MakeObservable(r.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.LinearGradient=function(r,n,s,a,o){t.Gradient.call(this,o),this._renderer.type="linear-gradient";var l=e.bind(i.FlagEndPoints,this);this.left=(new t.Vector).bind(t.Events.change,l),this.right=(new t.Vector).bind(t.Events.change,l),e.isNumber(r)&&(this.left.x=r),e.isNumber(n)&&(this.left.y=n),e.isNumber(s)&&(this.right.x=s),e.isNumber(a)&&(this.right.y=a)};e.extend(i,{Stop:t.Gradient.Stop,MakeObservable:function(e){t.Gradient.MakeObservable(e)},FlagEndPoints:function(){this._flagEndPoints=!0}}),e.extend(i.prototype,t.Gradient.prototype,{_flagEndPoints:!1,constructor:i,clone:function(r){var n=e.map(this.stops,function(t){return t.clone()}),s=new i(this.left._x,this.left._y,this.right._x,this.right._y,n);return e.each(t.Gradient.Properties,function(t){s[t]=this[t]},this),r&&r.add(s),s},toObject:function(){var e=t.Gradient.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(t.Events.change),this},flagReset:function(){return this._flagEndPoints=!1,t.Gradient.prototype.flagReset.call(this),this}}),i.MakeObservable(i.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.RadialGradient=function(i,r,n,s,a,o){t.Gradient.call(this,s),this._renderer.type="radial-gradient",this.center=(new t.Vector).bind(t.Events.change,e.bind(function(){this._flagCenter=!0},this)),this.radius=e.isNumber(n)?n:20,this.focal=(new t.Vector).bind(t.Events.change,e.bind(function(){this._flagFocal=!0},this)),e.isNumber(i)&&(this.center.x=i),e.isNumber(r)&&(this.center.y=r),this.focal.copy(this.center),e.isNumber(a)&&(this.focal.x=a),e.isNumber(o)&&(this.focal.y=o)};e.extend(i,{Stop:t.Gradient.Stop,Properties:["radius"],MakeObservable:function(r){t.Gradient.MakeObservable(r),e.each(i.Properties,t.Utils.defineProperty,r)}}),e.extend(i.prototype,t.Gradient.prototype,{_flagRadius:!1,_flagCenter:!1,_flagFocal:!1,constructor:i,clone:function(r){var n=e.map(this.stops,function(t){return t.clone()}),s=new i(this.center._x,this.center._y,this._radius,n,this.focal._x,this.focal._y);return e.each(t.Gradient.Properties.concat(i.Properties),function(t){s[t]=this[t]},this),r&&r.add(s),s},toObject:function(){var r=t.Gradient.prototype.toObject.call(this);return e.each(i.Properties,function(t){r[t]=this[t]},this),r.center=this.center.toObject(),r.focal=this.focal.toObject(),r},_update:function(){return(this._flagRadius||this._flatCenter||this._flagFocal||this._flagSpread||this._flagStops)&&this.trigger(t.Events.change),this},flagReset:function(){return this._flagRadius=this._flagCenter=this._flagFocal=!1,t.Gradient.prototype.flagReset.call(this),this}}),i.MakeObservable(i.prototype)}((void 0!==t?t:window).Two),function(t){var e,i=t.root,r=t.Utils,n={video:/\.(mp4|webm|ogg)$/i,image:/\.(jpe?g|png|gif|tiff)$/i,effect:/texture|gradient/i};i.document&&(e=document.createElement("a"));var s=t.Texture=function(e,i){if(this._renderer={},this._renderer.type="texture",this._renderer.flagOffset=r.bind(s.FlagOffset,this),this._renderer.flagScale=r.bind(s.FlagScale,this),this.id=t.Identifier+t.uniqueId(),this.classList=[],this.offset=new t.Vector,r.isFunction(i)){var n=r.bind(function(){this.unbind(t.Events.load,n),r.isFunction(i)&&i()},this);this.bind(t.Events.load,n)}r.isString(e)?this.src=e:r.isElement(e)&&(this.image=e),this._update()};r.extend(s,{Properties:["src","loaded","repeat"],RegularExpressions:n,ImageRegistry:new t.Registry,getAbsoluteURL:function(t){return e?(e.href=t,e.href):t},loadHeadlessBuffer:new Function("texture","loaded",['var fs = require("fs");',"var buffer = fs.readFileSync(texture.src);","texture.image.src = buffer;","loaded();"].join("\n")),getImage:function(e){var r,a=s.getAbsoluteURL(e);return s.ImageRegistry.contains(a)?s.ImageRegistry.get(a):(t.Utils.Image?(r=new t.Utils.Image,t.CanvasRenderer.Utils.shim(r,"img")):i.document?r=n.video.test(a)?document.createElement("video"):document.createElement("img"):console.warn("Two.js: no prototypical image defined for Two.Texture"),r.crossOrigin="anonymous",r)},Register:{canvas:function(t,e){t._src="#"+t.id,s.ImageRegistry.add(t.src,t.image),r.isFunction(e)&&e()},img:function(e,i){var n=function(t){r.isFunction(e.image.removeEventListener)&&(e.image.removeEventListener("load",n,!1),e.image.removeEventListener("error",a,!1)),r.isFunction(i)&&i()},a=function(i){throw r.isFunction(e.image.removeEventListener)&&(e.image.removeEventListener("load",n,!1),e.image.removeEventListener("error",a,!1)),new t.Utils.Error("unable to load "+e.src)};r.isNumber(e.image.width)&&e.image.width>0&&r.isNumber(e.image.height)&&e.image.height>0?n():r.isFunction(e.image.addEventListener)&&(e.image.addEventListener("load",n,!1),e.image.addEventListener("error",a,!1)),e._src=s.getAbsoluteURL(e._src),e.image&&e.image.getAttribute("two-src")||(e.image.setAttribute("two-src",e.src),s.ImageRegistry.add(e.src,e.image),t.Utils.isHeadless?s.loadHeadlessBuffer(e,n):e.image.src=e.src)},video:function(e,i){var n=function(t){e.image.removeEventListener("canplaythrough",n,!1),e.image.removeEventListener("error",a,!1),e.image.width=e.image.videoWidth,e.image.height=e.image.videoHeight,e.image.play(),r.isFunction(i)&&i()},a=function(i){throw e.image.removeEventListener("canplaythrough",n,!1),e.image.removeEventListener("error",a,!1),new t.Utils.Error("unable to load "+e.src)};if(e._src=s.getAbsoluteURL(e._src),e.image.addEventListener("canplaythrough",n,!1),e.image.addEventListener("error",a,!1),!e.image||!e.image.getAttribute("two-src")){if(t.Utils.isHeadless)throw new t.Utils.Error("video textures are not implemented in headless environments.");e.image.setAttribute("two-src",e.src),s.ImageRegistry.add(e.src,e.image),e.image.src=e.src,e.image.loop=!0,e.image.load()}}},load:function(t,e){t.src;var i=t.image,r=i&&i.nodeName.toLowerCase();t._flagImage&&(/canvas/i.test(r)?s.Register.canvas(t,e):(t._src=i.getAttribute("two-src")||i.src,s.Register[r](t,e))),t._flagSrc&&(i||(t.image=s.getImage(t.src)),r=t.image.nodeName.toLowerCase(),s.Register[r](t,e))},FlagOffset:function(){this._flagOffset=!0},FlagScale:function(){this._flagScale=!0},MakeObservable:function(e){r.each(s.Properties,t.Utils.defineProperty,e),Object.defineProperty(e,"image",{enumerable:!0,get:function(){return this._image},set:function(t){var e;switch(t&&t.nodeName.toLowerCase()){case"canvas":e="#"+t.id;break;default:e=t.src}s.ImageRegistry.contains(e)?this._image=s.ImageRegistry.get(t.src):this._image=t,this._flagImage=!0}}),Object.defineProperty(e,"offset",{enumerable:!0,get:function(){return this._offset},set:function(e){this._offset&&this._offset.unbind(t.Events.change,this._renderer.flagOffset),this._offset=e,this._offset.bind(t.Events.change,this._renderer.flagOffset),this._flagOffset=!0}}),Object.defineProperty(e,"scale",{enumerable:!0,get:function(){return this._scale},set:function(e){this._scale instanceof t.Vector&&this._scale.unbind(t.Events.change,this._renderer.flagScale),this._scale=e,this._scale instanceof t.Vector&&this._scale.bind(t.Events.change,this._renderer.flagScale),this._flagScale=!0}})}}),r.extend(s.prototype,t.Utils.Events,t.Shape.prototype,{_flagSrc:!1,_flagImage:!1,_flagVideo:!1,_flagLoaded:!1,_flagRepeat:!1,_flagOffset:!1,_flagScale:!1,_src:"",_image:null,_loaded:!1,_repeat:"no-repeat",_scale:1,_offset:null,constructor:s,clone:function(){return new s(this.src)},toObject:function(){return{src:this.src,image:this.image}},_update:function(){return(this._flagSrc||this._flagImage)&&(this.trigger(t.Events.change),(this._flagSrc||this._flagImage)&&(this.loaded=!1,s.load(this,r.bind(function(){this.loaded=!0,this.trigger(t.Events.change).trigger(t.Events.load)},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}}),s.MakeObservable(s.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.Path,r=t.Rectangle,n=t.Sprite=function(r,n,s,a,o,l){i.call(this,[new t.Anchor,new t.Anchor,new t.Anchor,new t.Anchor],!0),this.noStroke(),this.noFill(),r instanceof t.Texture?this.texture=r:e.isString(r)&&(this.texture=new t.Texture(r)),this.origin=new t.Vector,this._update(),this.translation.set(n||0,s||0),e.isNumber(a)&&(this.columns=a),e.isNumber(o)&&(this.rows=o),e.isNumber(l)&&(this.frameRate=l)};e.extend(n,{Properties:["texture","columns","rows","frameRate","index"],MakeObservable:function(i){r.MakeObservable(i),e.each(n.Properties,t.Utils.defineProperty,i)}}),e.extend(n.prototype,r.prototype,{_flagTexture:!1,_flagColumns:!1,_flagRows:!1,_flagFrameRate:!1,flagIndex:!1,_amount:1,_duration:0,_startTime:0,_playing:!1,_firstFrame:0,_lastFrame:0,_loop:!0,_texture:null,_columns:1,_rows:1,_frameRate:0,_index:0,_origin:null,constructor:n,play:function(t,i,r){return this._playing=!0,this._firstFrame=0,this._lastFrame=this.amount-1,this._startTime=e.performance.now(),e.isNumber(t)&&(this._firstFrame=t),e.isNumber(i)&&(this._lastFrame=i),e.isFunction(r)?this._onLastFrame=r:delete this._onLastFrame,this._index!==this._firstFrame&&(this._startTime-=1e3*Math.abs(this._index-this._firstFrame)/this._frameRate),this},pause:function(){return this._playing=!1,this},stop:function(){return this._playing=!1,this._index=0,this},clone:function(t){var e=new n(this.texture,this.translation.x,this.translation.y,this.columns,this.rows,this.frameRate);return this.playing&&(e.play(this._firstFrame,this._lastFrame),e._loop=this._loop),t&&t.add(e),e},_update:function(){var t,i,n,s,a,o,l,h,c,d=this._texture,f=this._columns,u=this._rows;if((this._flagColumns||this._flagRows)&&(this._amount=this._columns*this._rows),this._flagFrameRate&&(this._duration=1e3*this._amount/this._frameRate),this._flagTexture&&(this.fill=this._texture),this._texture.loaded){t=(l=d.image.width)/f,i=(h=d.image.height)/u,s=this._amount,this.width!==t&&(this.width=t),this.height!==i&&(this.height=i),this._playing&&this._frameRate>0&&(e.isNaN(this._lastFrame)&&(this._lastFrame=s-1),n=e.performance.now()-this._startTime,a=1e3*((c=this._lastFrame+1)-this._firstFrame)/this._frameRate,this._loop?n%=a:n=Math.min(n,a),o=e.lerp(this._firstFrame,c,n/a),(o=Math.floor(o))!==this._index&&(this._index=o,o>=this._lastFrame-1&&this._onLastFrame&&this._onLastFrame()));var g=-t*(this._index%f)+(l-t)/2,_=-i*Math.floor(this._index/f)+(h-i)/2;g!==d.offset.x&&(d.offset.x=g),_!==d.offset.y&&(d.offset.y=_)}return r.prototype._update.call(this),this},flagReset:function(){return this._flagTexture=this._flagColumns=this._flagRows=this._flagFrameRate=!1,r.prototype.flagReset.call(this),this}}),n.MakeObservable(n.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.Path,r=t.Rectangle,n=t.ImageSequence=function(r,s,a,o){i.call(this,[new t.Anchor,new t.Anchor,new t.Anchor,new t.Anchor],!0),this._renderer.flagTextures=e.bind(n.FlagTextures,this),this._renderer.bindTextures=e.bind(n.BindTextures,this),this._renderer.unbindTextures=e.bind(n.UnbindTextures,this),this.noStroke(),this.noFill(),this.textures=e.map(r,n.GenerateTexture,this),this.origin=new t.Vector,this._update(),this.translation.set(s||0,a||0),e.isNumber(o)?this.frameRate=o:this.frameRate=n.DefaultFrameRate};e.extend(n,{Properties:["frameRate","index"],DefaultFrameRate:30,FlagTextures:function(){this._flagTextures=!0},BindTextures:function(e){for(var i=e.length;i--;)e[i].bind(t.Events.change,this._renderer.flagTextures);this._renderer.flagTextures()},UnbindTextures:function(e){for(var i=e.length;i--;)e[i].unbind(t.Events.change,this._renderer.flagTextures);this._renderer.flagTextures()},MakeObservable:function(i){r.MakeObservable(i),e.each(n.Properties,t.Utils.defineProperty,i),Object.defineProperty(i,"textures",{enumerable:!0,get:function(){return this._textures},set:function(e){this._renderer.flagTextures;var i=this._renderer.bindTextures,r=this._renderer.unbindTextures;this._textures&&this._textures.unbind(t.Events.insert,i).unbind(t.Events.remove,r),this._textures=new t.Utils.Collection((e||[]).slice(0)),this._textures.bind(t.Events.insert,i).bind(t.Events.remove,r),i(this._textures)}})},GenerateTexture:function(i){return i instanceof t.Texture?i:e.isString(i)?new t.Texture(i):void 0}}),e.extend(n.prototype,r.prototype,{_flagTextures:!1,_flagFrameRate:!1,_flagIndex:!1,_amount:1,_duration:0,_index:0,_startTime:0,_playing:!1,_firstFrame:0,_lastFrame:0,_loop:!0,_textures:null,_frameRate:0,_origin:null,constructor:n,play:function(t,i,r){return this._playing=!0,this._firstFrame=0,this._lastFrame=this.amount-1,this._startTime=e.performance.now(),e.isNumber(t)&&(this._firstFrame=t),e.isNumber(i)&&(this._lastFrame=i),e.isFunction(r)?this._onLastFrame=r:delete this._onLastFrame,this._index!==this._firstFrame&&(this._startTime-=1e3*Math.abs(this._index-this._firstFrame)/this._frameRate),this},pause:function(){return this._playing=!1,this},stop:function(){return this._playing=!1,this._index=0,this},clone:function(t){var e=new n(this.textures,this.translation.x,this.translation.y,this.frameRate);return e._loop=this._loop,this._playing&&e.play(),t&&t.add(e),e},_update:function(){var i,n,s,a,o,l,h,c,d=this._textures;return this._flagTextures&&(this._amount=d.length),this._flagFrameRate&&(this._duration=1e3*this._amount/this._frameRate),this._playing&&this._frameRate>0?(a=this._amount,e.isNaN(this._lastFrame)&&(this._lastFrame=a-1),s=e.performance.now()-this._startTime,o=1e3*((c=this._lastFrame+1)-this._firstFrame)/this._frameRate,this._loop?s%=o:s=Math.min(s,o),h=e.lerp(this._firstFrame,c,s/o),(h=Math.floor(h))!==this._index&&(this._index=h,(l=d[this._index]).loaded&&(i=l.image.width,n=l.image.height,this.width!==i&&(this.width=i),this.height!==n&&(this.height=n),this.fill=l,h>=this._lastFrame-1&&this._onLastFrame&&this._onLastFrame()))):!this._flagIndex&&this.fill instanceof t.Texture||((l=d[this._index]).loaded&&(i=l.image.width,n=l.image.height,this.width!==i&&(this.width=i),this.height!==n&&(this.height=n)),this.fill=l),r.prototype._update.call(this),this},flagReset:function(){return this._flagTextures=this._flagFrameRate=!1,r.prototype.flagReset.call(this),this}}),n.MakeObservable(n.prototype)}((void 0!==t?t:window).Two),function(t){var e=Math.min,i=Math.max,r=t.Utils,n=function(){t.Utils.Collection.apply(this,arguments),Object.defineProperty(this,"_events",{value:{},enumerable:!1}),this.ids={},this.on(t.Events.insert,this.attach),this.on(t.Events.remove,this.detach),n.prototype.attach.apply(this,arguments)};n.prototype=new t.Utils.Collection,r.extend(n.prototype,{constructor:n,attach:function(t){for(var e=0;e=0?n.additions.splice(i,1):(n.subtractions.push(t),n._flagSubtractions=!0)),e?(t.parent=e,this.additions.push(t),void(this._flagAdditions=!0)):((i=r.indexOf(this.additions,t))>=0?this.additions.splice(i,1):(this.subtractions.push(t),this._flagSubtractions=!0),void delete t.parent))}r.extend(s,{Children:n,InsertChildren:function(t){for(var e=0;en+h?(l.beginning=1,l.ending=1):an&&sn&&a'+s.innerHTML+"":null},e.prototype.toSvgBase64=function(){var t=this.toSvgXml();return t?"data:image/svg+xml;base64,"+btoa(t):null},e.prototype.clearListner=function(){this.el.removeEventListener("mousedown",this.mouseDown),this.el.removeEventListener("touchstart",this.touchStart)},e.prototype.init=function(){return this.appendTo(this.el),this.el.addEventListener("mousedown",this.mouseDown,a(!1)),this.el.addEventListener("touchstart",this.touchStart,a(!1)),this},e.prototype.drawingStart=function(t){var e=t.x,i=t.y;this.current.set(e,i)},e.prototype.drawingMove=function(t){var e=this,i=t.x,r=t.y,n=this.el.getBoundingClientRect(),a=function(t,e){return new s.a.Vector(t-n.left,e-n.top)};if(this.line){if(this.line.linewidth!==this.penWidth||this.line.stroke!==this.penColor)return void this.drawingEnd();var o=a(i,r);this.line.vertices.push(o)}else{var l=a(this.current.x,this.current.y),h=a(i,r);this.current.set(i,r),this.line=this.makeCurve([l,h],!0),this.line.noFill().stroke=this.penColor,this.line.linewidth=this.penWidth,this.line.cap=this.strokeCap,this.line.join=this.strokeLineJoin,this.line.vertices.map(function(t){e.line&&t.addSelf(e.line.translation)}),this.line.translation.clear()}},e.prototype.drawingEnd=function(){this.line=null},e.prototype.mouseDown=function(t){t.preventDefault(),this.drawingStart({x:t.clientX,y:t.clientY}),this.el.addEventListener("mousemove",this.mouseMove,a(!1)),this.el.addEventListener("mouseup",this.mouseUp,a(!1))},e.prototype.mouseMove=function(t){t.preventDefault(),this.drawingMove({x:t.clientX,y:t.clientY})},e.prototype.mouseUp=function(t){t.preventDefault(),this.el.removeEventListener("mousemove",this.mouseMove),this.el.removeEventListener("mouseup",this.mouseUp),this.drawingEnd()},e.prototype.touchStart=function(t){t.preventDefault();var e=t.touches[0];this.drawingStart({x:e.pageX,y:e.pageY}),this.el.addEventListener("touchmove",this.touchMove,a(!1)),this.el.addEventListener("touchend",this.touchEnd,a(!1))},e.prototype.touchMove=function(t){t.preventDefault();var e=t.touches[0];this.drawingMove({x:e.pageX,y:e.pageY})},e.prototype.touchEnd=function(t){t.preventDefault(),this.el.removeEventListener("touchmove",this.touchMove),this.el.removeEventListener("touchend",this.touchEnd),this.drawingEnd()},e}(s.a),h=function(){return(h=Object.assign||function(t){for(var e,i=1,r=arguments.length;i=0&&i<=y},b={temp:n.document?n.document.createElement("div"):{},hasEventListeners:a.isFunction(n.addEventListener),bind:function(t,e,i,r){return this.hasEventListeners?t.addEventListener(e,i,!!r):t.attachEvent("on"+e,i),b},unbind:function(t,e,i,r){return b.hasEventListeners?t.removeEventListeners(e,i,!!r):t.detachEvent("on"+e,i),b},getRequestAnimationFrame:function(){var t,e=0,i=["ms","moz","webkit","o"],r=n.requestAnimationFrame;if(!r){for(var s=0;s0?t.transform.baseVal[0].matrix:t.getCTM?t.getCTM():null;if(a.isNull(u))break;var _=w.Utils.decomposeMatrix(u);e.translation.set(_.translateX,_.translateY),e.rotation=_.rotation,e.scale=new w.Vector(_.scaleX,_.scaleY);var g=parseFloat((h.x+"").replace("px")),p=parseFloat((h.y+"").replace("px"));g&&(e.translation.x=g),p&&(e.translation.y=p);break;case"viewBox":w.Utils.applySvgViewBox.call(this,e,o);break;case"visible":e.visible=o;break;case"stroke-linecap":e.cap=o;break;case"stroke-linejoin":e.join=o;break;case"stroke-miterlimit":e.miter=o;break;case"stroke-width":e.linewidth=parseFloat(o);break;case"opacity":case"stroke-opacity":case"fill-opacity":e instanceof w.Group||(e.opacity=parseFloat(o));break;case"fill":case"stroke":/url\(\#.*\)/i.test(o)?e[s]=this.getById(o.replace(/url\(\#(.*)\)/i,"$1")):e[s]=/none/i.test(o)?"transparent":o;break;case"id":e.id=o;break;case"class":case"className":e.classList=o.split(" ")}return h},read:{svg:function(t){var e=w.Utils.read.g.call(this,t);t.getAttribute("viewBox");return e},g:function(t){var e,i=new w.Group;e=w.Utils.getSvgStyles.call(this,t);for(var r=0,n=t.childNodes.length;r1&&(d=1);break;case"m":case"l":case"t":_.length>2&&(d=2);break;case"s":case"q":_.length>4&&(d=4);break;case"c":_.length>6&&(d=6);break;case"a":_.length>7&&(d=7)}if(d){for(a=0,l=_.length,c=0;a0)switch(f){case"m":o="l";break;case"M":o="L"}g.push(o+_.slice(a,a+d).join(" ")),c++}h=Array.prototype.concat.apply(h,g)}else h.push(t)});var d=[];if(a.each(h,function(t,e){var n,h,f,_,g,p,m,v,y,x,b,k,S=t[0],E=S.toLowerCase();switch(r=(r=(r=t.slice(1).trim()).replace(/(-?\d+(?:\.\d*)?)[eE]([+\-]?\d+)/g,function(t,e,i){return parseFloat(e)*u(10,i)})).split(/[\s,]+|(?=\s?[+\-])/),l=S===E,E){case"z":if(e>=c)o=!0;else{h=s.x,f=s.y,n=new w.Anchor(h,f,void 0,void 0,void 0,void 0,w.Commands.close);for(e=d.length-1;e>=0;e--){var A=d[e];if(/m/i.test(A.command)){s=A;break}}}break;case"m":case"l":i=void 0,h=parseFloat(r[0]),f=parseFloat(r[1]),n=new w.Anchor(h,f,void 0,void 0,void 0,void 0,/m/i.test(E)?w.Commands.move:w.Commands.line),l&&n.addSelf(s),s=n;break;case"h":case"v":var C=/h/i.test(E)?"x":"y",R=/x/i.test(C)?"y":"x";(n=new w.Anchor(void 0,void 0,void 0,void 0,void 0,void 0,w.Commands.line))[C]=parseFloat(r[0]),n[R]=s[R],l&&(n[C]+=s[C]),s=n;break;case"c":case"s":_=s.x,g=s.y,i||(i=new w.Vector),/c/i.test(E)?(p=parseFloat(r[0]),m=parseFloat(r[1]),v=parseFloat(r[2]),y=parseFloat(r[3]),x=parseFloat(r[4]),b=parseFloat(r[5])):(p=(k=M(s,i,l)).x,m=k.y,v=parseFloat(r[0]),y=parseFloat(r[1]),x=parseFloat(r[2]),b=parseFloat(r[3])),l&&(p+=_,m+=g,v+=_,y+=g,x+=_,b+=g),a.isObject(s.controls)||w.Anchor.AppendCurveProperties(s),s.controls.right.set(p-s.x,m-s.y),n=new w.Anchor(x,b,v-x,y-b,void 0,void 0,w.Commands.curve),s=n,i=n.controls.left;break;case"t":case"q":_=s.x,g=s.y,i||(i=new w.Vector),i.isZero()?(p=_,m=g):(p=i.x,m=i.y),/q/i.test(E)?(v=parseFloat(r[0]),y=parseFloat(r[1]),x=parseFloat(r[2]),b=parseFloat(r[3])):(v=(k=M(s,i,l)).x,y=k.y,x=parseFloat(r[0]),b=parseFloat(r[1])),l&&(p+=_,m+=g,v+=_,y+=g,x+=_,b+=g),a.isObject(s.controls)||w.Anchor.AppendCurveProperties(s),s.controls.right.set(p-s.x,m-s.y),n=new w.Anchor(x,b,v-x,y-b,void 0,void 0,w.Commands.curve),s=n,i=n.controls.left;break;case"a":_=s.x,g=s.y;var F=parseFloat(r[0]),O=parseFloat(r[1]),P=parseFloat(r[2]),U=parseFloat(r[3]),T=parseFloat(r[4]);x=parseFloat(r[5]),b=parseFloat(r[6]),l&&(x+=_,b+=g);var L=new w.Anchor(x,b);L.command=w.Commands.arc,L.rx=F,L.ry=O,L.xAxisRotation=P,L.largeArcFlag=U,L.sweepFlag=T,n=L,s=L,i=void 0}n&&(a.isArray(n)?d=d.concat(n):d.push(n))}),!(d.length<=1)){(n=new w.Path(d,o,void 0,!0).noStroke()).fill="black";var f=n.getBoundingClientRect(!0);return f.centroid={x:f.left+f.width/2,y:f.top+f.height/2},a.each(n.vertices,function(t){t.subSelf(f.centroid)}),n.translation.addSelf(f.centroid),w.Utils.applySvgAttributes.call(this,t,n,e),n}},circle:function(t,e){var i=parseFloat(t.getAttribute("cx")),r=parseFloat(t.getAttribute("cy")),n=parseFloat(t.getAttribute("r")),s=new w.Circle(i,r,n).noStroke();return s.fill="black",w.Utils.applySvgAttributes.call(this,t,s,e),s},ellipse:function(t,e){var i=parseFloat(t.getAttribute("cx")),r=parseFloat(t.getAttribute("cy")),n=parseFloat(t.getAttribute("rx")),s=parseFloat(t.getAttribute("ry")),a=new w.Ellipse(i,r,n,s).noStroke();return a.fill="black",w.Utils.applySvgAttributes.call(this,t,a,e),a},rect:function(t,e){var i=parseFloat(t.getAttribute("rx")),r=parseFloat(t.getAttribute("ry"));if(!a.isNaN(i)||!a.isNaN(r))return w.Utils.read["rounded-rect"](t);var n=parseFloat(t.getAttribute("x"))||0,s=parseFloat(t.getAttribute("y"))||0,o=parseFloat(t.getAttribute("width")),l=parseFloat(t.getAttribute("height")),h=o/2,c=l/2,d=new w.Rectangle(n+h,s+c,o,l).noStroke();return d.fill="black",w.Utils.applySvgAttributes.call(this,t,d,e),d},"rounded-rect":function(t,e){var i=parseFloat(t.getAttribute("x"))||0,r=parseFloat(t.getAttribute("y"))||0,n=parseFloat(t.getAttribute("rx"))||0,s=parseFloat(t.getAttribute("ry"))||0,a=parseFloat(t.getAttribute("width")),o=parseFloat(t.getAttribute("height")),l=a/2,h=o/2,c=new w.Vector(n,s),d=new w.RoundedRectangle(i+l,r+h,a,o,c).noStroke();return d.fill="black",w.Utils.applySvgAttributes.call(this,t,d,e),d},line:function(t,e){var i=parseFloat(t.getAttribute("x1")),r=parseFloat(t.getAttribute("y1")),n=parseFloat(t.getAttribute("x2")),s=parseFloat(t.getAttribute("y2")),a=new w.Line(i,r,n,s).noFill();return w.Utils.applySvgAttributes.call(this,t,a,e),a},lineargradient:function(t,e){for(var i=parseFloat(t.getAttribute("x1")),r=parseFloat(t.getAttribute("y1")),n=parseFloat(t.getAttribute("x2")),s=parseFloat(t.getAttribute("y2")),o=(n+i)/2,l=(s+r)/2,h=[],c=0;c1?d[1]:void 0;if(a.isNull(g))g=(d=!!p&&p.match(/stop\-opacity\:\s?([0-9\.\-]*)/))&&d.length>1?parseFloat(d[1]):1;h.push(new w.Gradient.Stop(u,_,g))}var m=new w.LinearGradient(i-o,r-l,n-o,s-l,h);return w.Utils.applySvgAttributes.call(this,t,m,e),m},radialgradient:function(t,e){var i=parseFloat(t.getAttribute("cx"))||0,r=parseFloat(t.getAttribute("cy"))||0,n=parseFloat(t.getAttribute("r")),s=parseFloat(t.getAttribute("fx")),o=parseFloat(t.getAttribute("fy"));a.isNaN(s)&&(s=i),a.isNaN(o)&&(o=r);for(var l=c(i+s)/2,h=c(r+o)/2,d=[],f=0;f1?u[1]:void 0;if(a.isNull(m))m=(u=!!v&&v.match(/stop\-opacity\:\s?([0-9\.\-]*)/))&&u.length>1?parseFloat(u[1]):1;d.push(new w.Gradient.Stop(g,p,m))}var y=new w.RadialGradient(i-l,r-h,n,d,s-l,o-h);return w.Utils.applySvgAttributes.call(this,t,y,e),y}},subdivide:function(t,e,i,r,n,s,a,o,l){var h=(l=l||w.Utils.Curve.RecursionLimit)+1;if(c(t-a)<.001&&c(e-o)<.001)return[new w.Anchor(a,o)];for(var d=[],f=0;f>1,c=1&r?s[l++]*t(o):0;l1?Array.prototype.push.apply(this,arguments):arguments[0]&&Array.isArray(arguments[0])&&Array.prototype.push.apply(this,arguments[0])},Error:function(t){this.name="two.js",this.message=t},Events:{on:function(t,e){return this._events||(this._events={}),(this._events[t]||(this._events[t]=[])).push(e),this},off:function(t,e){if(!this._events)return this;if(!t&&!e)return this._events={},this;for(var i=t?[t]:a.keys(this._events),r=0,n=i.length;r2&&(t=this.slice(arguments[0],arguments[0]+arguments.length-2),this.trigger(w.Events.insert,t),this.trigger(w.Events.order)),e},sort:function(){return Array.prototype.sort.apply(this,arguments),this.trigger(w.Events.order),this},reverse:function(){return Array.prototype.reverse.apply(this,arguments),this.trigger(w.Events.order),this}});w.Utils.getAnchorsFromArcData;var S=w.Utils.getControlPoints,E=(w.Utils.getCurveFromPoints,w.Utils.solveSegmentIntersection,w.Utils.decoupleShapes,w.Utils.mod),A=w.Utils.getBackingStoreRatio,C=w.Utils.getComponentOnCubicBezier,R=(w.Utils.getCurveLength,w.Utils.integrate),M=w.Utils.getReflection;function F(){var t=document.body.getBoundingClientRect(),e=this.width=t.width,i=this.height=t.height;this.renderer.setSize(e,i,this.ratio)}function O(t,e){this.width=t,this.height=e,this.trigger(w.Events.resize,t,e)}a.extend(w.prototype,w.Utils.Events,{constructor:w,appendTo:function(t){return t.appendChild(this.renderer.domElement),this},play:function(){return w.Utils.setPlaying.call(this,!0),P.init(),this.trigger(w.Events.play)},pause:function(){return this.playing=!1,this.trigger(w.Events.pause)},update:function(){var t=!!this._lastFrame,e=v.now();t&&(this.timeDelta=parseFloat((e-this._lastFrame).toFixed(3))),this._lastFrame=e;var i=this.width,r=this.height,n=this.renderer;return i===n.width&&r===n.height||n.setSize(i,r,this.ratio),this.trigger(w.Events.update,this.frameCount,this.timeDelta),this.render()},render:function(){return this.renderer.render(),this.trigger(w.Events.render,this.frameCount++)},add:function(t){var e=t;return e instanceof Array||(e=a.toArray(arguments)),this.scene.add(e),this},remove:function(t){var e=t;return e instanceof Array||(e=a.toArray(arguments)),this.scene.remove(e),this},clear:function(){return this.scene.remove(this.scene.children),this},makeLine:function(t,e,i,r){var n=new w.Line(t,e,i,r);return this.scene.add(n),n},makeRectangle:function(t,e,i,r){var n=new w.Rectangle(t,e,i,r);return this.scene.add(n),n},makeRoundedRectangle:function(t,e,i,r,n){var s=new w.RoundedRectangle(t,e,i,r,n);return this.scene.add(s),s},makeCircle:function(t,e,i){var r=new w.Circle(t,e,i);return this.scene.add(r),r},makeEllipse:function(t,e,i,r){var n=new w.Ellipse(t,e,i,r);return this.scene.add(n),n},makeStar:function(t,e,i,r,n){var s=new w.Star(t,e,i,r,n);return this.scene.add(s),s},makeCurve:function(t){var e=arguments.length,i=t;if(!a.isArray(t)){i=[];for(var r=0;r=4?(i=arguments[0]-arguments[2],r=arguments[1]-arguments[3],Math.atan2(r,i)):(i=t.x-e.x,r=t.y-e.y,Math.atan2(r,i))},distanceBetween:function(t,e){return Math.sqrt(i.distanceBetweenSquared(t,e))},distanceBetweenSquared:function(t,e){var i=t.x-e.x,r=t.y-e.y;return i*i+r*r},MakeObservable:function(i){i.bind=i.on=function(){return this._bound||(this._x=this.x,this._y=this.y,Object.defineProperty(this,"x",n),Object.defineProperty(this,"y",s),e.extend(this,r),this._bound=!0),t.Utils.Events.bind.apply(this,arguments),this}}}),e.extend(i.prototype,t.Utils.Events,{constructor:i,set:function(t,e){return this.x=t,this.y=e,this},copy:function(t){return this.x=t.x,this.y=t.y,this},clear:function(){return this.x=0,this.y=0,this},clone:function(){return new i(this.x,this.y)},add:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x+=t,this.y+=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x+=t.x,this.y+=t.y):(this.x+=t,this.y+=i),this)},addSelf:function(t){return this.add.apply(this,arguments)},sub:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x-=t,this.y-=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x-=t.x,this.y-=t.y):(this.x-=t,this.y-=i),this)},subtract:function(){return this.sub.apply(this,arguments)},subSelf:function(t){return this.sub.apply(this,arguments)},subtractSelf:function(t){return this.sub.apply(this,arguments)},multiply:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x*=t,this.y*=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x*=t.x,this.y*=t.y):(this.x*=t,this.y*=i),this)},multiplySelf:function(t){return this.multiply.apply(this,arguments)},multiplyScalar:function(t){return this.multiply(t)},divide:function(t,i){return arguments.length<=0?this:(arguments.length<=1?e.isNumber(t)?(this.x/=t,this.y/=t):t&&e.isNumber(t.x)&&e.isNumber(t.y)&&(this.x/=t.x,this.y/=t.y):(this.x/=t,this.y/=i),e.isNaN(this.x)&&(this.x=0),e.isNaN(this.y)&&(this.y=0),this)},divideSelf:function(t){return this.divide.apply(this,arguments)},divideScalar:function(t){return this.divide(t)},negate:function(){return this.multiply(-1)},dot:function(t){return this.x*t.x+this.y*t.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(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return e*e+i*i},setLength:function(t){return this.normalize().multiplyScalar(t)},equals:function(t,e){return e=void 0===e?1e-4:e,this.distanceTo(t)0&&this.set(l)};n.extend(o,{Identity:[1,0,0,0,1,0,0,0,1],Multiply:function(e,i,r){if(i.length<=3){var n=e,s=i[0]||0,a=i[1]||0,o=i[2]||0;return{x:n[0]*s+n[1]*a+n[2]*o,y:n[3]*s+n[4]*a+n[5]*o,z:n[6]*s+n[7]*a+n[8]*o}}var l=e[0],h=e[1],c=e[2],d=e[3],f=e[4],u=e[5],_=e[6],g=e[7],p=e[8],m=i[0],v=i[1],y=i[2],x=i[3],b=i[4],w=i[5],k=i[6],S=i[7],E=i[8];return(r=r||new t.Array(9))[0]=l*m+h*x+c*k,r[1]=l*v+h*b+c*S,r[2]=l*y+h*w+c*E,r[3]=d*m+f*x+u*k,r[4]=d*v+f*b+u*S,r[5]=d*y+f*w+u*E,r[6]=_*m+g*x+p*k,r[7]=_*v+g*b+p*S,r[8]=_*y+g*w+p*E,r}}),n.extend(o.prototype,t.Utils.Events,{constructor:o,manual:!1,set:function(e){var i=e;return arguments.length>1&&(i=n.toArray(arguments)),this.elements[0]=i[0],this.elements[1]=i[1],this.elements[2]=i[2],this.elements[3]=i[3],this.elements[4]=i[4],this.elements[5]=i[5],this.elements[6]=i[6],this.elements[7]=i[7],this.elements[8]=i[8],this.trigger(t.Events.change)},identity:function(){return this.elements[0]=o.Identity[0],this.elements[1]=o.Identity[1],this.elements[2]=o.Identity[2],this.elements[3]=o.Identity[3],this.elements[4]=o.Identity[4],this.elements[5]=o.Identity[5],this.elements[6]=o.Identity[6],this.elements[7]=o.Identity[7],this.elements[8]=o.Identity[8],this.trigger(t.Events.change)},multiply:function(e,i,r,n,s,a,o,l,h){var c=arguments,d=c.length;if(d<=1)return this.elements[0]*=e,this.elements[1]*=e,this.elements[2]*=e,this.elements[3]*=e,this.elements[4]*=e,this.elements[5]*=e,this.elements[6]*=e,this.elements[7]*=e,this.elements[8]*=e,this.trigger(t.Events.change);if(d<=3)return e=e||0,i=i||0,r=r||0,{x:(s=this.elements)[0]*e+s[1]*i+s[2]*r,y:s[3]*e+s[4]*i+s[5]*r,z:s[6]*e+s[7]*i+s[8]*r};var f=this.elements,u=c,_=f[0],g=f[1],p=f[2],m=f[3],v=f[4],y=f[5],x=f[6],b=f[7],w=f[8],k=u[0],S=u[1],E=u[2],A=u[3],C=u[4],R=u[5],M=u[6],F=u[7],O=u[8];return this.elements[0]=_*k+g*A+p*M,this.elements[1]=_*S+g*C+p*F,this.elements[2]=_*E+g*R+p*O,this.elements[3]=m*k+v*A+y*M,this.elements[4]=m*S+v*C+y*F,this.elements[5]=m*E+v*R+y*O,this.elements[6]=x*k+b*A+w*M,this.elements[7]=x*S+b*C+w*F,this.elements[8]=x*E+b*R+w*O,this.trigger(t.Events.change)},inverse:function(e){var i=this.elements;e=e||new t.Matrix;var r=i[0],n=i[1],s=i[2],a=i[3],o=i[4],l=i[5],h=i[6],c=i[7],d=i[8],f=d*o-l*c,u=-d*a+l*h,_=c*a-o*h,g=r*f+n*u+s*_;return g?(g=1/g,e.elements[0]=f*g,e.elements[1]=(-d*n+s*c)*g,e.elements[2]=(l*n-s*o)*g,e.elements[3]=u*g,e.elements[4]=(d*r-s*h)*g,e.elements[5]=(-l*r+s*a)*g,e.elements[6]=_*g,e.elements[7]=(-c*r+n*h)*g,e.elements[8]=(o*r-n*a)*g,e):null},scale:function(t,e){return arguments.length<=1&&(e=t),this.multiply(t,0,0,0,e,0,0,0,1)},rotate:function(t){var r=e(t),n=i(t);return this.multiply(r,-n,0,n,r,0,0,0,1)},translate:function(t,e){return this.multiply(1,0,t,0,1,e,0,0,1)},skewX:function(t){var e=r(t);return this.multiply(1,e,0,0,1,0,0,0,1)},skewY:function(t){var e=r(t);return this.multiply(1,0,0,e,1,0,0,0,1)},toString:function(t){return a.length=0,this.toArray(t,a),a.join(" ")},toArray:function(t,e){var i=this.elements,r=!!e,n=s(i[0]),a=s(i[1]),o=s(i[2]),l=s(i[3]),h=s(i[4]),c=s(i[5]);if(t){var d=s(i[6]),f=s(i[7]),u=s(i[8]);return r?(e[0]=n,e[1]=l,e[2]=d,e[3]=a,e[4]=h,e[5]=f,e[6]=o,e[7]=c,void(e[8]=u)):[n,l,d,a,h,f,o,c,u]}return r?(e[0]=n,e[1]=l,e[2]=a,e[3]=h,e[4]=o,void(e[5]=c)):[n,l,a,h,o,c]},clone:function(){var e,i,r,n,s,a,o,l,h;e=this.elements[0],i=this.elements[1],r=this.elements[2],n=this.elements[3],s=this.elements[4],a=this.elements[5],o=this.elements[6],l=this.elements[7],h=this.elements[8];var c=new t.Matrix(e,i,r,n,s,a,o,l,h);return c.manual=this.manual,c}})}((void 0!==t?t:window).Two),function(t){var e=t.Utils.mod,i=t.Utils.toFixed,r=t.Utils,n={version:1.1,ns:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",alignments:{left:"start",center:"middle",right:"end"},createElement:function(t,e){var i=t,s=document.createElementNS(n.ns,i);return"svg"===i&&(e=r.defaults(e||{},{version:n.version})),r.isEmpty(e)||n.setAttributes(s,e),s},setAttributes:function(t,e){for(var i=Object.keys(e),r=0;r=o&&n&&(S.command===t.Commands.curve&&(R=s,m=S.controls&&S.controls.right||S,v=R.controls&&R.controls.left||R,S.relative?(d=i(m.x+S.x),f=i(m.y+S.y)):(d=i(m.x),f=i(m.y)),R.relative?(u=i(v.x+R.x),_=i(v.y+R.y)):(u=i(v.x),_=i(v.y)),c+=" C "+d+" "+f+" "+u+" "+_+" "+(M=i(R.x))+" "+(F=i(R.y))),S.command!==t.Commands.close&&(c+=" Z")),l+=c+" "}return l},getClip:function(t){var e=t._renderer.clip;if(!e){for(var i=t;i.parent;)i=i.parent;e=t._renderer.clip=n.createElement("clipPath"),i.defs.appendChild(e)}return e},group:{appendChild:function(t){var e=t._renderer.elem;if(e){var i=e.nodeName;!i||/(radial|linear)gradient/i.test(i)||t._clip||this.elem.appendChild(e)}},removeChild:function(t){var e=t._renderer.elem;e&&e.parentNode==this.elem&&(e.nodeName&&(t._clip||this.elem.removeChild(e)))},orderChild:function(t){this.elem.appendChild(t._renderer.elem)},renderChild:function(t){n[t._renderer.type].render.call(t,this)},render:function(t){if(this._update(),0===this._opacity&&!this._flagOpacity)return this;this._renderer.elem||(this._renderer.elem=n.createElement("g",{id:this.id}),t.appendChild(this._renderer.elem));var e=this._matrix.manual||this._flagMatrix,i={domElement:t,elem:this._renderer.elem};e&&this._renderer.elem.setAttribute("transform","matrix("+this._matrix.toString()+")");for(var r=0;r0&&(e["stroke-dasharray"]=this.dashes.join(" ")),this._renderer.elem?n.setAttributes(this._renderer.elem,e):(e.id=this.id,this._renderer.elem=n.createElement("path",e),t.appendChild(this._renderer.elem)),this._flagClip){var r=n.getClip(this),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.flagReset()}},text:{render:function(t){this._update();var e={};if((this._matrix.manual||this._flagMatrix)&&(e.transform="matrix("+this._matrix.toString()+")"),this._flagFamily&&(e["font-family"]=this._family),this._flagSize&&(e["font-size"]=this._size),this._flagLeading&&(e["line-height"]=this._leading),this._flagAlignment&&(e["text-anchor"]=n.alignments[this._alignment]||this._alignment),this._flagBaseline&&(e["alignment-baseline"]=e["dominant-baseline"]=this._baseline),this._flagStyle&&(e["font-style"]=this._style),this._flagWeight&&(e["font-weight"]=this._weight),this._flagDecoration&&(e["text-decoration"]=this._decoration),this._fill&&this._fill._renderer&&(this._fill._update(),n[this._fill._renderer.type].render.call(this._fill,t,!0)),this._flagFill&&(e.fill=this._fill&&this._fill.id?"url(#"+this._fill.id+")":this._fill),this._stroke&&this._stroke._renderer&&(this._stroke._update(),n[this._stroke._renderer.type].render.call(this._stroke,t,!0)),this._flagStroke&&(e.stroke=this._stroke&&this._stroke.id?"url(#"+this._stroke.id+")":this._stroke),this._flagLinewidth&&(e["stroke-width"]=this._linewidth),this._flagOpacity&&(e.opacity=this._opacity),this._flagClassName&&(e.class=this._className),this._flagVisible&&(e.visibility=this._visible?"visible":"hidden"),this.dashes&&this.dashes.length>0&&(e["stroke-dasharray"]=this.dashes.join(" ")),this._renderer.elem?n.setAttributes(this._renderer.elem,e):(e.id=this.id,this._renderer.elem=n.createElement("text",e),t.defs.appendChild(this._renderer.elem)),this._flagClip){var i=n.getClip(this),r=this._renderer.elem;this._clip?(r.removeAttribute("id"),i.setAttribute("id",this.id),i.appendChild(r)):(i.removeAttribute("id"),r.setAttribute("id",this.id),this.parent._renderer.elem.appendChild(r))}return this._flagValue&&(this._renderer.elem.textContent=this._value),this.flagReset()}},"linear-gradient":{render:function(t,e){e||this._update();var i={};if(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?n.setAttributes(this._renderer.elem,i):(i.id=this.id,i.gradientUnits="userSpaceOnUse",this._renderer.elem=n.createElement("linearGradient",i),t.defs.appendChild(this._renderer.elem)),this._flagStops){var r=this._renderer.elem.childNodes.length!==this.stops.length;r&&(this._renderer.elem.childNodes.length=0);for(var s=0;s0&&(s.x*=-1),s.y>0&&(s.y*=-1)),(this._flagScale||this._flagLoaded||this._flagRepeat)&&(s.width=0,s.height=0,o)){switch(a.width=s.width=o.width,a.height=s.height=o.height,this._repeat){case"no-repeat":s.width+=1,s.height+=1}this._scale instanceof t.Vector?(s.width*=this._scale.x,s.height*=this._scale.y):(s.width*=this._scale,s.height*=this._scale)}return(this._flagScale||this._flagLoaded)&&(this._renderer.image?r.isEmpty(a)||n.setAttributes(this._renderer.image,a):this._renderer.image=n.createElement("image",a)),this._renderer.elem?r.isEmpty(s)||n.setAttributes(this._renderer.elem,s):(s.id=this.id,s.patternUnits="userSpaceOnUse",this._renderer.elem=n.createElement("pattern",s),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()}}},s=t[t.Types.svg]=function(e){this.domElement=e.domElement||n.createElement("svg"),this.scene=new t.Group,this.scene.parent=this,this.defs=n.createElement("defs"),this.domElement.appendChild(this.defs),this.domElement.defs=this.defs,this.domElement.style.overflow="hidden"};r.extend(s,{Utils:n}),r.extend(s.prototype,t.Utils.Events,{constructor:s,setSize:function(e,i){return this.width=e,this.height=i,n.setAttributes(this.domElement,{width:e,height:i}),this.trigger(t.Events.resize,e,i)},render:function(){return n.group.render.call(this.scene,this.domElement),this}})}((void 0!==t?t:window).Two),function(t){var e=t.Utils.mod,i=t.Utils.toFixed,r=t.Utils.getRatio,n=t.Utils,s=[],a=2*Math.PI,o=Math.max,l=Math.min,h=Math.abs,c=Math.sin,d=Math.cos,f=Math.acos,u=Math.sqrt,_=function(t){return 1==t[0]&&0==t[3]&&0==t[1]&&1==t[4]&&0==t[2]&&0==t[5]},g={isHidden:/(none|transparent)/i,alignments:{left:"start",middle:"center",right:"end"},shim:function(t,e){return t.tagName=t.nodeName=e||"canvas",t.nodeType=1,t.getAttribute=function(t){return this[t]},t.setAttribute=function(t,e){return this[t]=e,this},t},group:{renderChild:function(t){g[t._renderer.type].render.call(t,this.ctx,!0,this.clip)},render:function(t){this._update();var e=this._matrix.elements,i=this.parent;this._renderer.opacity=this._opacity*(i&&i._renderer?i._renderer.opacity:1);var r=_(e),n=this._mask;if(this._renderer.context||(this._renderer.context={}),this._renderer.context.ctx=t,r||(t.save(),t.transform(e[0],e[3],e[1],e[4],e[2],e[5])),n&&g[n._renderer.type].render.call(n,t,!0),this.opacity>0&&0!==this.scale)for(var s=0;s0&&r.setLineDash(z),r.beginPath();for(var H=0;H=k&&x&&(R=M,N=C.controls&&C.controls.right||t.Vector.zero,j=R.controls&&R.controls.left||t.Vector.zero,C._relative?(P=N.x+i(C.x),U=N.y+i(C.y)):(P=i(N.x),U=i(N.y)),R._relative?(F=j.x+i(R.x),O=j.y+i(R.y)):(F=i(j.x),O=i(j.y)),V=i(R.x),B=i(R.y),r.bezierCurveTo(P,U,F,O,V,B));break;case t.Commands.line:r.lineTo(V,B);break;case t.Commands.move:M=C,r.moveTo(V,B)}return x&&r.closePath(),z&&z.length>0&&r.setLineDash(s),I||l||(g.isHidden.test(f)||((D=f._renderer&&f._renderer.offset)&&(r.save(),r.translate(-f._renderer.offset.x,-f._renderer.offset.y),r.scale(f._renderer.scale.x,f._renderer.scale.y)),r.fill(),D&&r.restore()),g.isHidden.test(c)||((D=c._renderer&&c._renderer.offset)&&(r.save(),r.translate(-c._renderer.offset.x,-c._renderer.offset.y),r.scale(c._renderer.scale.x,c._renderer.scale.y),r.lineWidth=d/c._renderer.scale.x),r.stroke(),D&&r.restore())),G||r.restore(),I&&!l&&r.clip(),this.flagReset()}},text:{render:function(t,e,r){this._update();var s,a,o,l,h,c,d,f=this._matrix.elements,u=this._stroke,p=this._linewidth,m=this._fill,v=this._opacity*this.parent._renderer.opacity,y=this._visible,x=_(f),b=m._renderer&&m._renderer.offset&&u._renderer&&u._renderer.offset,w=this.dashes,k=this._clip;return e||y&&!k?(x||(t.save(),t.transform(f[0],f[3],f[1],f[4],f[2],f[5])),b||(t.font=[this._style,this._weight,this._size+"px/"+this._leading+"px",this._family].join(" ")),t.textAlign=g.alignments[this._alignment]||this._alignment,t.textBaseline=this._baseline,m&&(n.isString(m)?t.fillStyle=m:(g[m._renderer.type].render.call(m,t),t.fillStyle=m._renderer.effect)),u&&(n.isString(u)?t.strokeStyle=u:(g[u._renderer.type].render.call(u,t),t.strokeStyle=u._renderer.effect)),p&&(t.lineWidth=p),n.isNumber(v)&&(t.globalAlpha=v),w&&w.length>0&&t.setLineDash(w),k||r||(g.isHidden.test(m)||(m._renderer&&m._renderer.offset?(c=i(m._renderer.scale.x),d=i(m._renderer.scale.y),t.save(),t.translate(-i(m._renderer.offset.x),-i(m._renderer.offset.y)),t.scale(c,d),s=this._size/m._renderer.scale.y,a=this._leading/m._renderer.scale.y,t.font=[this._style,this._weight,i(s)+"px/",i(a)+"px",this._family].join(" "),o=m._renderer.offset.x/m._renderer.scale.x,l=m._renderer.offset.y/m._renderer.scale.y,t.fillText(this.value,i(o),i(l)),t.restore()):t.fillText(this.value,0,0)),g.isHidden.test(u)||(u._renderer&&u._renderer.offset?(c=i(u._renderer.scale.x),d=i(u._renderer.scale.y),t.save(),t.translate(-i(u._renderer.offset.x),-i(u._renderer.offset.y)),t.scale(c,d),s=this._size/u._renderer.scale.y,a=this._leading/u._renderer.scale.y,t.font=[this._style,this._weight,i(s)+"px/",i(a)+"px",this._family].join(" "),o=u._renderer.offset.x/u._renderer.scale.x,l=u._renderer.offset.y/u._renderer.scale.y,h=p/u._renderer.scale.x,t.lineWidth=i(h),t.strokeText(this.value,i(o),i(l)),t.restore()):t.strokeText(this.value,0,0))),x||t.restore(),k&&!r&&t.clip(),this.flagReset()):this}},"linear-gradient":{render:function(t){if(this._update(),!this._renderer.effect||this._flagEndPoints||this._flagStops){this._renderer.effect=t.createLinearGradient(this.left._x,this.left._y,this.right._x,this.right._y);for(var e=0;e1){var R=u(C);k=(s*=R)*s,S=(l*=R)*l}var M=k*A+S*E,F=u(o(0,(k*S-M)/M));f===_&&(F=-F);var O=F*s*w/l,P=-F*l*b/s,U=d(g)*O-c(g)*P+(r+p)/2,T=c(g)*O+d(g)*P+(n+v)/2,L=m(1,0,(b-O)/s,(w-P)/l);!function(i,r,n,s,o,l,h,c,d){var f=t.Utils.Curve.Tolerance.epsilon,u=h-l,_=Math.abs(u)0&&S.setLineDash(T),S.save(),S.scale(E,E),S.translate(B,I),S.beginPath();for(var G=0;G=N&&U&&(a=j,m=D.controls&&D.controls.right||t.Vector.zero,v=a.controls&&a.controls.left||t.Vector.zero,D._relative?(u=o(m.x+D.x),_=o(m.y+D.y)):(u=o(m.x),_=o(m.y)),a._relative?(d=o(v.x+a.x),f=o(v.y+a.y)):(d=o(v.x),f=o(v.y)),y=o(a.x),x=o(a.y),S.bezierCurveTo(u,_,d,f,y,x));break;case t.Commands.line:S.lineTo(y,x);break;case t.Commands.move:j=D,S.moveTo(y,x)}}U&&S.closePath(),c.isHidden.test(R)||((b=R._renderer&&R._renderer.offset)&&(S.save(),S.translate(-R._renderer.offset.x,-R._renderer.offset.y),S.scale(R._renderer.scale.x,R._renderer.scale.y)),S.fill(),b&&S.restore()),c.isHidden.test(A)||((b=A._renderer&&A._renderer.offset)&&(S.save(),S.translate(-A._renderer.offset.x,-A._renderer.offset.y),S.scale(A._renderer.scale.x,A._renderer.scale.y),S.lineWidth=C/A._renderer.scale.x),S.stroke(),b&&S.restore()),S.restore()},getBoundingClientRect:function(t,e,i){var r,n,s=1/0,a=-1/0,o=1/0,l=-1/0;t.forEach(function(t){var e,i,r,n,h,c,d=t.x,f=t.y,u=t.controls;o=Math.min(f,o),s=Math.min(d,s),a=Math.max(d,a),l=Math.max(f,l),t.controls&&(h=u.left,c=u.right,h&&c&&(e=t._relative?h.x+d:h.x,i=t._relative?h.y+f:h.y,r=t._relative?c.x+d:c.x,n=t._relative?c.y+f:c.y,e&&i&&r&&n&&(o=Math.min(i,n,o),s=Math.min(e,r,s),a=Math.max(e,r,a),l=Math.max(i,n,l))))}),h.isNumber(e)&&(o-=e,s-=e,a+=e,l+=e),r=a-s,n=l-o,i.top=o,i.left=s,i.right=a,i.bottom=l,i.width=r,i.height=n,i.centroid||(i.centroid={}),i.centroid.x=-s,i.centroid.y=-o},render:function(e,r,n){if(!this._visible||!this._opacity)return this;this._update();var a=this.parent,o=a._matrix.manual||a._flagMatrix,l=this._matrix.manual||this._flagMatrix,d=this._flagVertices||this._flagFill||this._fill instanceof t.LinearGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagEndPoints)||this._fill instanceof t.RadialGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagRadius||this._fill._flagCenter||this._fill._flagFocal)||this._fill instanceof t.Texture&&(this._fill._flagLoaded&&this._fill.loaded||this._fill._flagImage||this._fill._flagVideo||this._fill._flagRepeat||this._fill._flagOffset||this._fill._flagScale)||this._stroke instanceof t.LinearGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagEndPoints)||this._stroke instanceof t.RadialGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagRadius||this._stroke._flagCenter||this._stroke._flagFocal)||this._stroke instanceof t.Texture&&(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||a._flagOpacity||this._flagVisible||this._flagCap||this._flagJoin||this._flagMiter||this._flagScale||this.dashes&&this.dashes.length>0||!this._renderer.texture;return(o||l)&&(this._renderer.matrix||(this._renderer.matrix=new t.Array(9)),this._matrix.toArray(!0,s),i(s,a._renderer.matrix,this._renderer.matrix),this._renderer.scale=this._scale*a._renderer.scale),d?(this._renderer.rect||(this._renderer.rect={}),this._renderer.triangles||(this._renderer.triangles=new t.Array(12)),this._renderer.opacity=this._opacity*a._renderer.opacity,c.path.getBoundingClientRect(this._renderer.vertices,this._linewidth,this._renderer.rect),c.getTriangles(this._renderer.rect,this._renderer.triangles),c.updateBuffer.call(c,e,this,r),c.updateTexture.call(c,e,this)):(h.isString(this._fill)||this._fill._update(),h.isString(this._stroke)||this._stroke._update()),!this._clip||n?(e.bindBuffer(e.ARRAY_BUFFER,this._renderer.textureCoordsBuffer),e.vertexAttribPointer(r.textureCoords,2,e.FLOAT,!1,0,0),e.bindTexture(e.TEXTURE_2D,this._renderer.texture),e.uniformMatrix3fv(r.matrix,!1,this._renderer.matrix),e.bindBuffer(e.ARRAY_BUFFER,this._renderer.buffer),e.vertexAttribPointer(r.position,2,e.FLOAT,!1,0,0),e.drawArrays(e.TRIANGLES,0,6),this.flagReset()):void 0}},text:{updateCanvas:function(t){var e=this.canvas,i=this.ctx,r=t._renderer.scale,n=t._stroke,s=t._linewidth*r,a=t._fill,l=t._renderer.opacity||t._opacity,d=t.dashes;e.width=Math.max(Math.ceil(t._renderer.rect.width*r),1),e.height=Math.max(Math.ceil(t._renderer.rect.height*r),1);var f,u,_,g,p,m,v,y=t._renderer.rect.centroid,x=y.x,b=y.y,w=a._renderer&&a._renderer.offset&&n._renderer&&n._renderer.offset;i.clearRect(0,0,e.width,e.height),w||(i.font=[t._style,t._weight,t._size+"px/"+t._leading+"px",t._family].join(" ")),i.textAlign="center",i.textBaseline="middle",a&&(h.isString(a)?i.fillStyle=a:(c[a._renderer.type].render.call(a,i,t),i.fillStyle=a._renderer.effect)),n&&(h.isString(n)?i.strokeStyle=n:(c[n._renderer.type].render.call(n,i,t),i.strokeStyle=n._renderer.effect)),s&&(i.lineWidth=s),h.isNumber(l)&&(i.globalAlpha=l),d&&d.length>0&&i.setLineDash(d),i.save(),i.scale(r,r),i.translate(x,b),c.isHidden.test(a)||(a._renderer&&a._renderer.offset?(m=o(a._renderer.scale.x),v=o(a._renderer.scale.y),i.save(),i.translate(-o(a._renderer.offset.x),-o(a._renderer.offset.y)),i.scale(m,v),f=t._size/a._renderer.scale.y,u=t._leading/a._renderer.scale.y,i.font=[t._style,t._weight,o(f)+"px/",o(u)+"px",t._family].join(" "),_=a._renderer.offset.x/a._renderer.scale.x,g=a._renderer.offset.y/a._renderer.scale.y,i.fillText(t.value,o(_),o(g)),i.restore()):i.fillText(t.value,0,0)),c.isHidden.test(n)||(n._renderer&&n._renderer.offset?(m=o(n._renderer.scale.x),v=o(n._renderer.scale.y),i.save(),i.translate(-o(n._renderer.offset.x),-o(n._renderer.offset.y)),i.scale(m,v),f=t._size/n._renderer.scale.y,u=t._leading/n._renderer.scale.y,i.font=[t._style,t._weight,o(f)+"px/",o(u)+"px",t._family].join(" "),_=n._renderer.offset.x/n._renderer.scale.x,g=n._renderer.offset.y/n._renderer.scale.y,p=s/n._renderer.scale.x,i.lineWidth=o(p),i.strokeText(t.value,o(_),o(g)),i.restore()):i.strokeText(t.value,0,0)),i.restore()},getBoundingClientRect:function(t,e){var i=c.ctx;i.font=[t._style,t._weight,t._size+"px/"+t._leading+"px",t._family].join(" "),i.textAlign="center",i.textBaseline=t._baseline;var r=i.measureText(t._value).width,n=Math.max(t._size||t._leading);this._linewidth&&!c.isHidden.test(this._stroke)&&(n+=this._linewidth);var s=r/2,a=n/2;switch(c.alignments[t._alignment]||t._alignment){case c.alignments.left:e.left=0,e.right=r;break;case c.alignments.right:e.left=-r,e.right=0;break;default:e.left=-s,e.right=s}switch(t._baseline){case"bottom":e.top=-n,e.bottom=0;break;case"top":e.top=0,e.bottom=n;break;default:e.top=-a,e.bottom=a}e.width=r,e.height=n,e.centroid||(e.centroid={}),e.centroid.x=s,e.centroid.y=a},render:function(e,r,n){if(!this._visible||!this._opacity)return this;this._update();var a=this.parent,o=a._matrix.manual||a._flagMatrix,l=this._matrix.manual||this._flagMatrix,d=this._flagVertices||this._flagFill||this._fill instanceof t.LinearGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagEndPoints)||this._fill instanceof t.RadialGradient&&(this._fill._flagSpread||this._fill._flagStops||this._fill._flagRadius||this._fill._flagCenter||this._fill._flagFocal)||this._fill instanceof t.Texture&&(this._fill._flagLoaded&&this._fill.loaded||this._fill._flagImage||this._fill._flagVideo||this._fill._flagRepeat||this._fill._flagOffset||this._fill._flagScale)||this._stroke instanceof t.LinearGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagEndPoints)||this._stroke instanceof t.RadialGradient&&(this._stroke._flagSpread||this._stroke._flagStops||this._stroke._flagRadius||this._stroke._flagCenter||this._stroke._flagFocal)||this._stroke instanceof t.Texture&&(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||a._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;return(o||l)&&(this._renderer.matrix||(this._renderer.matrix=new t.Array(9)),this._matrix.toArray(!0,s),i(s,a._renderer.matrix,this._renderer.matrix),this._renderer.scale=this._scale*a._renderer.scale),d?(this._renderer.rect||(this._renderer.rect={}),this._renderer.triangles||(this._renderer.triangles=new t.Array(12)),this._renderer.opacity=this._opacity*a._renderer.opacity,c.text.getBoundingClientRect(this,this._renderer.rect),c.getTriangles(this._renderer.rect,this._renderer.triangles),c.updateBuffer.call(c,e,this,r),c.updateTexture.call(c,e,this)):(h.isString(this._fill)||this._fill._update(),h.isString(this._stroke)||this._stroke._update()),!this._clip||n?(e.bindBuffer(e.ARRAY_BUFFER,this._renderer.textureCoordsBuffer),e.vertexAttribPointer(r.textureCoords,2,e.FLOAT,!1,0,0),e.bindTexture(e.TEXTURE_2D,this._renderer.texture),e.uniformMatrix3fv(r.matrix,!1,this._renderer.matrix),e.bindBuffer(e.ARRAY_BUFFER,this._renderer.buffer),e.vertexAttribPointer(r.position,2,e.FLOAT,!1,0,0),e.drawArrays(e.TRIANGLES,0,6),this.flagReset()):void 0}},"linear-gradient":{render:function(t,e){if(t.canvas.getContext("2d")){if(this._update(),!this._renderer.effect||this._flagEndPoints||this._flagStops){this._renderer.effect=t.createLinearGradient(this.left._x,this.left._y,this.right._x,this.right._y);for(var i=0;i=i)return i-r>=0;r+=s}return!1}function c(t,e){var i=t._length;if(e<=0)return 0;if(e>=i)return t._lengths.length-1;for(var r=0,n=0;r=e)return e-=n,Math.max(r-1,0)+e/t._lengths[r];n+=t._lengths[r]}return-1}function d(e,i,r){var n,s,a,o,l,h,c,d,f=i.controls&&i.controls.right,u=e.controls&&e.controls.left;return n=i.x,l=i.y,s=(f||i).x,h=(f||i).y,a=(u||e).x,c=(u||e).y,o=e.x,d=e.y,f&&i._relative&&(s+=i.x,h+=i.y),u&&e._relative&&(a+=e.x,c+=e.y),t.Utils.getCurveLength(n,l,s,h,a,c,o,d,r)}function f(e,i,r){var n,s,a,o,l,h,c,d,f=i.controls&&i.controls.right,u=e.controls&&e.controls.left;return n=i.x,l=i.y,s=(f||i).x,h=(f||i).y,a=(u||e).x,c=(u||e).y,o=e.x,d=e.y,f&&i._relative&&(s+=i.x,h+=i.y),u&&e._relative&&(a+=e.x,c+=e.y),t.Utils.subdivide(n,l,s,h,a,c,o,d,r)}o.extend(l,{Properties:["fill","stroke","linewidth","opacity","className","visible","cap","join","miter","closed","curved","automatic","beginning","ending"],Utils:{getCurveLength:d},FlagVertices:function(){this._flagVertices=!0,this._flagLength=!0,this.parent&&(this.parent._flagLength=!0)},BindVertices:function(e){for(var i=e.length;i--;)e[i].bind(t.Events.change,this._renderer.flagVertices);this._renderer.flagVertices()},UnbindVertices:function(e){for(var i=e.length;i--;)e[i].unbind(t.Events.change,this._renderer.flagVertices);this._renderer.flagVertices()},FlagFill:function(){this._flagFill=!0},FlagStroke:function(){this._flagStroke=!0},MakeObservable:function(e){t.Shape.MakeObservable(e),o.each(l.Properties.slice(2,9),t.Utils.defineProperty,e),Object.defineProperty(e,"fill",{enumerable:!0,get:function(){return this._fill},set:function(e){(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.unbind(t.Events.change,this._renderer.flagFill),this._fill=e,this._flagFill=!0,(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.bind(t.Events.change,this._renderer.flagFill)}}),Object.defineProperty(e,"stroke",{enumerable:!0,get:function(){return this._stroke},set:function(e){(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.unbind(t.Events.change,this._renderer.flagStroke),this._stroke=e,this._flagStroke=!0,(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.bind(t.Events.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(t){this._closed=!!t,this._flagVertices=!0}}),Object.defineProperty(e,"curved",{enumerable:!0,get:function(){return this._curved},set:function(t){this._curved=!!t,this._flagVertices=!0}}),Object.defineProperty(e,"automatic",{enumerable:!0,get:function(){return this._automatic},set:function(t){if(t!==this._automatic){this._automatic=!!t;var e=this._automatic?"ignore":"listen";o.each(this.vertices,function(t){t[e]()})}}}),Object.defineProperty(e,"beginning",{enumerable:!0,get:function(){return this._beginning},set:function(t){this._beginning=t,this._flagVertices=!0}}),Object.defineProperty(e,"ending",{enumerable:!0,get:function(){return this._ending},set:function(t){this._ending=t,this._flagVertices=!0}}),Object.defineProperty(e,"vertices",{enumerable:!0,get:function(){return this._collection},set:function(e){this._renderer.flagVertices;var i=this._renderer.bindVertices,r=this._renderer.unbindVertices;this._collection&&this._collection.unbind(t.Events.insert,i).unbind(t.Events.remove,r),e instanceof t.Utils.Collection?this._collection=e:this._collection=new t.Utils.Collection(e||[]),this._collection.bind(t.Events.insert,i).bind(t.Events.remove,r),i(this._collection)}}),Object.defineProperty(e,"clip",{enumerable:!0,get:function(){return this._clip},set:function(t){this._clip=t,this._flagClip=!0}})}}),o.extend(l.prototype,t.Shape.prototype,{_flagVertices:!0,_flagLength:!0,_flagFill:!0,_flagStroke:!0,_flagLinewidth:!0,_flagOpacity:!0,_flagVisible:!0,_flagClassName:!0,_flagCap:!0,_flagJoin:!0,_flagMiter:!0,_flagClip:!1,_length:0,_fill:"#fff",_stroke:"#000",_linewidth:1,_opacity:1,_className:"",_visible:!0,_cap:"round",_join:"round",_miter:4,_closed:!0,_curved:!1,_automatic:!0,_beginning:0,_ending:1,_clip:!1,constructor:l,clone:function(t){var e=new l;e.vertices=this.vertices;for(var i=0;i=y){this._closed?(r=t.Utils.mod(S,x),n=t.Utils.mod(S-1,x),0===S&&(r=n,n=S)):(r=S,n=Math.min(Math.max(S-1,0),b)),w=this.vertices[r],k=this.vertices[n],y-=A,e=0!==this._lengths[S]?y/this._lengths[S]:0;break}A+=this._lengths[S]}if(o.isNull(w)||o.isNull(k))return null;if(!w)return k;if(!k)return w;v=k.controls&&k.controls.right,m=w.controls&&w.controls.left,l=k.x,u=k.y,h=(v||k).x,_=(v||k).y,c=(m||w).x,g=(m||w).y,d=w.x,p=w.y,v&&k.relative&&(h+=k.x,_+=k.y),m&&w.relative&&(c+=w.x,g+=w.y),a=t.Utils.getComponentOnCubicBezier(e,l,h,c,d),f=t.Utils.getComponentOnCubicBezier(e,u,_,g,p);var C=t.Utils.lerp(l,h,e),R=t.Utils.lerp(u,_,e),M=t.Utils.lerp(h,c,e),F=t.Utils.lerp(_,g,e),O=t.Utils.lerp(c,d,e),P=t.Utils.lerp(g,p,e),U=t.Utils.lerp(C,M,e),T=t.Utils.lerp(R,F,e),L=t.Utils.lerp(M,O,e),N=t.Utils.lerp(F,P,e);return o.isObject(i)?(i.x=a,i.y=f,o.isObject(i.controls)||t.Anchor.AppendCurveProperties(i),i.controls.left.x=U,i.controls.left.y=T,i.controls.right.x=L,i.controls.right.y=N,o.isBoolean(i.relative)&&!i.relative||(i.controls.left.x-=a,i.controls.left.y-=f,i.controls.right.x-=a,i.controls.right.y-=f),i.t=e,i):((s=new t.Anchor(a,f,U-a,T-f,L-a,N-f,this._curved?t.Commands.curve:t.Commands.line)).t=e,s)},plot:function(){if(this.curved)return t.Utils.getCurveFromPoints(this._collection,this.closed),this;for(var e=0;e0&&(s[s.length-1].command=t.Commands.line),void(r=a);var h=f(a,r,e);s=s.concat(h),o.each(h,function(e,i){i<=0&&r.command===t.Commands.move?e.command=t.Commands.move:e.command=t.Commands.line}),l>=i&&(this._closed&&this._automatic?(h=f(a,r=a,e),s=s.concat(h),o.each(h,function(e,i){i<=0&&r.command===t.Commands.move?e.command=t.Commands.move:e.command=t.Commands.line})):n&&s.push(new t.Anchor(a.x,a.y)),s[s.length-1].command=n?t.Commands.close:t.Commands.line),r=a}},this),this._automatic=!1,this._curved=!1,this.vertices=s,this},_updateLength:function(e,i){i||this._update();var r=this.vertices.length,n=r-1,s=this.vertices[n],a=0;return o.isUndefined(this._lengths)&&(this._lengths=[]),o.each(this.vertices,function(i,r){if(r<=0||i.command===t.Commands.move)return s=i,void(this._lengths[r]=0);this._lengths[r]=d(i,s,e),this._lengths[r]=t.Utils.toFixed(this._lengths[r]),a+=this._lengths[r],s=i},this),this._length=a,this._flagLength=!1,this},_update:function(){if(this._flagVertices){this._automatic&&this.plot(),this._flagLength&&this._updateLength(void 0,!0);var e,i,s,a,o,l=this._collection.length,d=this._closed,f=Math.min(this._beginning,this._ending),u=Math.max(this._beginning,this._ending),_=c(this,f*this._length),g=c(this,u*this._length),p=r(_),m=n(g);this._renderer.vertices.length=0;for(var v=0;vm&&!i?((o=this._renderer.collection[v]).copy(this._collection[v]),this.getPointAt(u,o),o.command=this._renderer.collection[v].command,this._renderer.vertices.push(o),i=o,(s=this._collection[v-1])&&s.controls&&(o.controls.right.clear(),this._renderer.collection[v-1].controls.right.clear().lerp(s.controls.right,o.t))):v>=p&&v<=m&&(o=this._renderer.collection[v].copy(this._collection[v]),this._renderer.vertices.push(o),v===m&&h(this,u)?(i=o,!d&&i.controls&&i.controls.right.clear()):v===p&&h(this,f)&&((e=o).command=t.Commands.move,!d&&e.controls&&e.controls.left.clear()));p>0&&!e&&(v=p-1,(o=this._renderer.collection[v]).copy(this._collection[v]),this.getPointAt(f,o),o.command=t.Commands.move,this._renderer.vertices.unshift(o),e=o,(a=this._collection[v+1])&&a.controls&&(o.controls.left.clear(),this._renderer.collection[v+1].controls.left.copy(a.controls.left).lerp(t.Vector.zero,o.t)))}return t.Shape.prototype._update.apply(this,arguments),this},flagReset:function(){return this._flagVertices=this._flagFill=this._flagStroke=this._flagLinewidth=this._flagOpacity=this._flagVisible=this._flagCap=this._flagJoin=this._flagMiter=this._flagClassName=this._flagClip=!1,t.Shape.prototype.flagReset.call(this),this}}),l.MakeObservable(l.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=t.Utils,r=t.Line=function(i,r,n,s){e.call(this,[new t.Anchor(i,r),new t.Anchor(n,s)]),this.vertices[0].command=t.Commands.move,this.vertices[1].command=t.Commands.line,this.automatic=!1};i.extend(r.prototype,e.prototype),r.prototype.constructor=r,e.MakeObservable(r.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=t.Utils,r=t.Rectangle=function(i,r,n,s){e.call(this,[new t.Anchor,new t.Anchor,new t.Anchor,new t.Anchor],!0,!1,!0),this.width=n,this.height=s,this.origin=new t.Vector,this.translation.set(i,r),this._update()};i.extend(r,{Properties:["width","height"],MakeObservable:function(n){e.MakeObservable(n),i.each(r.Properties,t.Utils.defineProperty,n),Object.defineProperty(n,"origin",{enumerable:!0,get:function(){return this._origin},set:function(e){this._origin&&this._origin.unbind(t.Events.change,this._renderer.flagVertices),this._origin=e,this._origin.bind(t.Events.change,this._renderer.flagVertices),this._renderer.flagVertices()}})}}),i.extend(r.prototype,e.prototype,{_width:0,_height:0,_flagWidth:0,_flagHeight:0,_origin:null,constructor:r,_update:function(){if(this._flagWidth||this._flagHeight){var i=this._width/2,r=this._height/2;this.vertices[0].set(-i,-r).add(this._origin).command=t.Commands.move,this.vertices[1].set(i,-r).add(this._origin).command=t.Commands.line,this.vertices[2].set(i,r).add(this._origin).command=t.Commands.line,this.vertices[3].set(-i,r).add(this._origin).command=t.Commands.line,this.vertices[4]&&(this.vertices[4].set(-i,-r).add(this._origin).command=t.Commands.line)}return e.prototype._update.call(this),this},flagReset:function(){return this._flagWidth=this._flagHeight=!1,e.prototype.flagReset.call(this),this},clone:function(e){var n=new r(0,0,this.width,this.height);return n.translation.copy(this.translation),n.rotation=this.rotation,n.scale=this.scale,i.each(t.Path.Properties,function(t){n[t]=this[t]},this),e&&e.add(n),n}}),r.MakeObservable(r.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=2*Math.PI,r=Math.PI/2,n=Math.cos,s=Math.sin,a=t.Utils,o=4/3*Math.tan(Math.PI/8),l=t.Ellipse=function(i,r,n,s,o){a.isNumber(s)||(s=n);var l=o||5,h=a.map(a.range(l),function(e){return new t.Anchor},this);e.call(this,h,!0,!0,!0),this.width=2*n,this.height=2*s,this._update(),this.translation.set(i,r)};a.extend(l,{Properties:["width","height"],MakeObservable:function(i){e.MakeObservable(i),a.each(l.Properties,t.Utils.defineProperty,i)}}),a.extend(l.prototype,e.prototype,{_width:0,_height:0,_flagWidth:!1,_flagHeight:!1,constructor:l,_update:function(){if(this._flagWidth||this._flagHeight)for(var a=0,l=this.vertices.length,h=l-1;as&&(this.vertices.splice(s-1,o-s),o=s);for(var l=0;l=o?this.vertices.push(new t.Anchor(c,d)):this.vertices[l].set(c,d),this.vertices[l].command=0===l?t.Commands.move:t.Commands.line}}return e.prototype._update.call(this),this},flagReset:function(){return this._flagWidth=this._flagHeight=this._flagSides=!1,e.prototype.flagReset.call(this),this},clone:function(e){var i=new a(0,0,this.radius,this.sides);return i.translation.copy(this.translation),i.rotation=this.rotation,i.scale=this.scale,s.each(t.Path.Properties,function(t){i[t]=this[t]},this),e&&e.add(i),i}}),a.MakeObservable(a.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=(Math.PI,2*Math.PI),r=Math.PI/2,n=(Math.cos,Math.sin,Math.abs,t.Utils),s=t.ArcSegment=function(i,r,s,a,o,l,h){var c=h||3*t.Resolution,d=n.map(n.range(c),function(){return new t.Anchor});e.call(this,d,!0,!1,!0),this.innerRadius=s,this.outerRadius=a,this.startAngle=o,this.endAngle=l,this._update(),this.translation.set(i,r)};function a(t,e){for(;t<0;)t+=e;return t%e}n.extend(s,{Properties:["startAngle","endAngle","innerRadius","outerRadius"],MakeObservable:function(i){e.MakeObservable(i),n.each(s.Properties,t.Utils.defineProperty,i)}}),n.extend(s.prototype,e.prototype,{_flagStartAngle:!1,_flagEndAngle:!1,_flagInnerRadius:!1,_flagOuterRadius:!1,_startAngle:0,_endAngle:i,_innerRadius:0,_outerRadius:0,constructor:s,_update:function(){if(this._flagStartAngle||this._flagEndAngle||this._flagInnerRadius||this._flagOuterRadius){var n,s=this._startAngle,o=this._endAngle,l=this._innerRadius,h=this._outerRadius,c=a(s,i)===a(o,i),d=l>0,f=this.vertices,u=d?f.length/2:f.length,_=0;c?u--:d||(u-=2);for(var g=0,p=u-1;gs&&(this.vertices.splice(s-1,o-s),o=s);for(var l=0;l=o?this.vertices.push(new t.Anchor(d,f)):this.vertices[l].set(d,f),this.vertices[l].command=0===l?t.Commands.move:t.Commands.line}}return e.prototype._update.call(this),this},flagReset:function(){return this._flagInnerRadius=this._flagOuterRadius=this._flagSides=!1,e.prototype.flagReset.call(this),this},clone:function(e){var i=this.innerRadius,r=this.outerRadius,n=this.sides,o=new a(0,0,i,r,n);return o.translation.copy(this.translation),o.rotation=this.rotation,o.scale=this.scale,s.each(t.Path.Properties,function(t){o[t]=this[t]},this),e&&e.add(o),o}}),a.MakeObservable(a.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Path,i=t.Utils,r=t.RoundedRectangle=function(n,s,a,o,l){i.isUndefined(l)&&(l=Math.floor(Math.min(a,o)/12));var h=i.map(i.range(10),function(e){return new t.Anchor(0,0,0,0,0,0,0===e?t.Commands.move:t.Commands.curve)});e.call(this,h),this.closed=!0,this.automatic=!1,this._renderer.flagRadius=i.bind(r.FlagRadius,this),this.width=a,this.height=o,this.radius=l,this._update(),this.translation.set(n,s)};i.extend(r,{Properties:["width","height"],FlagRadius:function(){this._flagRadius=!0},MakeObservable:function(n){e.MakeObservable(n),i.each(r.Properties,t.Utils.defineProperty,n),Object.defineProperty(n,"radius",{enumerable:!0,get:function(){return this._radius},set:function(e){this._radius instanceof t.Vector&&this._radius.unbind(t.Events.change,this._renderer.flagRadius),this._radius=e,this._radius instanceof t.Vector&&this._radius.bind(t.Events.change,this._renderer.flagRadius),this._flagRadius=!0}})}}),i.extend(r.prototype,e.prototype,{_width:0,_height:0,_radius:0,_flagWidth:!1,_flagHeight:!1,_flagRadius:!1,constructor:r,_update:function(){if(this._flagWidth||this._flagHeight||this._flagRadius){var i,r,n,s=this._width,a=this._height;this._radius instanceof t.Vector?(i=this._radius.x,r=this._radius.y):(i=this._radius,r=this._radius);var o=s/2,l=a/2;(n=this.vertices[0]).x=-(o-i),n.y=-l,(n=this.vertices[1]).x=o-i,n.y=-l,n.controls.left.clear(),n.controls.right.x=i,n.controls.right.y=0,(n=this.vertices[2]).x=o,n.y=-(l-r),n.controls.right.clear(),n.controls.left.clear(),(n=this.vertices[3]).x=o,n.y=l-r,n.controls.left.clear(),n.controls.right.x=0,n.controls.right.y=r,(n=this.vertices[4]).x=o-i,n.y=l,n.controls.right.clear(),n.controls.left.clear(),(n=this.vertices[5]).x=-(o-i),n.y=l,n.controls.left.clear(),n.controls.right.x=-i,n.controls.right.y=0,(n=this.vertices[6]).x=-o,n.y=l-r,n.controls.left.clear(),n.controls.right.clear(),(n=this.vertices[7]).x=-o,n.y=-(l-r),n.controls.left.clear(),n.controls.right.x=0,n.controls.right.y=-r,(n=this.vertices[8]).x=-(o-i),n.y=-l,n.controls.left.clear(),n.controls.right.clear(),(n=this.vertices[9]).copy(this.vertices[8])}return e.prototype._update.call(this),this},flagReset:function(){return this._flagWidth=this._flagHeight=this._flagRadius=!1,e.prototype.flagReset.call(this),this},clone:function(e){var n=this.width,s=this.height,a=this.radius,o=new r(0,0,n,s,a);return o.translation.copy(this.translation),o.rotation=this.rotation,o.scale=this.scale,i.each(t.Path.Properties,function(t){o[t]=this[t]},this),e&&e.add(o),o}}),r.MakeObservable(r.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.root,i=t.Utils.getComputedMatrix,r=t.Utils,n=((e.document?e.document.createElement("canvas"):(console.warn("Two.js: Unable to create canvas for Two.Text measurements."),{getContext:r.identity})).getContext("2d"),t.Text=function(e,i,n,s){if(t.Shape.call(this),this._renderer.type="text",this._renderer.flagFill=r.bind(t.Text.FlagFill,this),this._renderer.flagStroke=r.bind(t.Text.FlagStroke,this),this.value=e,r.isNumber(i)&&(this.translation.x=i),r.isNumber(n)&&(this.translation.y=n),this.dashes=[],!r.isObject(s))return this;r.each(t.Text.Properties,function(t){t in s&&(this[t]=s[t])},this)});r.extend(t.Text,{Ratio:.6,Properties:["value","family","size","leading","alignment","linewidth","style","className","weight","decoration","baseline","opacity","visible","fill","stroke"],FlagFill:function(){this._flagFill=!0},FlagStroke:function(){this._flagStroke=!0},MakeObservable:function(e){t.Shape.MakeObservable(e),r.each(t.Text.Properties.slice(0,13),t.Utils.defineProperty,e),Object.defineProperty(e,"fill",{enumerable:!0,get:function(){return this._fill},set:function(e){(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.unbind(t.Events.change,this._renderer.flagFill),this._fill=e,this._flagFill=!0,(this._fill instanceof t.Gradient||this._fill instanceof t.LinearGradient||this._fill instanceof t.RadialGradient||this._fill instanceof t.Texture)&&this._fill.bind(t.Events.change,this._renderer.flagFill)}}),Object.defineProperty(e,"stroke",{enumerable:!0,get:function(){return this._stroke},set:function(e){(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.unbind(t.Events.change,this._renderer.flagStroke),this._stroke=e,this._flagStroke=!0,(this._stroke instanceof t.Gradient||this._stroke instanceof t.LinearGradient||this._stroke instanceof t.RadialGradient||this._stroke instanceof t.Texture)&&this._stroke.bind(t.Events.change,this._renderer.flagStroke)}}),Object.defineProperty(e,"clip",{enumerable:!0,get:function(){return this._clip},set:function(t){this._clip=t,this._flagClip=!0}})}}),r.extend(t.Text.prototype,t.Shape.prototype,{_flagValue:!0,_flagFamily:!0,_flagSize:!0,_flagLeading:!0,_flagAlignment:!0,_flagBaseline:!0,_flagStyle:!0,_flagWeight:!0,_flagDecoration:!0,_flagFill:!0,_flagStroke:!0,_flagLinewidth:!0,_flagOpacity:!0,_flagClassName:!0,_flagVisible:!0,_flagClip:!1,_value:"",_family:"sans-serif",_size:13,_leading:17,_alignment:"center",_baseline:"middle",_style:"normal",_weight:500,_decoration:"none",_fill:"#000",_stroke:"transparent",_linewidth:1,_opacity:1,_className:"",_visible:!0,_clip:!1,constructor:t.Text,remove:function(){return this.parent?(this.parent.remove(this),this):this},clone:function(e){var i=new t.Text(this.value);return i.translation.copy(this.translation),i.rotation=this.rotation,i.scale=this.scale,r.each(t.Text.Properties,function(t){i[t]=this[t]},this),e&&e.add(i),i._update()},toObject:function(){var e={translation:this.translation.toObject(),rotation:this.rotation,scale:this.scale};return r.each(t.Text.Properties,function(t){e[t]=this[t]},this),e},noStroke:function(){return this.stroke="transparent",this},noFill:function(){return this.fill="transparent",this},getBoundingClientRect:function(t){var e,r,s,a,o,l;this._update(!0),e=t?this._matrix:i(this);var h=this.leading,c=this.value.length*this.size*n.Ratio;switch(this.alignment){case"left":s=0,a=c;break;case"right":s=-c,a=0;break;default:s=-c/2,a=c/2}switch(this.baseline){case"top":o=0,l=h;break;case"bottom":o=-h,l=0;break;default:o=-h/2,l=h/2}return{top:o=(r=e.multiply(s,o,1)).y,left:s=r.x,right:a=(r=e.multiply(a,l,1)).x,bottom:l=r.y,width:a-s,height:l-o}},flagReset:function(){return this._flagValue=this._flagFamily=this._flagSize=this._flagLeading=this._flagAlignment=this._flagFill=this._flagStroke=this._flagLinewidth=this._flagOpacity=this._flagVisible=this._flagClip=this._flagDecoration=this._flagClassName=this._flagBaseline=!1,t.Shape.prototype.flagReset.call(this),this}}),t.Text.MakeObservable(t.Text.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.Stop=function(t,r,n){this._renderer={},this._renderer.type="stop",this.offset=e.isNumber(t)?t:i.Index<=0?0:1,this.opacity=e.isNumber(n)?n:1,this.color=e.isString(r)?r:i.Index<=0?"#fff":"#000",i.Index=(i.Index+1)%2};e.extend(i,{Index:0,Properties:["offset","opacity","color"],MakeObservable:function(t){e.each(i.Properties,function(t){var e="_"+t,i="_flag"+t.charAt(0).toUpperCase()+t.slice(1);Object.defineProperty(this,t,{enumerable:!0,get:function(){return this[e]},set:function(t){this[e]=t,this[i]=!0,this.parent&&(this.parent._flagStops=!0)}})},t)}}),e.extend(i.prototype,t.Utils.Events,{constructor:i,clone:function(){var t=new i;return e.each(i.Properties,function(e){t[e]=this[e]},this),t},toObject:function(){var t={};return e.each(i.Properties,function(e){t[e]=this[e]},this),t},flagReset:function(){return this._flagOffset=this._flagColor=this._flagOpacity=!1,this}}),i.MakeObservable(i.prototype),i.prototype.constructor=i;var r=t.Gradient=function(i){this._renderer={},this._renderer.type="gradient",this.id=t.Identifier+t.uniqueId(),this.classList=[],this._renderer.flagStops=e.bind(r.FlagStops,this),this._renderer.bindStops=e.bind(r.BindStops,this),this._renderer.unbindStops=e.bind(r.UnbindStops,this),this.spread="pad",this.stops=i};e.extend(r,{Stop:i,Properties:["spread"],MakeObservable:function(i){e.each(r.Properties,t.Utils.defineProperty,i),Object.defineProperty(i,"stops",{enumerable:!0,get:function(){return this._stops},set:function(e){this._renderer.flagStops;var i=this._renderer.bindStops,r=this._renderer.unbindStops;this._stops&&this._stops.unbind(t.Events.insert,i).unbind(t.Events.remove,r),this._stops=new t.Utils.Collection((e||[]).slice(0)),this._stops.bind(t.Events.insert,i).bind(t.Events.remove,r),i(this._stops)}})},FlagStops:function(){this._flagStops=!0},BindStops:function(e){for(var i=e.length;i--;)e[i].bind(t.Events.change,this._renderer.flagStops),e[i].parent=this;this._renderer.flagStops()},UnbindStops:function(e){for(var i=e.length;i--;)e[i].unbind(t.Events.change,this._renderer.flagStops),delete e[i].parent;this._renderer.flagStops()}}),e.extend(r.prototype,t.Utils.Events,{_flagStops:!1,_flagSpread:!1,clone:function(i){var n=e.map(this.stops,function(t){return t.clone()}),s=new r(n);return e.each(t.Gradient.Properties,function(t){s[t]=this[t]},this),i&&i.add(s),s},toObject:function(){var t={stops:e.map(this.stops,function(t){return t.toObject()})};return e.each(r.Properties,function(e){t[e]=this[e]},this),t},_update:function(){return(this._flagSpread||this._flagStops)&&this.trigger(t.Events.change),this},flagReset:function(){return this._flagSpread=this._flagStops=!1,this}}),r.MakeObservable(r.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.LinearGradient=function(r,n,s,a,o){t.Gradient.call(this,o),this._renderer.type="linear-gradient";var l=e.bind(i.FlagEndPoints,this);this.left=(new t.Vector).bind(t.Events.change,l),this.right=(new t.Vector).bind(t.Events.change,l),e.isNumber(r)&&(this.left.x=r),e.isNumber(n)&&(this.left.y=n),e.isNumber(s)&&(this.right.x=s),e.isNumber(a)&&(this.right.y=a)};e.extend(i,{Stop:t.Gradient.Stop,MakeObservable:function(e){t.Gradient.MakeObservable(e)},FlagEndPoints:function(){this._flagEndPoints=!0}}),e.extend(i.prototype,t.Gradient.prototype,{_flagEndPoints:!1,constructor:i,clone:function(r){var n=e.map(this.stops,function(t){return t.clone()}),s=new i(this.left._x,this.left._y,this.right._x,this.right._y,n);return e.each(t.Gradient.Properties,function(t){s[t]=this[t]},this),r&&r.add(s),s},toObject:function(){var e=t.Gradient.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(t.Events.change),this},flagReset:function(){return this._flagEndPoints=!1,t.Gradient.prototype.flagReset.call(this),this}}),i.MakeObservable(i.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.RadialGradient=function(i,r,n,s,a,o){t.Gradient.call(this,s),this._renderer.type="radial-gradient",this.center=(new t.Vector).bind(t.Events.change,e.bind(function(){this._flagCenter=!0},this)),this.radius=e.isNumber(n)?n:20,this.focal=(new t.Vector).bind(t.Events.change,e.bind(function(){this._flagFocal=!0},this)),e.isNumber(i)&&(this.center.x=i),e.isNumber(r)&&(this.center.y=r),this.focal.copy(this.center),e.isNumber(a)&&(this.focal.x=a),e.isNumber(o)&&(this.focal.y=o)};e.extend(i,{Stop:t.Gradient.Stop,Properties:["radius"],MakeObservable:function(r){t.Gradient.MakeObservable(r),e.each(i.Properties,t.Utils.defineProperty,r)}}),e.extend(i.prototype,t.Gradient.prototype,{_flagRadius:!1,_flagCenter:!1,_flagFocal:!1,constructor:i,clone:function(r){var n=e.map(this.stops,function(t){return t.clone()}),s=new i(this.center._x,this.center._y,this._radius,n,this.focal._x,this.focal._y);return e.each(t.Gradient.Properties.concat(i.Properties),function(t){s[t]=this[t]},this),r&&r.add(s),s},toObject:function(){var r=t.Gradient.prototype.toObject.call(this);return e.each(i.Properties,function(t){r[t]=this[t]},this),r.center=this.center.toObject(),r.focal=this.focal.toObject(),r},_update:function(){return(this._flagRadius||this._flatCenter||this._flagFocal||this._flagSpread||this._flagStops)&&this.trigger(t.Events.change),this},flagReset:function(){return this._flagRadius=this._flagCenter=this._flagFocal=!1,t.Gradient.prototype.flagReset.call(this),this}}),i.MakeObservable(i.prototype)}((void 0!==t?t:window).Two),function(t){var e,i=t.root,r=t.Utils,n={video:/\.(mp4|webm|ogg)$/i,image:/\.(jpe?g|png|gif|tiff)$/i,effect:/texture|gradient/i};i.document&&(e=document.createElement("a"));var s=t.Texture=function(e,i){if(this._renderer={},this._renderer.type="texture",this._renderer.flagOffset=r.bind(s.FlagOffset,this),this._renderer.flagScale=r.bind(s.FlagScale,this),this.id=t.Identifier+t.uniqueId(),this.classList=[],this.offset=new t.Vector,r.isFunction(i)){var n=r.bind(function(){this.unbind(t.Events.load,n),r.isFunction(i)&&i()},this);this.bind(t.Events.load,n)}r.isString(e)?this.src=e:r.isElement(e)&&(this.image=e),this._update()};r.extend(s,{Properties:["src","loaded","repeat"],RegularExpressions:n,ImageRegistry:new t.Registry,getAbsoluteURL:function(t){return e?(e.href=t,e.href):t},loadHeadlessBuffer:new Function("texture","loaded",['var fs = require("fs");',"var buffer = fs.readFileSync(texture.src);","texture.image.src = buffer;","loaded();"].join("\n")),getImage:function(e){var r,a=s.getAbsoluteURL(e);return s.ImageRegistry.contains(a)?s.ImageRegistry.get(a):(t.Utils.Image?(r=new t.Utils.Image,t.CanvasRenderer.Utils.shim(r,"img")):i.document?r=n.video.test(a)?document.createElement("video"):document.createElement("img"):console.warn("Two.js: no prototypical image defined for Two.Texture"),r.crossOrigin="anonymous",r)},Register:{canvas:function(t,e){t._src="#"+t.id,s.ImageRegistry.add(t.src,t.image),r.isFunction(e)&&e()},img:function(e,i){var n=function(t){r.isFunction(e.image.removeEventListener)&&(e.image.removeEventListener("load",n,!1),e.image.removeEventListener("error",a,!1)),r.isFunction(i)&&i()},a=function(i){throw r.isFunction(e.image.removeEventListener)&&(e.image.removeEventListener("load",n,!1),e.image.removeEventListener("error",a,!1)),new t.Utils.Error("unable to load "+e.src)};r.isNumber(e.image.width)&&e.image.width>0&&r.isNumber(e.image.height)&&e.image.height>0?n():r.isFunction(e.image.addEventListener)&&(e.image.addEventListener("load",n,!1),e.image.addEventListener("error",a,!1)),e._src=s.getAbsoluteURL(e._src),e.image&&e.image.getAttribute("two-src")||(e.image.setAttribute("two-src",e.src),s.ImageRegistry.add(e.src,e.image),t.Utils.isHeadless?s.loadHeadlessBuffer(e,n):e.image.src=e.src)},video:function(e,i){var n=function(t){e.image.removeEventListener("canplaythrough",n,!1),e.image.removeEventListener("error",a,!1),e.image.width=e.image.videoWidth,e.image.height=e.image.videoHeight,e.image.play(),r.isFunction(i)&&i()},a=function(i){throw e.image.removeEventListener("canplaythrough",n,!1),e.image.removeEventListener("error",a,!1),new t.Utils.Error("unable to load "+e.src)};if(e._src=s.getAbsoluteURL(e._src),e.image.addEventListener("canplaythrough",n,!1),e.image.addEventListener("error",a,!1),!e.image||!e.image.getAttribute("two-src")){if(t.Utils.isHeadless)throw new t.Utils.Error("video textures are not implemented in headless environments.");e.image.setAttribute("two-src",e.src),s.ImageRegistry.add(e.src,e.image),e.image.src=e.src,e.image.loop=!0,e.image.load()}}},load:function(t,e){t.src;var i=t.image,r=i&&i.nodeName.toLowerCase();t._flagImage&&(/canvas/i.test(r)?s.Register.canvas(t,e):(t._src=i.getAttribute("two-src")||i.src,s.Register[r](t,e))),t._flagSrc&&(i||(t.image=s.getImage(t.src)),r=t.image.nodeName.toLowerCase(),s.Register[r](t,e))},FlagOffset:function(){this._flagOffset=!0},FlagScale:function(){this._flagScale=!0},MakeObservable:function(e){r.each(s.Properties,t.Utils.defineProperty,e),Object.defineProperty(e,"image",{enumerable:!0,get:function(){return this._image},set:function(t){var e;switch(t&&t.nodeName.toLowerCase()){case"canvas":e="#"+t.id;break;default:e=t.src}s.ImageRegistry.contains(e)?this._image=s.ImageRegistry.get(t.src):this._image=t,this._flagImage=!0}}),Object.defineProperty(e,"offset",{enumerable:!0,get:function(){return this._offset},set:function(e){this._offset&&this._offset.unbind(t.Events.change,this._renderer.flagOffset),this._offset=e,this._offset.bind(t.Events.change,this._renderer.flagOffset),this._flagOffset=!0}}),Object.defineProperty(e,"scale",{enumerable:!0,get:function(){return this._scale},set:function(e){this._scale instanceof t.Vector&&this._scale.unbind(t.Events.change,this._renderer.flagScale),this._scale=e,this._scale instanceof t.Vector&&this._scale.bind(t.Events.change,this._renderer.flagScale),this._flagScale=!0}})}}),r.extend(s.prototype,t.Utils.Events,t.Shape.prototype,{_flagSrc:!1,_flagImage:!1,_flagVideo:!1,_flagLoaded:!1,_flagRepeat:!1,_flagOffset:!1,_flagScale:!1,_src:"",_image:null,_loaded:!1,_repeat:"no-repeat",_scale:1,_offset:null,constructor:s,clone:function(){return new s(this.src)},toObject:function(){return{src:this.src,image:this.image}},_update:function(){return(this._flagSrc||this._flagImage)&&(this.trigger(t.Events.change),(this._flagSrc||this._flagImage)&&(this.loaded=!1,s.load(this,r.bind(function(){this.loaded=!0,this.trigger(t.Events.change).trigger(t.Events.load)},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}}),s.MakeObservable(s.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.Path,r=t.Rectangle,n=t.Sprite=function(r,n,s,a,o,l){i.call(this,[new t.Anchor,new t.Anchor,new t.Anchor,new t.Anchor],!0),this.noStroke(),this.noFill(),r instanceof t.Texture?this.texture=r:e.isString(r)&&(this.texture=new t.Texture(r)),this.origin=new t.Vector,this._update(),this.translation.set(n||0,s||0),e.isNumber(a)&&(this.columns=a),e.isNumber(o)&&(this.rows=o),e.isNumber(l)&&(this.frameRate=l)};e.extend(n,{Properties:["texture","columns","rows","frameRate","index"],MakeObservable:function(i){r.MakeObservable(i),e.each(n.Properties,t.Utils.defineProperty,i)}}),e.extend(n.prototype,r.prototype,{_flagTexture:!1,_flagColumns:!1,_flagRows:!1,_flagFrameRate:!1,flagIndex:!1,_amount:1,_duration:0,_startTime:0,_playing:!1,_firstFrame:0,_lastFrame:0,_loop:!0,_texture:null,_columns:1,_rows:1,_frameRate:0,_index:0,_origin:null,constructor:n,play:function(t,i,r){return this._playing=!0,this._firstFrame=0,this._lastFrame=this.amount-1,this._startTime=e.performance.now(),e.isNumber(t)&&(this._firstFrame=t),e.isNumber(i)&&(this._lastFrame=i),e.isFunction(r)?this._onLastFrame=r:delete this._onLastFrame,this._index!==this._firstFrame&&(this._startTime-=1e3*Math.abs(this._index-this._firstFrame)/this._frameRate),this},pause:function(){return this._playing=!1,this},stop:function(){return this._playing=!1,this._index=0,this},clone:function(t){var e=new n(this.texture,this.translation.x,this.translation.y,this.columns,this.rows,this.frameRate);return this.playing&&(e.play(this._firstFrame,this._lastFrame),e._loop=this._loop),t&&t.add(e),e},_update:function(){var t,i,n,s,a,o,l,h,c,d=this._texture,f=this._columns,u=this._rows;if((this._flagColumns||this._flagRows)&&(this._amount=this._columns*this._rows),this._flagFrameRate&&(this._duration=1e3*this._amount/this._frameRate),this._flagTexture&&(this.fill=this._texture),this._texture.loaded){t=(l=d.image.width)/f,i=(h=d.image.height)/u,s=this._amount,this.width!==t&&(this.width=t),this.height!==i&&(this.height=i),this._playing&&this._frameRate>0&&(e.isNaN(this._lastFrame)&&(this._lastFrame=s-1),n=e.performance.now()-this._startTime,a=1e3*((c=this._lastFrame+1)-this._firstFrame)/this._frameRate,this._loop?n%=a:n=Math.min(n,a),o=e.lerp(this._firstFrame,c,n/a),(o=Math.floor(o))!==this._index&&(this._index=o,o>=this._lastFrame-1&&this._onLastFrame&&this._onLastFrame()));var _=-t*(this._index%f)+(l-t)/2,g=-i*Math.floor(this._index/f)+(h-i)/2;_!==d.offset.x&&(d.offset.x=_),g!==d.offset.y&&(d.offset.y=g)}return r.prototype._update.call(this),this},flagReset:function(){return this._flagTexture=this._flagColumns=this._flagRows=this._flagFrameRate=!1,r.prototype.flagReset.call(this),this}}),n.MakeObservable(n.prototype)}((void 0!==t?t:window).Two),function(t){var e=t.Utils,i=t.Path,r=t.Rectangle,n=t.ImageSequence=function(r,s,a,o){i.call(this,[new t.Anchor,new t.Anchor,new t.Anchor,new t.Anchor],!0),this._renderer.flagTextures=e.bind(n.FlagTextures,this),this._renderer.bindTextures=e.bind(n.BindTextures,this),this._renderer.unbindTextures=e.bind(n.UnbindTextures,this),this.noStroke(),this.noFill(),this.textures=e.map(r,n.GenerateTexture,this),this.origin=new t.Vector,this._update(),this.translation.set(s||0,a||0),e.isNumber(o)?this.frameRate=o:this.frameRate=n.DefaultFrameRate};e.extend(n,{Properties:["frameRate","index"],DefaultFrameRate:30,FlagTextures:function(){this._flagTextures=!0},BindTextures:function(e){for(var i=e.length;i--;)e[i].bind(t.Events.change,this._renderer.flagTextures);this._renderer.flagTextures()},UnbindTextures:function(e){for(var i=e.length;i--;)e[i].unbind(t.Events.change,this._renderer.flagTextures);this._renderer.flagTextures()},MakeObservable:function(i){r.MakeObservable(i),e.each(n.Properties,t.Utils.defineProperty,i),Object.defineProperty(i,"textures",{enumerable:!0,get:function(){return this._textures},set:function(e){this._renderer.flagTextures;var i=this._renderer.bindTextures,r=this._renderer.unbindTextures;this._textures&&this._textures.unbind(t.Events.insert,i).unbind(t.Events.remove,r),this._textures=new t.Utils.Collection((e||[]).slice(0)),this._textures.bind(t.Events.insert,i).bind(t.Events.remove,r),i(this._textures)}})},GenerateTexture:function(i){return i instanceof t.Texture?i:e.isString(i)?new t.Texture(i):void 0}}),e.extend(n.prototype,r.prototype,{_flagTextures:!1,_flagFrameRate:!1,_flagIndex:!1,_amount:1,_duration:0,_index:0,_startTime:0,_playing:!1,_firstFrame:0,_lastFrame:0,_loop:!0,_textures:null,_frameRate:0,_origin:null,constructor:n,play:function(t,i,r){return this._playing=!0,this._firstFrame=0,this._lastFrame=this.amount-1,this._startTime=e.performance.now(),e.isNumber(t)&&(this._firstFrame=t),e.isNumber(i)&&(this._lastFrame=i),e.isFunction(r)?this._onLastFrame=r:delete this._onLastFrame,this._index!==this._firstFrame&&(this._startTime-=1e3*Math.abs(this._index-this._firstFrame)/this._frameRate),this},pause:function(){return this._playing=!1,this},stop:function(){return this._playing=!1,this._index=0,this},clone:function(t){var e=new n(this.textures,this.translation.x,this.translation.y,this.frameRate);return e._loop=this._loop,this._playing&&e.play(),t&&t.add(e),e},_update:function(){var i,n,s,a,o,l,h,c,d=this._textures;return this._flagTextures&&(this._amount=d.length),this._flagFrameRate&&(this._duration=1e3*this._amount/this._frameRate),this._playing&&this._frameRate>0?(a=this._amount,e.isNaN(this._lastFrame)&&(this._lastFrame=a-1),s=e.performance.now()-this._startTime,o=1e3*((c=this._lastFrame+1)-this._firstFrame)/this._frameRate,this._loop?s%=o:s=Math.min(s,o),h=e.lerp(this._firstFrame,c,s/o),(h=Math.floor(h))!==this._index&&(this._index=h,(l=d[this._index]).loaded&&(i=l.image.width,n=l.image.height,this.width!==i&&(this.width=i),this.height!==n&&(this.height=n),this.fill=l,h>=this._lastFrame-1&&this._onLastFrame&&this._onLastFrame()))):!this._flagIndex&&this.fill instanceof t.Texture||((l=d[this._index]).loaded&&(i=l.image.width,n=l.image.height,this.width!==i&&(this.width=i),this.height!==n&&(this.height=n)),this.fill=l),r.prototype._update.call(this),this},flagReset:function(){return this._flagTextures=this._flagFrameRate=!1,r.prototype.flagReset.call(this),this}}),n.MakeObservable(n.prototype)}((void 0!==t?t:window).Two),function(t){var e=Math.min,i=Math.max,r=t.Utils,n=function(){t.Utils.Collection.apply(this,arguments),Object.defineProperty(this,"_events",{value:{},enumerable:!1}),this.ids={},this.on(t.Events.insert,this.attach),this.on(t.Events.remove,this.detach),n.prototype.attach.apply(this,arguments)};n.prototype=new t.Utils.Collection,r.extend(n.prototype,{constructor:n,attach:function(t){for(var e=0;e=0?n.additions.splice(i,1):(n.subtractions.push(t),n._flagSubtractions=!0)),e?(t.parent=e,this.additions.push(t),void(this._flagAdditions=!0)):((i=r.indexOf(this.additions,t))>=0?this.additions.splice(i,1):(this.subtractions.push(t),this._flagSubtractions=!0),void delete t.parent))}r.extend(s,{Children:n,InsertChildren:function(t){for(var e=0;en+h?(l.beginning=1,l.ending=1):an&&sn&&a'+s.innerHTML+"":null},e.prototype.toSvgBase64=function(){var t=this.toSvgXml();return t?"data:image/svg+xml;base64,"+btoa(t):null},e.prototype.clearListner=function(){this.el.removeEventListener("mousedown",this.mouseDown),this.el.removeEventListener("touchstart",this.touchStart)},e.prototype.init=function(){return this.appendTo(this.el),this.el.addEventListener("mousedown",this.mouseDown,a(!1)),this.el.addEventListener("touchstart",this.touchStart,a(!1)),this},e.prototype.drawingStart=function(t){var e=t.x,i=t.y;this.current.set(e,i)},e.prototype.drawingMove=function(t){var e=this,i=t.x,r=t.y,n=this.el.getBoundingClientRect(),a=function(t,e){return new s.a.Vector(t-n.left,e-n.top)};if(this.line){if(this.line.linewidth!==this.penWidth||this.line.stroke!==this.penColor)return void this.drawingEnd();var o=a(i,r);this.line.vertices.push(o)}else{var l=a(this.current.x,this.current.y),h=a(i,r);this.current.set(i,r),this.line=this.makeCurve([l,h],!0),this.line.noFill().stroke=this.penColor,this.line.linewidth=this.penWidth,this.line.cap=this.strokeCap,this.line.join=this.strokeLineJoin,this.line.vertices.map(function(t){e.line&&t.addSelf(e.line.translation)}),this.line.translation.clear()}},e.prototype.drawingEnd=function(){this.line=null},e.prototype.mouseDown=function(t){t.preventDefault(),this.drawingStart({x:t.clientX,y:t.clientY}),this.el.addEventListener("mousemove",this.mouseMove,a(!1)),this.el.addEventListener("mouseup",this.mouseUp,a(!1))},e.prototype.mouseMove=function(t){t.preventDefault(),this.drawingMove({x:t.clientX,y:t.clientY})},e.prototype.mouseUp=function(t){t.preventDefault(),this.el.removeEventListener("mousemove",this.mouseMove),this.el.removeEventListener("mouseup",this.mouseUp),this.drawingEnd()},e.prototype.touchStart=function(t){t.preventDefault();var e=t.touches[0];this.drawingStart({x:e.clientX,y:e.clientY}),this.el.addEventListener("touchmove",this.touchMove,a(!1)),this.el.addEventListener("touchend",this.touchEnd,a(!1))},e.prototype.touchMove=function(t){t.preventDefault();var e=t.touches[0];this.drawingMove({x:e.clientX,y:e.clientY})},e.prototype.touchEnd=function(t){t.preventDefault(),this.el.removeEventListener("touchmove",this.touchMove),this.el.removeEventListener("touchend",this.touchEnd),this.drawingEnd()},e}(s.a),h=function(){return(h=Object.assign||function(t){for(var e,i=1,r=arguments.length;i