t = 0, function() { return '__lottie_element_' + (t += 1) }); function y(t, e, s) { var i, a, r, n, h, o, l, p; switch (o = s * (1 - e), l = s * (1 - (h = 6 * t - (n = Math.floor(6 * t))) * e), p = s * (1 - (1 - h) * e), n % 6) { case 0: i = s, a = p, r = o; break; case 1: i = l, a = s, r = o; break; case 2: i = o, a = s, r = p; break; case 3: i = o, a = l, r = s; break; case 4: i = p, a = o, r = s; break; case 5: i = s, a = o, r = l } return [i, a, r] } function b(t, e, s) { var i, a = Math.max(t, e, s), r = Math.min(t, e, s), n = a - r, h = 0 === a ? 0 : n / a, o = a / 255; switch (a) { case r: i = 0; break; case t: i = e - s + n * (e < s ? 6 : 0), i /= 6 * n; break; case e: i = s - t + 2 * n, i /= 6 * n; break; case s: i = t - e + 4 * n, i /= 6 * n } return [i, h, o] } function lt(t, e) { var s = b(255 * t[0], 255 * t[1], 255 * t[2]); return s[1] += e, 1 < s[1] ? s[1] = 1 : s[1] <= 0 && (s[1] = 0), y(s[0], s[1], s[2]) } function pt(t, e) { var s = b(255 * t[0], 255 * t[1], 255 * t[2]); return s[2] += e, 1 < s[2] ? s[2] = 1 : s[2] < 0 && (s[2] = 0), y(s[0], s[1], s[2]) } function ft(t, e) { var s = b(255 * t[0], 255 * t[1], 255 * t[2]); return s[0] += e / 360, 1 < s[0] ? s[0] -= 1 : s[0] < 0 && (s[0] += 1), y(s[0], s[1], s[2]) } !function() { var t, e, s = []; for (t = 0; t < 256; t += 1) e = t.toString(16), s[t] = 1 === e.length ? '0' + e : e }(); function C() {} C.prototype = { triggerEvent: function(t, e) { if (this._cbs[t]) for (var s = this._cbs[t].length, i = 0; i < s; i += 1) this._cbs[t][i](e) }, addEventListener: function(t, e) { return this._cbs[t] || (this._cbs[t] = []), this._cbs[t].push(e), function() { this.removeEventListener(t, e) }.bind(this) }, removeEventListener: function(t, e) { if (e) { if (this._cbs[t]) { for (var s = 0, i = this._cbs[t].length; s < i;) this._cbs[t][s] === e && (this._cbs[t].splice(s, 1), s -= 1, i -= 1), s += 1; this._cbs[t].length || (this._cbs[t] = null) } } else this._cbs[t] = null } }; var j = function() { function s(t, e) { var s, i = 0, a = []; switch (t) { case 'int16': case 'uint8c': s = 1; break; default: s = 1.1 } for (i = 0; i < e; i += 1) a.push(s); return a } return 'function' == typeof Uint8ClampedArray && 'function' == typeof Float32Array ? function(t, e) { return 'float32' === t ? new Float32Array(e) : 'int16' === t ? new Int16Array(e) : 'uint8c' === t ? new Uint8ClampedArray(e) : s(t, e) } : s }(); function D(t) { return Array.apply(null, {length: t}) } function x(t) { return document.createElementNS(e, t) } function w(t) { return document.createElement(t) } function F() {} F.prototype = { addDynamicProperty: function(t) { -1 === this.dynamicProperties.indexOf(t) && (this.dynamicProperties.push(t), this.container.addDynamicProperty(this), this._isAnimated = !0) }, iterateDynamicProperties: function() { var t; this._mdf = !1; var e = this.dynamicProperties.length; for (t = 0; t < e; t += 1) this.dynamicProperties[t].getValue(), this.dynamicProperties[t]._mdf && (this._mdf = !0) }, initDynamicPropertyContainer: function(t) { this.container = t, this.dynamicProperties = [], this._mdf = !1, this._isAnimated = !1 } }; var T, E = (T = { 0: 'source-over', 1: 'multiply', 2: 'screen', 3: 'overlay', 4: 'darken', 5: 'lighten', 6: 'color-dodge', 7: 'color-burn', 8: 'hard-light', 9: 'soft-light', 10: 'difference', 11: 'exclusion', 12: 'hue', 13: 'saturation', 14: 'color', 15: 'luminosity' }, function(t) { return T[t] || '' }), I = function() { var a = Math.cos, r = Math.sin, n = Math.tan, i = Math.round; function t() { return this.props[0] = 1, this.props[1] = 0, this.props[2] = 0, this.props[3] = 0, this.props[4] = 0, this.props[5] = 1, this.props[6] = 0, this.props[7] = 0, this.props[8] = 0, this.props[9] = 0, this.props[10] = 1, this.props[11] = 0, this.props[12] = 0, this.props[13] = 0, this.props[14] = 0, this.props[15] = 1, this } function e(t) { if (0 === t) return this; var e = a(t), s = r(t); return this._t(e, -s, 0, 0, s, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) } function s(t) { if (0 === t) return this; var e = a(t), s = r(t); return this._t(1, 0, 0, 0, 0, e, -s, 0, 0, s, e, 0, 0, 0, 0, 1) } function h(t) { if (0 === t) return this; var e = a(t), s = r(t); return this._t(e, 0, s, 0, 0, 1, 0, 0, -s, 0, e, 0, 0, 0, 0, 1) } function o(t) { if (0 === t) return this; var e = a(t), s = r(t); return this._t(e, -s, 0, 0, s, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) } function l(t, e) { return this._t(1, e, t, 1, 0, 0) } function p(t, e) { return this.shear(n(t), n(e)) } function f(t, e) { var s = a(e), i = r(e); return this._t(s, i, 0, 0, -i, s, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) ._t(1, 0, 0, 0, n(t), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) ._t(s, -i, 0, 0, i, s, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) } function d(t, e, s) { return s || 0 === s || (s = 1), 1 === t && 1 === e && 1 === s ? this : this._t(t, 0, 0, 0, 0, e, 0, 0, 0, 0, s, 0, 0, 0, 0, 1) } function m(t, e, s, i, a, r, n, h, o, l, p, f, d, m, c, u) { return this.props[0] = t, this.props[1] = e, this.props[2] = s, this.props[3] = i, this.props[4] = a, this.props[5] = r, this.props[6] = n, this.props[7] = h, this.props[8] = o, this.props[9] = l, this.props[10] = p, this.props[11] = f, this.props[12] = d, this.props[13] = m, this.props[14] = c, this.props[15] = u, this } function c(t, e, s) { return s = s || 0, 0 !== t || 0 !== e || 0 !== s ? this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t, e, s, 1) : this } function u(t, e, s, i, a, r, n, h, o, l, p, f, d, m, c, u) { var g = this.props; if (1 === t && 0 === e && 0 === s && 0 === i && 0 === a && 1 === r && 0 === n && 0 === h && 0 === o && 0 === l && 1 === p && 0 === f) return g[12] = g[12] * t + g[15] * d, g[13] = g[13] * r + g[15] * m, g[14] = g[14] * p + g[15] * c, g[15] *= u, this._identityCalculated = !1, this; var y = g[0], v = g[1], b = g[2], _ = g[3], k = g[4], A = g[5], P = g[6], S = g[7], C = g[8], D = g[9], x = g[10], w = g[11], F = g[12], T = g[13], E = g[14], M = g[15]; return g[0] = y * t + v * a + b * o + _ * d, g[1] = y * e + v * r + b * l + _ * m, g[2] = y * s + v * n + b * p + _ * c, g[3] = y * i + v * h + b * f + _ * u, g[4] = k * t + A * a + P * o + S * d, g[5] = k * e + A * r + P * l + S * m, g[6] = k * s + A * n + P * p + S * c, g[7] = k * i + A * h + P * f + S * u, g[8] = C * t + D * a + x * o + w * d, g[9] = C * e + D * r + x * l + w * m, g[10] = C * s + D * n + x * p + w * c, g[11] = C * i + D * h + x * f + w * u, g[12] = F * t + T * a + E * o + M * d, g[13] = F * e + T * r + E * l + M * m, g[14] = F * s + T * n + E * p + M * c, g[15] = F * i + T * h + E * f + M * u, this._identityCalculated = !1, this } function g() { return this._identityCalculated || (this._identity = !(1 !== this.props[0] || 0 !== this.props[1] || 0 !== this.props[2] || 0 !== this.props[3] || 0 !== this.props[4] || 1 !== this.props[5] || 0 !== this.props[6] || 0 !== this.props[7] || 0 !== this.props[8] || 0 !== this.props[9] || 1 !== this.props[10] || 0 !== this.props[11] || 0 !== this.props[12] || 0 !== this.props[13] || 0 !== this.props[14] || 1 !== this.props[15]), this._identityCalculated = !0), this._identity } function y(t) { for (var e = 0; e < 16;) { if (t.props[e] !== this.props[e]) return !1; e += 1 } return !0 } function v(t) { var e; for (e = 0; e < 16; e += 1) t.props[e] = this.props[e]; return t } function b(t) { var e; for (e = 0; e < 16; e += 1) this.props[e] = t[e] } function _(t, e, s) { return { x: t * this.props[0] + e * this.props[4] + s * this.props[8] + this.props[12], y: t * this.props[1] + e * this.props[5] + s * this.props[9] + this.props[13], z: t * this.props[2] + e * this.props[6] + s * this.props[10] + this.props[14] } } function k(t, e, s) { return t * this.props[0] + e * this.props[4] + s * this.props[8] + this.props[12] } function A(t, e, s) { return t * this.props[1] + e * this.props[5] + s * this.props[9] + this.props[13] } function P(t, e, s) { return t * this.props[2] + e * this.props[6] + s * this.props[10] + this.props[14] } function S() { var t = this.props[0] * this.props[5] - this.props[1] * this.props[4], e = this.props[5] / t, s = -this.props[1] / t, i = -this.props[4] / t, a = this.props[0] / t, r = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / t, n = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / t, h = new I; return h.props[0] = e, h.props[1] = s, h.props[4] = i, h.props[5] = a, h.props[12] = r, h.props[13] = n, h } function C(t) { return this.getInverseMatrix().applyToPointArray( t[0], t[1], t[2] || 0) } function D(t) { var e, s = t.length, i = []; for (e = 0; e < s; e += 1) i[e] = C(t[e]); return i } function x(t, e, s) { var i = j('float32', 6); if (this.isIdentity()) i[0] = t[0], i[1] = t[1], i[2] = e[0], i[3] = e[1], i[4] = s[0], i[5] = s[1]; else { var a = this.props[0], r = this.props[1], n = this.props[4], h = this.props[5], o = this.props[12], l = this.props[13]; i[0] = t[0] * a + t[1] * n + o, i[1] = t[0] * r + t[1] * h + l, i[2] = e[0] * a + e[1] * n + o, i[3] = e[0] * r + e[1] * h + l, i[4] = s[0] * a + s[1] * n + o, i[5] = s[0] * r + s[1] * h + l } return i } function w(t, e, s) { return this.isIdentity() ? [t, e, s] : [ t * this.props[0] + e * this.props[4] + s * this.props[8] + this.props[12], t * this.props[1] + e * this.props[5] + s * this.props[9] + this.props[13], t * this.props[2] + e * this.props[6] + s * this.props[10] + this.props[14] ] } function F(t, e) { if (this.isIdentity()) return t + ',' + e; var s = this.props; return Math.round(100 * (t * s[0] + e * s[4] + s[12])) / 100 + ',' + Math.round(100 * (t * s[1] + e * s[5] + s[13])) / 100 } function T() { for (var t = 0, e = this.props, s = 'matrix3d('; t < 16;) s += i(1e4 * e[t]) / 1e4, s += 15 === t ? ')' : ',', t += 1; return s } function E(t) { return t < 1e-6 && 0 < t || -1e-6 < t && t < 0 ? i(1e4 * t) / 1e4 : t } function M() { var t = this.props; return 'matrix(' + E(t[0]) + ',' + E(t[1]) + ',' + E(t[4]) + ',' + E(t[5]) + ',' + E(t[12]) + ',' + E(t[13]) + ')' } return function() { this.reset = t, this.rotate = e, this.rotateX = s, this.rotateY = h, this.rotateZ = o, this.skew = p, this.skewFromAxis = f, this.shear = l, this.scale = d, this.setTransform = m, this.translate = c, this.transform = u, this.applyToPoint = _, this.applyToX = k, this.applyToY = A, this.applyToZ = P, this.applyToPointArray = w, this.applyToTriplePoints = x, this.applyToPointStringified = F, this.toCSS = T, this.to2dCSS = M, this.clone = v, this.cloneFromProps = b, this.equals = y, this.inversePoints = D, this.inversePoint = C, this.getInverseMatrix = S, this._t = this.transform, this.isIdentity = g, this._identity = !0, this._identityCalculated = !1, this.props = j('float32', 16), this.reset() } }(); !function(h, o) { var l, p = this, f = 256, d = 6, m = 'random', c = o.pow(f, d), u = o.pow(2, 52), g = 2 * u, y = f - 1; function v(t) { var e, s = t.length, n = this, i = 0, a = n.i = n.j = 0, r = n.S = []; for (s || (t = [s++]); i < f;) r[i] = i++; for (i = 0; i < f; i++) r[i] = r[a = y & a + t[i % s] + (e = r[i])], r[a] = e; n.g = function(t) { for (var e, s = 0, i = n.i, a = n.j, r = n.S; t--;) e = r[i = y & i + 1], s = s * f + r[y & (r[i] = r[a = y & a + e]) + (r[a] = e)]; return n.i = i, n.j = a, s } } function b(t, e) { return e.i = t.i, e.j = t.j, e.S = t.S.slice(), e } function _(t, e) { for (var s, i = t + '', a = 0; a < i.length;) e[y & a] = y & (s ^= 19 * e[y & a]) + i.charCodeAt(a++); return k(e) } function k(t) { return String.fromCharCode.apply(0, t) } o['seed' + m] = function(t, e, s) { var i = [], a = _( function t(e, s) { var i, a = [], r = typeof e; if (s && 'object' == r) for (i in e) try { a.push(t(e[i], s - 1)) } catch (t) { } return a.length ? a : 'string' == r ? e : e + '\0' }((e = !0 === e ? {entropy: !0} : e || {}).entropy ? [t, k(h)] : null === t ? function() { try { if (l) return k(l.randomBytes(f)); var t = new Uint8Array(f); return (p.crypto || p.msCrypto).getRandomValues(t), k(t) } catch (t) { var e = p.navigator, s = e && e.plugins; return [+new Date, p, s, p.screen, k(h)] } }() : t, 3), i), r = new v(i), n = function() { for (var t = r.g(d), e = c, s = 0; t < u;) t = (t + s) * f, e *= f, s = r.g(1); for (; g <= t;) t /= 2, e /= 2, s >>>= 1; return (t + s) / e }; return n.int32 = function() { return 0 | r.g(4) }, n.quick = function() { return r.g(4) / 4294967296 }, n.double = n, _(k(r.S), h), (e.pass || s || function(t, e, s, i) { return i && (i.S && b(i, r), t.state = function() { return b(r, {}) }), s ? (o[m] = t, e) : t })(n, a, 'global' in e ? e.global : this == o, e.state) }, _(o.random(), h) }([], a); var W = function() { var t = { getBezierEasing: function(t, e, s, i, a) { var r = a || ('bez_' + t + '_' + e + '_' + s + '_' + i).replace(/\./g, 'p'); if (h[r]) return h[r]; var n = new o([t, e, s, i]); return h[r] = n } }, h = {}; var l = 11, p = 1 / (l - 1), e = 'function' == typeof Float32Array; function i(t, e) { return 1 - 3 * e + 3 * t } function a(t, e) { return 3 * e - 6 * t } function r(t) { return 3 * t } function f(t, e, s) { return ((i(e, s) * t + a(e, s)) * t + r(e)) * t } function d(t, e, s) { return 3 * i(e, s) * t * t + 2 * a(e, s) * t + r(e) } function o(t) { this._p = t, this._mSampleValues = e ? new Float32Array(l) : new Array(l), this._precomputed = !1, this.get = this.get.bind(this) } return o.prototype = { get: function(t) { var e = this._p[0], s = this._p[1], i = this._p[2], a = this._p[3]; return this._precomputed || this._precompute(), e === s && i === a ? t : 0 === t ? 0 : 1 === t ? 1 : f(this._getTForX(t), s, a) }, _precompute: function() { var t = this._p[0], e = this._p[1], s = this._p[2], i = this._p[3]; this._precomputed = !0, t === e && s === i || this._calcSampleValues() }, _calcSampleValues: function() { for (var t = this._p[0], e = this._p[2], s = 0; s < l; ++s) this._mSampleValues[s] = f(s * p, t, e) }, _getTForX: function(t) { for (var e = this._p[0], s = this._p[2], i = this._mSampleValues, a = 0, r = 1, n = l - 1; r !== n && i[r] <= t; ++r) a += p; var h = a + (t - i[--r]) / (i[r + 1] - i[r]) * p, o = d(h, e, s); return .001 <= o ? function(t, e, s, i) { for (var a = 0; a < 4; ++a) { var r = d(e, s, i); if (0 === r) return e; e -= (f(e, s, i) - t) / r } return e }(t, h, e, s) : 0 === o ? h : function(t, e, s, i, a) { for (var r, n, h = 0; 0 < (r = f(n = e + (s - e) / 2, i, a) - t) ? s = n : e = n, 1e-7 < Math.abs(r) && ++h < 10;); return n }(t, a, a + p, e, s) } }, t }(); function M(t, e) { var s, i, a = t.length; for (s = 0; s < a; s += 1) for (var r in i = t[s].prototype) Object.prototype.hasOwnProperty.call(i, r) && (e.prototype[r] = i[r]) } !function() { for (var a = 0, t = ['ms', 'moz', 'webkit', 'o'], e = 0; e < t.length && !window.requestAnimationFrame; ++e) window.requestAnimationFrame = window[t[e] + 'RequestAnimationFrame'], window.cancelAnimationFrame = window[t[e] + 'CancelAnimationFrame'] || window[t[e] + 'CancelRequestAnimationFrame']; window.requestAnimationFrame || (window.requestAnimationFrame = function(t) { var e = (new Date).getTime(), s = Math.max(0, 16 - (e - a)), i = setTimeout(function() { t(e + s) }, s); return a = e + s, i }), window.cancelAnimationFrame || (window.cancelAnimationFrame = function(t) { clearTimeout(t) }) }(); var dt = function() { var F = Math; function g(t, e, s, i, a, r) { var n = t * i + e * a + s * r - a * i - r * t - s * e; return -.001 < n && n < .001 } var p = function(t, e, s, i) { var a, r, n, h, o, l, p = P, f = 0, d = [], m = [], c = Ft.newElement(); for (n = s.length, a = 0; a < p; a += 1) { for (o = a / (p - 1), r = l = 0; r < n; r += 1) h = _(1 - o, 3) * t[r] + 3 * _(1 - o, 2) * o * s[r] + 3 * (1 - o) * _(o, 2) * i[r] + _(o, 3) * e[r], d[r] = h, null !== m[r] && (l += _(d[r] - m[r], 2)), m[r] = d[r]; l && (f += l = k(l)), c.percents[a] = o, c.lengths[a] = f } return c.addedLength = f, c }; function y(t) { this.segmentLength = 0, this.points = new Array(t) } function v(t, e) { this.partialLength = t, this.point = e } var b, t = (b = {}, function(t, e, s, i) { var a = (t[0] + '_' + t[1] + '_' + e[0] + '_' + e[1] + '_' + s[0] + '_' + s[1] + '_' + i[0] + '_' + i[1]) .replace(/\./g, 'p'); if (!b[a]) { var r, n, h, o, l, p, f, d = P, m = 0, c = null; 2 === t.length && (t[0] !== e[0] || t[1] !== e[1]) && g(t[0], t[1], e[0], e[1], t[0] + s[0], t[1] + s[1]) && g(t[0], t[1], e[0], e[1], e[0] + i[0], e[1] + i[1]) && (d = 2); var u = new y(d); for (h = s.length, r = 0; r < d; r += 1) { for (f = D(h), l = r / (d - 1), n = p = 0; n < h; n += 1) o = _(1 - l, 3) * t[n] + 3 * _(1 - l, 2) * l * (t[n] + s[n]) + 3 * (1 - l) * _(l, 2) * (e[n] + i[n]) + _(l, 3) * e[n], f[n] = o, null !== c && (p += _(f[n] - c[n], 2)); m += p = k(p), u.points[r] = new v(p, f), c = f } u.segmentLength = m, b[a] = u } return b[a] }); function T(t, e) { var s = e.percents, i = e.lengths, a = s.length, r = f((a - 1) * t), n = t * e.addedLength, h = 0; if (r === a - 1 || 0 === r || n === i[r]) return s[r]; for (var o = i[r] > n ? -1 : 1, l = !0; l;) if (i[r] <= n && i[r + 1] > n ? (h = (n - i[r]) / (i[r + 1] - i[r]), l = !1) : r += o, r < 0 || a - 1 <= r) { if (r === a - 1) return s[r]; l = !1 } return s[r] + (s[r + 1] - s[r]) * h } var E = j('float32', 8); return { getSegmentsLength: function(t) { var e, s = wt.newElement(), i = t.c, a = t.v, r = t.o, n = t.i, h = t._length, o = s.lengths, l = 0; for (e = 0; e < h - 1; e += 1) o[e] = p(a[e], a[e + 1], r[e], n[e + 1]), l += o[e].addedLength; return i && h && (o[e] = p(a[e], a[0], r[e], n[0]), l += o[e].addedLength), s.totalLength = l, s }, getNewSegment: function(t, e, s, i, a, r, n) { a < 0 ? a = 0 : 1 < a && (a = 1); var h, o = T(a, n), l = T(r = 1 < r ? 1 : r, n), p = t.length, f = 1 - o, d = 1 - l, m = f * f * f, c = o * f * f * 3, u = o * o * f * 3, g = o * o * o, y = f * f * d, v = o * f * d + f * o * d + f * f * l, b = o * o * d + f * o * l + o * f * l, _ = o * o * l, k = f * d * d, A = o * d * d + f * l * d + f * d * l, P = o * l * d + f * l * l + o * d * l, S = o * l * l, C = d * d * d, D = l * d * d + d * l * d + d * d * l, x = l * l * d + d * l * l + l * d * l, w = l * l * l; for (h = 0; h < p; h += 1) E[4 * h] = F.round( 1e3 * (m * t[h] + c * s[h] + u * i[h] + g * e[h])) / 1e3, E[4 * h + 1] = F.round( 1e3 * (y * t[h] + v * s[h] + b * i[h] + _ * e[h])) / 1e3, E[4 * h + 2] = F.round( 1e3 * (k * t[h] + A * s[h] + P * i[h] + S * e[h])) / 1e3, E[4 * h + 3] = F.round( 1e3 * (C * t[h] + D * s[h] + x * i[h] + w * e[h])) / 1e3; return E }, getPointInSegment: function(t, e, s, i, a, r) { var n = T(a, r), h = 1 - n; return [ F.round( 1e3 * (h * h * h * t[0] + (n * h * h + h * n * h + h * h * n) * s[0] + (n * n * h + h * n * n + n * h * n) * i[0] + n * n * n * e[0])) / 1e3, F.round( 1e3 * (h * h * h * t[1] + (n * h * h + h * n * h + h * h * n) * s[1] + (n * n * h + h * n * n + n * h * n) * i[1] + n * n * n * e[1])) / 1e3 ] }, buildBezierData: t, pointOnLine2D: g, pointOnLine3D: function(t, e, s, i, a, r, n, h, o) { if (0 === s && 0 === r && 0 === o) return g(t, e, i, a, n, h); var l, p = F.sqrt(F.pow(i - t, 2) + F.pow(a - e, 2) + F.pow(r - s, 2)), f = F.sqrt(F.pow(n - t, 2) + F.pow(h - e, 2) + F.pow(o - s, 2)), d = F.sqrt(F.pow(n - i, 2) + F.pow(h - a, 2) + F.pow(o - r, 2)); return -1e-4 < (l = f < p ? d < p ? p - f - d : d - f - p : f < d ? d - f - p : f - p - d) && l < 1e-4 } } }(); var L = function() { function d(t, e, s) { var i, a, r, n, h, o, l, p = t.length; for (a = 0; a < p; a += 1) if ('ks' in (i = t[a]) && !i.completed) { if (i.completed = !0, i.tt && (t[a - 1].td = i.tt), i.hasMask) { var f = i.masksProperties; for (n = f.length, r = 0; r < n; r += 1) if (f[r].pt.k.i) u(f[r].pt.k); else for (o = f[r].pt.k.length, h = 0; h < o; h += 1) f[r].pt.k[h].s && u(f[r].pt.k[h].s[0]), f[r].pt.k[h].e && u(f[r].pt.k[h].e[0]) } 0 === i.ty ? (i.layers = m(i.refId, e), d(i.layers, e, s)) : 4 === i.ty ? c(i.shapes) : 5 === i.ty && (0 !== (l = i).t.a.length || 'm' in l.t.p || (l.singleShape = !0)) } } function m(t, e) { for (var s = 0, i = e.length; s < i;) { if (e[s].id === t) return e[s].layers.__used ? JSON.parse(JSON.stringify(e[s].layers)) : (e[s].layers.__used = !0, e[s].layers); s += 1 } return null } function c(t) { var e, s, i; for (e = t.length - 1; 0 <= e; e -= 1) if ('sh' === t[e].ty) if (t[e].ks.k.i) u(t[e].ks.k); else for (i = t[e].ks.k.length, s = 0; s < i; s += 1) t[e].ks.k[s].s && u(t[e].ks.k[s].s[0]), t[e].ks.k[s].e && u(t[e].ks.k[s].e[0]); else 'gr' === t[e].ty && c(t[e].it) } function u(t) { var e, s = t.i.length; for (e = 0; e < s; e += 1) t.i[e][0] += t.v[e][0], t.i[e][1] += t.v[e][1], t.o[e][0] += t.v[e][0], t.o[e][1] += t.v[e][1] } function h(t, e) { var s = e ? e.split('.') : [100, 100, 100]; return t[0] > s[0] || !(s[0] > t[0]) && (t[1] > s[1] || !(s[1] > t[1]) && (t[2] > s[2] || !(s[2] > t[2]) && null)) } var o, s = function() { var i = [4, 4, 14]; function a(t) { var e, s, i, a = t.length; for (e = 0; e < a; e += 1) 5 === t[e].ty && (s = t[e], i = s.t.d, s.t.d = {k: [{s: i, t: 0}]}) } return function(t) { if (h(i, t.v) && (a(t.layers), t.assets)) { var e, s = t.assets.length; for (e = 0; e < s; e += 1) t.assets[e].layers && a(t.assets[e].layers) } } }(), i = (o = [4, 7, 99], function(t) { if (t.chars && !h(o, t.v)) { var e, s, i, a, r, n = t.chars.length; for (e = 0; e < n; e += 1) if (t.chars[e].data && t.chars[e].data.shapes) for (i = (r = t.chars[e].data.shapes[0].it).length, s = 0; s < i; s += 1) (a = r[s].ks.k).__converted || (u(r[s].ks.k), a.__converted = !0) } }), a = function() { var i = [4, 1, 9]; function r(t) { var e, s, i, a = t.length; for (e = 0; e < a; e += 1) if ('gr' === t[e].ty) r(t[e].it); else if ('fl' === t[e].ty || 'st' === t[e].ty) if (t[e].c.k && t[e].c.k[0].i) for (i = t[e].c.k.length, s = 0; s < i; s += 1) t[e].c.k[s].s && (t[e].c.k[s].s[0] /= 255, t[e].c.k[s].s[1] /= 255, t[e].c.k[s].s[2] /= 255, t[e].c.k[s].s[3] /= 255), t[e].c.k[s].e && (t[e].c.k[s].e[0] /= 255, t[e].c.k[s].e[1] /= 255, t[e].c.k[s].e[2] /= 255, t[e].c.k[s].e[3] /= 255); else t[e].c.k[0] /= 255, t[e].c.k[1] /= 255, t[e].c.k[2] /= 255, t[e].c.k[3] /= 255 } function a(t) { var e, s = t.length; for (e = 0; e < s; e += 1) 4 === t[e].ty && r(t[e].shapes) } return function(t) { if (h(i, t.v) && (a(t.layers), t.assets)) { var e, s = t.assets.length; for (e = 0; e < s; e += 1) t.assets[e].layers && a(t.assets[e].layers) } } }(), r = function() { var i = [4, 4, 18]; function l(t) { var e, s, i; for (e = t.length - 1; 0 <= e; e -= 1) if ('sh' === t[e].ty) if (t[e].ks.k.i) t[e].ks.k.c = t[e].closed; else for (i = t[e].ks.k.length, s = 0; s < i; s += 1) t[e].ks.k[s].s && (t[e].ks.k[s].s[0].c = t[e].closed), t[e].ks.k[s].e && (t[e].ks.k[s].e[0].c = t[e].closed); else 'gr' === t[e].ty && l(t[e].it) } function a(t) { var e, s, i, a, r, n, h = t.length; for (s = 0; s < h; s += 1) { if ((e = t[s]).hasMask) { var o = e.masksProperties; for (a = o.length, i = 0; i < a; i += 1) if (o[i].pt.k.i) o[i].pt.k.c = o[i].cl; else for (n = o[i].pt.k.length, r = 0; r < n; r += 1) o[i].pt.k[r].s && (o[i].pt.k[r].s[0].c = o[i].cl), o[i].pt.k[r].e && (o[i].pt.k[r].e[0].c = o[i].cl) } 4 === e.ty && l(e.shapes) } } return function(t) { if (h(i, t.v) && (a(t.layers), t.assets)) { var e, s = t.assets.length; for (e = 0; e < s; e += 1) t.assets[e].layers && a(t.assets[e].layers) } } }(); var t = { completeData: function(t, e) { t.__complete || (a(t), s(t), i(t), r(t), d(t.layers, t.assets, e), t.__complete = !0) } }; return t.checkColors = a, t.checkChars = i, t.checkShapes = r, t.completeLayers = d, t }(); function q(t) { for (var e = t.fStyle ? t.fStyle.split(' ') : [], s = 'normal', i = 'normal', a = e.length, r = 0; r < a; r += 1) switch (e[r].toLowerCase()) { case 'italic': i = 'italic'; break; case 'bold': s = '700'; break; case 'black': s = '900'; break; case 'medium': s = '500'; break; case 'regular': case 'normal': s = '400'; break; case 'light': case 'thin': s = '200' } return { style: i, weight: t.fWeight || s } } var V = function() { var r = {w: 0, size: 0, shapes: []}, t = []; function d(t, e) { var s = w('span'); s.setAttribute('aria-hidden', !0), s.style.fontFamily = e; var i = w('span'); i.innerText = 'giItT1WQy@!-/#', s.style.position = 'absolute', s.style.left = '-10000px', s.style.top = '-10000px', s.style.fontSize = '300px', s.style.fontVariant = 'normal', s.style.fontStyle = 'normal', s.style.fontWeight = 'normal', s.style.letterSpacing = '0', s.appendChild(i), document.body.appendChild(s); var a = i.offsetWidth; return i.style.fontFamily = function(t) { var e, s = t.split(','), i = s.length, a = []; for (e = 0; e < i; e += 1) 'sans-serif' !== s[e] && 'monospace' !== s[e] && a.push(s[e]); return a.join(',') }(t) + ', ' + e, { node: i, w: a, parent: s } } function m(t, e) { var s = x('text'); s.style.fontSize = '100px'; var i = q(e); return s.setAttribute('font-family', e.fFamily), s.setAttribute('font-style', i.style), s.setAttribute('font-weight', i.weight), s.textContent = '1', e.fClass ? (s.style.fontFamily = 'inherit', s.setAttribute('class', e.fClass)) : s.style.fontFamily = e.fFamily, t.appendChild(s), w('canvas').getContext('2d').font = e.fWeight + ' ' + e.fStyle + ' 100px ' + e.fFamily, s } t = t.concat([ 2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403 ]); var e = function() { this.fonts = [], this.chars = null, this.typekitLoaded = 0, this.isLoaded = !1, this._warned = !1, this.initTime = Date.now(), this.setIsLoadedBinded = this.setIsLoaded.bind(this), this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this) }; return e.getCombinedCharacterCodes = function() { return t }, e.prototype = { addChars: function(t) { if (t) { var e; this.chars || (this.chars = []); var s, i, a = t.length, r = this.chars.length; for (e = 0; e < a; e += 1) { for (s = 0, i = !1; s < r;) this.chars[s].style === t[e].style && this.chars[s].fFamily === t[e].fFamily && this.chars[s].ch === t[e].ch && (i = !0), s += 1; i || (this.chars.push(t[e]), r += 1) } } }, addFonts: function(t, e) { if (t) { if (this.chars) return this.isLoaded = !0, void (this.fonts = t.list); var s, i = t.list, a = i.length, r = a; for (s = 0; s < a; s += 1) { var n, h, o = !0; if (i[s].loaded = !1, i[s].monoCase = d(i[s].fFamily, 'monospace'), i[s].sansCase = d(i[s].fFamily, 'sans-serif'), i[s].fPath) { if ('p' === i[s].fOrigin || 3 === i[s].origin) { if (0 < (n = document.querySelectorAll( 'style[f-forigin="p"][f-family="' + i[s].fFamily + '"], style[f-origin="3"][f-family="' + i[s].fFamily + '"]')) .length && (o = !1), o) { var l = w('style'); l.setAttribute('f-forigin', i[s].fOrigin), l.setAttribute('f-origin', i[s].origin), l.setAttribute('f-family', i[s].fFamily), l.type = 'text/css', l.innerText = '@font-face {font-family: ' + i[s].fFamily + '; font-style: normal; src: url(\'' + i[s].fPath + '\');}', e.appendChild(l) } } else if ('g' === i[s].fOrigin || 1 === i[s].origin) { for (n = document.querySelectorAll( 'link[f-forigin="g"], link[f-origin="1"]'), h = 0; h < n.length; h += 1) -1 !== n[h].href.indexOf(i[s].fPath) && (o = !1); if (o) { var p = w('link'); p.setAttribute('f-forigin', i[s].fOrigin), p.setAttribute('f-origin', i[s].origin), p.type = 'text/css', p.rel = 'stylesheet', p.href = i[s].fPath, document.body.appendChild(p) } } else if ('t' === i[s].fOrigin || 2 === i[s].origin) { for (n = document.querySelectorAll( 'script[f-forigin="t"], script[f-origin="2"]'), h = 0; h < n.length; h += 1) i[s].fPath === n[h].src && (o = !1); if (o) { var f = w('link'); f.setAttribute('f-forigin', i[s].fOrigin), f.setAttribute('f-origin', i[s].origin), f.setAttribute('rel', 'stylesheet'), f.setAttribute('href', i[s].fPath), e.appendChild(f) } } } else i[s].loaded = !0, r -= 1; i[s].helper = m(e, i[s]), i[s].cache = {}, this.fonts.push(i[s]) } 0 === r ? this.isLoaded = !0 : setTimeout(this.checkLoadedFonts.bind(this), 100) } else this.isLoaded = !0 }, getCharData: function(t, e, s) { for (var i = 0, a = this.chars.length; i < a;) { if (this.chars[i].ch === t && this.chars[i].style === e && this.chars[i].fFamily === s) return this.chars[i]; i += 1 } return ('string' == typeof t && 13 !== t.charCodeAt(0) || !t) && console && console.warn && !this._warned && (this._warned = !0, console.warn( 'Missing character from exported characters list: ', t, e, s)), r }, getFontByName: function(t) { for (var e = 0, s = this.fonts.length; e < s;) { if (this.fonts[e].fName === t) return this.fonts[e]; e += 1 } return this.fonts[0] }, measureText: function(t, e, s) { var i = this.getFontByName(e), a = t.charCodeAt(0); if (!i.cache[a + 1]) { var r = i.helper; if (' ' === t) { r.textContent = '|' + t + '|'; var n = r.getComputedTextLength(); r.textContent = '||'; var h = r.getComputedTextLength(); i.cache[a + 1] = (n - h) / 100 } else r.textContent = t, i.cache[a + 1] = r.getComputedTextLength() / 100 } return i.cache[a + 1] * s }, checkLoadedFonts: function() { var t, e, s, i = this.fonts.length, a = i; for (t = 0; t < i; t += 1) this.fonts[t].loaded ? a -= 1 : 'n' === this.fonts[t].fOrigin || 0 === this.fonts[t].origin ? this.fonts[t].loaded = !0 : (e = this.fonts[t].monoCase.node, s = this.fonts[t].monoCase.w, e.offsetWidth !== s ? (a -= 1, this.fonts[t].loaded = !0) : (e = this.fonts[t].sansCase.node, s = this.fonts[t].sansCase.w, e.offsetWidth !== s && (a -= 1, this.fonts[t].loaded = !0)), this.fonts[t].loaded && (this.fonts[t].sansCase.parent.parentNode.removeChild( this.fonts[t].sansCase.parent), this.fonts[t].monoCase.parent.parentNode.removeChild( this.fonts[t].monoCase.parent))); 0 !== a && Date.now() - this.initTime < 5e3 ? setTimeout(this.checkLoadedFontsBinded, 20) : setTimeout(this.setIsLoadedBinded, 10) }, setIsLoaded: function() { this.isLoaded = !0 } }, e }(), R = function() { var f = s, a = Math.abs; function d(t, e) { var s, i = this.offsetTime; 'multidimensional' === this.propType && (s = j('float32', this.pv.length)); for (var a, r, n, h, o, l, p, f, d = e.lastIndex, m = d, c = this.keyframes.length - 1, u = !0; u;) { if (a = this.keyframes[m], r = this.keyframes[m + 1], m === c - 1 && t >= r.t - i) { a.h && (a = r), d = 0; break } if (r.t - i > t) { d = m; break } m < c - 1 ? m += 1 : (d = 0, u = !1) } var g, y, v, b, _, k, A, P, S, C, D = r.t - i, x = a.t - i; if (a.to) { a.bezierData || (a.bezierData = dt.buildBezierData(a.s, r.s || a.e, a.to, a.ti)); var w = a.bezierData; if (D <= t || t < x) { var F = D <= t ? w.points.length - 1 : 0; for (h = w.points[F].point.length, n = 0; n < h; n += 1) s[n] = w.points[F].point[n] } else { a.__fnct ? f = a.__fnct : (f = W.getBezierEasing(a.o.x, a.o.y, a.i.x, a.i.y, a.n).get, a.__fnct = f), o = f((t - x) / (D - x)); var T, E = w.segmentLength * o, M = e.lastFrame < t && e._lastKeyframeIndex === m ? e._lastAddedLength : 0; for (p = e.lastFrame < t && e._lastKeyframeIndex === m ? e._lastPoint : 0, u = !0, l = w.points.length; u;) { if (M += w.points[p].partialLength, 0 === E || 0 === o || p === w.points.length - 1) { for (h = w.points[p].point.length, n = 0; n < h; n += 1) s[n] = w.points[p].point[n]; break } if (M <= E && E < M + w.points[p + 1].partialLength) { for (T = (E - M) / w.points[p + 1].partialLength, h = w.points[p].point.length, n = 0; n < h; n += 1) s[n] = w.points[p].point[n] + (w.points[p + 1].point[n] - w.points[p].point[n]) * T; break } p < l - 1 ? p += 1 : u = !1 } e._lastPoint = p, e._lastAddedLength = M - w.points[p].partialLength, e._lastKeyframeIndex = m } } else { var I, L, V, R, z; if (c = a.s.length, g = r.s || a.e, this.sh && 1 !== a.h) if (D <= t) s[0] = g[0], s[1] = g[1], s[2] = g[2]; else if (t <= x) s[0] = a.s[0], s[1] = a.s[1], s[2] = a.s[2]; else { var N = q(a.s), O = q(g); y = s, v = function(t, e, s) { var i, a, r, n, h, o = [], l = t[0], p = t[1], f = t[2], d = t[3], m = e[0], c = e[1], u = e[2], g = e[3]; (a = l * m + p * c + f * u + d * g) < 0 && (a = -a, m = -m, c = -c, u = -u, g = -g); h = 1e-6 < 1 - a ? (i = Math.acos(a), r = Math.sin(i), n = Math.sin((1 - s) * i) / r, Math.sin(s * i) / r) : (n = 1 - s, s); return o[0] = n * l + h * m, o[1] = n * p + h * c, o[2] = n * f + h * u, o[3] = n * d + h * g, o }(N, O, (t - x) / (D - x)), b = v[0], _ = v[1], k = v[2], A = v[3], P = Math.atan2(2 * _ * A - 2 * b * k, 1 - 2 * _ * _ - 2 * k * k), S = Math.asin(2 * b * _ + 2 * k * A), C = Math.atan2(2 * b * A - 2 * _ * k, 1 - 2 * b * b - 2 * k * k), y[0] = P / B, y[1] = S / B, y[2] = C / B } else for (m = 0; m < c; m += 1) 1 !== a.h && (o = D <= t ? 1 : t < x ? 0 : (a.o.x.constructor === Array ? (a.__fnct || (a.__fnct = []), a.__fnct[m] ? f = a.__fnct[m] : (I = void 0 === a.o.x[m] ? a.o.x[0] : a.o.x[m], L = void 0 === a.o.y[m] ? a.o.y[0] : a.o.y[m], V = void 0 === a.i.x[m] ? a.i.x[0] : a.i.x[m], R = void 0 === a.i.y[m] ? a.i.y[0] : a.i.y[m], f = W.getBezierEasing(I, L, V, R).get, a.__fnct[m] = f)) : a.__fnct ? f = a.__fnct : (I = a.o.x, L = a.o.y, V = a.i.x, R = a.i.y, f = W.getBezierEasing(I, L, V, R).get, a.__fnct = f), f((t - x) / (D - x)))), g = r.s || a.e, z = 1 === a.h ? a.s[m] : a.s[m] + (g[m] - a.s[m]) * o, 'multidimensional' === this.propType ? s[m] = z : s = z } return e.lastIndex = d, s } function q(t) { var e = t[0] * B, s = t[1] * B, i = t[2] * B, a = Math.cos(e / 2), r = Math.cos(s / 2), n = Math.cos(i / 2), h = Math.sin(e / 2), o = Math.sin(s / 2), l = Math.sin(i / 2); return [ h * o * n + a * r * l, h * r * n + a * o * l, a * o * n - h * r * l, a * r * n - h * o * l ] } function m() { var t = this.comp.renderedFrame - this.offsetTime, e = this.keyframes[0].t - this.offsetTime, s = this.keyframes[this.keyframes.length - 1].t - this.offsetTime; if (!(t === this._caching.lastFrame || this._caching.lastFrame !== f && (this._caching.lastFrame >= s && s <= t || this._caching.lastFrame < e && t < e))) { this._caching.lastFrame >= t && (this._caching._lastKeyframeIndex = -1, this._caching.lastIndex = 0); var i = this.interpolateValue(t, this._caching); this.pv = i } return this._caching.lastFrame = t, this.pv } function c(t) { var e; if ('unidimensional' === this.propType) e = t * this.mult, 1e-5 < a(this.v - e) && (this.v = e, this._mdf = !0); else for (var s = 0, i = this.v.length; s < i;) e = t[s] * this.mult, 1e-5 < a(this.v[s] - e) && (this.v[s] = e, this._mdf = !0), s += 1 } function u() { if (this.elem.globalData.frameId !== this.frameId && this.effectsSequence.length) if (this.lock) this.setVValue(this.pv); else { var t; this.lock = !0, this._mdf = this._isFirstFrame; var e = this.effectsSequence.length, s = this.kf ? this.pv : this.data.k; for (t = 0; t < e; t += 1) s = this.effectsSequence[t](s); this.setVValue(s), this._isFirstFrame = !1, this.lock = !1, this.frameId = this.elem.globalData.frameId } } function g(t) { this.effectsSequence.push(t), this.container.addDynamicProperty(this) } function n(t, e, s, i) { this.propType = 'unidimensional', this.mult = s || 1, this.data = e, this.v = s ? e.k * s : e.k, this.pv = e.k, this._mdf = !1, this.elem = t, this.container = i, this.comp = t.comp, this.k = !1, this.kf = !1, this.vel = 0, this.effectsSequence = [], this._isFirstFrame = !0, this.getValue = u, this.setVValue = c, this.addEffect = g } function h(t, e, s, i) { var a; this.propType = 'multidimensional', this.mult = s || 1, this.data = e, this._mdf = !1, this.elem = t, this.container = i, this.comp = t.comp, this.k = !1, this.kf = !1, this.frameId = -1; var r = e.k.length; for (this.v = j('float32', r), this.pv = j('float32', r), this.vel = j('float32', r), a = 0; a < r; a += 1) this.v[a] = e.k[a] * this.mult, this.pv[a] = e.k[a]; this._isFirstFrame = !0, this.effectsSequence = [], this.getValue = u, this.setVValue = c, this.addEffect = g } function o(t, e, s, i) { this.propType = 'unidimensional', this.keyframes = e.k, this.offsetTime = t.data.st, this.frameId = -1, this._caching = {lastFrame: f, lastIndex: 0, value: 0, _lastKeyframeIndex: -1}, this.k = !0, this.kf = !0, this.data = e, this.mult = s || 1, this.elem = t, this.container = i, this.comp = t.comp, this.v = f, this.pv = f, this._isFirstFrame = !0, this.getValue = u, this.setVValue = c, this.interpolateValue = d, this.effectsSequence = [m.bind(this)], this.addEffect = g } function l(t, e, s, i) { var a; this.propType = 'multidimensional'; var r, n, h, o, l = e.k.length; for (a = 0; a < l - 1; a += 1) e.k[a].to && e.k[a].s && e.k[a + 1] && e.k[a + 1].s && (r = e.k[a].s, n = e.k[a + 1].s, h = e.k[a].to, o = e.k[a].ti, (2 === r.length && (r[0] !== n[0] || r[1] !== n[1]) && dt.pointOnLine2D( r[0], r[1], n[0], n[1], r[0] + h[0], r[1] + h[1]) && dt.pointOnLine2D( r[0], r[1], n[0], n[1], n[0] + o[0], n[1] + o[1]) || 3 === r.length && (r[0] !== n[0] || r[1] !== n[1] || r[2] !== n[2]) && dt.pointOnLine3D( r[0], r[1], r[2], n[0], n[1], n[2], r[0] + h[0], r[1] + h[1], r[2] + h[2]) && dt.pointOnLine3D( r[0], r[1], r[2], n[0], n[1], n[2], n[0] + o[0], n[1] + o[1], n[2] + o[2])) && (e.k[a].to = null, e.k[a].ti = null), r[0] === n[0] && r[1] === n[1] && 0 === h[0] && 0 === h[1] && 0 === o[0] && 0 === o[1] && (2 === r.length || r[2] === n[2] && 0 === h[2] && 0 === o[2]) && (e.k[a].to = null, e.k[a].ti = null)); this.effectsSequence = [m.bind(this)], this.data = e, this.keyframes = e.k, this.offsetTime = t.data.st, this.k = !0, this.kf = !0, this._isFirstFrame = !0, this.mult = s || 1, this.elem = t, this.container = i, this.comp = t.comp, this.getValue = u, this.setVValue = c, this.interpolateValue = d, this.frameId = -1; var p = e.k[0].s.length; for (this.v = j('float32', p), this.pv = j('float32', p), a = 0; a < p; a += 1) this.v[a] = f, this.pv[a] = f; this._caching = {lastFrame: f, lastIndex: 0, value: j('float32', p)}, this.addEffect = g } return { getProp: function(t, e, s, i, a) { var r; if (e.k.length) if ('number' == typeof e.k[0]) r = new h(t, e, i, a); else switch (s) { case 0: r = new o(t, e, i, a); break; case 1: r = new l(t, e, i, a) } else r = new n(t, e, i, a); return r.effectsSequence.length && a.addDynamicProperty(r), r } } }(), z = function() { var n = [0, 0]; function i(t, e, s) { if (this.elem = t, this.frameId = -1, this.propType = 'transform', this.data = e, this.v = new I, this.pre = new I, this.appliedTransformations = 0, this.initDynamicPropertyContainer(s || t), e.p && e.p.s ? (this.px = R.getProp(t, e.p.x, 0, 0, this), this.py = R.getProp(t, e.p.y, 0, 0, this), e.p.z && (this.pz = R.getProp(t, e.p.z, 0, 0, this))) : this.p = R.getProp(t, e.p || {k: [0, 0, 0]}, 1, 0, this), e.rx) { if (this.rx = R.getProp(t, e.rx, 0, B, this), this.ry = R.getProp(t, e.ry, 0, B, this), this.rz = R.getProp(t, e.rz, 0, B, this), e.or.k[0].ti) { var i, a = e.or.k.length; for (i = 0; i < a; i += 1) e.or.k[i].to = null, e.or.k[i].ti = null } this.or = R.getProp(t, e.or, 1, B, this), this.or.sh = !0 } else this.r = R.getProp(t, e.r || {k: 0}, 0, B, this); e.sk && (this.sk = R.getProp(t, e.sk, 0, B, this), this.sa = R.getProp(t, e.sa, 0, B, this)), this.a = R.getProp(t, e.a || {k: [0, 0, 0]}, 1, 0, this), this.s = R.getProp(t, e.s || {k: [100, 100, 100]}, 1, .01, this), e.o ? this.o = R.getProp(t, e.o, 0, .01, t) : this.o = {_mdf: !1, v: 1}, this._isDirty = !0, this.dynamicProperties.length || this.getValue(!0) } return i.prototype = { applyToMatrix: function(t) { var e = this._mdf; this.iterateDynamicProperties(), this._mdf = this._mdf || e, this.a && t.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), this.s && t.scale(this.s.v[0], this.s.v[1], this.s.v[2]), this.sk && t.skewFromAxis(-this.sk.v, this.sa.v), this.r ? t.rotate(-this.r.v) : t.rotateZ(-this.rz.v) .rotateY(this.ry.v) .rotateX(this.rx.v) .rotateZ(-this.or.v[2]) .rotateY(this.or.v[1]) .rotateX(this.or.v[0]), this.data.p.s ? this.data.p.z ? t.translate(this.px.v, this.py.v, -this.pz.v) : t.translate(this.px.v, this.py.v, 0) : t.translate(this.p.v[0], this.p.v[1], -this.p.v[2]) }, getValue: function(t) { if (this.elem.globalData.frameId !== this.frameId) { if (this._isDirty && (this.precalculateMatrix(), this._isDirty = !1), this.iterateDynamicProperties(), this._mdf || t) { var e; if (this.v.cloneFromProps(this.pre.props), this.appliedTransformations < 1 && this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), this.appliedTransformations < 2 && this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]), this.sk && this.appliedTransformations < 3 && this.v.skewFromAxis(-this.sk.v, this.sa.v), this.r && this.appliedTransformations < 4 ? this.v.rotate(-this.r.v) : !this.r && this.appliedTransformations < 4 && this.v.rotateZ(-this.rz.v) .rotateY(this.ry.v) .rotateX(this.rx.v) .rotateZ(-this.or.v[2]) .rotateY(this.or.v[1]) .rotateX(this.or.v[0]), this.autoOriented) { var s, i; if (e = this.elem.globalData.frameRate, this.p && this.p.keyframes && this.p.getValueAtTime) i = this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t ? (s = this.p.getValueAtTime( (this.p.keyframes[0].t + .01) / e, 0), this.p.getValueAtTime(this.p.keyframes[0].t / e, 0)) : this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t ? (s = this.p.getValueAtTime( this.p.keyframes[this.p.keyframes.length - 1].t / e, 0), this.p.getValueAtTime( (this.p.keyframes[this.p.keyframes.length - 1].t - .05) / e, 0)) : (s = this.p.pv, this.p.getValueAtTime( (this.p._caching.lastFrame + this.p.offsetTime - .01) / e, this.p.offsetTime)); else if ( this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) { s = [], i = []; var a = this.px, r = this.py; a._caching.lastFrame + a.offsetTime <= a.keyframes[0].t ? (s[0] = a.getValueAtTime((a.keyframes[0].t + .01) / e, 0), s[1] = r.getValueAtTime((r.keyframes[0].t + .01) / e, 0), i[0] = a.getValueAtTime(a.keyframes[0].t / e, 0), i[1] = r.getValueAtTime(r.keyframes[0].t / e, 0)) : a._caching.lastFrame + a.offsetTime >= a.keyframes[a.keyframes.length - 1].t ? (s[0] = a.getValueAtTime( a.keyframes[a.keyframes.length - 1].t / e, 0), s[1] = r.getValueAtTime( r.keyframes[r.keyframes.length - 1].t / e, 0), i[0] = a.getValueAtTime( (a.keyframes[a.keyframes.length - 1].t - .01) / e, 0), i[1] = r.getValueAtTime( (r.keyframes[r.keyframes.length - 1].t - .01) / e, 0)) : (s = [a.pv, r.pv], i[0] = a.getValueAtTime( (a._caching.lastFrame + a.offsetTime - .01) / e, a.offsetTime), i[1] = r.getValueAtTime( (r._caching.lastFrame + r.offsetTime - .01) / e, r.offsetTime)) } else s = i = n; this.v.rotate(-Math.atan2(s[1] - i[1], s[0] - i[0])) } this.data.p && this.data.p.s ? this.data.p.z ? this.v.translate(this.px.v, this.py.v, -this.pz.v) : this.v.translate(this.px.v, this.py.v, 0) : this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]) } this.frameId = this.elem.globalData.frameId } }, precalculateMatrix: function() { if (!this.a.k && (this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), this.appliedTransformations = 1, !this.s.effectsSequence.length)) { if (this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]), this.appliedTransformations = 2, this.sk) { if (this.sk.effectsSequence.length || this.sa.effectsSequence.length) return; this.pre.skewFromAxis(-this.sk.v, this.sa.v), this.appliedTransformations = 3 } this.r ? this.r.effectsSequence.length || (this.pre.rotate(-this.r.v), this.appliedTransformations = 4) : this.rz.effectsSequence.length || this.ry.effectsSequence.length || this.rx.effectsSequence.length || this.or.effectsSequence.length || (this.pre.rotateZ(-this.rz.v) .rotateY(this.ry.v) .rotateX(this.rx.v) .rotateZ(-this.or.v[2]) .rotateY(this.or.v[1]) .rotateX(this.or.v[0]), this.appliedTransformations = 4) } }, autoOrient: function() {} }, M([F],