hx-white-board
Version:
```bash npm install hx-white-board ```
3 lines • 379 kB
JavaScript
(function(bt,Ct){typeof exports=="object"&&typeof module!="undefined"?Ct(exports):typeof define=="function"&&define.amd?define(["exports"],Ct):(bt=typeof globalThis!="undefined"?globalThis:bt||self,Ct(bt.HXWHITEBOARD={}))})(this,function(bt){"use strict";var pf=Object.defineProperty;var mf=(bt,Ct,Mt)=>Ct in bt?pf(bt,Ct,{enumerable:!0,configurable:!0,writable:!0,value:Mt}):bt[Ct]=Mt;var ht=(bt,Ct,Mt)=>(mf(bt,typeof Ct!="symbol"?Ct+"":Ct,Mt),Mt);var Ct=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Mt(d){if(d.__esModule)return d;var l=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(d).forEach(function(p){var y=Object.getOwnPropertyDescriptor(d,p);Object.defineProperty(l,p,y.get?y:{enumerable:!0,get:function(){return d[p]}})}),l}var U={},zi={},Hi=Object.freeze(Object.defineProperty({__proto__:null,default:zi},Symbol.toStringTag,{value:"Module"})),ce=Mt(Hi);(function(d){/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */var l=l||{version:"5.3.0"};if(d.fabric=l,typeof document!="undefined"&&typeof window!="undefined")document instanceof(typeof HTMLDocument!="undefined"?HTMLDocument:Document)?l.document=document:l.document=document.implementation.createHTMLDocument(""),l.window=window;else{var p=ce,y=new p.JSDOM(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;l.document=y.document,l.jsdomImplForWrapper=ce.implForWrapper,l.nodeCanvas=ce.Canvas,l.window=y,DOMParser=l.window.DOMParser}l.isTouchSupported="ontouchstart"in l.window||"ontouchstart"in l.document||l.window&&l.window.navigator&&l.window.navigator.maxTouchPoints>0,l.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined",l.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],l.DPI=96,l.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",l.commaWsp="(?:\\s+,?\\s*|,\\s*)",l.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/ig,l.reNonWord=/[ \n\.,;!\?\-]/,l.fontPaths={},l.iMatrix=[1,0,0,1,0,0],l.svgNS="http://www.w3.org/2000/svg",l.perfLimitSizeTotal=2097152,l.maxCacheSideLimit=4096,l.minCacheSideLimit=256,l.charWidthsCache={},l.textureSize=2048,l.disableStyleCopyPaste=!1,l.enableGLFiltering=!0,l.devicePixelRatio=l.window.devicePixelRatio||l.window.webkitDevicePixelRatio||l.window.mozDevicePixelRatio||1,l.browserShadowBlurConstant=1,l.arcToSegmentsCache={},l.boundsOfCurveCache={},l.cachesBoundsOfCurve=!0,l.forceGLPutImageData=!1,l.initFilterBackend=function(){if(l.enableGLFiltering&&l.isWebglSupported&&l.isWebglSupported(l.textureSize))return console.log("max texture size: "+l.maxTextureSize),new l.WebglFilterBackend({tileSize:l.textureSize});if(l.Canvas2dFilterBackend)return new l.Canvas2dFilterBackend},typeof document!="undefined"&&typeof window!="undefined"&&(window.fabric=l),function(){function u(t,s){if(!!this.__eventListeners[t]){var o=this.__eventListeners[t];s?o[o.indexOf(s)]=!1:l.util.array.fill(o,!1)}}function n(t,s){if(this.__eventListeners||(this.__eventListeners={}),arguments.length===1)for(var o in t)this.on(o,t[o]);else this.__eventListeners[t]||(this.__eventListeners[t]=[]),this.__eventListeners[t].push(s);return this}function h(t,s){var o=function(){s.apply(this,arguments),this.off(t,o)}.bind(this);this.on(t,o)}function a(t,s){if(arguments.length===1)for(var o in t)h.call(this,o,t[o]);else h.call(this,t,s);return this}function e(t,s){if(!this.__eventListeners)return this;if(arguments.length===0)for(t in this.__eventListeners)u.call(this,t);else if(arguments.length===1&&typeof arguments[0]=="object")for(var o in t)u.call(this,o,t[o]);else u.call(this,t,s);return this}function i(t,s){if(!this.__eventListeners)return this;var o=this.__eventListeners[t];if(!o)return this;for(var r=0,c=o.length;r<c;r++)o[r]&&o[r].call(this,s||{});return this.__eventListeners[t]=o.filter(function(f){return f!==!1}),this}l.Observable={fire:i,on:n,once:a,off:e}}(),l.Collection={_objects:[],add:function(){if(this._objects.push.apply(this._objects,arguments),this._onObjectAdded)for(var u=0,n=arguments.length;u<n;u++)this._onObjectAdded(arguments[u]);return this.renderOnAddRemove&&this.requestRenderAll(),this},insertAt:function(u,n,h){var a=this._objects;return h?a[n]=u:a.splice(n,0,u),this._onObjectAdded&&this._onObjectAdded(u),this.renderOnAddRemove&&this.requestRenderAll(),this},remove:function(){for(var u=this._objects,n,h=!1,a=0,e=arguments.length;a<e;a++)n=u.indexOf(arguments[a]),n!==-1&&(h=!0,u.splice(n,1),this._onObjectRemoved&&this._onObjectRemoved(arguments[a]));return this.renderOnAddRemove&&h&&this.requestRenderAll(),this},forEachObject:function(u,n){for(var h=this.getObjects(),a=0,e=h.length;a<e;a++)u.call(n,h[a],a,h);return this},getObjects:function(u){return typeof u=="undefined"?this._objects.concat():this._objects.filter(function(n){return n.type===u})},item:function(u){return this._objects[u]},isEmpty:function(){return this._objects.length===0},size:function(){return this._objects.length},contains:function(u,n){return this._objects.indexOf(u)>-1?!0:n?this._objects.some(function(h){return typeof h.contains=="function"&&h.contains(u,!0)}):!1},complexity:function(){return this._objects.reduce(function(u,n){return u+=n.complexity?n.complexity():0,u},0)}},l.CommonMethods={_setOptions:function(u){for(var n in u)this.set(n,u[n])},_initGradient:function(u,n){u&&u.colorStops&&!(u instanceof l.Gradient)&&this.set(n,new l.Gradient(u))},_initPattern:function(u,n,h){u&&u.source&&!(u instanceof l.Pattern)?this.set(n,new l.Pattern(u,h)):h&&h()},_setObject:function(u){for(var n in u)this._set(n,u[n])},set:function(u,n){return typeof u=="object"?this._setObject(u):this._set(u,n),this},_set:function(u,n){this[u]=n},toggle:function(u){var n=this.get(u);return typeof n=="boolean"&&this.set(u,!n),this},get:function(u){return this[u]}},function(u){var n=Math.sqrt,h=Math.atan2,a=Math.pow,e=Math.PI/180,i=Math.PI/2;l.util={cos:function(t){if(t===0)return 1;t<0&&(t=-t);var s=t/i;switch(s){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},sin:function(t){if(t===0)return 0;var s=t/i,o=1;switch(t<0&&(o=-1),s){case 1:return o;case 2:return 0;case 3:return-o}return Math.sin(t)},removeFromArray:function(t,s){var o=t.indexOf(s);return o!==-1&&t.splice(o,1),t},getRandomInt:function(t,s){return Math.floor(Math.random()*(s-t+1))+t},degreesToRadians:function(t){return t*e},radiansToDegrees:function(t){return t/e},rotatePoint:function(t,s,o){var r=new l.Point(t.x-s.x,t.y-s.y),c=l.util.rotateVector(r,o);return new l.Point(c.x,c.y).addEquals(s)},rotateVector:function(t,s){var o=l.util.sin(s),r=l.util.cos(s),c=t.x*r-t.y*o,f=t.x*o+t.y*r;return{x:c,y:f}},createVector:function(t,s){return new l.Point(s.x-t.x,s.y-t.y)},calcAngleBetweenVectors:function(t,s){return Math.acos((t.x*s.x+t.y*s.y)/(Math.hypot(t.x,t.y)*Math.hypot(s.x,s.y)))},getHatVector:function(t){return new l.Point(t.x,t.y).multiply(1/Math.hypot(t.x,t.y))},getBisector:function(t,s,o){var r=l.util.createVector(t,s),c=l.util.createVector(t,o),f=l.util.calcAngleBetweenVectors(r,c),g=l.util.calcAngleBetweenVectors(l.util.rotateVector(r,f),c),v=f*(g===0?1:-1)/2;return{vector:l.util.getHatVector(l.util.rotateVector(r,v)),angle:f}},projectStrokeOnPoints:function(t,s,o){var r=[],c=s.strokeWidth/2,f=s.strokeUniform?new l.Point(1/s.scaleX,1/s.scaleY):new l.Point(1,1),g=function(v){var m=c/Math.hypot(v.x,v.y);return new l.Point(v.x*m*f.x,v.y*m*f.y)};return t.length<=1||t.forEach(function(v,m){var C=new l.Point(v.x,v.y),S,P;m===0?(P=t[m+1],S=o?g(l.util.createVector(P,C)).addEquals(C):t[t.length-1]):m===t.length-1?(S=t[m-1],P=o?g(l.util.createVector(S,C)).addEquals(C):t[0]):(S=t[m-1],P=t[m+1]);var F=l.util.getBisector(C,S,P),G=F.vector,$=F.angle,Q,tt;if(s.strokeLineJoin==="miter"&&(Q=-c/Math.sin($/2),tt=new l.Point(G.x*Q*f.x,G.y*Q*f.y),Math.hypot(tt.x,tt.y)/c<=s.strokeMiterLimit)){r.push(C.add(tt)),r.push(C.subtract(tt));return}Q=-c*Math.SQRT2,tt=new l.Point(G.x*Q*f.x,G.y*Q*f.y),r.push(C.add(tt)),r.push(C.subtract(tt))}),r},transformPoint:function(t,s,o){return o?new l.Point(s[0]*t.x+s[2]*t.y,s[1]*t.x+s[3]*t.y):new l.Point(s[0]*t.x+s[2]*t.y+s[4],s[1]*t.x+s[3]*t.y+s[5])},makeBoundingBoxFromPoints:function(t,s){if(s)for(var o=0;o<t.length;o++)t[o]=l.util.transformPoint(t[o],s);var r=[t[0].x,t[1].x,t[2].x,t[3].x],c=l.util.array.min(r),f=l.util.array.max(r),g=f-c,v=[t[0].y,t[1].y,t[2].y,t[3].y],m=l.util.array.min(v),C=l.util.array.max(v),S=C-m;return{left:c,top:m,width:g,height:S}},invertTransform:function(t){var s=1/(t[0]*t[3]-t[1]*t[2]),o=[s*t[3],-s*t[1],-s*t[2],s*t[0]],r=l.util.transformPoint({x:t[4],y:t[5]},o,!0);return o[4]=-r.x,o[5]=-r.y,o},toFixed:function(t,s){return parseFloat(Number(t).toFixed(s))},parseUnit:function(t,s){var o=/\D{0,2}$/.exec(t),r=parseFloat(t);switch(s||(s=l.Text.DEFAULT_SVG_FONT_SIZE),o[0]){case"mm":return r*l.DPI/25.4;case"cm":return r*l.DPI/2.54;case"in":return r*l.DPI;case"pt":return r*l.DPI/72;case"pc":return r*l.DPI/72*12;case"em":return r*s;default:return r}},falseFunction:function(){return!1},getKlass:function(t,s){return t=l.util.string.camelize(t.charAt(0).toUpperCase()+t.slice(1)),l.util.resolveNamespace(s)[t]},getSvgAttributes:function(t){var s=["instantiated_by_use","style","id","class"];switch(t){case"linearGradient":s=s.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);break;case"radialGradient":s=s.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);break;case"stop":s=s.concat(["offset","stop-color","stop-opacity"]);break}return s},resolveNamespace:function(t){if(!t)return l;var s=t.split("."),o=s.length,r,c=u||l.window;for(r=0;r<o;++r)c=c[s[r]];return c},loadImage:function(t,s,o,r){if(!t){s&&s.call(o,t);return}var c=l.util.createImage(),f=function(){s&&s.call(o,c,!1),c=c.onload=c.onerror=null};c.onload=f,c.onerror=function(){l.log("Error loading "+c.src),s&&s.call(o,null,!0),c=c.onload=c.onerror=null},t.indexOf("data")!==0&&r!==void 0&&r!==null&&(c.crossOrigin=r),t.substring(0,14)==="data:image/svg"&&(c.onload=null,l.util.loadImageInDom(c,f)),c.src=t},loadImageInDom:function(t,s){var o=l.document.createElement("div");o.style.width=o.style.height="1px",o.style.left=o.style.top="-100%",o.style.position="absolute",o.appendChild(t),l.document.querySelector("body").appendChild(o),t.onload=function(){s(),o.parentNode.removeChild(o),o=null}},enlivenObjects:function(t,s,o,r){t=t||[];var c=[],f=0,g=t.length;function v(){++f===g&&s&&s(c.filter(function(m){return m}))}if(!g){s&&s(c);return}t.forEach(function(m,C){if(!m||!m.type){v();return}var S=l.util.getKlass(m.type,o);S.fromObject(m,function(P,F){F||(c[C]=P),r&&r(m,P,F),v()})})},enlivenObjectEnlivables:function(t,s,o){var r=l.Object.ENLIVEN_PROPS.filter(function(c){return!!t[c]});l.util.enlivenObjects(r.map(function(c){return t[c]}),function(c){var f={};r.forEach(function(g,v){f[g]=c[v],s&&(s[g]=c[v])}),o&&o(f)})},enlivenPatterns:function(t,s){t=t||[];function o(){++c===f&&s&&s(r)}var r=[],c=0,f=t.length;if(!f){s&&s(r);return}t.forEach(function(g,v){g&&g.source?new l.Pattern(g,function(m){r[v]=m,o()}):(r[v]=g,o())})},groupSVGElements:function(t,s,o){var r;return t&&t.length===1?(typeof o!="undefined"&&(t[0].sourcePath=o),t[0]):(s&&(s.width&&s.height?s.centerPoint={x:s.width/2,y:s.height/2}:(delete s.width,delete s.height)),r=new l.Group(t,s),typeof o!="undefined"&&(r.sourcePath=o),r)},populateWithProperties:function(t,s,o){if(o&&Array.isArray(o))for(var r=0,c=o.length;r<c;r++)o[r]in t&&(s[o[r]]=t[o[r]])},createCanvasElement:function(){return l.document.createElement("canvas")},copyCanvasElement:function(t){var s=l.util.createCanvasElement();return s.width=t.width,s.height=t.height,s.getContext("2d").drawImage(t,0,0),s},toDataURL:function(t,s,o){return t.toDataURL("image/"+s,o)},createImage:function(){return l.document.createElement("img")},multiplyTransformMatrices:function(t,s,o){return[t[0]*s[0]+t[2]*s[1],t[1]*s[0]+t[3]*s[1],t[0]*s[2]+t[2]*s[3],t[1]*s[2]+t[3]*s[3],o?0:t[0]*s[4]+t[2]*s[5]+t[4],o?0:t[1]*s[4]+t[3]*s[5]+t[5]]},qrDecompose:function(t){var s=h(t[1],t[0]),o=a(t[0],2)+a(t[1],2),r=n(o),c=(t[0]*t[3]-t[2]*t[1])/r,f=h(t[0]*t[2]+t[1]*t[3],o);return{angle:s/e,scaleX:r,scaleY:c,skewX:f/e,skewY:0,translateX:t[4],translateY:t[5]}},calcRotateMatrix:function(t){if(!t.angle)return l.iMatrix.concat();var s=l.util.degreesToRadians(t.angle),o=l.util.cos(s),r=l.util.sin(s);return[o,r,-r,o,0,0]},calcDimensionsMatrix:function(t){var s=typeof t.scaleX=="undefined"?1:t.scaleX,o=typeof t.scaleY=="undefined"?1:t.scaleY,r=[t.flipX?-s:s,0,0,t.flipY?-o:o,0,0],c=l.util.multiplyTransformMatrices,f=l.util.degreesToRadians;return t.skewX&&(r=c(r,[1,0,Math.tan(f(t.skewX)),1],!0)),t.skewY&&(r=c(r,[1,Math.tan(f(t.skewY)),0,1],!0)),r},composeMatrix:function(t){var s=[1,0,0,1,t.translateX||0,t.translateY||0],o=l.util.multiplyTransformMatrices;return t.angle&&(s=o(s,l.util.calcRotateMatrix(t))),(t.scaleX!==1||t.scaleY!==1||t.skewX||t.skewY||t.flipX||t.flipY)&&(s=o(s,l.util.calcDimensionsMatrix(t))),s},resetObjectTransform:function(t){t.scaleX=1,t.scaleY=1,t.skewX=0,t.skewY=0,t.flipX=!1,t.flipY=!1,t.rotate(0)},saveObjectTransform:function(t){return{scaleX:t.scaleX,scaleY:t.scaleY,skewX:t.skewX,skewY:t.skewY,angle:t.angle,left:t.left,flipX:t.flipX,flipY:t.flipY,top:t.top}},isTransparent:function(t,s,o,r){r>0&&(s>r?s-=r:s=0,o>r?o-=r:o=0);var c=!0,f,g,v=t.getImageData(s,o,r*2||1,r*2||1),m=v.data.length;for(f=3;f<m&&(g=v.data[f],c=g<=0,c!==!1);f+=4);return v=null,c},parsePreserveAspectRatioAttribute:function(t){var s="meet",o="Mid",r="Mid",c=t.split(" "),f;return c&&c.length&&(s=c.pop(),s!=="meet"&&s!=="slice"?(f=s,s="meet"):c.length&&(f=c.pop())),o=f!=="none"?f.slice(1,4):"none",r=f!=="none"?f.slice(5,8):"none",{meetOrSlice:s,alignX:o,alignY:r}},clearFabricFontCache:function(t){t=(t||"").toLowerCase(),t?l.charWidthsCache[t]&&delete l.charWidthsCache[t]:l.charWidthsCache={}},limitDimsByArea:function(t,s){var o=Math.sqrt(s*t),r=Math.floor(s/o);return{x:Math.floor(o),y:r}},capValue:function(t,s,o){return Math.max(t,Math.min(s,o))},findScaleToFit:function(t,s){return Math.min(s.width/t.width,s.height/t.height)},findScaleToCover:function(t,s){return Math.max(s.width/t.width,s.height/t.height)},matrixToSVG:function(t){return"matrix("+t.map(function(s){return l.util.toFixed(s,l.Object.NUM_FRACTION_DIGITS)}).join(" ")+")"},removeTransformFromObject:function(t,s){var o=l.util.invertTransform(s),r=l.util.multiplyTransformMatrices(o,t.calcOwnMatrix());l.util.applyTransformToObject(t,r)},addTransformToObject:function(t,s){l.util.applyTransformToObject(t,l.util.multiplyTransformMatrices(s,t.calcOwnMatrix()))},applyTransformToObject:function(t,s){var o=l.util.qrDecompose(s),r=new l.Point(o.translateX,o.translateY);t.flipX=!1,t.flipY=!1,t.set("scaleX",o.scaleX),t.set("scaleY",o.scaleY),t.skewX=o.skewX,t.skewY=o.skewY,t.angle=o.angle,t.setPositionByOrigin(r,"center","center")},sizeAfterTransform:function(t,s,o){var r=t/2,c=s/2,f=[{x:-r,y:-c},{x:r,y:-c},{x:-r,y:c},{x:r,y:c}],g=l.util.calcDimensionsMatrix(o),v=l.util.makeBoundingBoxFromPoints(f,g);return{x:v.width,y:v.height}},mergeClipPaths:function(t,s){var o=t,r=s;o.inverted&&!r.inverted&&(o=s,r=t),l.util.applyTransformToObject(r,l.util.multiplyTransformMatrices(l.util.invertTransform(o.calcTransformMatrix()),r.calcTransformMatrix()));var c=o.inverted&&r.inverted;return c&&(o.inverted=r.inverted=!1),new l.Group([o],{clipPath:r,inverted:c})},hasStyleChanged:function(t,s,o){return o=o||!1,t.fill!==s.fill||t.stroke!==s.stroke||t.strokeWidth!==s.strokeWidth||t.fontSize!==s.fontSize||t.fontFamily!==s.fontFamily||t.fontWeight!==s.fontWeight||t.fontStyle!==s.fontStyle||t.textBackgroundColor!==s.textBackgroundColor||t.deltaY!==s.deltaY||o&&(t.overline!==s.overline||t.underline!==s.underline||t.linethrough!==s.linethrough)},stylesToArray:function(o,s){for(var o=l.util.object.clone(o,!0),r=s.split(`
`),c=-1,f={},g=[],v=0;v<r.length;v++){if(!o[v]){c+=r[v].length;continue}for(var m=0;m<r[v].length;m++){c++;var C=o[v][m];if(C&&Object.keys(C).length>0){var S=l.util.hasStyleChanged(f,C,!0);S?g.push({start:c,end:c+1,style:C}):g[g.length-1].end++}f=C||{}}}return g},stylesFromArray:function(t,s){if(!Array.isArray(t))return t;for(var o=s.split(`
`),r=-1,c=0,f={},g=0;g<o.length;g++)for(var v=0;v<o[g].length;v++)r++,t[c]&&t[c].start<=r&&r<t[c].end&&(f[g]=f[g]||{},f[g][v]=Object.assign({},t[c].style),r===t[c].end-1&&c++);return f}}}(d),function(){var u=Array.prototype.join,n={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},h={m:"l",M:"L"};function a(b,O,A,T,k,x,_,M,I,W,j){var X=l.util.cos(b),V=l.util.sin(b),J=l.util.cos(O),L=l.util.sin(O),D=A*k*J-T*x*L+_,z=T*k*J+A*x*L+M,H=W+I*(-A*k*V-T*x*X),R=j+I*(-T*k*V+A*x*X),Y=D+I*(A*k*L+T*x*J),q=z+I*(T*k*L-A*x*J);return["C",H,R,Y,q,D,z]}function e(b,O,A,T,k,x,_){var M=Math.PI,I=_*M/180,W=l.util.sin(I),j=l.util.cos(I),X=0,V=0;A=Math.abs(A),T=Math.abs(T);var J=-j*b*.5-W*O*.5,L=-j*O*.5+W*b*.5,D=A*A,z=T*T,H=L*L,R=J*J,Y=D*z-D*H-z*R,q=0;if(Y<0){var at=Math.sqrt(1-Y/(D*z));A*=at,T*=at}else q=(k===x?-1:1)*Math.sqrt(Y/(D*H+z*R));var nt=q*A*L/T,N=-q*T*J/A,st=j*nt-W*N+b*.5,ot=W*nt+j*N+O*.5,lt=i(1,0,(J-nt)/A,(L-N)/T),gt=i((J-nt)/A,(L-N)/T,(-J-nt)/A,(-L-N)/T);x===0&>>0?gt-=2*M:x===1&><0&&(gt+=2*M);for(var ct=Math.ceil(Math.abs(gt/M*2)),_t=[],pt=gt/ct,kt=8/3*Math.sin(pt/4)*Math.sin(pt/4)/Math.sin(pt/2),Kt=lt+pt,Ot=0;Ot<ct;Ot++)_t[Ot]=a(lt,Kt,j,W,A,T,st,ot,kt,X,V),X=_t[Ot][5],V=_t[Ot][6],lt=Kt,Kt+=pt;return _t}function i(b,O,A,T){var k=Math.atan2(O,b),x=Math.atan2(T,A);return x>=k?x-k:2*Math.PI-(k-x)}function t(b,O,A,T,k,x,_,M){var I;if(l.cachesBoundsOfCurve&&(I=u.call(arguments),l.boundsOfCurveCache[I]))return l.boundsOfCurveCache[I];var W=Math.sqrt,j=Math.min,X=Math.max,V=Math.abs,J=[],L=[[],[]],D,z,H,R,Y,q,at,nt;z=6*b-12*A+6*k,D=-3*b+9*A-9*k+3*_,H=3*A-3*b;for(var N=0;N<2;++N){if(N>0&&(z=6*O-12*T+6*x,D=-3*O+9*T-9*x+3*M,H=3*T-3*O),V(D)<1e-12){if(V(z)<1e-12)continue;R=-H/z,0<R&&R<1&&J.push(R);continue}at=z*z-4*H*D,!(at<0)&&(nt=W(at),Y=(-z+nt)/(2*D),0<Y&&Y<1&&J.push(Y),q=(-z-nt)/(2*D),0<q&&q<1&&J.push(q))}for(var st,ot,lt=J.length,gt=lt,ct;lt--;)R=J[lt],ct=1-R,st=ct*ct*ct*b+3*ct*ct*R*A+3*ct*R*R*k+R*R*R*_,L[0][lt]=st,ot=ct*ct*ct*O+3*ct*ct*R*T+3*ct*R*R*x+R*R*R*M,L[1][lt]=ot;L[0][gt]=b,L[1][gt]=O,L[0][gt+1]=_,L[1][gt+1]=M;var _t=[{x:j.apply(null,L[0]),y:j.apply(null,L[1])},{x:X.apply(null,L[0]),y:X.apply(null,L[1])}];return l.cachesBoundsOfCurve&&(l.boundsOfCurveCache[I]=_t),_t}function s(b,O,A){for(var T=A[1],k=A[2],x=A[3],_=A[4],M=A[5],I=A[6],W=A[7],j=e(I-b,W-O,T,k,_,M,x),X=0,V=j.length;X<V;X++)j[X][1]+=b,j[X][2]+=O,j[X][3]+=b,j[X][4]+=O,j[X][5]+=b,j[X][6]+=O;return j}function o(b){var O=0,A=0,T=b.length,k=0,x=0,_,M,I,W=[],j,X,V;for(M=0;M<T;++M){switch(I=!1,_=b[M].slice(0),_[0]){case"l":_[0]="L",_[1]+=O,_[2]+=A;case"L":O=_[1],A=_[2];break;case"h":_[1]+=O;case"H":_[0]="L",_[2]=A,O=_[1];break;case"v":_[1]+=A;case"V":_[0]="L",A=_[1],_[1]=O,_[2]=A;break;case"m":_[0]="M",_[1]+=O,_[2]+=A;case"M":O=_[1],A=_[2],k=_[1],x=_[2];break;case"c":_[0]="C",_[1]+=O,_[2]+=A,_[3]+=O,_[4]+=A,_[5]+=O,_[6]+=A;case"C":X=_[3],V=_[4],O=_[5],A=_[6];break;case"s":_[0]="S",_[1]+=O,_[2]+=A,_[3]+=O,_[4]+=A;case"S":j==="C"?(X=2*O-X,V=2*A-V):(X=O,V=A),O=_[3],A=_[4],_[0]="C",_[5]=_[3],_[6]=_[4],_[3]=_[1],_[4]=_[2],_[1]=X,_[2]=V,X=_[3],V=_[4];break;case"q":_[0]="Q",_[1]+=O,_[2]+=A,_[3]+=O,_[4]+=A;case"Q":X=_[1],V=_[2],O=_[3],A=_[4];break;case"t":_[0]="T",_[1]+=O,_[2]+=A;case"T":j==="Q"?(X=2*O-X,V=2*A-V):(X=O,V=A),_[0]="Q",O=_[1],A=_[2],_[1]=X,_[2]=V,_[3]=O,_[4]=A;break;case"a":_[0]="A",_[6]+=O,_[7]+=A;case"A":I=!0,W=W.concat(s(O,A,_)),O=_[6],A=_[7];break;case"z":case"Z":O=k,A=x;break}I||W.push(_),j=_[0]}return W}function r(b,O,A,T){return Math.sqrt((A-b)*(A-b)+(T-O)*(T-O))}function c(b){return b*b*b}function f(b){return 3*b*b*(1-b)}function g(b){return 3*b*(1-b)*(1-b)}function v(b){return(1-b)*(1-b)*(1-b)}function m(b,O,A,T,k,x,_,M){return function(I){var W=c(I),j=f(I),X=g(I),V=v(I);return{x:_*W+k*j+A*X+b*V,y:M*W+x*j+T*X+O*V}}}function C(b,O,A,T,k,x,_,M){return function(I){var W=1-I,j=3*W*W*(A-b)+6*W*I*(k-A)+3*I*I*(_-k),X=3*W*W*(T-O)+6*W*I*(x-T)+3*I*I*(M-x);return Math.atan2(X,j)}}function S(b){return b*b}function P(b){return 2*b*(1-b)}function F(b){return(1-b)*(1-b)}function G(b,O,A,T,k,x){return function(_){var M=S(_),I=P(_),W=F(_);return{x:k*M+A*I+b*W,y:x*M+T*I+O*W}}}function $(b,O,A,T,k,x){return function(_){var M=1-_,I=2*M*(A-b)+2*_*(k-A),W=2*M*(T-O)+2*_*(x-T);return Math.atan2(W,I)}}function Q(b,O,A){var T={x:O,y:A},k,x=0,_;for(_=1;_<=100;_+=1)k=b(_/100),x+=r(T.x,T.y,k.x,k.y),T=k;return x}function tt(b,O){for(var A=0,T=0,k=b.iterator,x={x:b.x,y:b.y},_,M,I=.01,W=b.angleFinder,j;T<O&&I>1e-4;)_=k(A),j=A,M=r(x.x,x.y,_.x,_.y),M+T>O?(A-=I,I/=2):(x=_,A+=I,T+=M);return _.angle=W(j),_}function Z(b){for(var O=0,A=b.length,T,k=0,x=0,_=0,M=0,I=[],W,j,X,V=0;V<A;V++){switch(T=b[V],j={x:k,y:x,command:T[0]},T[0]){case"M":j.length=0,_=k=T[1],M=x=T[2];break;case"L":j.length=r(k,x,T[1],T[2]),k=T[1],x=T[2];break;case"C":W=m(k,x,T[1],T[2],T[3],T[4],T[5],T[6]),X=C(k,x,T[1],T[2],T[3],T[4],T[5],T[6]),j.iterator=W,j.angleFinder=X,j.length=Q(W,k,x),k=T[5],x=T[6];break;case"Q":W=G(k,x,T[1],T[2],T[3],T[4]),X=$(k,x,T[1],T[2],T[3],T[4]),j.iterator=W,j.angleFinder=X,j.length=Q(W,k,x),k=T[3],x=T[4];break;case"Z":case"z":j.destX=_,j.destY=M,j.length=r(k,x,_,M),k=_,x=M;break}O+=j.length,I.push(j)}return I.push({length:O,x:k,y:x}),I}function K(b,O,A){A||(A=Z(b));for(var T=0;O-A[T].length>0&&T<A.length-2;)O-=A[T].length,T++;var k=A[T],x=O/k.length,_=k.command,M=b[T],I;switch(_){case"M":return{x:k.x,y:k.y,angle:0};case"Z":case"z":return I=new l.Point(k.x,k.y).lerp(new l.Point(k.destX,k.destY),x),I.angle=Math.atan2(k.destY-k.y,k.destX-k.x),I;case"L":return I=new l.Point(k.x,k.y).lerp(new l.Point(M[1],M[2]),x),I.angle=Math.atan2(M[2]-k.y,M[1]-k.x),I;case"C":return tt(k,O);case"Q":return tt(k,O)}}function et(b){var O=[],A=[],T,k,x=l.rePathCommand,_="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",M="("+_+")"+l.commaWsp,I="([01])"+l.commaWsp+"?",W=M+"?"+M+"?"+M+I+I+M+"?("+_+")",j=new RegExp(W,"g"),X,V,J;if(!b||!b.match)return O;J=b.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi);for(var L=0,D,z=J.length;L<z;L++){T=J[L],V=T.slice(1).trim(),A.length=0;var H=T.charAt(0);if(D=[H],H.toLowerCase()==="a")for(var R;R=j.exec(V);)for(var Y=1;Y<R.length;Y++)A.push(R[Y]);else for(;X=x.exec(V);)A.push(X[0]);for(var Y=0,q=A.length;Y<q;Y++)k=parseFloat(A[Y]),isNaN(k)||D.push(k);var at=n[H.toLowerCase()],nt=h[H]||H;if(D.length-1>at)for(var N=1,st=D.length;N<st;N+=at)O.push([H].concat(D.slice(N,N+at))),H=nt;else O.push(D)}return O}function rt(b,O){var A=[],T,k=new l.Point(b[0].x,b[0].y),x=new l.Point(b[1].x,b[1].y),_=b.length,M=1,I=0,W=_>2;for(O=O||0,W&&(M=b[2].x<x.x?-1:b[2].x===x.x?0:1,I=b[2].y<x.y?-1:b[2].y===x.y?0:1),A.push(["M",k.x-M*O,k.y-I*O]),T=1;T<_;T++){if(!k.eq(x)){var j=k.midPointFrom(x);A.push(["Q",k.x,k.y,j.x,j.y])}k=b[T],T+1<b.length&&(x=b[T+1])}return W&&(M=k.x>b[T-2].x?1:k.x===b[T-2].x?0:-1,I=k.y>b[T-2].y?1:k.y===b[T-2].y?0:-1),A.push(["L",k.x+M*O,k.y+I*O]),A}function it(b,O,A){return A&&(O=l.util.multiplyTransformMatrices(O,[1,0,0,1,-A.x,-A.y])),b.map(function(T){for(var k=T.slice(0),x={},_=1;_<T.length-1;_+=2)x.x=T[_],x.y=T[_+1],x=l.util.transformPoint(x,O),k[_]=x.x,k[_+1]=x.y;return k})}l.util.joinPath=function(b){return b.map(function(O){return O.join(" ")}).join(" ")},l.util.parsePath=et,l.util.makePathSimpler=o,l.util.getSmoothPathFromPoints=rt,l.util.getPathSegmentsInfo=Z,l.util.getBoundsOfCurve=t,l.util.getPointOnPath=K,l.util.transformPath=it}(),function(){var u=Array.prototype.slice;function n(t,s){for(var o=u.call(arguments,2),r=[],c=0,f=t.length;c<f;c++)r[c]=o.length?t[c][s].apply(t[c],o):t[c][s].call(t[c]);return r}function h(t,s){return i(t,s,function(o,r){return o>=r})}function a(t,s){return i(t,s,function(o,r){return o<r})}function e(t,s){for(var o=t.length;o--;)t[o]=s;return t}function i(t,s,o){if(!(!t||t.length===0)){var r=t.length-1,c=s?t[r][s]:t[r];if(s)for(;r--;)o(t[r][s],c)&&(c=t[r][s]);else for(;r--;)o(t[r],c)&&(c=t[r]);return c}}l.util.array={fill:e,invoke:n,min:a,max:h}}(),function(){function u(h,a,e){if(e)if(!l.isLikelyNode&&a instanceof Element)h=a;else if(a instanceof Array){h=[];for(var i=0,t=a.length;i<t;i++)h[i]=u({},a[i],e)}else if(a&&typeof a=="object")for(var s in a)s==="canvas"||s==="group"?h[s]=null:a.hasOwnProperty(s)&&(h[s]=u({},a[s],e));else h=a;else for(var s in a)h[s]=a[s];return h}function n(h,a){return u({},h,a)}l.util.object={extend:u,clone:n},l.util.object.extend(l.util,l.Observable)}(),function(){function u(i){return i.replace(/-+(.)?/g,function(t,s){return s?s.toUpperCase():""})}function n(i,t){return i.charAt(0).toUpperCase()+(t?i.slice(1):i.slice(1).toLowerCase())}function h(i){return i.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function a(i){var t=0,s,o=[];for(t=0,s;t<i.length;t++)(s=e(i,t))!==!1&&o.push(s);return o}function e(i,t){var s=i.charCodeAt(t);if(isNaN(s))return"";if(s<55296||s>57343)return i.charAt(t);if(55296<=s&&s<=56319){if(i.length<=t+1)throw"High surrogate without following low surrogate";var o=i.charCodeAt(t+1);if(56320>o||o>57343)throw"High surrogate without following low surrogate";return i.charAt(t)+i.charAt(t+1)}if(t===0)throw"Low surrogate without preceding high surrogate";var r=i.charCodeAt(t-1);if(55296>r||r>56319)throw"Low surrogate without preceding high surrogate";return!1}l.util.string={camelize:u,capitalize:n,escapeXml:h,graphemeSplit:a}}(),function(){var u=Array.prototype.slice,n=function(){},h=function(){for(var s in{toString:1})if(s==="toString")return!1;return!0}(),a=function(s,o,r){for(var c in o)c in s.prototype&&typeof s.prototype[c]=="function"&&(o[c]+"").indexOf("callSuper")>-1?s.prototype[c]=function(f){return function(){var g=this.constructor.superclass;this.constructor.superclass=r;var v=o[f].apply(this,arguments);if(this.constructor.superclass=g,f!=="initialize")return v}}(c):s.prototype[c]=o[c],h&&(o.toString!==Object.prototype.toString&&(s.prototype.toString=o.toString),o.valueOf!==Object.prototype.valueOf&&(s.prototype.valueOf=o.valueOf))};function e(){}function i(s){for(var o=null,r=this;r.constructor.superclass;){var c=r.constructor.superclass.prototype[s];if(r[s]!==c){o=c;break}r=r.constructor.superclass.prototype}return o?arguments.length>1?o.apply(this,u.call(arguments,1)):o.call(this):console.log("tried to callSuper "+s+", method not found in prototype chain",this)}function t(){var s=null,o=u.call(arguments,0);typeof o[0]=="function"&&(s=o.shift());function r(){this.initialize.apply(this,arguments)}r.superclass=s,r.subclasses=[],s&&(e.prototype=s.prototype,r.prototype=new e,s.subclasses.push(r));for(var c=0,f=o.length;c<f;c++)a(r,o[c],s);return r.prototype.initialize||(r.prototype.initialize=n),r.prototype.constructor=r,r.prototype.callSuper=i,r}l.util.createClass=t}(),function(){var u=!!l.document.createElement("div").attachEvent,n=["touchstart","touchmove","touchend"];l.util.addListener=function(a,e,i,t){a&&a.addEventListener(e,i,u?!1:t)},l.util.removeListener=function(a,e,i,t){a&&a.removeEventListener(e,i,u?!1:t)};function h(a){var e=a.changedTouches;return e&&e[0]?e[0]:a}l.util.getPointer=function(a){var e=a.target,i=l.util.getScrollLeftTop(e),t=h(a);return{x:t.clientX+i.left,y:t.clientY+i.top}},l.util.isTouchEvent=function(a){return n.indexOf(a.type)>-1||a.pointerType==="touch"}}(),function(){function u(t,s){var o=t.style;if(!o)return t;if(typeof s=="string")return t.style.cssText+=";"+s,s.indexOf("opacity")>-1?i(t,s.match(/opacity:\s*(\d?\.?\d*)/)[1]):t;for(var r in s)if(r==="opacity")i(t,s[r]);else{var c=r==="float"||r==="cssFloat"?typeof o.styleFloat=="undefined"?"cssFloat":"styleFloat":r;o.setProperty(c,s[r])}return t}var n=l.document.createElement("div"),h=typeof n.style.opacity=="string",a=typeof n.style.filter=="string",e=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,i=function(t){return t};h?i=function(t,s){return t.style.opacity=s,t}:a&&(i=function(t,s){var o=t.style;return t.currentStyle&&!t.currentStyle.hasLayout&&(o.zoom=1),e.test(o.filter)?(s=s>=.9999?"":"alpha(opacity="+s*100+")",o.filter=o.filter.replace(e,s)):o.filter+=" alpha(opacity="+s*100+")",t}),l.util.setStyle=u}(),function(){var u=Array.prototype.slice;function n(v){return typeof v=="string"?l.document.getElementById(v):v}var h,a=function(v){return u.call(v,0)};try{h=a(l.document.childNodes)instanceof Array}catch{}h||(a=function(v){for(var m=new Array(v.length),C=v.length;C--;)m[C]=v[C];return m});function e(v,m){var C=l.document.createElement(v);for(var S in m)S==="class"?C.className=m[S]:S==="for"?C.htmlFor=m[S]:C.setAttribute(S,m[S]);return C}function i(v,m){v&&(" "+v.className+" ").indexOf(" "+m+" ")===-1&&(v.className+=(v.className?" ":"")+m)}function t(v,m,C){return typeof m=="string"&&(m=e(m,C)),v.parentNode&&v.parentNode.replaceChild(m,v),m.appendChild(v),m}function s(v){for(var m=0,C=0,S=l.document.documentElement,P=l.document.body||{scrollLeft:0,scrollTop:0};v&&(v.parentNode||v.host)&&(v=v.parentNode||v.host,v===l.document?(m=P.scrollLeft||S.scrollLeft||0,C=P.scrollTop||S.scrollTop||0):(m+=v.scrollLeft||0,C+=v.scrollTop||0),!(v.nodeType===1&&v.style.position==="fixed")););return{left:m,top:C}}function o(v){var m,C=v&&v.ownerDocument,S={left:0,top:0},P={left:0,top:0},F,G={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!C)return P;for(var $ in G)P[G[$]]+=parseInt(r(v,$),10)||0;return m=C.documentElement,typeof v.getBoundingClientRect!="undefined"&&(S=v.getBoundingClientRect()),F=s(v),{left:S.left+F.left-(m.clientLeft||0)+P.left,top:S.top+F.top-(m.clientTop||0)+P.top}}var r;l.document.defaultView&&l.document.defaultView.getComputedStyle?r=function(v,m){var C=l.document.defaultView.getComputedStyle(v,null);return C?C[m]:void 0}:r=function(v,m){var C=v.style[m];return!C&&v.currentStyle&&(C=v.currentStyle[m]),C},function(){var v=l.document.documentElement.style,m="userSelect"in v?"userSelect":"MozUserSelect"in v?"MozUserSelect":"WebkitUserSelect"in v?"WebkitUserSelect":"KhtmlUserSelect"in v?"KhtmlUserSelect":"";function C(P){return typeof P.onselectstart!="undefined"&&(P.onselectstart=l.util.falseFunction),m?P.style[m]="none":typeof P.unselectable=="string"&&(P.unselectable="on"),P}function S(P){return typeof P.onselectstart!="undefined"&&(P.onselectstart=null),m?P.style[m]="":typeof P.unselectable=="string"&&(P.unselectable=""),P}l.util.makeElementUnselectable=C,l.util.makeElementSelectable=S}();function c(v){var m=l.jsdomImplForWrapper(v);return m._canvas||m._image}function f(v){if(!!l.isLikelyNode){var m=l.jsdomImplForWrapper(v);m&&(m._image=null,m._canvas=null,m._currentSrc=null,m._attributes=null,m._classList=null)}}function g(v,m){v.imageSmoothingEnabled=v.imageSmoothingEnabled||v.webkitImageSmoothingEnabled||v.mozImageSmoothingEnabled||v.msImageSmoothingEnabled||v.oImageSmoothingEnabled,v.imageSmoothingEnabled=m}l.util.setImageSmoothing=g,l.util.getById=n,l.util.toArray=a,l.util.addClass=i,l.util.makeElement=e,l.util.wrapElement=t,l.util.getScrollLeftTop=s,l.util.getElementOffset=o,l.util.getNodeCanvas=c,l.util.cleanUpJsdomNode=f}(),function(){function u(a,e){return a+(/\?/.test(a)?"&":"?")+e}function n(){}function h(a,e){e||(e={});var i=e.method?e.method.toUpperCase():"GET",t=e.onComplete||function(){},s=new l.window.XMLHttpRequest,o=e.body||e.parameters;return s.onreadystatechange=function(){s.readyState===4&&(t(s),s.onreadystatechange=n)},i==="GET"&&(o=null,typeof e.parameters=="string"&&(a=u(a,e.parameters))),s.open(i,a,!0),(i==="POST"||i==="PUT")&&s.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),s.send(o),s}l.util.request=h}(),l.log=console.log,l.warn=console.warn,function(){var u=l.util.object.extend,n=l.util.object.clone,h=[];l.util.object.extend(h,{cancelAll:function(){var c=this.splice(0);return c.forEach(function(f){f.cancel()}),c},cancelByCanvas:function(c){if(!c)return[];var f=this.filter(function(g){return typeof g.target=="object"&&g.target.canvas===c});return f.forEach(function(g){g.cancel()}),f},cancelByTarget:function(c){var f=this.findAnimationsByTarget(c);return f.forEach(function(g){g.cancel()}),f},findAnimationIndex:function(c){return this.indexOf(this.findAnimation(c))},findAnimation:function(c){return this.find(function(f){return f.cancel===c})},findAnimationsByTarget:function(c){return c?this.filter(function(f){return f.target===c}):[]}});function a(){return!1}function e(c,f,g,v){return-g*Math.cos(c/v*(Math.PI/2))+g+f}function i(c){c||(c={});var f=!1,g,v=function(){var m=l.runningAnimations.indexOf(g);return m>-1&&l.runningAnimations.splice(m,1)[0]};return g=u(n(c),{cancel:function(){return f=!0,v()},currentValue:"startValue"in c?c.startValue:0,completionRate:0,durationRate:0}),l.runningAnimations.push(g),o(function(m){var C=m||+new Date,S=c.duration||500,P=C+S,F,G=c.onChange||a,$=c.abort||a,Q=c.onComplete||a,tt=c.easing||e,Z="startValue"in c?c.startValue.length>0:!1,K="startValue"in c?c.startValue:0,et="endValue"in c?c.endValue:100,rt=c.byValue||(Z?K.map(function(it,b){return et[b]-K[b]}):et-K);c.onStart&&c.onStart(),function it(b){F=b||+new Date;var O=F>P?S:F-C,A=O/S,T=Z?K.map(function(x,_){return tt(O,K[_],rt[_],S)}):tt(O,K,rt,S),k=Math.abs(Z?(T[0]-K[0])/rt[0]:(T-K)/rt);if(g.currentValue=Z?T.slice():T,g.completionRate=k,g.durationRate=A,!f){if($(T,k,A)){v();return}if(F>P){g.currentValue=Z?et.slice():et,g.completionRate=1,g.durationRate=1,G(Z?et.slice():et,1,1),Q(et,1,1),v();return}else G(T,k,A),o(it)}}(C)}),g.cancel}var t=l.window.requestAnimationFrame||l.window.webkitRequestAnimationFrame||l.window.mozRequestAnimationFrame||l.window.oRequestAnimationFrame||l.window.msRequestAnimationFrame||function(c){return l.window.setTimeout(c,1e3/60)},s=l.window.cancelAnimationFrame||l.window.clearTimeout;function o(){return t.apply(l.window,arguments)}function r(){return s.apply(l.window,arguments)}l.util.animate=i,l.util.requestAnimFrame=o,l.util.cancelAnimFrame=r,l.runningAnimations=h}(),function(){function u(h,a,e){var i="rgba("+parseInt(h[0]+e*(a[0]-h[0]),10)+","+parseInt(h[1]+e*(a[1]-h[1]),10)+","+parseInt(h[2]+e*(a[2]-h[2]),10);return i+=","+(h&&a?parseFloat(h[3]+e*(a[3]-h[3])):1),i+=")",i}function n(h,a,e,i){var t=new l.Color(h).getSource(),s=new l.Color(a).getSource(),o=i.onComplete,r=i.onChange;return i=i||{},l.util.animate(l.util.object.extend(i,{duration:e||500,startValue:t,endValue:s,byValue:s,easing:function(c,f,g,v){var m=i.colorEasing?i.colorEasing(c,v):1-Math.cos(c/v*(Math.PI/2));return u(f,g,m)},onComplete:function(c,f,g){if(o)return o(u(s,s,0),f,g)},onChange:function(c,f,g){if(r){if(Array.isArray(c))return r(u(c,c,0),f,g);r(c,f,g)}}}))}l.util.animateColor=n}(),function(){function u(b,O,A,T){return b<Math.abs(O)?(b=O,T=A/4):O===0&&b===0?T=A/(2*Math.PI)*Math.asin(1):T=A/(2*Math.PI)*Math.asin(O/b),{a:b,c:O,p:A,s:T}}function n(b,O,A){return b.a*Math.pow(2,10*(O-=1))*Math.sin((O*A-b.s)*(2*Math.PI)/b.p)}function h(b,O,A,T){return A*((b=b/T-1)*b*b+1)+O}function a(b,O,A,T){return b/=T/2,b<1?A/2*b*b*b+O:A/2*((b-=2)*b*b+2)+O}function e(b,O,A,T){return A*(b/=T)*b*b*b+O}function i(b,O,A,T){return-A*((b=b/T-1)*b*b*b-1)+O}function t(b,O,A,T){return b/=T/2,b<1?A/2*b*b*b*b+O:-A/2*((b-=2)*b*b*b-2)+O}function s(b,O,A,T){return A*(b/=T)*b*b*b*b+O}function o(b,O,A,T){return A*((b=b/T-1)*b*b*b*b+1)+O}function r(b,O,A,T){return b/=T/2,b<1?A/2*b*b*b*b*b+O:A/2*((b-=2)*b*b*b*b+2)+O}function c(b,O,A,T){return-A*Math.cos(b/T*(Math.PI/2))+A+O}function f(b,O,A,T){return A*Math.sin(b/T*(Math.PI/2))+O}function g(b,O,A,T){return-A/2*(Math.cos(Math.PI*b/T)-1)+O}function v(b,O,A,T){return b===0?O:A*Math.pow(2,10*(b/T-1))+O}function m(b,O,A,T){return b===T?O+A:A*(-Math.pow(2,-10*b/T)+1)+O}function C(b,O,A,T){return b===0?O:b===T?O+A:(b/=T/2,b<1?A/2*Math.pow(2,10*(b-1))+O:A/2*(-Math.pow(2,-10*--b)+2)+O)}function S(b,O,A,T){return-A*(Math.sqrt(1-(b/=T)*b)-1)+O}function P(b,O,A,T){return A*Math.sqrt(1-(b=b/T-1)*b)+O}function F(b,O,A,T){return b/=T/2,b<1?-A/2*(Math.sqrt(1-b*b)-1)+O:A/2*(Math.sqrt(1-(b-=2)*b)+1)+O}function G(b,O,A,T){var k=1.70158,x=0,_=A;if(b===0)return O;if(b/=T,b===1)return O+A;x||(x=T*.3);var M=u(_,A,x,k);return-n(M,b,T)+O}function $(b,O,A,T){var k=1.70158,x=0,_=A;if(b===0)return O;if(b/=T,b===1)return O+A;x||(x=T*.3);var M=u(_,A,x,k);return M.a*Math.pow(2,-10*b)*Math.sin((b*T-M.s)*(2*Math.PI)/M.p)+M.c+O}function Q(b,O,A,T){var k=1.70158,x=0,_=A;if(b===0)return O;if(b/=T/2,b===2)return O+A;x||(x=T*(.3*1.5));var M=u(_,A,x,k);return b<1?-.5*n(M,b,T)+O:M.a*Math.pow(2,-10*(b-=1))*Math.sin((b*T-M.s)*(2*Math.PI)/M.p)*.5+M.c+O}function tt(b,O,A,T,k){return k===void 0&&(k=1.70158),A*(b/=T)*b*((k+1)*b-k)+O}function Z(b,O,A,T,k){return k===void 0&&(k=1.70158),A*((b=b/T-1)*b*((k+1)*b+k)+1)+O}function K(b,O,A,T,k){return k===void 0&&(k=1.70158),b/=T/2,b<1?A/2*(b*b*(((k*=1.525)+1)*b-k))+O:A/2*((b-=2)*b*(((k*=1.525)+1)*b+k)+2)+O}function et(b,O,A,T){return A-rt(T-b,0,A,T)+O}function rt(b,O,A,T){return(b/=T)<1/2.75?A*(7.5625*b*b)+O:b<2/2.75?A*(7.5625*(b-=1.5/2.75)*b+.75)+O:b<2.5/2.75?A*(7.5625*(b-=2.25/2.75)*b+.9375)+O:A*(7.5625*(b-=2.625/2.75)*b+.984375)+O}function it(b,O,A,T){return b<T/2?et(b*2,0,A,T)*.5+O:rt(b*2-T,0,A,T)*.5+A*.5+O}l.util.ease={easeInQuad:function(b,O,A,T){return A*(b/=T)*b+O},easeOutQuad:function(b,O,A,T){return-A*(b/=T)*(b-2)+O},easeInOutQuad:function(b,O,A,T){return b/=T/2,b<1?A/2*b*b+O:-A/2*(--b*(b-2)-1)+O},easeInCubic:function(b,O,A,T){return A*(b/=T)*b*b+O},easeOutCubic:h,easeInOutCubic:a,easeInQuart:e,easeOutQuart:i,easeInOutQuart:t,easeInQuint:s,easeOutQuint:o,easeInOutQuint:r,easeInSine:c,easeOutSine:f,easeInOutSine:g,easeInExpo:v,easeOutExpo:m,easeInOutExpo:C,easeInCirc:S,easeOutCirc:P,easeInOutCirc:F,easeInElastic:G,easeOutElastic:$,easeInOutElastic:Q,easeInBack:tt,easeOutBack:Z,easeInOutBack:K,easeInBounce:et,easeOutBounce:rt,easeInOutBounce:it}}(),function(u){var n=u.fabric||(u.fabric={}),h=n.util.object.extend,a=n.util.object.clone,e=n.util.toFixed,i=n.util.parseUnit,t=n.util.multiplyTransformMatrices,s=["path","circle","polygon","polyline","ellipse","rect","line","image","text"],o=["symbol","image","marker","pattern","view","svg"],r=["pattern","defs","symbol","metadata","clipPath","mask","desc"],c=["symbol","g","a","svg","clipPath","defs"],f={cx:"left",x:"left",r:"radius",cy:"top",y:"top",display:"visible",visibility:"visible",transform:"transformMatrix","fill-opacity":"fillOpacity","fill-rule":"fillRule","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","letter-spacing":"charSpacing","paint-order":"paintFirst","stroke-dasharray":"strokeDashArray","stroke-dashoffset":"strokeDashOffset","stroke-linecap":"strokeLineCap","stroke-linejoin":"strokeLineJoin","stroke-miterlimit":"strokeMiterLimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-decoration":"textDecoration","text-anchor":"textAnchor",opacity:"opacity","clip-path":"clipPath","clip-rule":"clipRule","vector-effect":"strokeUniform","image-rendering":"imageSmoothing"},g={stroke:"strokeOpacity",fill:"fillOpacity"},v="font-size",m="clip-path";n.svgValidTagNamesRegEx=P(s),n.svgViewBoxElementsRegEx=P(o),n.svgInvalidAncestorsRegEx=P(r),n.svgValidParentsRegEx=P(c),n.cssRules={},n.gradientDefs={},n.clipPaths={};function C(x){return x in f?f[x]:x}function S(x,_,M,I){var W=Array.isArray(_),j;if((x==="fill"||x==="stroke")&&_==="none")_="";else{if(x==="strokeUniform")return _==="non-scaling-stroke";if(x==="strokeDashArray")_==="none"?_=null:_=_.replace(/,/g," ").split(/\s+/).map(parseFloat);else if(x==="transformMatrix")M&&M.transformMatrix?_=t(M.transformMatrix,n.parseTransformAttribute(_)):_=n.parseTransformAttribute(_);else if(x==="visible")_=_!=="none"&&_!=="hidden",M&&M.visible===!1&&(_=!1);else if(x==="opacity")_=parseFloat(_),M&&typeof M.opacity!="undefined"&&(_*=M.opacity);else if(x==="textAnchor")_=_==="start"?"left":_==="end"?"right":"center";else if(x==="charSpacing")j=i(_,I)/I*1e3;else if(x==="paintFirst"){var X=_.indexOf("fill"),V=_.indexOf("stroke"),_="fill";(X>-1&&V>-1&&V<X||X===-1&&V>-1)&&(_="stroke")}else{if(x==="href"||x==="xlink:href"||x==="font")return _;if(x==="imageSmoothing")return _==="optimizeQuality";j=W?_.map(i):i(_,I)}}return!W&&isNaN(j)?_:j}function P(x){return new RegExp("^("+x.join("|")+")\\b","i")}function F(x){for(var _ in g)if(!(typeof x[g[_]]=="undefined"||x[_]==="")){if(typeof x[_]=="undefined"){if(!n.Object.prototype[_])continue;x[_]=n.Object.prototype[_]}if(x[_].indexOf("url(")!==0){var M=new n.Color(x[_]);x[_]=M.setAlpha(e(M.getAlpha()*x[g[_]],2)).toRgba()}}return x}function G(x,_){var M,I=[],W,j,X;for(j=0,X=_.length;j<X;j++)M=_[j],W=x.getElementsByTagName(M),I=I.concat(Array.prototype.slice.call(W));return I}n.parseTransformAttribute=function(){function x(N,st){var ot=n.util.cos(st[0]),lt=n.util.sin(st[0]),gt=0,ct=0;st.length===3&&(gt=st[1],ct=st[2]),N[0]=ot,N[1]=lt,N[2]=-lt,N[3]=ot,N[4]=gt-(ot*gt-lt*ct),N[5]=ct-(lt*gt+ot*ct)}function _(N,st){var ot=st[0],lt=st.length===2?st[1]:st[0];N[0]=ot,N[3]=lt}function M(N,st,ot){N[ot]=Math.tan(n.util.degreesToRadians(st[0]))}function I(N,st){N[4]=st[0],st.length===2&&(N[5]=st[1])}var W=n.iMatrix,j=n.reNum,X=n.commaWsp,V="(?:(skewX)\\s*\\(\\s*("+j+")\\s*\\))",J="(?:(skewY)\\s*\\(\\s*("+j+")\\s*\\))",L="(?:(rotate)\\s*\\(\\s*("+j+")(?:"+X+"("+j+")"+X+"("+j+"))?\\s*\\))",D="(?:(scale)\\s*\\(\\s*("+j+")(?:"+X+"("+j+"))?\\s*\\))",z="(?:(translate)\\s*\\(\\s*("+j+")(?:"+X+"("+j+"))?\\s*\\))",H="(?:(matrix)\\s*\\(\\s*("+j+")"+X+"("+j+")"+X+"("+j+")"+X+"("+j+")"+X+"("+j+")"+X+"("+j+")\\s*\\))",R="(?:"+H+"|"+z+"|"+D+"|"+L+"|"+V+"|"+J+")",Y="(?:"+R+"(?:"+X+"*"+R+")*)",q="^\\s*(?:"+Y+"?)\\s*$",at=new RegExp(q),nt=new RegExp(R,"g");return function(N){var st=W.concat(),ot=[];if(!N||N&&!at.test(N))return st;N.replace(nt,function(gt){var ct=new RegExp(R).exec(gt).filter(function(kt){return!!kt}),_t=ct[1],pt=ct.slice(2).map(parseFloat);switch(_t){case"translate":I(st,pt);break;case"rotate":pt[0]=n.util.degreesToRadians(pt[0]),x(st,pt);break;case"scale":_(st,pt);break;case"skewX":M(st,pt,2);break;case"skewY":M(st,pt,1);break;case"matrix":st=pt;break}ot.push(st.concat()),st=W.concat()});for(var lt=ot[0];ot.length>1;)ot.shift(),lt=n.util.multiplyTransformMatrices(lt,ot[0]);return lt}}();function $(x,_){var M,I;x.replace(/;\s*$/,"").split(";").forEach(function(W){var j=W.split(":");M=j[0].trim().toLowerCase(),I=j[1].trim(),_[M]=I})}function Q(x,_){var M,I;for(var W in x)typeof x[W]!="undefined"&&(M=W.toLowerCase(),I=x[W],_[M]=I)}function tt(x,_){var M={};for(var I in n.cssRules[_])if(Z(x,I.split(" ")))for(var W in n.cssRules[_][I])M[W]=n.cssRules[_][I][W];return M}function Z(x,_){var M,I=!0;return M=et(x,_.pop()),M&&_.length&&(I=K(x,_)),M&&I&&_.length===0}function K(x,_){for(var M,I=!0;x.parentNode&&x.parentNode.nodeType===1&&_.length;)I&&(M=_.pop()),x=x.parentNode,I=et(x,M);return _.length===0}function et(x,_){var M=x.nodeName,I=x.getAttribute("class"),W=x.getAttribute("id"),j,X;if(j=new RegExp("^"+M,"i"),_=_.replace(j,""),W&&_.length&&(j=new RegExp("#"+W+"(?![a-zA-Z\\-]+)","i"),_=_.replace(j,"")),I&&_.length)for(I=I.split(" "),X=I.length;X--;)j=new RegExp("\\."+I[X]+"(?![a-zA-Z\\-]+)","i"),_=_.replace(j,"");return _.length===0}function rt(x,_){var M;if(x.getElementById&&(M=x.getElementById(_)),M)return M;var I,W,j,X=x.getElementsByTagName("*");for(W=0,j=X.length;W<j;W++)if(I=X[W],_===I.getAttribute("id"))return I}function it(x){for(var _=G(x,["use","svg:use"]),M=0;_.length&&M<_.length;){var I=_[M],W=I.getAttribute("xlink:href")||I.getAttribute("href");if(W===null)return;var j=W.slice(1),X=I.getAttribute("x")||0,V=I.getAttribute("y")||0,J=rt(x,j).cloneNode(!0),L=(J.getAttribute("transform")||"")+" translate("+X+", "+V+")",D,z=_.length,H,R,Y,q,at=n.svgNS;if(O(J),/^svg$/i.test(J.nodeName)){var nt=J.ownerDocument.createElementNS(at,"g");for(R=0,Y=J.attributes,q=Y.length;R<q;R++)H=Y.item(R),nt.setAttributeNS(at,H.nodeName,H.nodeValue);for(;J.firstChild;)nt.appendChild(J.firstChild);J=nt}for(R=0,Y=I.attributes,q=Y.length;R<q;R++)H=Y.item(R),!(H.nodeName==="x"||H.nodeName==="y"||H.nodeName==="xlink:href"||H.nodeName==="href")&&(H.nodeName==="transform"?L=H.nodeValue+" "+L:J.setAttribute(H.nodeName,H.nodeValue));J.setAttribute("transform",L),J.setAttribute("instantiated_by_use","1"),J.removeAttribute("id"),D=I.parentNode,D.replaceChild(J,I),_.length===z&&M++}}var b=new RegExp("^\\s*("+n.reNum+"+)\\s*,?\\s*("+n.reNum+"+)\\s*,?\\s*("+n.reNum+"+)\\s*,?\\s*("+n.reNum+"+)\\s*$");function O(x){if(!n.svgViewBoxElementsRegEx.test(x.nodeName))return{};var _=x.getAttribute("viewBox"),M=1,I=1,W=0,j=0,X,V,J,L,D=x.getAttribute("width"),z=x.getAttribute("height"),H=x.getAttribute("x")||0,R=x.getAttribute("y")||0,Y=x.getAttribute("preserveAspectRatio")||"",q=!_||!(_=_.match(b)),at=!D||!z||D==="100%"||z==="100%",nt=q&&at,N={},st="",ot=0,lt=0;if(N.width=0,N.height=0,N.toBeParsed=nt,q&&(H||R)&&x.parentNode&&x.parentNode.nodeName!=="#document"&&(st=" translate("+i(H)+" "+i(R)+") ",J=(x.getAttribute("transform")||"")+st,x.setAttribute("transform",J),x.removeAttribute("x"),x.removeAttribute("y")),nt)return N;if(q)return N.width=i(D),N.height=i(z),N;if(W=-parseFloat(_[1]),j=-parseFloat(_[2]),X=parseFloat(_[3]),V=parseFloat(_[4]),N.minX=W,N.minY=j,N.viewBoxWidth=X,N.viewBoxHeight=V,at?(N.width=X,N.height=V):(N.width=i(D),N.height=i(z),M=N.width/X,I=N.height/V),Y=n.util.parsePreserveAspectRatioAttribute(Y),Y.alignX!=="none"&&(Y.meetOrSlice==="meet"&&(I=M=M>I?I:M),Y.meetOrSlice==="slice"&&(I=M=M>I?M:I),ot=N.width-X*M,lt=N.height-V*M,Y.alignX==="Mid"&&(ot/=2),Y.alignY==="Mid"&&(lt/=2),Y.alignX==="Min"&&(ot=0),Y.alignY==="Min"&&(lt=0)),M===1&&I===1&&W===0&&j===0&&H===0&&R===0)return N;if((H||R)&&x.parentNode.nodeName!=="#document"&&(st=" translate("+i(H)+" "+i(R)+") "),J=st+" matrix("+M+" 0 0 "+I+" "+(W*M+ot)+" "+(j*I+lt)+") ",x.nodeName==="svg"){for(L=x.ownerDocument.createElementNS(n.svgNS,"g");x.firstChild;)L.appendChild(x.firstChild);x.appendChild(L)}else L=x,L.removeAttribute("x"),L.removeAttribute("y"),J=L.getAttribute("transform")+J;return L.setAttribute("transform",J),N}function A(x,_){for(;x&&(x=x.parentNode);)if(x.nodeName&&_.test(x.nodeName.replace("svg:",""))&&!x.getAttribute("instantiated_by_use"))return!0;return!1}n.parseSVGDocument=function(x,_,M,I){if(!!x){it(x);var W=n.Object.__uid++,j,X,V=O(x),J=n.util.toArray(x.getElementsByTagName("*"));if(V.crossOrigin=I&&I.crossOrigin,V.svgUid=W,J.length===0&&n.isLikelyNode){J=x.selectNodes('//*[name(.)!="svg"]');var L=[];for(j=0,X=J.length;j<X;j++)L[j]=J[j];J=L}var D=J.filter(function(H){return O(H),n.svgValidTagNamesRegEx.test(H.nodeName.replace("svg:",""))&&!A(H,n.svgInvalidAncestorsRegEx)});if(!D||D&&!D.length){_&&_([],{});return}var z={};J.filter(function(H){return H.nodeName.replace("svg:","")==="clipPath"}).forEach(function(H){var R=H.getAttribute("id");z[R]=n.util.toArray(H.getElementsByTagName("*")).filter(function(Y){return n.svgValidTagNamesRegEx.test(Y.nodeName.replace("svg:",""))})}),n.gradientDefs[W]=n.getGradientDefs(x),n.cssRules[W]=n.getCSSRules(x),n.clipPaths[W]=z,n.parseElements(D,function(H,R){_&&(_(H,V,R,J),delete n.gradientDefs[W],delete n.cssRules[W],delete n.clipPaths[W])},a(V),M,I)}};function T(x,_){var M=["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"],I="xlink:href",W=_.getAttribute(I).slice(1),j=rt(x,W);if(j&&j.getAttribute(I)&&T(x,j),M.forEach(function(V){j&&!_.hasAttribute(V)&&j.hasAttribute(V)&&_.setAttribute(V,j.getAttribute(V))}),!_.children.length)for(var X=j.cloneNode(!0);X.firstChild;)_.appendChild(X.firstChild);_.removeAttribute(I)}var k=new RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+n.reNum+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+n.reNum+"))?\\s+(.*)");h(n,{parseFontDeclaration:function(x,_){var M=x.match(k);if(!!M){var I=M[1],W=M[3],j=M[4],X=M[5],V=M[6];I&&(_.fontStyle=I),W&&(_.fontWeight=isNaN(parseFloat(W))?W:parseFloat(W)),j&&(_.fontSize=i(j)),V&&(_.fontFamily=V),X&&(_.lineHeight=X==="normal"?1:X)}},getGradientDefs:function(x){var _=["linearGradient","radialGradient","svg:linearGradient","svg:radialGradient"],M=G(x,_),I,W=0,j={};for(W=M.length;W--;)I=M[W],I.getAttribute("xlink:href")&&T(x,I),j[I.getAttribute("id")]=I;return j},parseAttributes:function(x,_,M){if(!!x){var I,W={},j,X;typeof M=="undefined"&&(M=x.getAttribute("svgUid")),x.parentNode&&n.svgValidParentsRegEx.test(x.parentNode.nodeName)&&(W=n.parseAttributes(x.parentNode,_,M));var V=_.reduce(function(Y,q){return I=x.getAttribute(q),I&&(Y[q]=I),Y},{}),J=h(tt(x,M),n.parseStyleAttribute(x));V=h(V,J),J[m]&&x.setAttribute(m,J[m]),j=X=W.fontSize||n.Text.DEFAULT_SVG_FONT_SIZE,V[v]&&(V[v]=j=i(V[v],X));var L,D,z={};for(var H in V)L=C(H),D=S(L,V[H],W,j),z[L]=D;z&&z.font&&n.parseFontDeclaration(z.font,z);var R=h(W,z);return n.svgValidParentsRegEx.test(x.nodeName)?R:F(R)}},parseElements:function(x,_,M,I,W){new n.ElementsParser(x,_,M,I,W).parse()},parseStyleAttribute:function(x){var _={},M=x.getAttribute("style");return M&&(typeof M=="string"?$(M,_):Q(M,_)),_},parsePointsAttribute:function(x){if(!x)return null;x=x.replace(/,/g," ").trim(),x=x.split(/\s+/);var _=[],M,I;for(M=0,I=x.length;M<I;M+=2)_.push({x:parseFloat(x[M]),y:parseFloat(x[M+1])});return _},getCSSRules:function(x){var _=x.getElementsByTagName("style"),M,I,W={},j;for(M=0,I=_.length;M<I;M++){var X=_[M].textContent;X=X.replace(/\/\*[\s\S]*?\*\//g,""),X.trim()!==""&&(j=X.split("}"),j=j.filter(function(V){return V.trim()}),j.forEach(function(V){var J=V.split("{"),L={},D=J[1].trim(),z=D.split(";").filter(function(q){return q.trim()});for(M=0,I=z.length;M<I;M++){var H