blob: 5d6a271424e4016ace9818423471bd9f8d2a0c59 [file] [log] [blame]
(function(window){function Matrix(t){var e=this;e._t=e.transform,e.a=e.d=1,e.b=e.c=e.e=e.f=0,e.context=t,e.cos=e.sin=0,t&&t.setTransform(1,0,0,1,0,0)}function styleDiv(t){t.style.position="absolute",t.style.top=0,t.style.left=0,t.style.display="block",t.style.verticalAlign="top",t.style.backfaceVisibility=t.style.webkitBackfaceVisibility="hidden",styleUnselectableDiv(t)}function styleUnselectableDiv(t){t.style.userSelect="none",t.style.MozUserSelect="none",t.style.webkitUserSelect="none",t.style.oUserSelect="none"}function randomString(t,e){void 0===e&&(e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");var a,i="";for(a=t;a>0;--a)i+=e[Math.round(Math.random()*(e.length-1))];return i}function componentToHex(t){var e=t.toString(16);return 1==e.length?"0"+e:e}function rgbToHex(t,e,a){return"#"+componentToHex(t)+componentToHex(e)+componentToHex(a)}function fillToRgba(t,e){if(!cachedColors[t]){var a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);cachedColors[t]=parseInt(a[1],16)+","+parseInt(a[2],16)+","+parseInt(a[3],16)}return"rgba("+cachedColors[t]+","+e+")"}function createElement(t,e,a){if(!e){var i=Object.create(t.prototype,a),r={};return i&&"[object Function]"===r.toString.call(i.init)&&i.init(),i}e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.prototype.parent=t.prototype}function defineDescriptor(t,e,a,i){var r={writable:!1,configurable:!1,enumerable:!1,value:a};if(i)for(var n in i)r[n]=i[n];var s={};t&&"[object Function]"===s.toString.call(t)&&(t=t.prototype),Object.defineProperty(t,e,r)}function defineAccessor(t,e,a){var i,r={enumerable:!1,configurable:!1,get:function(){return i},set:function(t){i=t}};if(a)for(var n in a)r[n]=a[n];var s={};t&&"[object Function]"===s.toString.call(t)&&(t=t.prototype),Object.defineProperty(t,e,r)}function SVGRenderer(t){this.animationItem=t,this.layers=null}function CanvasRenderer(t){this.animationItem=t}function EffectsManager(){}function StrokeEffectManager(){}function MaskElement(){}function ICompElement(t,e){this.parent.constructor.call(this,t,e),this.layers=t.layers}function IImageElement(t,e){this.animationItem=e,this.assets=this.animationItem.getAssets(),this.path=this.animationItem.getPath(),this.parent.constructor.call(this,t,e)}function IShapeElement(t,e){this.shapes=[],this.parent.constructor.call(this,t,e)}function ShapeItemElement(t){this.data=t,this.shapeG=document.createElementNS(svgNS,"g"),this.pathLength=0,this.cachedData=[],"pathShape"===this.data.type?this.shape=document.createElementNS(svgNS,"path"):"rectShape"===this.data.type?this.shape=document.createElementNS(svgNS,"rect"):"ellipseShape"===this.data.type?(this.shape=document.createElementNS(svgNS,"ellipse"),this.data.trim&&this.adjustTrim()):this.shape=document.createElementNS(svgNS,"path"),this.data.trim?this.shape.setAttribute("stroke-linecap","butt"):(this.shape.setAttribute("stroke-linejoin","round"),this.shape.setAttribute("stroke-linecap","round")),this.data.renderedData||(this.data.renderedData={}),this.shape.setAttribute("name",this.data.name),styleUnselectableDiv(this.shapeG),styleUnselectableDiv(this.shape),this.shapeG.appendChild(this.shape)}function ISolidElement(t,e){this.parent.constructor.call(this,t,e)}function ITextElement(t,e){this.parent.constructor.call(this,t,e)}function CVBaseElement(t,e){this.renderer=e,this.data=t,this.currentAnimData=null,this.init()}function CVCompElement(t,e){this.parent.constructor.call(this,t,e),this.layers=t.layers}function CVImageElement(t,e){this.renderer=e,this.animationItem=e.animationItem,this.assets=this.animationItem.getAssets(),this.path=this.animationItem.getPath(),this.parent.constructor.call(this,t,e),this.animationItem.pendingElements+=1}function CVShapeElement(t,e){this.shapes=[],this.parent.constructor.call(this,t,e)}function CVShapeItemElement(t,e){this.data=t,this.renderer=e,this.frameNum=-1,this.renderedPaths={},this.trims=[],this.trimPos=0}function CVSolidElement(t,e){this.parent.constructor.call(this,t,e)}function CVTextElement(t,e){this.parent.constructor.call(this,t,e)}function CVMaskElement(){}function PlayerManager(){}function BasicPlayer(){}var svgNS="http://www.w3.org/2000/svg";Matrix.prototype={concat:function(t){return this.clone()._t(t.a,t.b,t.c,t.d,t.e,t.f)},flipX:function(){return this._t(-1,0,0,1,0,0)},flipY:function(){return this._t(1,0,0,-1,0,0)},reflectVector:function(t,e){var a=this.applyToPoint(0,1),i=2*(a.x*t+a.y*e);return t-=i*a.x,e-=i*a.y,{x:t,y:e}},reset:function(){return this.setTransform(1,0,0,1,0,0)},rotate:function(t){return 0==t?this:(this.cos=Math.cos(t),this.sin=Math.sin(t),this._t(this.cos,this.sin,-this.sin,this.cos,0,0))},rotateFromVector:function(t,e){return this.rotate(Math.atan2(e,t))},rotateDeg:function(t){return this.rotate(t*Math.PI/180)},scaleU:function(t){return this._t(t,0,0,t,0,0)},scale:function(t,e){return 1==t&&1==e?this:this._t(t,0,0,e,0,0)},scaleX:function(t){return this._t(t,0,0,1,0,0)},scaleY:function(t){return this._t(1,0,0,t,0,0)},shear:function(t,e){return this._t(1,e,t,1,0,0)},shearX:function(t){return this._t(1,0,t,1,0,0)},shearY:function(t){return this._t(1,t,0,1,0,0)},skew:function(t,e){return this.shear(Math.tan(t),Math.tan(e))},skewX:function(t){return this.shearX(Math.tan(t))},skewY:function(t){return this.shearY(Math.tan(t))},setTransform:function(t,e,a,i,r,n){return this.a=t,this.b=e,this.c=a,this.d=i,this.e=r,this.f=n,this._x()},translate:function(t,e){return this._t(1,0,0,1,t,e)},translateX:function(t){return this._t(1,0,0,1,t,0)},translateY:function(t){return this._t(1,0,0,1,0,t)},transform:function(t,e,a,i,r,n){var s=this.a,o=this.b,h=this.c,l=this.d,m=this.e,p=this.f;return this.a=s*t+h*e,this.b=o*t+l*e,this.c=s*a+h*i,this.d=o*a+l*i,this.e=s*r+h*n+m,this.f=o*r+l*n+p,this._x()},divide:function(t){if(!t.isInvertible())throw"Input matrix is not invertible";var e=t.inverse();return this._t(e.a,e.b,e.c,e.d,e.e,e.f)},divideScalar:function(t){var e=this;return e.a/=t,e.b/=t,e.c/=t,e.d/=t,e.e/=t,e.f/=t,e._x()},inverse:function(){if(this.isIdentity())return new Matrix;if(this.isInvertible()){var t=this,e=t.a,a=t.b,i=t.c,r=t.d,n=t.e,s=t.f,o=new Matrix,h=e*r-a*i;return o.a=r/h,o.b=-a/h,o.c=-i/h,o.d=e/h,o.e=(i*s-r*n)/h,o.f=-(e*s-a*n)/h,o}throw"Matrix is not invertible."},interpolate:function(t,e,a){var i=this,r=a?new Matrix(a):new Matrix;return r.a=i.a+(t.a-i.a)*e,r.b=i.b+(t.b-i.b)*e,r.c=i.c+(t.c-i.c)*e,r.d=i.d+(t.d-i.d)*e,r.e=i.e+(t.e-i.e)*e,r.f=i.f+(t.f-i.f)*e,r._x()},interpolateAnim:function(t,e,a){var i=this,r=a?new Matrix(a):new Matrix,n=i.decompose(),s=t.decompose(),o=n.rotation+(s.rotation-n.rotation)*e,h=n.translate.x+(s.translate.x-n.translate.x)*e,l=n.translate.y+(s.translate.y-n.translate.y)*e,m=n.scale.x+(s.scale.x-n.scale.x)*e,p=n.scale.y+(s.scale.y-n.scale.y)*e;return r.translate(h,l),r.rotate(o),r.scale(m,p),r._x()},decompose:function(t){var e=this,a=e.a,i=e.b,r=e.c,n=e.d,s=Math.acos,o=Math.atan,h=Math.sqrt,l=Math.PI,m={x:e.e,y:e.f},p=0,c={x:1,y:1},d={x:0,y:0},u=a*n-i*r;if(t)a?(d={x:o(r/a),y:o(i/a)},c={x:a,y:u/a}):i?(p=.5*l,c={x:i,y:u/i},d.x=o(n/i)):(c={x:r,y:n},d.x=.25*l);else if(a||i){var f=h(a*a+i*i);p=i>0?s(a/f):-s(a/f),c={x:f,y:u/f},d.x=o((a*r+i*n)/(f*f))}else if(r||n){var y=h(r*r+n*n);p=.5*l-(n>0?s(-r/y):-s(r/y)),c={x:u/y,y:y},d.y=o((a*r+i*n)/(y*y))}else c={x:0,y:0};return{scale:c,translate:m,rotation:p,skew:d}},determinant:function(){return this.a*this.d-this.b*this.c},applyToPoint:function(t,e){var a=this;return{x:t*a.a+e*a.c+a.e,y:t*a.b+e*a.d+a.f}},applyToArray:function(t){var e,a,i=0,r=[];if("number"==typeof t[0])for(a=t.length;a>i;)e=this.applyToPoint(t[i++],t[i++]),r.push(e.x,e.y);else for(;e=t[i];i++)r.push(this.applyToPoint(e.x,e.y));return r},applyToTypedArray:function(t,e){for(var a,i=0,r=t.length,n=e?new Float64Array(r):new Float32Array(r);r>i;)a=this.applyToPoint(t[i],t[i+1]),n[i++]=a.x,n[i++]=a.y;return n},applyToContext:function(t){var e=this;return t.setTransform(e.a,e.b,e.c,e.d,e.e,e.f),e},isIdentity:function(){var t=this;return t._q(t.a,1)&&t._q(t.b,0)&&t._q(t.c,0)&&t._q(t.d,1)&&t._q(t.e,0)&&t._q(t.f,0)},isInvertible:function(){return!this._q(this.determinant(),0)},isValid:function(){return!this._q(this.a*this.d,0)},clone:function(t){var e=this,a=new Matrix;return a.a=e.a,a.b=e.b,a.c=e.c,a.d=e.d,a.e=e.e,a.f=e.f,t||(a.context=e.context),a},isEqual:function(t){var e=this,a=e._q;return a(e.a,t.a)&&a(e.b,t.b)&&a(e.c,t.c)&&a(e.d,t.d)&&a(e.e,t.e)&&a(e.f,t.f)},toArray:function(){return[this.a,this.b,this.c,this.d,this.e,this.f]},toCSS:function(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"},toJSON:function(){var t=this;return'{"a":'+t.a+',"b":'+t.b+',"c":'+t.c+',"d":'+t.d+',"e":'+t.e+',"f":'+t.f+"}"},toString:function(){return""+this.toArray()},_q:function(t,e){return Math.abs(t-e)<1e-14},_x:function(){return this.context&&this.context.setTransform(this.a,this.b,this.c,this.d,this.e,this.f),this}};var MatrixManager=function(){var t=new Matrix,e=function(t,e,a,i,r,n,s,o,h){var l,m,p,c,d,u,f;return l=$M([[1,0,0,0],[0,Math.cos(t),Math.sin(-t),0],[0,Math.sin(t),Math.cos(t),0],[0,0,0,1]]),m=$M([[Math.cos(e),0,Math.sin(e),0],[0,1,0,0],[Math.sin(-e),0,Math.cos(e),0],[0,0,0,1]]),p=$M([[Math.cos(a),Math.sin(-a),0,0],[Math.sin(a),Math.cos(a),0,0],[0,0,1,0],[0,0,0,1]]),d=$M([[i,0,0,0],[0,r,0,0],[0,0,n,0],[0,0,0,1]]),u=l.x(m).x(p).x(d),u=u.transpose(),f=$M([[1,0,0,0],[0,1,0,0],[0,0,1,0],[s,o,h,1]]),u=u.x(f),c="matrix3d(",c+=u.e(1,1).toFixed(5)+","+u.e(1,2).toFixed(5)+","+u.e(1,3).toFixed(5)+","+u.e(1,4).toFixed(5)+",",c+=u.e(2,1).toFixed(5)+","+u.e(2,2).toFixed(5)+","+u.e(2,3).toFixed(5)+","+u.e(2,4).toFixed(5)+",",c+=u.e(3,1).toFixed(5)+","+u.e(3,2).toFixed(5)+","+u.e(3,3).toFixed(5)+","+u.e(3,4).toFixed(5)+",",c+=u.e(4,1).toFixed(5)+","+u.e(4,2).toFixed(5)+","+u.e(4,3).toFixed(5)+","+u.e(4,4).toFixed(5),c+=")"},a=function(e,a,i,r,n){return t.reset().translate(r,n).rotate(e).scale(a,i).toCSS()},i=function(e,a,i,r,n){return t.reset().translate(r,n).rotate(e).scale(a,i).toArray()},r=function(t){return a(t.r,t.s[0],t.s[1],t.p[0],t.p[1])},n=function(t,i){return i?e(-t.tr.r[0],t.tr.r[1],t.tr.r[2],t.tr.s[0],t.tr.s[1],t.tr.s[2],t.tr.p[0],t.tr.p[1],t.tr.p[2]):a(t.tr.r[2],t.tr.s[0],t.tr.s[1],t.tr.p[0],t.tr.p[1])},s=function(t,i){return i?e(-t.r[0],t.r[1],t.r[2],t.s[0],t.s[1],t.s[2],t.p[0],t.p[1],t.p[2]):a(t.r[2],t.s[0],t.s[1],t.p[0],t.p[1])},o=function(t,e){return e?null:i(t.r[2],t.s[0],t.s[1],t.p[0],t.p[1])};return{get2DMatrix:r,getMatrix:n,getMatrix2:s,getMatrixArray:o}};!function(){for(var t=0,e=["ms","moz","webkit","o"],a=0;a<e.length&&!window.requestAnimationFrame;++a)window.requestAnimationFrame=window[e[a]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[a]+"CancelAnimationFrame"]||window[e[a]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e){var a=(new Date).getTime(),i=Math.max(0,16-(a-t)),r=window.setTimeout(function(){e(a+i)},i);return t=a+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}();var subframeEnabled=!1,supportsPath2D="function"==typeof Path2D,cachedColors={},body;!function(){function t(){this.commandArrays=[]}void 0==CanvasRenderingContext2D.prototype.ellipse&&(CanvasRenderingContext2D.prototype.ellipse=function(t,e,a,i,r,n,s,o){this.save(),this.translate(t,e),this.rotate(r),this.scale(a,i),this.arc(0,0,1,n,s,o),this.restore()}),supportsPath2D||(t.prototype.moveTo=function(t,e){this.commandArrays.push({type:"move",coord:[t,e]})},t.prototype.lineTo=function(t,e){this.commandArrays.push({type:"line",coord:[t,e]})},t.prototype.bezierCurveTo=function(t,e,a,i,r,n){this.commandArrays.push({type:"bezierCurve",coord:[t,e,a,i,r,n]})},t.prototype.drawToContext=function(t){var e,a,i=this.commandArrays.length;for(t.beginPath(),a=0;i>a;a+=1)switch(e=this.commandArrays[a],e.type){case"move":t.moveTo(e.coord[0],e.coord[1]);break;case"line":t.lineTo(e.coord[0],e.coord[1]);break;case"bezierCurve":t.bezierCurveTo(e.coord[0],e.coord[1],e.coord[2],e.coord[3],e.coord[4],e.coord[5])}},Path2D=t)}();var dataManager=function(){function t(t,e,a){var i,n=r(t,e,a),s=[];for(i=0;e>i;i+=1)s.push(Math.floor(n[i]*V));return s}function e(a){var r,n;a.forEach(function(a){r=a.outPoint-a.startTime,n=a.startTime,a.layerName=i(a.layerName),a.parent&&(a.parent=i(a.parent)),a.renderedFrame={},animArray=[],lastFrame=-1,a.tm&&(a.tm=t(a.tm,r,n)),"PreCompLayer"==a.type&&e(a.layers)})}function a(t,a){V=a,e(t)}function i(t){return t=t.replace(/ /g,"_"),t=t.replace(/-/g,"_"),t=t.replace(/\./g,"_"),t=t.replace(/\//g,"_")}function r(t,e,a){var i,r,n=[];if(!(t instanceof Array)||null==t[0].t)return n.push(t),n;var s,o;n=[];var h,l,m,p=[];r=t.length;var c,d=1e3,u=[],f=[];t.forEach(function(t){if(t.t-=a,t.to){var e,i,r,n,s,o,h,l,m,p,c=0,y=null,g={points:[],length:0};for(e=0;d>e;e+=1)p=[],l=e/(d-1),m=0,u=[],f=[],t.to.forEach(function(e,a){null==u[a]&&(u[a]=t.s[a]+t.to[a],f[a]=t.e[a]+t.ti[a]),i=t.s[a]+(u[a]-t.s[a])*l,r=u[a]+(f[a]-u[a])*l,n=f[a]+(t.e[a]-f[a])*l,s=i+(r-i)*l,o=r+(n-r)*l,h=s+(o-s)*l,p.push(h),null!==y&&(m+=Math.pow(p[a]-y[a],2))}),m=Math.sqrt(m),c+=m,g.points.push({partialLength:c,point:p}),y=p,t.bezierData=g;g.segmentLength=c}});var y=0,g=0;for(i=0;e>i;i+=1){h=y;for(var v=!1;r-1>h;){if(s=t[h],o=t[h+1],i<s.t&&0==h){for(m=s.s.length,p=[],l=0;m>l;l+=1)p.push(s.s[l]);n.push(p),v=!0,y!=h&&(y=h,g=0);break}if(i>=s.t&&i<o.t){if(p=[],s.to){c=bez.getEasingCurve([s.o.x,s.o.y,s.i.x,s.i.y])("",i-s.t,0,1,o.t-s.t);var E,b,w,C=s.bezierData,S=C.segmentLength*c;for(l=g;l<C.points.length;){if(0==i||0==S||0==c){p=C.points[l].point,g=l;break}if(l==C.points.length-1)p=C.points[l].point;else if(S>C.points[l].partialLength&&S<C.points[l+1].partialLength){for(b=C.points[l].point.length,w=(S-C.points[l].partialLength)/(C.points[l+1].partialLength-C.points[l].partialLength),E=0;b>E;E+=1)p.push(C.points[l].point[E]+(C.points[l+1].point[E]-C.points[l].point[E])*w);g=l;break}l+=1}}else{var x,A,M,I;s.s.forEach(function(t,e){if(1!==s.h&&(s.o.x instanceof Array?(x=s.o.x[e],A=s.o.y[e],M=s.i.x[e],I=s.i.y[e]):(x=s.o.x,A=s.o.y,M=s.i.x,I=s.i.y),c=bez.getEasingCurve([x,A,M,I])("",i-s.t,0,1,o.t-s.t)),t.i){var a={i:[],o:[],v:[]};t.i.forEach(function(i,r){var n=[],o=[],h=[];i.forEach(function(a,i){1===s.h?(n.push(a),o.push(t.o[r][i]),h.push(t.v[r][i])):(n.push(a+(s.e[e].i[r][i]-a)*c),o.push(t.o[r][i]+(s.e[e].o[r][i]-t.o[r][i])*c),h.push(t.v[r][i]+(s.e[e].v[r][i]-t.v[r][i])*c))}),a.i.push(n),a.o.push(o),a.v.push(h)}),p.push(a)}else p.push(1===s.h?t:t+(s.e[e]-t)*c)})}n.push(p),v=!0,y!=h&&(y=h,g=0);break}h+=1}0==v&&(s=t[t.length-2],p=[],s.e.forEach(function(t){p.push(t)}),n.push(p))}for(h=n.length;e>h;)n.push(p),h+=1;return n}function n(t,e,a){if(!(t instanceof Array)||null==t[0].t)return t;for(var i=0,r=t.length-1;r>i&&(l=t[i],m=t[i+1],!(m.t-a>e));)i+=1;l.to&&!l.bezierData&&bez.buildBezierData(l);var n,s,o,h=0;if(p=[],l.to){if(c=l.bezierData,e>=m.t-a)return c.points[c.points.length-1].point;if(e<l.t-a)return c.points[0].point;o=bez.getEasingCurve([l.o.x,l.o.y,l.i.x,l.i.y])("",e-(l.t-a),0,1,m.t-a-(l.t-a));for(var d,u=c.segmentLength*o,f=0;h<c.points.length;){if(f+=c.points[h].partialLength,0==e||0==u||0==o){p=c.points[h].point;break}if(h==c.points.length-1)p=c.points[h].point;else if(u>f&&u<f+c.points[h+1].partialLength){for(s=c.points[h].point.length,d=(u-f)/c.points[h+1].partialLength,n=0;s>n;n+=1)p.push(c.points[h].point[n]+(c.points[h+1].point[n]-c.points[h].point[n])*d);break}h+=1}}else{var y,g,v,E;for(r=l.s.length,i=0;r>i;i+=1)if(1!==l.h&&(l.o.x instanceof Array?(y=l.o.x[i],g=l.o.y[i],v=l.i.x[i],E=l.i.y[i]):(y=l.o.x,g=l.o.y,v=l.i.x,E=l.i.y),o=bez.getEasingCurve([y,g,v,E])("",e-(l.t-a),0,1,m.t-a-(l.t-a)),e>=m.t-a?o=1:e<l.t-a&&(o=0)),l.s[i].i){var b={i:[],o:[],v:[]},w=l.s[i].i.length;for(h=0;w>h;h+=1){var C=[],S=[],x=[];for(s=l.s[i].i[h].length,n=0;s>n;n+=1)1===l.h?(C.push(l.s[i].i[h][n]),S.push(l.s[i].o[h][n]),x.push(l.s[i].v[h][n])):(C.push(l.s[i].i[h][n]+(l.e[i].i[h][n]-l.s[i].i[h][n])*o),S.push(l.s[i].o[h][n]+(l.e[i].o[h][n]-l.s[i].o[h][n])*o),x.push(l.s[i].v[h][n]+(l.e[i].v[h][n]-l.s[i].v[h][n])*o));b.i.push(C),b.o.push(S),b.v.push(x)}p.push(b)}else p.push(1===l.h?l.s[i]:l.s[i]+(l.e[i]-l.s[i])*o)}return p}function s(t,e){t instanceof Array||(t=[t]);var a,i,r,n=t.length;for(R="",a=0;n>a;a+=1){for(y=t[a],d=y.v,u=y.o,f=y.i,r=d.length,R+="M"+d[0][0]+","+d[0][1],i=1;r>i;i++)R+=" C"+(u[i-1][0]+d[i-1][0])+","+(u[i-1][1]+d[i-1][1])+" "+(f[i][0]+d[i][0])+","+(f[i][1]+d[i][1])+" "+d[i][0]+","+d[i][1];e!==!1&&(R+=" C"+(u[i-1][0]+d[i-1][0])+","+(u[i-1][1]+d[i-1][1])+" "+(f[0][0]+d[0][0])+","+(f[0][1]+d[0][1])+" "+d[0][0]+","+d[0][1])}return R}function o(t,e,a){var i,r,h,l,m,p=t.length;for(l=0;p>l;l+=1)if(m=t[l],i=e-m.startTime,!(e<m.inPoint||e>m.outPoint||m.an[i])){if(g={},v={},v.a=n(m.ks.a,i,m.startTime),E=n(m.ks.o,i,m.startTime),v.o=E instanceof Array?E[0]/100:E/100,b=n(m.ks.p,i,m.startTime),w=n(m.ks.r,i,m.startTime),C=n(m.ks.s,i,m.startTime),g.s=C instanceof Array?C.length>1?[C[0]/100,C[1]/100,C[2]/100]:[C[0]/100,C[0]/100,C[0]/100]:[C/100,C/100,C/100],g.r=w instanceof Array?w.length>1?[w[0]*Math.PI/180,w[1]*Math.PI/180,w[2]*Math.PI/180]:[w[0]*Math.PI/180,w[0]*Math.PI/180,w[0]*Math.PI/180]:[0,0,w*Math.PI/180],g.p=b,m.an[i]={forwardFrame:i,tr:v,matrixValue:z.getMatrix2(g),matrixArray:z.getMatrixArray(g)},m.hasMask)for(S=m.masksProperties,h=S.length,r=0;h>r;r+=1)S[r].pathStrings||(S[r].pathStrings=[],S[r].pathVertices=[],S[r].opacity=[]),x=n(S[r].pt,i,m.startTime),S[r].pathVertices[i]=x instanceof Array?x:[x],"svg"==a&&(S[r].pathStrings[i]=s(x,S[r].cl)),S[r].opacity[i]=n(S[r].o,i,m.startTime),S[r].opacity[i]=S[r].opacity[i]instanceof Array?S[r].opacity[i][0]/100:S[r].opacity[i]/100;if("PreCompLayer"==m.type)A=m.tm?m.tm[i]<0?0:m.tm[i]:i,o(m.layers,A,a);else if("ShapeLayer"==m.type)for(h=m.shapes.length,r=0;h>r;r+=1){if(M=m.shapes[r],M._created||(M.an.tr=[],M.an.renderedFrame={},M.ks?M.an.path=[]:M.el?M.an.ell=[]:M.rc&&(M.an.rect=[]),M.fl&&(M.an.fill=[]),M.st&&(M.an.stroke=[])),M.trim&&!M._created&&(M.trim.an=[]),M.fl&&(k=n(M.fl.c,i,m.startTime),I=n(M.fl.o,i,m.startTime),M.an.fill[i]={color:rgbToHex(Math.round(k[0]),Math.round(k[1]),Math.round(k[2])),opacity:I instanceof Array?I[0]/100:I/100,forwardFrame:i}),M.ks?(F=n(M.ks,i,m.startTime),M.an.path[i]={pathNodes:F,closed:M.closed,forwardFrame:i},"svg"==a&&(M.an.path[i].pathString=s(F,M.closed))):M.el?(B=n(M.el.p,i,m.startTime),L=n(M.el.s,i,m.startTime),M.an.ell[i]={p:B,size:L,forwardFrame:i}):M.rc&&(B=n(M.rc.p,i,m.startTime),L=n(M.rc.s,i,m.startTime),N=n(M.rc.r,i,m.startTime),M.an.rect[i]={position:B,size:L,roundness:N,forwardFrame:i}),M.st&&(T=n(M.st.c,i,m.startTime),P=n(M.st.o,i,m.startTime),D=n(M.st.w,i,m.startTime),M.an.stroke[i]={color:rgbToHex(Math.round(T[0]),Math.round(T[1]),Math.round(T[2])),opacity:P instanceof Array?P[0]/100:P/100,width:D instanceof Array?D[0]:D,forwardFrame:i}),_={},_.a=n(M.tr.a,i,m.startTime),_.o=n(M.tr.o,i,m.startTime),_.o=_.o instanceof Array?_.o[0]/100:_.o/100,_.s=n(M.tr.s,i,m.startTime),_.s=_.s instanceof Array?_.s.length>1?[_.s[0]/100,_.s[1]/100,_.s[2]/100]:[_.s[0]/100,_.s[0]/100,_.s[0]/100]:[_.s/100,_.s/100,_.s/100],_.r=n(M.tr.r,i,m.startTime),_.r=_.r instanceof Array?_.r.length>1?[_.r[0]*Math.PI/180,_.r[1]*Math.PI/180,_.r[2]*Math.PI/180]:[_.r[0]*Math.PI/180,_.r[0]*Math.PI/180,_.r[0]*Math.PI/180]:[0,0,_.r*Math.PI/180],_.p=n(M.tr.p,i,m.startTime),_.mt=z.getMatrix2(_),_.mtArr=z.getMatrixArray(_),_.forwardFrame=i,M.an.tr[i]=_,M.trim){var c=n(M.trim.s,i,m.startTime),d=n(M.trim.e,i,m.startTime),u=n(M.trim.o,i,m.startTime);M.trim.an[i]={s:c,e:d,o:u,forwardFrame:i}}M._created||(M._created=!0)}}}function h(t,e,a){o(t,e,a)}var l,m,p,c,d,u,f,y,g,v,E,b,w,C,S,x,A,M,I,k,F,T,P,D,B,L,N,V=0,z=new MatrixManager,R="",_={},O={};return O.completeData=a,O.renderFrame=h,O}(),bez=function(){function t(t,e,a,i,r,n){return Math.abs((a-t)*(n-e)-(r-t)*(i-e))<1e-7}function e(t,e){if(e=t,t="bez_"+e.join("_").replace(/\./g,"p"),r[t])return r[t];var a=function(t,e){var a=[null,null],i=[null,null],r=[null,null],n=function(n,s){return r[s]=3*t[s],i[s]=3*(e[s]-t[s])-r[s],a[s]=1-r[s]-i[s],n*(r[s]+n*(i[s]+n*a[s]))};return function(t){for(var e,s=t,o=0;++o<14&&(e=n(s,0)-t,!(Math.abs(e)<.001));)s-=e/(r[0]+s*(2*i[0]+3*a[0]*s));return n(s,1)}};return r[t]=function(t,i,r,n,s){return n*a([e[0],e[1]],[e[2],e[3]])(i/s)+r},r[t]}function a(e,a,i,r){var s=(e.join("_")+"_"+a.join("_")+"_"+i.join("_")+"_"+r.join("_")).replace(/\./g,"p");if(n[s])return n[s];var o,h,l,m,p,c,d,u,f,y,g,v,E,b,w=500,C=0,S=null,x={points:[],segmentLength:0};for(t(e[0],e[1],a[0],a[1],e[0]+i[0],e[1]+i[1])&&t(e[0],e[1],a[0],a[1],a[0]+r[0],a[1]+r[1])&&(w=2),l=0;w>l;l+=1){for(b=[],v=l/(w-1),E=0,o=[],h=[],p=i.length,m=0;p>m;m+=1)null==o[m]&&(o[m]=e[m]+i[m],h[m]=a[m]+r[m]),c=e[m]+(o[m]-e[m])*v,d=o[m]+(h[m]-o[m])*v,u=h[m]+(a[m]-h[m])*v,f=c+(d-c)*v,y=d+(u-d)*v,g=f+(y-f)*v,b.push(g),null!==S&&(E+=Math.pow(b[m]-S[m],2));E=Math.sqrt(E),C+=E,x.points.push({partialLength:E,point:b}),S=b}return x.segmentLength=C,n[s]=x,x}function i(t){t.bezierData=a(t.s,t.e,t.to,t.ti)}var r={},n={},s={getEasingCurve:e,drawBezierCurve:a,buildBezierData:i};return s}();SVGRenderer.prototype.buildItems=function(t){var e,a=0,i=t.length;for(e=0;i>e;e++)"StillLayer"==t[e].type?(a++,this.createImage(t[e])):"PreCompLayer"==t[e].type?this.createComp(t[e]):"SolidLayer"==t[e].type?this.createSolid(t[e]):"ShapeLayer"==t[e].type?this.createShape(t[e]):"TextLayer"==t[e].type?this.createText(t[e]):console.log("NO TYPE: ",t[e])},SVGRenderer.prototype.createShape=function(t){t.element=new IShapeElement(t,this.animationItem)},SVGRenderer.prototype.createText=function(t){t.element=new ITextElement(t,this.animationItem)},SVGRenderer.prototype.createImage=function(t){t.element=new IImageElement(t,this.animationItem)},SVGRenderer.prototype.createComp=function(t){t.element=new ICompElement(t,this.animationItem),this.buildItems(t.layers,t.element.getType())},SVGRenderer.prototype.createSolid=function(t){t.element=new ISolidElement(t,this.animationItem)},SVGRenderer.prototype.configAnimation=function(t){this.animationItem.container=document.createElementNS(svgNS,"svg"),this.animationItem.container.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.animationItem.container.setAttribute("width",t.animation.compWidth),this.animationItem.container.setAttribute("height",t.animation.compHeight),this.animationItem.container.setAttribute("viewBox","0 0 "+t.animation.compWidth+" "+t.animation.compHeight),this.animationItem.container.setAttribute("preserveAspectRatio","xMidYMid meet"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container);var e=document.createElementNS(svgNS,"defs");this.animationItem.container.appendChild(e);var a=document.createElementNS(svgNS,"clipPath"),i=document.createElementNS(svgNS,"rect");i.setAttribute("width",t.animation.compWidth),i.setAttribute("height",t.animation.compHeight),i.setAttribute("x",0),i.setAttribute("y",0),a.setAttribute("id","animationMask"),a.appendChild(i);var r=document.createElementNS(svgNS,"g");r.setAttribute("clip-path","url(#animationMask)"),this.animationItem.container.appendChild(r),e.appendChild(a),this.animationItem.container=r,this.layers=t.animation.layers},SVGRenderer.prototype.buildStage=function(t,e){var a,i,r=e.length;for(a=r-1;a>=0;a--){if(i=e[a],i.parent){var n=this.buildItemHierarchy(i.element.getDomElement(),i.layerName,i.parent,e,t);n.setAttribute("data-layer-name",i.layerName),t.appendChild(n),i.element.setMainElement(n)}else i.element.getDomElement().setAttribute("data-layer-name",i.layerName),t.appendChild(i.element.getDomElement()),i.element.setMainElement(i.element.getDomElement());"PreCompLayer"==i.type&&this.buildStage(i.element.getComposingElement(),i.layers,i.element.getType())}},SVGRenderer.prototype.buildItemHierarchy=function(t,e,a,i,r){for(var n=0,s=i.length;s>n;){if(i[n].layerName==a){i[n].relateds||(i[n].relateds=[]);var o,h;return o=document.createElementNS(svgNS,"g"),h=document.createElementNS(svgNS,"g"),i[n].relateds.push({item:o,itemCont:h}),o.appendChild(t),h.appendChild(o),void 0!=i[n].parent?this.buildItemHierarchy(h,e,i[n].parent,i,r):h}n+=1}return null},SVGRenderer.prototype.updateContainerSize=function(){},SVGRenderer.prototype.renderFrame=function(t){var e,a=this.layers.length;for(e=0;a>e;e++)this.layers[e].element.renderFrame(t-this.layers[e].startTime)},CanvasRenderer.prototype.buildItems=function(t){var e,a=0,i=t.length;for(e=0;i>e;e++)"StillLayer"==t[e].type?(a++,this.createImage(t[e])):"PreCompLayer"==t[e].type?this.createComp(t[e]):"SolidLayer"==t[e].type?this.createSolid(t[e]):"ShapeLayer"==t[e].type?this.createShape(t[e]):"TextLayer"==t[e].type?this.createText(t[e]):console.log("NO TYPE: ",t[e])},CanvasRenderer.prototype.createShape=function(t){t.element=new CVShapeElement(t,this)},CanvasRenderer.prototype.createText=function(t){t.element=new CVTextElement(t,this)},CanvasRenderer.prototype.createImage=function(t){t.element=new CVImageElement(t,this)},CanvasRenderer.prototype.createComp=function(t){t.element=new CVCompElement(t,this),this.buildItems(t.layers,t.element.getType())},CanvasRenderer.prototype.createSolid=function(t){t.element=new CVSolidElement(t,this)},CanvasRenderer.prototype.configAnimation=function(t){this.animationItem.container=document.createElement("canvas"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container),this.layers=t.animation.layers,this.canvasContext=this.animationItem.container.getContext("2d"),this.transformCanvas={},this.transformCanvas.w=t.animation.compWidth,this.transformCanvas.h=t.animation.compHeight,this.updateContainerSize()},CanvasRenderer.prototype.updateContainerSize=function(){var t=this.animationItem.wrapper.offsetWidth,e=this.animationItem.wrapper.offsetHeight;this.animationItem.container.setAttribute("width",t),this.animationItem.container.setAttribute("height",e);var a=t/e,i=this.transformCanvas.w/this.transformCanvas.h;i>a?(this.transformCanvas.sx=t/this.transformCanvas.w,this.transformCanvas.sy=t/this.transformCanvas.w,this.transformCanvas.tx=0,this.transformCanvas.ty=(e-this.transformCanvas.h*(t/this.transformCanvas.w))/2):(this.transformCanvas.sx=e/this.transformCanvas.h,this.transformCanvas.sy=e/this.transformCanvas.h,this.transformCanvas.tx=(t-this.transformCanvas.w*(e/this.transformCanvas.h))/2,this.transformCanvas.ty=0)},CanvasRenderer.prototype.buildStage=function(t,e){var a,i,r=e.length;for(a=r-1;a>=0;a--)i=e[a],i.parent&&(i.parentHierarchy=[],this.buildItemHierarchy(i,e,i.parent)),"PreCompLayer"==i.type&&this.buildStage(null,i.layers)},CanvasRenderer.prototype.buildItemHierarchy=function(t,e,a){for(var i=0,r=e.length;r>i;){if(e[i].layerName==a){t.parentHierarchy.push(e[i]),void 0==e[i].parent||this.buildItemHierarchy(t,e,e[i].parent);break}i+=1}},CanvasRenderer.prototype.prepareFrame=function(t){var e,a=this.layers.length;for(e=0;a>e;e++)this.layers[e].element.prepareFrame(t-this.layers[e].startTime)},CanvasRenderer.prototype.draw=function(){var t,e=this.layers.length;for(t=e-1;t>=0;t-=1)this.layers[t].element.initDraw(),this.layers[t].element.draw(),this.layers[t].element.endDraw()},CanvasRenderer.prototype.renderFrame=function(t){this.animationItem.container.width=this.animationItem.container.width,this.canvasContext.transform(this.transformCanvas.sx,0,0,this.transformCanvas.sy,this.transformCanvas.tx,this.transformCanvas.ty),this.canvasContext.beginPath(),this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h),this.canvasContext.clip(),this.prepareFrame(t),this.draw()},EffectsManager.prototype.init=function(){this.effectElements=[];var t,e=this.effects.length;for(t=0;e>t;t++)switch(this.effects[t].type){case"Stroke":this.addStrokeEffect(this.effects[t])}},EffectsManager.prototype.addStrokeEffect=function(t){var e={data:{value:t},element:{value:this.element}};this.effectElements.push(createElement(StrokeEffectManager,null,e))},EffectsManager.prototype.renderFrame=function(){},defineDescriptor(EffectsManager,"data",null),defineDescriptor(EffectsManager,"element",null),defineDescriptor(EffectsManager,"maskManager",null),StrokeEffectManager.prototype.init=function(){this.element.maskManager.registerEffect(this),this.layerSize=this.element.getLayerSize(),this.svgElement=document.createElementNS(svgNS,"svg"),this.svgElement.setAttribute("width",this.layerSize.w),this.svgElement.setAttribute("height",this.layerSize.h),this.pathGroup=document.createElementNS(svgNS,"g"),this.path=document.createElementNS(svgNS,"path"),this.path.setAttribute("stroke-linecap","round"),this.path.setAttribute("fill","none"),this.svgElement.appendChild(this.path),this.setStaticAttributes();var t=this.element.maskManager.getMaskelement();t.appendChild(this.pathGroup),this.pathGroup.appendChild(this.path)},StrokeEffectManager.prototype.renderMask=function(t,e){var a=e[this.data.path-1].pathString;this.path.setAttribute("d",a);var i=this.path.getTotalLength(),r=void 0===this.data.animated.Start[t].forwardFrame?this.data.animated.Start[t]:this.data.animated.Start[this.data.animated.Start[t].forwardFrame],n=void 0===this.data.animated.End[t].forwardFrame?this.data.animated.End[t]:this.data.animated.End[this.data.animated.End[t].forwardFrame],s="0 ";s+=r*i/100+" ",s+=(n-r)*i/100+" ",s+=(100-n)*i/100+" ",this.path.style["stroke-dasharray"]=s},StrokeEffectManager.prototype.setStaticAttributes=function(){var t=this.data["static"];t["Brush Size"]&&this.path.setAttribute("stroke-width",2*t["Brush Size"]),t.Color&&this.path.setAttribute("stroke",t.Color)},StrokeEffectManager.prototype.renderFrame=function(){},MaskElement.prototype.init=function(){this.registeredEffects=[],this.masksProperties=this.data.masksProperties,this.totalMasks=this.masksProperties.length;var t=this.element.maskingGroup,e=this.element.maskedElement,a=document.createElementNS(svgNS,"defs");t.appendChild(a);var i,r=this.masksProperties.length;if(this.layerSize=this.element.getLayerSize(),this.usePaths){this.maskElement=document.createElementNS(svgNS,"clipPath");var n,s=this.data.masksProperties;for(i=0;r>i;i++)n=document.createElementNS(svgNS,"path"),s[i].cl?n.setAttribute("fill","#ffffff"):(n.setAttribute("fill","none"),n.setAttribute("stroke","#ffffff"),n.setAttribute("stroke-width","1"),n.setAttribute("stroke-miterlimit","10")),n.setAttribute("clip-rule","nonezero"),this.maskElement.appendChild(n),s[i].elem=n,s[i].lastPath="";var o=randomString(10);this.maskElement.setAttribute("id",o),e.setAttribute("clip-path","url(#"+o+")")}else{this.maskElement=document.createElementNS(svgNS,"mask"),this.canvas=document.createElement("canvas"),this.imageElement=document.createElementNS(svgNS,"image"),this.imageElement.setAttribute("width",this.layerSize.w),this.imageElement.setAttribute("height",this.layerSize.h),this.imageElement.setAttribute("x","0"),this.imageElement.setAttribute("y","0"),this.canvasContext=this.canvas.getContext("2d"),this.canvas.width=this.layerSize.w,this.canvas.height=this.layerSize.h,this.maskElement.appendChild(this.imageElement);var o=randomString(10);this.maskElement.setAttribute("id",o),e.setAttribute("mask","url(#"+o+")")}a.appendChild(this.maskElement)},MaskElement.prototype.createInvertedMask=function(t,e){this.helperCanvas.width=this.layerSize.w,this.helperCanvas.height=this.layerSize.h;var a=this.invertedContext;a.globalCompositeOperation="source-over";var i=t.o[e];if("a"==t.mode)a.fillStyle="rgba(255, 255, 255, "+t.o[e]+")",this.canvasContext.globalCompositeOperation="source-over";
else if("s"==t.mode)a.fillStyle="rgba(0, 0, 0, "+i+")",this.canvasContext.globalCompositeOperation="source-over";else if("f"==t.mode)a.fillStyle="rgba(255, 255, 255, "+i+")",this.canvasContext.globalCompositeOperation="xor";else{if("i"!=t.mode)return;a.fillStyle="rgba(255, 255, 255, "+i+")",this.canvasContext.globalCompositeOperation="destination-in"}a.fillRect(0,0,this.helperCanvas.width,this.helperCanvas.height),a.fillStyle="rgba(255, 255, 255, 1)",a.globalCompositeOperation="destination-out",a.beginPath(),this.drawShape(a,t.pathVertices[e][0]),this.canvasContext.drawImage(this.helperCanvas,0,0)},MaskElement.prototype.renderFrame=function(t){var e,a=this.data.masksProperties.length;if(this.usePaths===!0){if("fullSvg"!==this.element.animationItem.animType)for(e=0;a>e;e++)this.drawPath(this.data.masksProperties[e],this.data.masksProperties[e].pathStrings[t])}else{this.canvas.width=this.canvas.width;var i=this.canvasContext;for(e=0;a>e;e++){var r=this.data.masksProperties[e].opacity[t];if(this.masksProperties[e].inv)this.createInvertedMask(this.masksProperties[e],t);else{if("a"==this.masksProperties[e].mode)i.globalCompositeOperation="source-over",i.fillStyle="rgba(255, 255, 255, "+r+")";else if("s"==this.masksProperties[e].mode)i.globalCompositeOperation="source-over",i.fillStyle="rgba(0, 0, 0, "+r+")";else if("f"==this.masksProperties[e].mode)i.globalCompositeOperation="xor",i.fillStyle="rgba(255, 255, 255, "+r+")";else{if("i"!=this.masksProperties[e].mode)continue;i.globalCompositeOperation="destination-in",i.fillStyle="rgba(255, 255, 255, "+r+")"}this.drawShape(i,this.data.masksProperties[e].pathVertices[t][0])}}var n=this.canvas.toDataURL("image/png");this.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","href",n)}},MaskElement.prototype.processMaskFromEffects=function(t,e){var a,i=this.registeredEffects.length;for(a=0;i>a;a++)this.registeredEffects[a].renderMask(t,e)},MaskElement.prototype.registerEffect=function(t){this.registeredEffects.push(t)},MaskElement.prototype.getMaskelement=function(){return this.maskElement},MaskElement.prototype.createLayerSolidPath=function(){var t="M0,0 ";return t+="h"+this.layerSize.w,t+="v"+this.layerSize.h,t+="h"+-this.layerSize.w,t+="v"+-this.layerSize.h},MaskElement.prototype.drawPath=function(t,e){t.lastPath!==e&&(t.inv?t.elem.setAttribute("d",this.createLayerSolidPath()+e):t.elem.setAttribute("d",e),t.lastPath=e)},MaskElement.prototype.drawShape=function(t,e){t.beginPath();var a,i=e.v.length;for(a=0;i>a;a++)0==a?t.moveTo(e.v[a][0],e.v[a][1]):t.bezierCurveTo(e.o[a-1][0]+e.v[a-1][0],e.o[a-1][1]+e.v[a-1][1],e.i[a][0]+e.v[a][0],e.i[a][1]+e.v[a][1],e.v[a][0],e.v[a][1]);t.bezierCurveTo(e.o[a-1][0]+e.v[a-1][0],e.o[a-1][1]+e.v[a-1][1],e.i[0][0]+e.v[0][0],e.i[0][1]+e.v[0][1],e.v[0][0],e.v[0][1]),t.closePath(),t.fill()},defineDescriptor(MaskElement,"helperCanvas",document.createElement("canvas")),defineDescriptor(MaskElement,"helperContext",MaskElement.prototype.helperCanvas.getContext("2d")),defineDescriptor(MaskElement,"data",null,{writable:!0}),defineDescriptor(MaskElement,"element",null),defineDescriptor(MaskElement,"usePaths",!0,{writable:!0}),defineDescriptor(MaskElement,"paths",[],{writable:!0});var BaseElement=function(t,e){this.animationItem=e,this.data=t,this.init()};BaseElement.prototype.init=function(){this.createElements(),this.data.hasMask&&this.addMasks(this.data),this.data.eff&&this.createEffectsManager(this.data)},BaseElement.prototype.createElements=function(){this.layerElement=document.createElementNS(svgNS,"g"),this.anchorElement=document.createElementNS(svgNS,"g"),this.anchorElement.setAttribute("id",this.data.layerName),this.layerElement.appendChild(this.anchorElement),this.maskingGroup=this.anchorElement,this.maskedElement=this.svgElem},BaseElement.prototype.renderFrame=function(t){if(!(this.data.inPoint-this.data.startTime<=t&&this.data.outPoint-this.data.startTime>t))return this.isVisible!==!1&&(this.isVisible=!1,this.mainElement.setAttribute("opacity",0)),!1;this.isVisible!==!0&&(this.isVisible=!0,this.mainElement.setAttribute("opacity",1));var e=this.data.an[this.data.an[t].forwardFrame];if(this.data.eff&&this.effectsManager.renderFrame(t,e.mk),this.data.an[t].forwardFrame===this.data.renderedFrame.num)return!0;this.data.hasMask&&this.maskManager.renderFrame(t),this.data.renderedFrame.num=e.forwardFrame,this.data.renderedFrame.o!==e.tr.o&&(this.data.renderedFrame.o=e.tr.o,this.anchorElement.setAttribute("opacity",e.tr.o));var a=!1;(!this.data.renderedFrame.a||this.data.renderedFrame.a[0]!==e.tr.a[0]&&this.data.renderedFrame.a[1]!==e.tr.a[1])&&(this.data.renderedFrame.a=[e.tr.a[0],e.tr.a[1]],this.anchorElement.setAttribute("transform","translate("+-e.tr.a[0]+" "+-e.tr.a[1]+")"),a=!0);var i=!1;if(this.data.renderedFrame.tr!==e.matrixValue&&(this.layerElement.setAttribute("transform",e.matrixValue),this.data.renderedFrame.tr=e.matrixValue,i=!0),this.data.relateds&&(i||a)){var r,n,s,o=this.data.relateds,h=o.length;for(r=0;h>r;r++)n=o[r].item,s=o[r].itemCont,a&&n.setAttribute("transform","translate("+-e.tr.a[0]+" "+-e.tr.a[1]+")"),i&&s.setAttribute("transform",e.matrixValue)}return!0},BaseElement.prototype.getDomElement=function(){return this.layerElement},BaseElement.prototype.setMainElement=function(t){this.mainElement=t},BaseElement.prototype.getMaskManager=function(){return this.maskManager},BaseElement.prototype.addMasks=function(t){var e={data:{value:t},element:{value:this}};this.maskManager=createElement(MaskElement,null,e)},BaseElement.prototype.createEffectsManager=function(t){var e={effects:{value:t.eff},element:{value:this}};this.effectsManager=createElement(EffectsManager,null,e)},BaseElement.prototype.getType=function(){return this.type},BaseElement.prototype.getLayerSize=function(){return"TextLayer"==this.data.type?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}},createElement(BaseElement,ICompElement),ICompElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g"),this.parent.createElements.call(this)},ICompElement.prototype.getComposingElement=function(){return this.anchorElement},ICompElement.prototype.renderFrame=function(t){var e=this.parent.renderFrame.call(this,t);if(e!==!1){var a,i=this.layers.length,r=this.data.tm?this.data.tm[t]<0?0:this.data.tm[t]:t;for(a=0;i>a;a+=1)this.layers[a].element.renderFrame(r-this.layers[a].startTime)}},createElement(BaseElement,IImageElement),IImageElement.prototype.createElements=function(){var t=this,e=function(){t.image.setAttributeNS("http://www.w3.org/1999/xlink","href",t.path+t.assets[t.data.assetId].path),t.maskedElement=t.image,t.animationItem.elementLoaded()},a=new Image;a.addEventListener("load",e,!1),a.src=this.path+this.assets[this.data.assetId].path,this.svgElem=document.createElementNS(svgNS,"g"),this.parent.createElements.call(this),this.image=document.createElementNS(svgNS,"image"),this.image.setAttribute("width",this.data.width+"px"),this.image.setAttribute("height",this.data.height+"px"),this.svgElem.appendChild(this.image),this.anchorElement.appendChild(this.svgElem),this.maskingGroup=this.svgElem,styleUnselectableDiv(this.image)},createElement(BaseElement,IShapeElement),IShapeElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g"),styleUnselectableDiv(this.svgElem),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem);var t,e,a=this.data.shapes.length;for(t=a-1;t>=0;t--)this.data.trim&&(this.data.shapes[t].trim=this.data.trim),e=new ShapeItemElement(this.data.shapes[t]),this.svgElem.appendChild(e.getElement()),this.shapes.push(e)},IShapeElement.prototype.renderFrame=function(t){var e=this.parent.renderFrame.call(this,t);e!==!1&&this.renderShapes(t)},IShapeElement.prototype.renderShapes=function(t){var e,a,i,r=this.data.shapes.length;for(e=r-1;e>=0;e--)a=this.data.shapes[e],i=this.shapes[r-1-e],i.renderShape(t)},ShapeItemElement.prototype.adjustTrim=function(){var t,e=this.data.trim,a=e.length;for(t=0;a>t;t+=1)e[t].o&&(e[t].o-=90)},ShapeItemElement.prototype.getElement=function(){return this.shapeG},ShapeItemElement.prototype.renderShape=function(t){"pathShape"==this.data.type?this.pathLength=this.renderPath(t):"rectShape"==this.data.type?this.renderRect(t):"ellipseShape"==this.data.type&&(this.pathLength=this.renderEllipse(t)),this.data.trim&&this.renderTrim(t),this.renderFill(t),this.renderStroke(t),this.renderTransform(t)},ShapeItemElement.prototype.renderPath=function(t){var e=this.data.an,a=e.path[e.path[t].forwardFrame];return a.pathString!=e.renderedFrame.path?(e.renderedFrame.path=a.pathString,this.shape.setAttribute("d",a.pathString),this.data.trim?(null==this.cachedData.pathLengths&&(this.cachedData.pathLengths={}),null==this.cachedData.pathLengths[a.pathString]&&(this.cachedData.pathLengths[a.pathString]=this.shape.getTotalLength()),this.cachedData.pathLengths[a.pathString]):void 0):this.data.trim?this.cachedData.pathLengths[e.path[e.path[t].forwardFrame].pathString]:void 0},ShapeItemElement.prototype.renderEllipse=function(t){var e=this.data.an;if(e.ell[t].forwardFrame==e.renderedFrame.ell)return this.data.trim?this.cachedData.pathLengths["ellipse_"+e.ell[t].forwardFrame]:0;var a=e.ell[e.ell[t].forwardFrame];if(e.renderedFrame.ell=a.forwardFrame,this.shape.setAttribute("rx",a.size[0]/2),this.shape.setAttribute("ry",a.size[1]/2),this.shape.setAttribute("cx",a.p[0]),this.shape.setAttribute("cy",a.p[1]),this.data.trim){if(null==this.cachedData.pathLengths&&(this.cachedData.pathLengths={}),null==this.cachedData.pathLengths["ellipse_"+t])if(a.size[0]==a.size[1])this.cachedData.pathLengths["ellipse_"+t]=Math.PI*a.size[0];else{var i=Math.max(a.size[0],a.size[1])/2,r=Math.max(a.size[0],a.size[1])/2,n=(i-r)/(i+r),s=(i+r)*Math.PI*(1+.25*n+1/64*Math.pow(n,2)+1/256*Math.pow(n,3));this.cachedData.pathLengths["ellipse_"+t]=s}return this.cachedData.pathLengths["ellipse_"+t]}},ShapeItemElement.prototype.renderRect=function(t){var e=this.data.an;if(e.rect[t].forwardFrame!=e.renderedFrame.rect){var a=e.rect[e.rect[t].forwardFrame];e.renderedFrame.rect=a.forwardFrame,this.shape.setAttribute("width",a.size[0]),this.shape.setAttribute("height",a.size[1]),this.shape.setAttribute("rx",a.roundness),this.shape.setAttribute("ry",a.roundness),this.shape.setAttribute("x",a.position[0]-a.size[0]/2),this.shape.setAttribute("y",a.position[1]-a.size[1]/2)}},ShapeItemElement.prototype.renderFill=function(t){var e=this.data.an;if(e.fill){var a=e.fill[e.fill[t].forwardFrame];if(e.renderedFrame.fill&&a.color==e.renderedFrame.fill.color&&a.opacity==e.renderedFrame.fill.opacity)return;e.renderedFrame.fill={color:a.color,opacity:a.opacity},this.shape.setAttribute("fill",a.color),this.data.fillEnabled!==!1?this.shape.setAttribute("fill-opacity",a.opacity):this.shape.setAttribute("fill-opacity",0)}else this.shape.setAttribute("fill-opacity",0)},ShapeItemElement.prototype.renderStroke=function(t){var e=this.data.an;if(e.stroke){if(e.stroke[t].forwardFrame==e.renderedFrame.stroke)return;var a=e.stroke[e.stroke[t].forwardFrame];e.renderedFrame.stroke=a.forwardFrame,this.shape.setAttribute("stroke",a.color),this.shape.setAttribute("stroke-width",a.width),this.data.strokeEnabled!==!1?this.shape.setAttribute("stroke-opacity",a.opacity):this.shape.setAttribute("stroke-opacity",0)}},ShapeItemElement.prototype.renderTransform=function(t){var e=this.data.an;if(e.tr){if(e.tr[t].forwardFrame==e.renderedFrame.tr)return;var a=e.tr[e.tr[t].forwardFrame];e.renderedFrame.tr=a.forwardFrame;var i=a.mt;this.shapeG.setAttribute("opacity",a.o),this.shapeG.setAttribute("transform",i),this.shape.setAttribute("transform","translate("+-a.a[0]+", "+-a.a[1]+")")}},ShapeItemElement.prototype.renderTrim=function(t){if(this.data.trim.an[t].forwardFrame!=this.data.renderedData.trim){var e=this.data.trim.an[this.data.trim.an[t].forwardFrame];if(this.data.renderedData.trim=e.forwardFrame,0==this.pathLength)this.shape.setAttribute("stroke-opacity",0);else{var a=this.pathLength*(e.e-e.s)/100,i=this.pathLength-a,r=this.pathLength*e.s/100+this.pathLength*e.o/360,n=a+" , "+i;if(this.shape.setAttribute("stroke-dasharray",n),this.shape.setAttribute("stroke-dashoffset",-r),e.e==e.s)this.shape.setAttribute("stroke-opacity",0);else if(this.data.an.stroke){var s=this.data.an.stroke[this.data.an.stroke[t].forwardFrame];this.data.strokeEnabled!==!1?this.shape.setAttribute("stroke-opacity",s.opacity/100):this.shape.setAttribute("stroke-opacity",0)}}}},createElement(BaseElement,ISolidElement),ISolidElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g"),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem);var t=document.createElementNS(svgNS,"rect");t.setAttribute("width",this.data.width),t.setAttribute("height",this.data.height),t.setAttribute("fill",this.data.color),this.svgElem.appendChild(t),styleUnselectableDiv(this.svgElem),styleUnselectableDiv(t),this.maskingGroup=this.svgElem,this.maskedElement=t},createElement(BaseElement,ITextElement),ITextElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g");var t=document.createElementNS(svgNS,"text");t.textContent=this.data.textData.text,t.setAttribute("fill",this.data.textData.fillColor),t.setAttribute("x","0"),t.setAttribute("y",this.data.textData.height-(this.data.textData.fontSize-this.data.textData.height)/2),this.svgElem.setAttribute("width",this.data.textData.width),this.svgElem.setAttribute("height",this.data.textData.height),this.svgElem.style.transform="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",this.svgElem.style["-webkit-transform"]="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",t.setAttribute("font-size",this.data.textData.fontSize),t.setAttribute("font-family","Arial, sans-serif"),this.svgElem.appendChild(t),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem),this.maskingGroup=this.svgElem,this.maskedElement=t},CVBaseElement.prototype.init=function(){this.createElements(),this.data.hasMask&&this.addMasks(this.data),this.data.eff&&this.createEffectsManager(this.data)},CVBaseElement.prototype.createElements=function(){},CVBaseElement.prototype.prepareFrame=function(t){return this.data.inPoint-this.data.startTime<=t&&this.data.outPoint-this.data.startTime>t?(this.currentAnimData=this.data.an[this.data.an[t].forwardFrame],void(this.data.hasMask&&this.maskManager.prepareFrame(t))):(this.currentAnimData=null,!1)},CVBaseElement.prototype.initDraw=function(){this.renderer.canvasContext.save()},CVBaseElement.prototype.draw=function(){if(!this.currentAnimData)return!1;var t=this.renderer.canvasContext;if(this.data.parentHierarchy){var e,a,i=this.data.parentHierarchy.length;for(e=i-1;e>=0;e-=1){a=this.data.parentHierarchy[e].element.getCurrentAnimData();var r=a.matrixArray;t.transform(r[0],r[1],r[2],r[3],r[4],r[5]),t.translate(-a.tr.a[0],-a.tr.a[1])}}t.globalAlpha=t.globalAlpha*this.currentAnimData.tr.o;var r=this.currentAnimData.matrixArray;t.transform(r[0],r[1],r[2],r[3],r[4],r[5]),t.translate(-this.currentAnimData.tr.a[0],-this.currentAnimData.tr.a[1]),this.data.hasMask&&this.maskManager.draw()},CVBaseElement.prototype.endDraw=function(){this.renderer.canvasContext.restore()},CVBaseElement.prototype.getCurrentAnimData=function(){return this.currentAnimData},CVBaseElement.prototype.addMasks=function(t){var e={data:{value:t},element:{value:this}};this.maskManager=createElement(CVMaskElement,null,e)},CVBaseElement.prototype.createEffectsManager=function(t){var e={effects:{value:t.eff},element:{value:this}};this.effectsManager=createElement(EffectsManager,null,e)},CVBaseElement.prototype.getType=function(){return this.type},CVBaseElement.prototype.getLayerSize=function(){return"TextLayer"==this.data.type?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}},createElement(CVBaseElement,CVCompElement),CVCompElement.prototype.prepareFrame=function(t){var e=this.parent.prepareFrame.call(this,t);if(e!==!1){var a,i=this.layers.length,r=this.data.tm?this.data.tm[t]<0?0:this.data.tm[t]:t;for(a=0;i>a;a+=1)this.layers[a].element.prepareFrame(r-this.layers[a].startTime)}},CVCompElement.prototype.draw=function(){this.parent.draw.call(this);var t,e=this.layers.length;for(t=e-1;t>=0;t-=1)this.layers[t].element.initDraw(),this.layers[t].element.draw(),this.layers[t].element.endDraw()},createElement(CVBaseElement,CVImageElement),CVImageElement.prototype.createElements=function(){var t=this,e=function(){t.animationItem.elementLoaded()};this.img=new Image,this.img.addEventListener("load",e,!1),this.img.src=this.path+this.assets[this.data.assetId].path,this.parent.createElements.call(this)},CVImageElement.prototype.draw=function(t){var e=this.parent.draw.call(this,t);if(e!==!1){var a=this.renderer.canvasContext;a.drawImage(this.img,0,0)}},createElement(CVBaseElement,CVShapeElement),CVShapeElement.prototype.createElements=function(){this.parent.createElements.call(this);var t,e,a=this.data.shapes.length;for(t=a-1;t>=0;t--)this.data.trim&&(this.data.shapes[t].trim=this.data.trim),e=new CVShapeItemElement(this.data.shapes[t],this.renderer),this.shapes.push(e)},CVShapeElement.prototype.prepareFrame=function(t){var e=this.parent.prepareFrame.call(this,t);if(e!==!1){var a,i,r,n=this.data.shapes.length;for(a=n-1;a>=0;a--)i=this.data.shapes[a],r=this.shapes[n-1-a],r.prepareFrame(t)}},CVShapeElement.prototype.draw=function(){var t=this.parent.draw.call(this);t!==!1&&this.drawShapes()},CVShapeElement.prototype.drawShapes=function(){var t,e,a,i=this.data.shapes.length;for(t=i-1;t>=0;t--)e=this.data.shapes[t],a=this.shapes[i-1-t],a.renderShape()},CVShapeItemElement.prototype.adjustTrim=function(){var t,e=this.data.trim,a=e.length;for(t=0;a>t;t+=1)e[t].o&&(e[t].o-=90)},CVShapeItemElement.prototype.renderShape=function(){if(""!==this.data.type){var t=this.frameNum,e=this.renderer.canvasContext,a=this.renderTransform(t);"pathShape"==this.data.type?this.data.trim?this.renderTrimPath(t):this.renderPath(t):"rectShape"==this.data.type?this.renderRect(t):"ellipseShape"==this.data.type&&(this.pathLength=this.renderEllipse(t)),this.renderFill(t),this.renderStroke(t),this.renderer.canvasContext.lineCap="round",this.renderer.canvasContext.lineJoin="round",this.renderedPaths[t]?supportsPath2D?(this.renderer.canvasContext.fill(this.renderedPaths[t]),this.renderer.canvasContext.stroke(this.renderedPaths[t])):(this.renderedPaths[t].drawToContext(this.renderer.canvasContext),this.renderer.canvasContext.fill(),this.renderer.canvasContext.stroke()):(this.renderer.canvasContext.fill(),this.renderer.canvasContext.stroke()),a&&e.restore()}},CVShapeItemElement.prototype.prepareFrame=function(t){this.frameNum=t},CVShapeItemElement.prototype.renderTransform=function(t){var e=this.data.an;if(e.tr){var a=this.renderer.canvasContext,i=e.tr[e.tr[t].forwardFrame];e.renderedFrame.tr=i.forwardFrame;var r=i.mtArr;return 1==r[0]&&0==r[1]&&0==r[2]&&1==r[3]&&0==r[4]&&0==r[5]&&i.o>=1?!1:(a.save(),a.transform(r[0],r[1],r[2],r[3],r[4],r[5]),a.translate(-i.a[0],-i.a[1]),i.o<1&&(a.globalAlpha=i.o),!0)}},CVShapeItemElement.prototype.addToTrim=function(t,e,a){this.trims[t]||this.trims.push({}),this.trims[t].s=e,this.trims[t].e=a,this.trims[t].ended=!1},CVShapeItemElement.prototype.renderTrimPath=function(t){var e=this.data.trim.an[this.data.trim.an[t].forwardFrame];if(e.e!=e.s&&!this.renderedPaths[t]){var a,i=new Path2D,r=this.data.an,n=r.path[r.path[t].forwardFrame],s=n.pathNodes,o=[],h=0,l=s.v.length;for(a=0;l-1>a;a+=1)o.push(bez.drawBezierCurve(s.v[a],s.v[a+1],s.o[a],s.i[a+1])),h+=o[a].segmentLength;n.closed&&(o.push(bez.drawBezierCurve(s.v[l-1],s.v[0],s.o[l-1],s.i[0])),h+=o[a].segmentLength),l=o.length;var m=h*(e.e-e.s)/100,p=(e.s/100+e.o%360/360)%1*h,c=0;if(p+m-h>1e-5){var d=p+m-h;this.addToTrim(0,p,p+m-d),this.addToTrim(1,0,p+m-h),c+=2}else this.addToTrim(0,p,p+m),c+=1;var u,f,y,g,v,E=0,b=!1,w=this.trims.length;for(a=0;l>a&&!b;a+=1){for(f=o[a].points.length,g=!0,v=0;w>v;v+=1)E+o[a].segmentLength>this.trims[v].s&&(g=!1);if(g)E+=o[a].segmentLength;else{for(u=0;f-1>u&&!b;u+=1)for(w=this.trims.length,E+=o[a].points[u].partialLength,v=0;w>v;v+=1)if(!this.trims[v].ended)if(this.trims[v].s>=E&&this.trims[v].s<E+o[a].points[u+1].partialLength&&(y=(this.trims[v].s-E)/o[a].points[u+1].partialLength,i.moveTo(o[a].points[u].point[0]+(o[a].points[u+1].point[0]-o[a].points[u].point[0])*y,o[a].points[u].point[1]+(o[a].points[u+1].point[1]-o[a].points[u].point[1])*y)),this.trims[v].e>E&&this.trims[v].e<=E+o[a].points[u+1].partialLength){if(y=(this.trims[v].e-E)/o[a].points[u+1].partialLength,i.lineTo(o[a].points[u].point[0]+(o[a].points[u+1].point[0]-o[a].points[u].point[0])*y,o[a].points[u].point[1]+(o[a].points[u+1].point[1]-o[a].points[u].point[1])*y),c-=1,this.trims[v].ended=!1,0==c){b=!0;break}}else E>this.trims[v].s&&E<this.trims[v].e&&i.lineTo(o[a].points[u].point[0],o[a].points[u].point[1]);this.renderedPaths[t]=i}}}},CVShapeItemElement.prototype.renderPath=function(t){var e=this.data.an,a=e.path[e.path[t].forwardFrame];if(!this.renderedPaths[t]){var i=new Path2D;e.renderedFrame.path=a.pathString;var r=this.renderer.canvasContext,n=a.pathNodes;n instanceof Array&&(n=n[0]);var s,o=n.i.length;for(r.beginPath(),i.moveTo(n.v[0][0],n.v[0][1]),s=1;o>s;s+=1)i.bezierCurveTo(n.o[s-1][0]+n.v[s-1][0],n.o[s-1][1]+n.v[s-1][1],n.i[s][0]+n.v[s][0],n.i[s][1]+n.v[s][1],n.v[s][0],n.v[s][1]);a.closed&&i.bezierCurveTo(n.o[s-1][0]+n.v[s-1][0],n.o[s-1][1]+n.v[s-1][1],n.i[0][0]+n.v[0][0],n.i[0][1]+n.v[0][1],n.v[0][0],n.v[0][1]),this.renderedPaths[t]=i}},CVShapeItemElement.prototype.renderEllipse=function(t){var e=this.data.an,a=e.ell[e.ell[t].forwardFrame];e.renderedFrame.ell=a.forwardFrame;var i=this.renderer.canvasContext;i.beginPath(),i.ellipse(a.p[0],a.p[1],a.size[0]/2,a.size[1]/2,0,0,2*Math.PI,!0),i.closePath()},CVShapeItemElement.prototype.renderRect=function(t){var e=this.data.an,a=e.rect[e.rect[t].forwardFrame],i=a.roundness,r=this.renderer.canvasContext;if(r.beginPath(),0==i)r.rect(a.position[0]-a.size[0]/2,a.position[1]-a.size[1]/2,a.size[0],a.size[1]);else{var n=a.position[0]-a.size[0]/2,s=a.position[1]-a.size[1]/2,o=a.size[0],h=a.size[1];r.moveTo(n+i,s),r.lineTo(n+o-i,s),r.quadraticCurveTo(n+o,s,n+o,s+i),r.lineTo(n+o,s+h-i),r.quadraticCurveTo(n+o,s+h,n+o-i,s+h),r.lineTo(n+i,s+h),r.quadraticCurveTo(n,s+h,n,s+h-i),r.lineTo(n,s+i),r.quadraticCurveTo(n,s,n+i,s)}},CVShapeItemElement.prototype.renderFill=function(t){var e=this.data.an;if(e.fill){var a=e.fill[e.fill[t].forwardFrame];if(e.renderedFrame.fill={color:a.color,opacity:a.opacity},this.data.fillEnabled!==!1)return void(this.renderer.canvasContext.fillStyle=a.opacity<1?fillToRgba(a.color,a.opacity):a.color)}this.renderer.canvasContext.fillStyle="rgba(0,0,0,0)"},CVShapeItemElement.prototype.renderStroke=function(t){var e=this.data.an;if(e.stroke){var a=e.stroke[e.stroke[t].forwardFrame];if(e.renderedFrame.stroke=a.forwardFrame,this.renderer.canvasContext.lineWidth=a.width,this.data.strokeEnabled!==!1)return void(this.renderer.canvasContext.strokeStyle=a.opacity<1?fillToRgba(a.color,a.opacity):a.color)}this.renderer.canvasContext.strokeStyle="rgba(0,0,0,0)"},createElement(CVBaseElement,CVSolidElement),CVSolidElement.prototype.draw=function(){this.parent.draw.call(this);var t=this.renderer.canvasContext;t.fillStyle=this.data.color,t.fillRect(0,0,this.data.width,this.data.height)},createElement(CVBaseElement,CVTextElement),CVTextElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g");var t=document.createElementNS(svgNS,"text");t.textContent=this.data.textData.text,t.setAttribute("fill",this.data.textData.fillColor),t.setAttribute("x","0"),t.setAttribute("y",this.data.textData.height-(this.data.textData.fontSize-this.data.textData.height)/2),this.svgElem.setAttribute("width",this.data.textData.width),this.svgElem.setAttribute("height",this.data.textData.height),this.svgElem.style.transform="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",this.svgElem.style["-webkit-transform"]="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",t.setAttribute("font-size",this.data.textData.fontSize),t.setAttribute("font-family","Arial, sans-serif"),this.svgElem.appendChild(t),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem),this.maskingGroup=this.svgElem,this.maskedElement=t},CVMaskElement.prototype.init=function(){this.registeredEffects=[],this.masksProperties=this.data.masksProperties,this.totalMasks=this.masksProperties.length,this.ctx=this.element.renderer.canvasContext,this.layerSize=this.element.getLayerSize()},CVMaskElement.prototype.prepareFrame=function(t){this.frameNum=t},CVMaskElement.prototype.draw=function(){var t,e=this.data.masksProperties.length;for(t=0;e>t;t++)this.masksProperties[t].inv?this.createInvertedMask(this.masksProperties[t],this.frameNum):this.drawShape(this.ctx,this.data.masksProperties[t].pathVertices[this.frameNum][0])},CVMaskElement.prototype.drawShape=function(t,e){t.beginPath();var a,i=e.v.length;for(t.moveTo(e.v[0][0],e.v[0][1]),a=1;i>a;a++)t.bezierCurveTo(e.o[a-1][0]+e.v[a-1][0],e.o[a-1][1]+e.v[a-1][1],e.i[a][0]+e.v[a][0],e.i[a][1]+e.v[a][1],e.v[a][0],e.v[a][1]);t.bezierCurveTo(e.o[a-1][0]+e.v[a-1][0],e.o[a-1][1]+e.v[a-1][1],e.i[0][0]+e.v[0][0],e.i[0][1]+e.v[0][1],e.v[0][0],e.v[0][1]),t.closePath(),t.clip()};var animationManager=function(){function t(t){if(t){for(var e=0,a=u.length;a>e;){if(u[e].elem==t)return;e+=1}var i=new AnimationItem;return i.setData(t),u.push({elem:t,animation:i}),i}}function e(t,e){var a,i=u.length;for(a=0;i>a;a+=1)u[a].animation.setSpeed(t,e)}function a(t,e){var a,i=u.length;for(a=0;i>a;a+=1)u[a].animation.setDirection(t,e)}function i(t){f=Date.now();var e,a=u.length;for(e=0;a>e;e+=1)u[e].animation.play(t);s()}function r(t,e){v=!1,f=Date.now();var a,i=u.length;for(a=0;i>a;a+=1)u[a].animation.moveFrame(t,e)}function n(){d=!1,s()}function s(){if(!d){d=!0,y=Date.now(),g=y-f;var t,e=u.length;for(t=0;e>t;t+=1)u[t].animation.advanceTime(g);f=y,requestAnimationFrame(n)}}function o(t){var e,a=u.length;for(e=0;a>e;e+=1)u[e].animation.pause(t)}function h(t){var e,a=u.length;for(e=0;a>e;e+=1)u[e].animation.stop(t)}function l(t){var e,a=u.length;for(e=0;a>e;e+=1)u[e].animation.togglePause(t)}function m(){var e=document.getElementsByClassName("bodymovin");Array.prototype.forEach.call(e,t)}function p(){var t,e=u.length;for(t=0;e>t;t+=1)u[t].animation.resize()}var c={},d=!1,u=[],f=0,y=0,g=0,v=!0;return c.registerAnimation=t,c.setSpeed=e,c.setDirection=a,c.play=i,c.moveFrame=r,c.resume=s,c.pause=o,c.stop=h,c.togglePause=l,c.searchAnimations=m,c.resize=p,c}(),AnimationItem=function(){this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.pendingElements=0,this.repeat="indefinite",this.animationData={},this.layers=[],this.assets=[],this.renderedFrames={},this.effectsManager=null,this.isPaused=!0,this.isScrolling=!1,this.loop=!0,this.renderer=null};AnimationItem.prototype.setData=function(t){this.wrapper=t;var e=this;switch(this.path=this.wrapper.attributes.getNamedItem("data-animation-path")?this.wrapper.attributes.getNamedItem("data-animation-path").value:"",this.playerType=this.wrapper.attributes.getNamedItem("data-bm-player")?this.wrapper.attributes.getNamedItem("data-bm-player").value:"0",this.animType=this.wrapper.attributes.getNamedItem("data-anim-type")?this.wrapper.attributes.getNamedItem("data-anim-type").value:"div",this.animType){case"canvas":this.renderer=new CanvasRenderer(this);break;case"svg":this.renderer=new SVGRenderer(this)}if(this.repeat=this.wrapper.attributes.getNamedItem("data-anim-repeat")?this.wrapper.attributes.getNamedItem("data-anim-repeat").value:this.repeat,this.loop=this.wrapper.attributes.getNamedItem("data-anim-loop")?"false"!==this.wrapper.attributes.getNamedItem("data-anim-loop").value:this.loop,this.name=this.wrapper.attributes.getNamedItem("data-name")?this.wrapper.attributes.getNamedItem("data-name").value:"",""!=this.path){"/"!=this.path.substr(-1,1)&&(this.path+="/");var a=new XMLHttpRequest;a.open("GET",this.path+"data.json",!0),a.send(),a.onreadystatechange=function(){4==a.readyState&&e.configAnimation(JSON.parse(a.responseText))}}},AnimationItem.prototype.configAnimation=function(t){this.renderer.configAnimation(t),this.effectsManager=new EffectsManager,this.animationData=t,this.layers=this.animationData.animation.layers,this.assets=this.animationData.assets,this.totalFrames=this.animationData.animation.totalFrames,this.frameRate=this.animationData.animation.frameRate,this.frameMult=this.animationData.animation.frameRate/1e3,dataManager.completeData(this.layers,this.frameRate),this.renderer.buildItems(this.animationData.animation.layers),this.updaFrameModifier(),this.checkLoaded()},AnimationItem.prototype.elementLoaded=function(){this.pendingElements--,this.checkLoaded()},AnimationItem.prototype.checkLoaded=function(){0==this.pendingElements&&(this.isLoaded=!0,this.renderer.buildStage(this.container,this.layers),this.buildControls(),this.gotoFrame(),this.dispatchEvent("bmLoaded"))},AnimationItem.prototype.resize=function(){this.renderer.updateContainerSize()},AnimationItem.prototype.buildControls=function(){"0"!==this.playerType&&(this.player=playerManager.createPlayer(this.playerType),this.player.buildControls(this,this.wrapper))},AnimationItem.prototype.gotoFrame=function(){this.currentFrame=subframeEnabled?Math.round(100*this.currentRawFrame)/100:Math.floor(this.currentRawFrame),this.renderFrame(),this.player&&this.player.setProgress(this.currentFrame/this.totalFrames)},AnimationItem.prototype.renderFrame=function(){this.isLoaded!==!1&&(this.renderedFrames[this.currentFrame]||(this.renderedFrames[this.currentFrame]=!0,dataManager.renderFrame(this.layers,this.currentFrame,this.animType)),this.renderer.renderFrame(this.currentFrame))},AnimationItem.prototype.dispatchEvent=function(t){var e;document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(t,!1,!1,{})):e=new CustomEvent("bmPlay"),this.wrapper.dispatchEvent(e)},AnimationItem.prototype.play=function(t){t&&this.name!=t||this.isPaused===!0&&(this.isPaused=!1,this.dispatchEvent("bmPlay"))},AnimationItem.prototype.pause=function(t){t&&this.name!=t||this.isPaused===!1&&(this.isPaused=!0,this.dispatchEvent("bmPause"))},AnimationItem.prototype.togglePause=function(t){t&&this.name!=t||(this.isPaused===!1?this.play():this.pause())},AnimationItem.prototype.stop=function(t){t&&this.name!=t||(this.isPaused=!0,this.currentFrame=this.currentRawFrame=0,this.dispatchEvent("bmStop"))},AnimationItem.prototype.goToAndStop=function(t){this.isPaused=!0,this.currentFrame=this.currentRawFrame=t,this.gotoFrame()},AnimationItem.prototype.advanceTime=function(t){this.isPaused!==!0&&this.isScrolling!==!0&&this.isLoaded!==!1&&this.setCurrentRawFrameValue(this.currentRawFrame+t*this.frameModifier)},AnimationItem.prototype.updateAnimation=function(t){this.setCurrentRawFrameValue(this.totalFrames*t)},AnimationItem.prototype.moveFrame=function(t,e){e&&this.name!=e||this.setCurrentRawFrameValue(this.currentRawFrame+t)},AnimationItem.prototype.setCurrentRawFrameValue=function(t){this.currentRawFrame=t,this.currentRawFrame>=this.totalFrames?(this.currentRawFrame=this.currentRawFrame%this.totalFrames,this.loop===!1&&this.goToAndStop(this.totalFrames-1)):this.currentRawFrame<0&&(this.currentRawFrame=this.totalFrames+this.currentRawFrame),this.gotoFrame()},AnimationItem.prototype.setSpeed=function(t){this.playSpeed=t,this.updaFrameModifier()},AnimationItem.prototype.setDirection=function(t){this.playDirection=0>t?-1:1,this.updaFrameModifier()},AnimationItem.prototype.updaFrameModifier=function(){this.frameModifier=this.frameMult*this.playSpeed*this.playDirection},AnimationItem.prototype.getPath=function(){return this.path
},AnimationItem.prototype.getAssets=function(){return this.assets},PlayerManager.prototype.createPlayer=function(t){switch(t){case"1":return createElement(BasicPlayer)}};var playerManager=createElement(PlayerManager);BasicPlayer.prototype.setAnimationItem=function(){},BasicPlayer.prototype.playStarted=function(){this.playButton.style.display="none",this.pauseButton.style.display="block",this.pauseAnimation.goToAndStop(0),this.pauseAnimation.play()},BasicPlayer.prototype.pauseStarted=function(){this.playButton.style.display="block",this.pauseButton.style.display="none",this.playAnimation.goToAndStop(0),this.playAnimation.play()},BasicPlayer.prototype.buildControls=function(t,e){var a=this;this.animationItem=t,e.addEventListener("bmPlay",function(){a.playStarted()}),e.addEventListener("bmPause",function(){a.pauseStarted()}),this.controls=document.createElement("div"),this.controls.style.width="100%",this.controls.style.height="70px",this.controls.style.position="absolute",this.controls.style.left=0,this.controls.style.bottom=0,this.controls.style.backgroundColor="rgba(0,0,0,.3)",e.appendChild(this.controls),styleUnselectableDiv(this.controls),this.scrollBar=document.createElement("div"),this.scrollBar.style.width="100%",this.scrollBar.style.height="14px",this.scrollBar.style.backgroundColor="rgba(25,25,25,1)",styleUnselectableDiv(this.scrollBar),this.controls.appendChild(this.scrollBar),this.scrollBarThumb=document.createElement("div"),this.scrollBarThumb.style.width="18px",this.scrollBarThumb.style.height="18px",this.scrollBarThumb.style.position="absolute",this.scrollBarThumb.style.transform=this.scrollBarThumb.style.webkitTransform="translate(-7px,0px)",this.scrollBarThumb.style.top="-3px",this.scrollBarThumb.style.left="0px",this.scrollBarThumb.style.borderRadius="11px",this.scrollBarThumb.style.border="solid 2px #000000",this.scrollBarThumb.style.backgroundColor="rgba(255,255,255,1)",this.scrollBarThumb.style.cursor="pointer",this.controls.appendChild(this.scrollBarThumb),styleUnselectableDiv(this.scrollBarThumb),this.scrollBar.addEventListener("mousedown",function(t){var e=t.layerX,i=a.scrollBar.clientWidth;a.scrollAnimation(e/i)}),this.scrollBarThumb.addEventListener("mousedown",function(){a.scrollAnimation()}),this.playButton=document.createElement("div"),this.playButton.style.width="40px",this.playButton.style.height="30px",this.playButton.style.marginTop="12px",this.playButton.style.marginLeft="10px",this.playButton.style.backgroundColor="rgba(25,25,25,1)",this.playButton.style.cursor="pointer",this.playButton.setAttribute("data-animation-path","exports/pause"),this.playButton.setAttribute("data-bm-player","0"),this.playButton.setAttribute("data-anim-type","svg"),this.playButton.setAttribute("data-anim-name","play"),this.playButton.setAttribute("data-anim-repeat","0"),this.playButton.style.display="none",this.playAnimation=animationManager.registerAnimation(this.playButton),this.playAnimation.loop=!1,this.controls.appendChild(this.playButton),styleUnselectableDiv(this.playButton),this.playButton.addEventListener("click",function(){a.animationItem.play()}),this.pauseButton=document.createElement("div"),this.pauseButton.style.width="40px",this.pauseButton.style.height="30px",this.pauseButton.style.marginTop="12px",this.pauseButton.style.marginLeft="10px",this.pauseButton.style.backgroundColor="rgba(25,25,25,1)",this.pauseButton.style.cursor="pointer",this.pauseButton.setAttribute("data-animation-path","exports/play"),this.pauseButton.setAttribute("data-bm-player","0"),this.pauseButton.setAttribute("data-anim-type","svg"),this.pauseButton.setAttribute("data-anim-name","pause"),this.pauseButton.setAttribute("data-anim-repeat","0"),this.pauseAnimation=animationManager.registerAnimation(this.pauseButton),this.pauseAnimation.wrapper.addEventListener("bmLoaded",function(){a.pauseAnimation.goToAndStop(a.pauseAnimation.totalFrames-1)}),this.pauseAnimation.loop=!1,this.controls.appendChild(this.pauseButton),styleUnselectableDiv(this.pauseButton),this.pauseButton.addEventListener("click",function(){a.animationItem.pause()})},BasicPlayer.prototype.setProgress=function(t){this.progress=t,this.scrollBarThumb.style.left=100*this.progress+"%"},BasicPlayer.prototype.scrollAnimation=function(t){this.animationItem.isScrolling=!0,this.boundingRect=this.scrollBar.getBoundingClientRect(),this.scrollBarWidth=this.scrollBar.clientWidth;var e=this,a=function(t){var a=t.pageX-e.boundingRect.left;0>a?a=0:a>=e.scrollBarWidth&&(a=e.scrollBarWidth-1),e.animationItem.updateAnimation(a/e.scrollBarWidth)},i=function(){window.removeEventListener("mousemove",a),window.removeEventListener("mouseup",i),e.animationItem.isScrolling=!1};window.addEventListener("mousemove",a),window.addEventListener("mouseup",i),void 0!==t&&e.animationItem.updateAnimation(t)},function(t){function e(t){animationManager.play(t)}function a(t){animationManager.pause(t)}function i(t){animationManager.togglePause(t)}function r(t,e){animationManager.setSpeed(t,e)}function n(t,e){animationManager.setDirection(t,e)}function s(t){animationManager.stop(t)}function o(t){animationManager.moveFrame(t)}function h(){animationManager.searchAnimations()}function l(t){animationManager.registerAnimation(t)}function m(){animationManager.resize()}function p(t){subframeEnabled=t}var c={};c.play=e,c.pause=a,c.togglePause=i,c.setSpeed=r,c.setDirection=n,c.stop=s,c.moveFrame=o,c.searchAnimations=h,c.registerAnimation=l,c.setSubframeRendering=p,c.resize=m,t.bodymovin=c;var d=setInterval(function(){"complete"===document.readyState&&(clearInterval(d),h(),e())},100);!function(){function e(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var a=document.createEvent("CustomEvent");return a.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),a}e.prototype=t.Event.prototype,t.CustomEvent=e}()}(window);}(window));