chbim-plugins
Version:
此插件和chbim云平台强绑定
842 lines • 1.38 MB
JavaScript
var xy = Object.defineProperty;
var wy = (x, a, o) => a in x ? xy(x, a, { enumerable: !0, configurable: !0, writable: !0, value: o }) : x[a] = o;
var Go = (x, a, o) => (wy(x, typeof a != "symbol" ? a + "" : a, o), o);
import { openBlock as Zu, createElementBlock as Ju, normalizeClass as Nd, renderSlot as Fd, defineComponent as of, ref as Fc, onMounted as sf, createElementVNode as Mr, toDisplayString as Ty, createApp as xd } from "vue";
const My = (x, a) => {
const o = x.__vccOpts || x;
for (const [c, f] of a)
o[c] = f;
return o;
}, Sy = {
name: "MukButton"
}, Ey = /* @__PURE__ */ Object.assign(Sy, {
props: {
size: {
type: String,
default: "middle"
},
type: {
type: String,
default: "default"
}
},
setup(x) {
return (a, o) => (Zu(), Ju("button", {
class: Nd(["muk-btn", [x.size, x.type]])
}, [
Fd(a.$slots, "default", {}, void 0, !0)
], 2));
}
}), by = /* @__PURE__ */ My(Ey, [["__scopeId", "data-v-0e6d93cd"]]);
class Cy {
constructor() {
this.dom = {
mask: document.querySelector(".js-mask"),
slices: [...document.querySelectorAll(".js-mask__slice")],
lines: [...document.querySelectorAll(".js-mask-line")],
logo: document.querySelector(".js-logo"),
titles: [...document.querySelectorAll(".js-transition-title")]
}, this.tl = null, this.state = !1, this.init();
}
resetScroll() {
window.scrollTo(0, 0);
}
createTimeline() {
this.tl = new TimelineMax({
paused: !0,
onComplete: () => {
this.state = !1;
}
}), this.tl.set(this.dom.titles, {
yPercent: 0
}).set(this.dom.mask, {
autoAlpha: 1
}).staggerFromTo(
this.dom.slices,
1.5,
{
xPercent: 100
},
{
xPercent: 0,
ease: Expo.easeInOut
},
-0.075
).addCallback(this.resetScroll.bind(this)).addLabel("loaderStart").set(this.dom.titles, {
yPercent: -100
}).set([this.dom.lines[0], this.dom.logo], {
autoAlpha: 1
}).fromTo(
this.dom.logo,
1,
{
yPercent: -100,
rotation: 10
},
{
yPercent: 0,
rotation: 0,
ease: Expo.easeOut
}
).addLabel("intermediateFrame").staggerFromTo(
this.dom.lines,
0.5,
{
scaleX: 0
},
{
scaleX: 1,
ease: Expo.easeInOut
},
0.75,
"-=1"
).set(this.dom.lines, {
transformOrigin: "right"
}).fromTo(
this.dom.lines[0],
1,
{
scaleX: 1
},
{
scaleX: 0,
ease: Expo.easeInOut
}
).fromTo(
this.dom.logo,
1,
{
yPercent: 0
},
{
yPercent: 105,
ease: Expo.easeOut
},
"-=1"
).staggerFromTo(
this.dom.slices,
0.5,
{
xPercent: 0
},
{
xPercent: 100,
ease: Expo.easeInOut
},
0.075
).set(this.dom.mask, {
autoAlpha: 0
}).addLabel("imagesStart", "-=0.85").staggerFromTo(
this.dom.titles,
1.5,
{
yPercent: 100
},
{
yPercent: 0,
ease: Expo.easeInOut
},
0.05,
"imagesStart"
).addLabel("loaderEnd");
}
continuation() {
this.init(), this.resetScroll(), this.tl.tweenFromTo("loaderStart", "loaderEnd");
}
show() {
this.init(), this.tl.tweenFromTo("loaderStart", "intermediateFrame");
}
hide() {
this.resetScroll(), this.tl.tweenFromTo("intermediateFrame", "loaderEnd");
}
init() {
document.querySelector(".mask-line.js-mask-line") && document.querySelector(".mask-line.js-mask-line").removeAttribute("style"), document.querySelector(".mask-line__inner.js-mask-line") && document.querySelector(".mask-line__inner.js-mask-line").removeAttribute("style"), this.createTimeline();
}
}
const Ay = { class: "mask js-mask" }, Py = /* @__PURE__ */ Mr("div", { class: "mask__slice js-mask__slice" }, null, -1), Ly = /* @__PURE__ */ Mr("div", { class: "mask__slice js-mask__slice" }, null, -1), Ry = /* @__PURE__ */ Mr("div", { class: "mask__slice js-mask__slice" }, null, -1), Oy = { class: "mask__inner" }, Iy = { class: "logo logo--mask" }, Dy = {
class: "js-logo",
style: { color: "#fff" }
}, zy = /* @__PURE__ */ Mr("div", { class: "mask-line js-mask-line" }, [
/* @__PURE__ */ Mr("div", { class: "mask-line__inner js-mask-line" })
], -1), ky = {
name: "BimCutscenes"
}, By = /* @__PURE__ */ of({
...ky,
props: {
text: {
type: String,
default: "CHBIM云平台"
}
},
setup(x, { expose: a }) {
const o = Fc(null), c = () => {
o.value === null && (o.value = new Cy());
}, f = () => {
c(), o.value.continuation();
};
return sf(() => {
c();
}), a({
continuation: f
}), (u, m) => (Zu(), Ju("div", Ay, [
Py,
Ly,
Ry,
Mr("div", Oy, [
Mr("figure", Iy, [
Mr("p", Dy, Ty(x.text), 1)
]),
zy
])
]));
}
});
/*!
* VERSION: 2.0.2
* DATE: 2018-08-27
* UPDATES AND DOCS AT: http://greensock.com
*
* Includes all of the following: TweenLite, TweenMax, TimelineLite, TimelineMax, EasePack, CSSPlugin, RoundPropsPlugin, BezierPlugin, AttrPlugin, DirectionalRotationPlugin
*
* @license Copyright (c) 2008-2018, GreenSock. All rights reserved.
* This work is subject to the terms at http://greensock.com/standard-license or for
* Club GreenSock members, the software agreement that was issued with your membership.
*
* @author: Jack Doyle, jack@greensock.com
**/
var hn = typeof module < "u" && module.exports && typeof global < "u" ? global : globalThis || window;
(hn._gsQueue || (hn._gsQueue = [])).push(function() {
hn._gsDefine(
"TweenMax",
["core.Animation", "core.SimpleTimeline", "TweenLite"],
function(x, a, o) {
var c = function(E) {
var P, w = [], M = E.length;
for (P = 0; P !== M; w.push(E[P++]))
;
return w;
}, f = function(E, P, w) {
var M, R, C = E.cycle;
for (M in C)
R = C[M], E[M] = typeof R == "function" ? R(w, P[w]) : R[w % R.length];
delete E.cycle;
}, u = function(E, P, w) {
o.call(this, E, P, w), this._cycle = 0, this._yoyo = this.vars.yoyo === !0 || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._repeat && this._uncache(!0), this.render = u.prototype.render;
}, m = 1e-10, g = o._internals, v = g.isSelector, S = g.isArray, b = u.prototype = o.to({}, 0.1, {}), O = [];
u.version = "2.0.2", b.constructor = u, b.kill()._gc = !1, u.killTweensOf = u.killDelayedCallsTo = o.killTweensOf, u.getTweensOf = o.getTweensOf, u.lagSmoothing = o.lagSmoothing, u.ticker = o.ticker, u.render = o.render, b.invalidate = function() {
return this._yoyo = this.vars.yoyo === !0 || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._yoyoEase = null, this._uncache(!0), o.prototype.invalidate.call(this);
}, b.updateTo = function(E, P) {
var w, M = this.ratio, R = this.vars.immediateRender || E.immediateRender;
P && this._startTime < this._timeline._time && (this._startTime = this._timeline._time, this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay));
for (w in E)
this.vars[w] = E[w];
if (this._initted || R) {
if (P)
this._initted = !1, R && this.render(0, !0, !0);
else if (this._gc && this._enabled(!0, !1), this._notifyPluginsOfEnabled && this._firstPT && o._onPluginEvent("_onDisable", this), this._time / this._duration > 0.998) {
var C = this._totalTime;
this.render(0, !0, !1), this._initted = !1, this.render(C, !0, !1);
} else if (this._initted = !1, this._init(), this._time > 0 || R)
for (var U, F = 1 / (1 - M), X = this._firstPT; X; )
U = X.s + X.c, X.c *= F, X.s = U - X.c, X = X._next;
}
return this;
}, b.render = function(E, P, w) {
this._initted || this._duration === 0 && this.vars.repeat && this.invalidate();
var M, R, C, U, F, X, K, Z, ct, Rt = this._dirty ? this.totalDuration() : this._totalDuration, tt = this._time, _t = this._totalTime, G = this._cycle, Pt = this._duration, Et = this._rawPrevTime;
if (E >= Rt - 1e-7 && E >= 0 ? (this._totalTime = Rt, this._cycle = this._repeat, this._yoyo && 1 & this._cycle ? (this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = Pt, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1), this._reversed || (M = !0, R = "onComplete", w = w || this._timeline.autoRemoveChildren), Pt === 0 && (this._initted || !this.vars.lazy || w) && (this._startTime === this._timeline._duration && (E = 0), (0 > Et || 0 >= E && E >= -1e-7 || Et === m && this.data !== "isPause") && Et !== E && (w = !0, Et > m && (R = "onReverseComplete")), this._rawPrevTime = Z = !P || E || Et === E ? E : m)) : 1e-7 > E ? (this._totalTime = this._time = this._cycle = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (_t !== 0 || Pt === 0 && Et > 0) && (R = "onReverseComplete", M = this._reversed), 0 > E && (this._active = !1, Pt === 0 && (this._initted || !this.vars.lazy || w) && (Et >= 0 && (w = !0), this._rawPrevTime = Z = !P || E || Et === E ? E : m)), this._initted || (w = !0)) : (this._totalTime = this._time = E, this._repeat !== 0 && (U = Pt + this._repeatDelay, this._cycle = this._totalTime / U >> 0, this._cycle !== 0 && this._cycle === this._totalTime / U && E >= _t && this._cycle--, this._time = this._totalTime - this._cycle * U, this._yoyo && 1 & this._cycle && (this._time = Pt - this._time, ct = this._yoyoEase || this.vars.yoyoEase, ct && (this._yoyoEase || (ct !== !0 || this._initted ? this._yoyoEase = ct = ct === !0 ? this._ease : ct instanceof Ease ? ct : Ease.map[ct] : (ct = this.vars.ease, this._yoyoEase = ct = ct ? ct instanceof Ease ? ct : typeof ct == "function" ? new Ease(ct, this.vars.easeParams) : Ease.map[ct] || o.defaultEase : o.defaultEase)), this.ratio = ct ? 1 - ct.getRatio((Pt - this._time) / Pt) : 0)), this._time > Pt ? this._time = Pt : this._time < 0 && (this._time = 0)), this._easeType && !ct ? (F = this._time / Pt, X = this._easeType, K = this._easePower, (X === 1 || X === 3 && F >= 0.5) && (F = 1 - F), X === 3 && (F *= 2), K === 1 ? F *= F : K === 2 ? F *= F * F : K === 3 ? F *= F * F * F : K === 4 && (F *= F * F * F * F), X === 1 ? this.ratio = 1 - F : X === 2 ? this.ratio = F : this._time / Pt < 0.5 ? this.ratio = F / 2 : this.ratio = 1 - F / 2) : ct || (this.ratio = this._ease.getRatio(this._time / Pt))), tt === this._time && !w && G === this._cycle)
return void (_t !== this._totalTime && this._onUpdate && (P || this._callback("onUpdate")));
if (!this._initted) {
if (this._init(), !this._initted || this._gc)
return;
if (!w && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration))
return this._time = tt, this._totalTime = _t, this._rawPrevTime = Et, this._cycle = G, g.lazyTweens.push(this), void (this._lazy = [E, P]);
!this._time || M || ct ? M && this._ease._calcEnd && !ct && (this.ratio = this._ease.getRatio(this._time === 0 ? 0 : 1)) : this.ratio = this._ease.getRatio(this._time / Pt);
}
for (this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== tt && E >= 0 && (this._active = !0), _t === 0 && (this._initted === 2 && E > 0 && this._init(), this._startAt && (E >= 0 ? this._startAt.render(E, !0, w) : R || (R = "_dummyGS")), this.vars.onStart && (this._totalTime !== 0 || Pt === 0) && (P || this._callback("onStart"))), C = this._firstPT; C; )
C.f ? C.t[C.p](C.c * this.ratio + C.s) : C.t[C.p] = C.c * this.ratio + C.s, C = C._next;
this._onUpdate && (0 > E && this._startAt && this._startTime && this._startAt.render(E, !0, w), P || (this._totalTime !== _t || R) && this._callback("onUpdate")), this._cycle !== G && (P || this._gc || this.vars.onRepeat && this._callback("onRepeat")), R && (!this._gc || w) && (0 > E && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(E, !0, w), M && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !P && this.vars[R] && this._callback(R), Pt === 0 && this._rawPrevTime === m && Z !== m && (this._rawPrevTime = 0));
}, u.to = function(E, P, w) {
return new u(E, P, w);
}, u.from = function(E, P, w) {
return w.runBackwards = !0, w.immediateRender = w.immediateRender != 0, new u(E, P, w);
}, u.fromTo = function(E, P, w, M) {
return M.startAt = w, M.immediateRender = M.immediateRender != 0 && w.immediateRender != 0, new u(E, P, M);
}, u.staggerTo = u.allTo = function(E, P, w, M, R, C, U) {
M = M || 0;
var F, X, K, Z, ct = 0, Rt = [], tt = function() {
w.onComplete && w.onComplete.apply(w.onCompleteScope || this, arguments), R.apply(U || w.callbackScope || this, C || O);
}, _t = w.cycle, G = w.startAt && w.startAt.cycle;
for (S(E) || (typeof E == "string" && (E = o.selector(E) || E), v(E) && (E = c(E))), E = E || [], 0 > M && (E = c(E), E.reverse(), M *= -1), F = E.length - 1, K = 0; F >= K; K++) {
X = {};
for (Z in w)
X[Z] = w[Z];
if (_t && (f(X, E, K), X.duration != null && (P = X.duration, delete X.duration)), G) {
G = X.startAt = {};
for (Z in w.startAt)
G[Z] = w.startAt[Z];
f(X.startAt, E, K);
}
X.delay = ct + (X.delay || 0), K === F && R && (X.onComplete = tt), Rt[K] = new u(E[K], P, X), ct += M;
}
return Rt;
}, u.staggerFrom = u.allFrom = function(E, P, w, M, R, C, U) {
return w.runBackwards = !0, w.immediateRender = w.immediateRender != 0, u.staggerTo(E, P, w, M, R, C, U);
}, u.staggerFromTo = u.allFromTo = function(E, P, w, M, R, C, U, F) {
return M.startAt = w, M.immediateRender = M.immediateRender != 0 && w.immediateRender != 0, u.staggerTo(E, P, M, R, C, U, F);
}, u.delayedCall = function(E, P, w, M, R) {
return new u(P, 0, {
delay: E,
onComplete: P,
onCompleteParams: w,
callbackScope: M,
onReverseComplete: P,
onReverseCompleteParams: w,
immediateRender: !1,
useFrames: R,
overwrite: 0
});
}, u.set = function(E, P) {
return new u(E, 0, P);
}, u.isTweening = function(E) {
return o.getTweensOf(E, !0).length > 0;
};
var k = function(E, P) {
for (var w = [], M = 0, R = E._first; R; )
R instanceof o ? w[M++] = R : (P && (w[M++] = R), w = w.concat(k(R, P)), M = w.length), R = R._next;
return w;
}, I = u.getAllTweens = function(E) {
return k(x._rootTimeline, E).concat(k(x._rootFramesTimeline, E));
};
u.killAll = function(E, P, w, M) {
P == null && (P = !0), w == null && (w = !0);
var R, C, U, F = I(M != 0), X = F.length, K = P && w && M;
for (U = 0; X > U; U++)
C = F[U], (K || C instanceof a || (R = C.target === C.vars.onComplete) && w || P && !R) && (E ? C.totalTime(C._reversed ? 0 : C.totalDuration()) : C._enabled(!1, !1));
}, u.killChildTweensOf = function(E, P) {
if (E != null) {
var w, M, R, C, U, F = g.tweenLookup;
if (typeof E == "string" && (E = o.selector(E) || E), v(E) && (E = c(E)), S(E))
for (C = E.length; --C > -1; )
u.killChildTweensOf(E[C], P);
else {
w = [];
for (R in F)
for (M = F[R].target.parentNode; M; )
M === E && (w = w.concat(F[R].tweens)), M = M.parentNode;
for (U = w.length, C = 0; U > C; C++)
P && w[C].totalTime(w[C].totalDuration()), w[C]._enabled(!1, !1);
}
}
};
var N = function(E, P, w, M) {
P = P !== !1, w = w !== !1, M = M !== !1;
for (var R, C, U = I(M), F = P && w && M, X = U.length; --X > -1; )
C = U[X], (F || C instanceof a || (R = C.target === C.vars.onComplete) && w || P && !R) && C.paused(E);
};
return u.pauseAll = function(E, P, w) {
N(!0, E, P, w);
}, u.resumeAll = function(E, P, w) {
N(!1, E, P, w);
}, u.globalTimeScale = function(E) {
var P = x._rootTimeline, w = o.ticker.time;
return arguments.length ? (E = E || m, P._startTime = w - (w - P._startTime) * P._timeScale / E, P = x._rootFramesTimeline, w = o.ticker.frame, P._startTime = w - (w - P._startTime) * P._timeScale / E, P._timeScale = x._rootTimeline._timeScale = E, E) : P._timeScale;
}, b.progress = function(E, P) {
return arguments.length ? this.totalTime(
this.duration() * (this._yoyo && 1 & this._cycle ? 1 - E : E) + this._cycle * (this._duration + this._repeatDelay),
P
) : this._time / this.duration();
}, b.totalProgress = function(E, P) {
return arguments.length ? this.totalTime(this.totalDuration() * E, P) : this._totalTime / this.totalDuration();
}, b.time = function(E, P) {
return arguments.length ? (this._dirty && this.totalDuration(), E > this._duration && (E = this._duration), this._yoyo && 1 & this._cycle ? E = this._duration - E + this._cycle * (this._duration + this._repeatDelay) : this._repeat !== 0 && (E += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(E, P)) : this._time;
}, b.duration = function(E) {
return arguments.length ? x.prototype.duration.call(this, E) : this._duration;
}, b.totalDuration = function(E) {
return arguments.length ? this._repeat === -1 ? this : this.duration(
(E - this._repeat * this._repeatDelay) / (this._repeat + 1)
) : (this._dirty && (this._totalDuration = this._repeat === -1 ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat, this._dirty = !1), this._totalDuration);
}, b.repeat = function(E) {
return arguments.length ? (this._repeat = E, this._uncache(!0)) : this._repeat;
}, b.repeatDelay = function(E) {
return arguments.length ? (this._repeatDelay = E, this._uncache(!0)) : this._repeatDelay;
}, b.yoyo = function(E) {
return arguments.length ? (this._yoyo = E, this) : this._yoyo;
}, u;
},
!0
), hn._gsDefine(
"TimelineLite",
["core.Animation", "core.SimpleTimeline", "TweenLite"],
function(x, a, o) {
var c = function(w) {
a.call(this, w), this._labels = {}, this.autoRemoveChildren = this.vars.autoRemoveChildren === !0, this.smoothChildTiming = this.vars.smoothChildTiming === !0, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
var M, R, C = this.vars;
for (R in C)
M = C[R], v(M) && M.join("").indexOf("{self}") !== -1 && (C[R] = this._swapSelfInParams(M));
v(C.tweens) && this.add(C.tweens, 0, C.align, C.stagger);
}, f = 1e-10, u = o._internals, m = c._internals = {}, g = u.isSelector, v = u.isArray, S = u.lazyTweens, b = u.lazyRender, O = hn._gsDefine.globals, k = function(w) {
var M, R = {};
for (M in w)
R[M] = w[M];
return R;
}, I = function(w, M, R) {
var C, U, F = w.cycle;
for (C in F)
U = F[C], w[C] = typeof U == "function" ? U(R, M[R]) : U[R % U.length];
delete w.cycle;
}, N = m.pauseCallback = function() {
}, E = function(w) {
var M, R = [], C = w.length;
for (M = 0; M !== C; R.push(w[M++]))
;
return R;
}, P = c.prototype = new a();
return c.version = "2.0.2", P.constructor = c, P.kill()._gc = P._forcingPlayhead = P._hasPause = !1, P.to = function(w, M, R, C) {
var U = R.repeat && O.TweenMax || o;
return M ? this.add(new U(w, M, R), C) : this.set(w, R, C);
}, P.from = function(w, M, R, C) {
return this.add((R.repeat && O.TweenMax || o).from(w, M, R), C);
}, P.fromTo = function(w, M, R, C, U) {
var F = C.repeat && O.TweenMax || o;
return M ? this.add(F.fromTo(w, M, R, C), U) : this.set(w, C, U);
}, P.staggerTo = function(w, M, R, C, U, F, X, K) {
var Z, ct, Rt = new c({
onComplete: F,
onCompleteParams: X,
callbackScope: K,
smoothChildTiming: this.smoothChildTiming
}), tt = R.cycle;
for (typeof w == "string" && (w = o.selector(w) || w), w = w || [], g(w) && (w = E(w)), C = C || 0, 0 > C && (w = E(w), w.reverse(), C *= -1), ct = 0; ct < w.length; ct++)
Z = k(R), Z.startAt && (Z.startAt = k(Z.startAt), Z.startAt.cycle && I(Z.startAt, w, ct)), tt && (I(Z, w, ct), Z.duration != null && (M = Z.duration, delete Z.duration)), Rt.to(w[ct], M, Z, ct * C);
return this.add(Rt, U);
}, P.staggerFrom = function(w, M, R, C, U, F, X, K) {
return R.immediateRender = R.immediateRender != 0, R.runBackwards = !0, this.staggerTo(w, M, R, C, U, F, X, K);
}, P.staggerFromTo = function(w, M, R, C, U, F, X, K, Z) {
return C.startAt = R, C.immediateRender = C.immediateRender != 0 && R.immediateRender != 0, this.staggerTo(w, M, C, U, F, X, K, Z);
}, P.call = function(w, M, R, C) {
return this.add(o.delayedCall(0, w, M, R), C);
}, P.set = function(w, M, R) {
return R = this._parseTimeOrLabel(R, 0, !0), M.immediateRender == null && (M.immediateRender = R === this._time && !this._paused), this.add(new o(w, 0, M), R);
}, c.exportRoot = function(w, M) {
w = w || {}, w.smoothChildTiming == null && (w.smoothChildTiming = !0);
var R, C, U, F, X = new c(w), K = X._timeline;
for (M == null && (M = !0), K._remove(X, !0), X._startTime = 0, X._rawPrevTime = X._time = X._totalTime = K._time, U = K._first; U; )
F = U._next, M && U instanceof o && U.target === U.vars.onComplete || (C = U._startTime - U._delay, 0 > C && (R = 1), X.add(U, C)), U = F;
return K.add(X, 0), R && X.totalDuration(), X;
}, P.add = function(w, M, R, C) {
var U, F, X, K, Z, ct;
if (typeof M != "number" && (M = this._parseTimeOrLabel(M, 0, !0, w)), !(w instanceof x)) {
if (w instanceof Array || w && w.push && v(w)) {
for (R = R || "normal", C = C || 0, U = M, F = w.length, X = 0; F > X; X++)
v(K = w[X]) && (K = new c({ tweens: K })), this.add(K, U), typeof K != "string" && typeof K != "function" && (R === "sequence" ? U = K._startTime + K.totalDuration() / K._timeScale : R === "start" && (K._startTime -= K.delay())), U += C;
return this._uncache(!0);
}
if (typeof w == "string")
return this.addLabel(w, M);
if (typeof w != "function")
throw "Cannot add " + w + " into the timeline; it is not a tween, timeline, function, or string.";
w = o.delayedCall(0, w);
}
if (a.prototype.add.call(this, w, M), w._time && (U = Math.max(
0,
Math.min(
w.totalDuration(),
(this.rawTime() - w._startTime) * w._timeScale
)
), Math.abs(U - w._totalTime) > 1e-5 && w.render(U, !1, !1)), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
for (Z = this, ct = Z.rawTime() > w._startTime; Z._timeline; )
ct && Z._timeline.smoothChildTiming ? Z.totalTime(Z._totalTime, !0) : Z._gc && Z._enabled(!0, !1), Z = Z._timeline;
return this;
}, P.remove = function(w) {
if (w instanceof x) {
this._remove(w, !1);
var M = w._timeline = w.vars.useFrames ? x._rootFramesTimeline : x._rootTimeline;
return w._startTime = (w._paused ? w._pauseTime : M._time) - (w._reversed ? w.totalDuration() - w._totalTime : w._totalTime) / w._timeScale, this;
}
if (w instanceof Array || w && w.push && v(w)) {
for (var R = w.length; --R > -1; )
this.remove(w[R]);
return this;
}
return typeof w == "string" ? this.removeLabel(w) : this.kill(null, w);
}, P._remove = function(w, M) {
a.prototype._remove.call(this, w, M);
var R = this._last;
return R ? this._time > this.duration() && (this._time = this._duration, this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this;
}, P.append = function(w, M) {
return this.add(w, this._parseTimeOrLabel(null, M, !0, w));
}, P.insert = P.insertMultiple = function(w, M, R, C) {
return this.add(w, M || 0, R, C);
}, P.appendMultiple = function(w, M, R, C) {
return this.add(w, this._parseTimeOrLabel(null, M, !0, w), R, C);
}, P.addLabel = function(w, M) {
return this._labels[w] = this._parseTimeOrLabel(M), this;
}, P.addPause = function(w, M, R, C) {
var U = o.delayedCall(0, N, R, C || this);
return U.vars.onComplete = U.vars.onReverseComplete = M, U.data = "isPause", this._hasPause = !0, this.add(U, w);
}, P.removeLabel = function(w) {
return delete this._labels[w], this;
}, P.getLabelTime = function(w) {
return this._labels[w] != null ? this._labels[w] : -1;
}, P._parseTimeOrLabel = function(w, M, R, C) {
var U, F;
if (C instanceof x && C.timeline === this)
this.remove(C);
else if (C && (C instanceof Array || C.push && v(C)))
for (F = C.length; --F > -1; )
C[F] instanceof x && C[F].timeline === this && this.remove(C[F]);
if (U = typeof w != "number" || M ? this.duration() > 99999999999 ? this.recent().endTime(!1) : this._duration : 0, typeof M == "string")
return this._parseTimeOrLabel(
M,
R && typeof w == "number" && this._labels[M] == null ? w - U : 0,
R
);
if (M = M || 0, typeof w != "string" || !isNaN(w) && this._labels[w] == null)
w == null && (w = U);
else {
if (F = w.indexOf("="), F === -1)
return this._labels[w] == null ? R ? this._labels[w] = U + M : M : this._labels[w] + M;
M = parseInt(w.charAt(F - 1) + "1", 10) * Number(w.substr(F + 1)), w = F > 1 ? this._parseTimeOrLabel(w.substr(0, F - 1), 0, R) : U;
}
return Number(w) + M;
}, P.seek = function(w, M) {
return this.totalTime(
typeof w == "number" ? w : this._parseTimeOrLabel(w),
M !== !1
);
}, P.stop = function() {
return this.paused(!0);
}, P.gotoAndPlay = function(w, M) {
return this.play(w, M);
}, P.gotoAndStop = function(w, M) {
return this.pause(w, M);
}, P.render = function(w, M, R) {
this._gc && this._enabled(!0, !1);
var C, U, F, X, K, Z, ct, Rt = this._time, tt = this._dirty ? this.totalDuration() : this._totalDuration, _t = this._startTime, G = this._timeScale, Pt = this._paused;
if (Rt !== this._time && (w += this._time - Rt), w >= tt - 1e-7 && w >= 0)
this._totalTime = this._time = tt, this._reversed || this._hasPausedChild() || (U = !0, X = "onComplete", K = !!this._timeline.autoRemoveChildren, this._duration === 0 && (0 >= w && w >= -1e-7 || this._rawPrevTime < 0 || this._rawPrevTime === f) && this._rawPrevTime !== w && this._first && (K = !0, this._rawPrevTime > f && (X = "onReverseComplete"))), this._rawPrevTime = this._duration || !M || w || this._rawPrevTime === w ? w : f, w = tt + 1e-4;
else if (1e-7 > w)
if (this._totalTime = this._time = 0, (Rt !== 0 || this._duration === 0 && this._rawPrevTime !== f && (this._rawPrevTime > 0 || 0 > w && this._rawPrevTime >= 0)) && (X = "onReverseComplete", U = this._reversed), 0 > w)
this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (K = U = !0, X = "onReverseComplete") : this._rawPrevTime >= 0 && this._first && (K = !0), this._rawPrevTime = w;
else {
if (this._rawPrevTime = this._duration || !M || w || this._rawPrevTime === w ? w : f, w === 0 && U)
for (C = this._first; C && C._startTime === 0; )
C._duration || (U = !1), C = C._next;
w = 0, this._initted || (K = !0);
}
else {
if (this._hasPause && !this._forcingPlayhead && !M) {
if (w >= Rt)
for (C = this._first; C && C._startTime <= w && !Z; )
C._duration || C.data !== "isPause" || C.ratio || C._startTime === 0 && this._rawPrevTime === 0 || (Z = C), C = C._next;
else
for (C = this._last; C && C._startTime >= w && !Z; )
C._duration || C.data === "isPause" && C._rawPrevTime > 0 && (Z = C), C = C._prev;
Z && (this._time = w = Z._startTime, this._totalTime = w + this._cycle * (this._totalDuration + this._repeatDelay));
}
this._totalTime = this._time = this._rawPrevTime = w;
}
if (this._time !== Rt && this._first || R || K || Z) {
if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== Rt && w > 0 && (this._active = !0), Rt === 0 && this.vars.onStart && (this._time === 0 && this._duration || M || this._callback("onStart")), ct = this._time, ct >= Rt)
for (C = this._first; C && (F = C._next, ct === this._time && (!this._paused || Pt)); )
(C._active || C._startTime <= ct && !C._paused && !C._gc) && (Z === C && this.pause(), C._reversed ? C.render(
(C._dirty ? C.totalDuration() : C._totalDuration) - (w - C._startTime) * C._timeScale,
M,
R
) : C.render((w - C._startTime) * C._timeScale, M, R)), C = F;
else
for (C = this._last; C && (F = C._prev, ct === this._time && (!this._paused || Pt)); ) {
if (C._active || C._startTime <= Rt && !C._paused && !C._gc) {
if (Z === C) {
for (Z = C._prev; Z && Z.endTime() > this._time; )
Z.render(
Z._reversed ? Z.totalDuration() - (w - Z._startTime) * Z._timeScale : (w - Z._startTime) * Z._timeScale,
M,
R
), Z = Z._prev;
Z = null, this.pause();
}
C._reversed ? C.render(
(C._dirty ? C.totalDuration() : C._totalDuration) - (w - C._startTime) * C._timeScale,
M,
R
) : C.render((w - C._startTime) * C._timeScale, M, R);
}
C = F;
}
this._onUpdate && (M || (S.length && b(), this._callback("onUpdate"))), X && (this._gc || (_t === this._startTime || G !== this._timeScale) && (this._time === 0 || tt >= this.totalDuration()) && (U && (S.length && b(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !M && this.vars[X] && this._callback(X)));
}
}, P._hasPausedChild = function() {
for (var w = this._first; w; ) {
if (w._paused || w instanceof c && w._hasPausedChild())
return !0;
w = w._next;
}
return !1;
}, P.getChildren = function(w, M, R, C) {
C = C || -9999999999;
for (var U = [], F = this._first, X = 0; F; )
F._startTime < C || (F instanceof o ? M !== !1 && (U[X++] = F) : (R !== !1 && (U[X++] = F), w !== !1 && (U = U.concat(F.getChildren(!0, M, R)), X = U.length))), F = F._next;
return U;
}, P.getTweensOf = function(w, M) {
var R, C, U = this._gc, F = [], X = 0;
for (U && this._enabled(!0, !0), R = o.getTweensOf(w), C = R.length; --C > -1; )
(R[C].timeline === this || M && this._contains(R[C])) && (F[X++] = R[C]);
return U && this._enabled(!1, !0), F;
}, P.recent = function() {
return this._recent;
}, P._contains = function(w) {
for (var M = w.timeline; M; ) {
if (M === this)
return !0;
M = M.timeline;
}
return !1;
}, P.shiftChildren = function(w, M, R) {
R = R || 0;
for (var C, U = this._first, F = this._labels; U; )
U._startTime >= R && (U._startTime += w), U = U._next;
if (M)
for (C in F)
F[C] >= R && (F[C] += w);
return this._uncache(!0);
}, P._kill = function(w, M) {
if (!w && !M)
return this._enabled(!1, !1);
for (var R = M ? this.getTweensOf(M) : this.getChildren(!0, !0, !1), C = R.length, U = !1; --C > -1; )
R[C]._kill(w, M) && (U = !0);
return U;
}, P.clear = function(w) {
var M = this.getChildren(!1, !0, !0), R = M.length;
for (this._time = this._totalTime = 0; --R > -1; )
M[R]._enabled(!1, !1);
return w !== !1 && (this._labels = {}), this._uncache(!0);
}, P.invalidate = function() {
for (var w = this._first; w; )
w.invalidate(), w = w._next;
return x.prototype.invalidate.call(this);
}, P._enabled = function(w, M) {
if (w === this._gc)
for (var R = this._first; R; )
R._enabled(w, !0), R = R._next;
return a.prototype._enabled.call(this, w, M);
}, P.totalTime = function(w, M, R) {
this._forcingPlayhead = !0;
var C = x.prototype.totalTime.apply(this, arguments);
return this._forcingPlayhead = !1, C;
}, P.duration = function(w) {
return arguments.length ? (this.duration() !== 0 && w !== 0 && this.timeScale(this._duration / w), this) : (this._dirty && this.totalDuration(), this._duration);
}, P.totalDuration = function(w) {
if (!arguments.length) {
if (this._dirty) {
for (var M, R, C = 0, U = this._last, F = 999999999999; U; )
M = U._prev, U._dirty && U.totalDuration(), U._startTime > F && this._sortChildren && !U._paused && !this._calculatingDuration ? (this._calculatingDuration = 1, this.add(U, U._startTime - U._delay), this._calculatingDuration = 0) : F = U._startTime, U._startTime < 0 && !U._paused && (C -= U._startTime, this._timeline.smoothChildTiming && (this._startTime += U._startTime / this._timeScale, this._time -= U._startTime, this._totalTime -= U._startTime, this._rawPrevTime -= U._startTime), this.shiftChildren(-U._startTime, !1, -9999999999), F = 0), R = U._startTime + U._totalDuration / U._timeScale, R > C && (C = R), U = M;
this._duration = this._totalDuration = C, this._dirty = !1;
}
return this._totalDuration;
}
return w && this.totalDuration() ? this.timeScale(this._totalDuration / w) : this;
}, P.paused = function(w) {
if (!w)
for (var M = this._first, R = this._time; M; )
M._startTime === R && M.data === "isPause" && (M._rawPrevTime = 0), M = M._next;
return x.prototype.paused.apply(this, arguments);
}, P.usesFrames = function() {
for (var w = this._timeline; w._timeline; )
w = w._timeline;
return w === x._rootFramesTimeline;
}, P.rawTime = function(w) {
return w && (this._paused || this._repeat && this.time() > 0 && this.totalProgress() < 1) ? this._totalTime % (this._duration + this._repeatDelay) : this._paused ? this._totalTime : (this._timeline.rawTime(w) - this._startTime) * this._timeScale;
}, c;
},
!0
), hn._gsDefine(
"TimelineMax",
["TimelineLite", "TweenLite", "easing.Ease"],
function(x, a, o) {
var c = function(O) {
x.call(this, O), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._dirty = !0;
}, f = 1e-10, u = a._internals, m = u.lazyTweens, g = u.lazyRender, v = hn._gsDefine.globals, S = new o(null, null, 1, 0), b = c.prototype = new x();
return b.constructor = c, b.kill()._gc = !1, c.version = "2.0.2", b.invalidate = function() {
return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), x.prototype.invalidate.call(this);
}, b.addCallback = function(O, k, I, N) {
return this.add(a.delayedCall(0, O, I, N), k);
}, b.removeCallback = function(O, k) {
if (O)
if (k == null)
this._kill(null, O);
else
for (var I = this.getTweensOf(O, !1), N = I.length, E = this._parseTimeOrLabel(k); --N > -1; )
I[N]._startTime === E && I[N]._enabled(!1, !1);
return this;
}, b.removePause = function(O) {
return this.removeCallback(x._internals.pauseCallback, O);
}, b.tweenTo = function(O, k) {
k = k || {};
var I, N, E, P = {
ease: S,
useFrames: this.usesFrames(),
immediateRender: !1,
lazy: !1
}, w = k.repeat && v.TweenMax || a;
for (N in k)
P[N] = k[N];
return P.time = this._parseTimeOrLabel(O), I = Math.abs(Number(P.time) - this._time) / this._timeScale || 1e-3, E = new w(this, I, P), P.onStart = function() {
E.target.paused(!0), E.vars.time === E.target.time() || I !== E.duration() || E.isFromTo || E.duration(
Math.abs(E.vars.time - E.target.time()) / E.target._timeScale
).render(E.time(), !0, !0), k.onStart && k.onStart.apply(
k.onStartScope || k.callbackScope || E,
k.onStartParams || []
);
}, E;
}, b.tweenFromTo = function(O, k, I) {
I = I || {}, O = this._parseTimeOrLabel(O), I.startAt = {
onComplete: this.seek,
onCompleteParams: [O],
callbackScope: this
}, I.immediateRender = I.immediateRender !== !1;
var N = this.tweenTo(k, I);
return N.isFromTo = 1, N.duration(Math.abs(N.vars.time - O) / this._timeScale || 1e-3);
}, b.render = function(O, k, I) {
this._gc && this._enabled(!0, !1);
var N, E, P, w, M, R, C, U, F = this._time, X = this._dirty ? this.totalDuration() : this._totalDuration, K = this._duration, Z = this._totalTime, ct = this._startTime, Rt = this._timeScale, tt = this._rawPrevTime, _t = this._paused, G = this._cycle;
if (F !== this._time && (O += this._time - F), O >= X - 1e-7 && O >= 0)
this._locked || (this._totalTime = X, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (E = !0, w = "onComplete", M = !!this._timeline.autoRemoveChildren, this._duration === 0 && (0 >= O && O >= -1e-7 || 0 > tt || tt === f) && tt !== O && this._first && (M = !0, tt > f && (w = "onReverseComplete"))), this._rawPrevTime = this._duration || !k || O || this._rawPrevTime === O ? O : f, this._yoyo && 1 & this._cycle ? this._time = O = 0 : (this._time = K, O = K + 1e-4);
else if (1e-7 > O)
if (this._locked || (this._totalTime = this._cycle = 0), this._time = 0, (F !== 0 || K === 0 && tt !== f && (tt > 0 || 0 > O && tt >= 0) && !this._locked) && (w = "onReverseComplete", E = this._reversed), 0 > O)
this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (M = E = !0, w = "onReverseComplete") : tt >= 0 && this._first && (M = !0), this._rawPrevTime = O;
else {
if (this._rawPrevTime = K || !k || O || this._rawPrevTime === O ? O : f, O === 0 && E)
for (N = this._first; N && N._startTime === 0; )
N._duration || (E = !1), N = N._next;
O = 0, this._initted || (M = !0);
}
else if (K === 0 && 0 > tt && (M = !0), this._time = this._rawPrevTime = O, this._locked || (this._totalTime = O, this._repeat !== 0 && (R = K + this._repeatDelay, this._cycle = this._totalTime / R >> 0, this._cycle !== 0 && this._cycle === this._totalTime / R && O >= Z && this._cycle--, this._time = this._totalTime - this._cycle * R, this._yoyo && 1 & this._cycle && (this._time = K - this._time), this._time > K ? (this._time = K, O = K + 1e-4) : this._time < 0 ? this._time = O = 0 : O = this._time)), this._hasPause && !this._forcingPlayhead && !k) {
if (O = this._time, O >= F || this._repeat && G !== this._cycle)
for (N = this._first; N && N._startTime <= O && !C; )
N._duration || N.data !== "isPause" || N.ratio || N._startTime === 0 && this._rawPrevTime === 0 || (C = N), N = N._next;
else
for (N = this._last; N && N._startTime >= O && !C; )
N._duration || N.data === "isPause" && N._rawPrevTime > 0 && (C = N), N = N._prev;
C && C._startTime < K && (this._time = O = C._startTime, this._totalTime = O + this._cycle * (this._totalDuration + this._repeatDelay));
}
if (this._cycle !== G && !this._locked) {
var Pt = this._yoyo && (1 & G) !== 0, Et = Pt === (this._yoyo && (1 & this._cycle) !== 0), At = this._totalTime, ce = this._cycle, re = this._rawPrevTime, Ft = this._time;
if (this._totalTime = G * K, this._cycle < G ? Pt = !Pt : this._totalTime += K, this._time = F, this._rawPrevTime = K === 0 ? tt - 1e-4 : tt, this._cycle = G, this._locked = !0, F = Pt ? 0 : K, this.render(F, k, K === 0), k || this._gc || this.vars.onRepeat && (this._cycle = ce, this._locked = !1, this._callback("onRepeat")), F !== this._time || (Et && (this._cycle = G, this._locked = !0, F = Pt ? K + 1e-4 : -1e-4, this.render(F, !0, !1)), this._locked = !1, this._paused && !_t))
return;
this._time = Ft, this._totalTime = At, this._cycle = ce, this._rawPrevTime = re;
}
if (!(this._time !== F && this._first || I || M || C))
return void (Z !== this._totalTime && this._onUpdate && (k || this._callback("onUpdate")));
if (this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== Z && O > 0 && (this._active = !0), Z === 0 && this.vars.onStart && (this._totalTime === 0 && this._totalDuration || k || this._callback("onStart")), U = this._time, U >= F)
for (N = this._first; N && (P = N._next, U === this._time && (!this._paused || _t)); )
(N._active || N._startTime <= this._time && !N._paused && !N._gc) && (C === N && this.pause(), N._reversed ? N.render(
(N._dirty ? N.totalDuration() : N._totalDuration) - (O - N._startTime) * N._timeScale,
k,
I
) : N.render((O - N._startTime) * N._timeScale, k, I)), N = P;
else
for (N = this._last; N && (P = N._prev, U === this._time && (!this._paused || _t)); ) {
if (N._active || N._startTime <= F && !N._paused && !N._gc) {
if (C === N) {
for (C = N._prev; C && C.endTime() > this._time; )
C.render(
C._reversed ? C.totalDuration() - (O - C._startTime) * C._timeScale : (O - C._startTime) * C._timeScale,
k,
I
), C = C._prev;
C = null, this.pause();
}
N._reversed ? N.render(
(N._dirty ? N.totalDuration() : N._totalDuration) - (O - N._startTime) * N._timeScale,
k,
I
) : N.render((O - N._startTime) * N._timeScale, k, I);
}
N = P;
}
this._onUpdate && (k || (m.length && g(), this._callback("onUpdate"))), w && (this._locked || this._gc || (ct === this._startTime || Rt !== this._timeScale) && (this._time === 0 || X >= this.totalDuration()) && (E && (m.length && g(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !k && this.vars[w] && this._callback(w)));
}, b.getActive = function(O, k, I) {
O == null && (O = !0), k == null && (k = !0), I == null && (I = !1);
var N, E, P = [], w = this.getChildren(O, k, I), M = 0, R = w.length;
for (N = 0; R > N; N++)
E = w[N], E.isActive() && (P[M++] = E);
return P;
}, b.getLabelAfter = function(O) {
O || O !== 0 && (O = this._time);
var k, I = this.getLabelsArray(), N = I.length;
for (k = 0; N > k; k++)
if (I[k].time > O)
return I[k].name;
return null;
}, b.getLabelBefore = function(O) {
O == null && (O = this._time);
for (var k = this.getLabelsArray(), I = k.length; --I > -1; )
if (k[I].time < O)
return k[I].name;
return null;
}, b.getLabelsArray = function() {
var O, k = [], I = 0;
for (O in this._labels)
k[I++] = { time: this._labels[O], name: O };
return k.sort(function(N, E) {
return N.time - E.time;
}), k;
}, b.invalidate = function() {
return this._locked = !1, x.prototype.invalidate.call(this);
}, b.progress = function(O, k) {
return arguments.length ? this.totalTime(
this.duration() * (this._yoyo && 1 & this._cycle ? 1 - O : O) + this._cycle * (this._duration + this._repeatDelay),
k
) : this._time / this.duration() || 0;
}, b.totalProgress = function(O, k) {
return arguments.length ? this.totalTime(this.totalDuration() * O, k) : this._totalTime / this.totalDuration() || 0;
}, b.totalDuration = function(O) {
return arguments.length ? this._repeat !== -1 && O ? this.timeScale(this.totalDuration() / O) : this : (this._dirty && (x.prototype.totalDuration.call(this), this._totalDuration = this._repeat === -1 ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration);
}, b.time = function(O, k) {
return arguments.length ? (this._dirty && this.totalDuration(), O > this._duration && (O = this._duration), this._yoyo && 1 & this._cycle ? O = this._duration - O + this._cycle * (this._duration + this._repeatDelay) : this._repeat !== 0 && (O += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(O, k)) : this._time;
}, b.repeat = function(O) {
return arguments.length ? (this._repeat = O, this._uncache(!0)) : this._repeat;
}, b.repeatDelay = function(O) {
return arguments.length ? (this._repeatDelay = O, this._uncache(!0)) : this._repeatDelay;
}, b.yoyo = function(O) {
return arguments.length ? (this._yoyo = O, this) : this._yoyo;
}, b.currentLabel = function(O) {
return arguments.length ? this.seek(O, !0) : this.getLabelBefore(this._time + 1e-8);
}, c;
},
!0
), function() {
var x = 180 / Math.PI, a = [], o = [], c = [], f = {}, u = hn._gsDefine.globals, m = function(w, M, R, C) {
R === C && (R = C - (C - M) / 1e6), w === M && (M = w + (R - w) / 1e6), this.a = w, this.b = M, this.c = R, this.d = C, this.da = C - w, this.ca = R - w, this.ba = M - w;
}, g = ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,", v = function(w, M, R, C) {
var U = { a: w }, F = {}, X = {}, K = { c: C }, Z = (w + M) / 2, ct = (M + R) / 2, Rt = (R + C) / 2, tt = (Z + ct) / 2, _t = (ct + Rt) / 2, G = (_t - tt) / 8;
return U.b = Z + (w - Z) / 4, F.b = tt + G, U.c = F.a = (U.b + F.b) / 2, F.c = X.a = (tt + _t) / 2, X.b = _t - G, K.b = Rt + (C - Rt) / 4, X.c = K.a = (X.b + K.b) / 2, [U, F, X, K];
}, S = function(w, M, R, C, U) {
var F, X, K, Z, ct, Rt, tt, _t, G, Pt, Et, At, ce, re = w.length - 1, Ft = 0, It = w[0].a;
for (F = 0; re > F; F++)
ct = w[Ft], X = ct.a, K = ct.d, Z = w[Ft + 1].d, U ? (Et = a[F], At = o[F], ce = (At + Et) * M * 0.25 / (C ? 0.5 : c[F] || 0.5), Rt = K - (K - X) * (C ? 0.5 * M : Et !== 0 ? ce / Et : 0), tt = K + (Z - K) * (C ? 0.5 * M : At !== 0 ? ce / At : 0), _t = K - (Rt + ((tt - Rt) * (3 * Et / (Et + At) + 0.5) / 4 || 0))) : (Rt = K - (K - X) * M * 0.5, tt = K + (Z - K) * M * 0.5, _t = K - (Rt + tt) / 2), Rt += _t, tt += _t, ct.c = G = Rt, F !== 0 ? ct.b = It : ct.b = It = ct.a + 0.6 * (ct.c - ct.a), ct.da = K - X, ct.ca = G - X, ct.ba = It - X, R ? (Pt = v(X, It, G, K), w.splice(Ft, 1, Pt[0], Pt[1], Pt[2], Pt[3]), Ft += 4) : Ft++, It = tt;
ct = w[Ft], ct.b = It, ct.c = It + 0.4 * (ct.d - It), ct.da = ct.d - ct.a, ct.ca = ct.c - ct.a, ct.ba = It - ct.a, R && (Pt = v(ct.a, It, ct.c, ct.d), w.splice(Ft, 1, Pt[0], Pt[1], Pt[2], Pt[3]));
}, b = function(w, M, R, C) {
var U, F, X, K, Z, ct, Rt = [];
if (C)
for (w = [C].concat(w), F = w.length; --F > -1; )
typeof (ct = w[F][M]) == "string" && ct.charAt(1) === "=" && (w[F][M] = C[M] + Number(ct.charAt(0) + ct.substr(2)));
if (U = w.length - 2, 0 > U)
return Rt[0] = new m(w[0][M], 0, 0, w[0][M]), Rt;
for (F = 0; U > F; F++)
X = w[F][M], K = w[F + 1][M], Rt[F] = new m(X, 0, 0, K), R && (Z = w[F + 2][M], a[F] = (a[F] || 0) + (K - X) * (K - X), o[F] = (o[F] || 0) + (Z - K) * (Z - K));
return Rt[F] = new m(w[F][M], 0, 0, w[F + 1][M]), Rt;
}, O = function(w, M, R, C, U, F) {
var X, K, Z, ct, Rt, tt, _t, G, Pt = {}, Et = [], At = F || w[0];
U = typeof U == "string" ? "," + U + "," : g, M == null && (M = 1);
for (K in w[0])
Et.push(K);
if (w.length > 1) {
for (G = w[w.length - 1], _t = !0, X = Et.length; --X > -1; )
if (K = Et[X], Math.abs(At[K] - G[K]) > 0.05) {
_t = !1;
break;
}
_t && (w = w.conc