@eva/plugin-renderer-spine 1.2.7-fix.4 → 1.2.7-fix.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-renderer-spine.cjs.js","sources":["../lib/Spine.ts","../lib/pixi-spine.js","../lib/TexCache.ts","../lib/SpineData.ts","../lib/SpineSystem.ts"],"sourcesContent":["import { Component, decorators } from '@eva/eva.js';\n\nexport interface SpineParams {\n resource: string;\n animationName: string;\n autoPlay: boolean;\n}\n\nexport default class Spine extends Component<SpineParams> {\n static componentName: string = 'Spine';\n\n @decorators.IDEProp\n resource: string = '';\n\n @decorators.IDEProp\n animationName: string = '';\n\n @decorators.IDEProp\n autoPlay: boolean = true;\n\n usingResource: string;\n armature: any;\n destroied: boolean;\n addHandler: any;\n\n init(obj?: SpineParams) {\n if (!obj) return;\n\n Object.assign(this, obj);\n if (this.autoPlay) {\n this.play(this.animationName);\n }\n }\n onDestroy() {\n this.destroied = true;\n }\n\n play(name?: string, loop?: boolean, track?: number) {\n try {\n if (name) this.animationName = name;\n if (!this.armature) {\n } else {\n if (track === undefined) {\n track = 0;\n }\n this.armature.state.setAnimation(track, this.animationName, loop);\n }\n } catch (e) {\n console.log(e);\n }\n }\n\n stop(track?: number) {\n if (!this.armature) {\n return;\n }\n if (track === undefined) {\n track = 0;\n }\n this.armature.state.setEmptyAnimation(track, 0);\n }\n\n addAnimation(name?: string, delay?: number, loop?: boolean, track?: number) {\n try {\n if (!this.armature) {\n } else {\n if (track === undefined) {\n track = 0;\n }\n this.armature.state.addAnimation(track, name, loop, delay);\n }\n } catch (e) {\n console.log(e);\n }\n }\n setMix(from: string, to: string, duration: number) {\n if (!this.armature) {\n } else {\n this.armature.stateData.setMix(from, to, duration);\n }\n }\n\n getAnim(track: number = 0) {\n try {\n if (!this.armature) {\n } else {\n return this.armature.state.tracks[track].animation.name;\n }\n } catch (e) {\n console.log(e);\n }\n }\n\n setDefaultMix(duration: number) {\n if (!this.armature) {\n } else {\n this.armature.stateData.defaultMix = duration;\n }\n }\n\n setAttachment(slotName: string, attachmentName: string) {\n if (!this.armature) {\n return;\n }\n this.armature.skeleton.setAttachment(slotName, attachmentName);\n }\n\n getBone(boneName: string) {\n if (!this.armature) {\n return;\n }\n return this.armature.skeleton.findBone(boneName);\n }\n}\n","import {\n Texture,\n Rectangle,\n Sprite,\n Graphics,\n mesh,\n Matrix,\n Container,\n SCALE_MODES,\n utils,\n loaders,\n TransformBase,\n TransformStatic,\n DisplayObject,\n Polygon,\n BaseTexture,\n} from 'pixi.js';\n\nconst VERSION = '4.8.9';\nconst loader = loaders.shared;\n\nconst PIXI = {\n Texture,\n Rectangle,\n Sprite,\n Graphics,\n mesh,\n Matrix,\n Container,\n VERSION,\n loaders,\n loader,\n SCALE_MODES,\n utils,\n TransformBase,\n TransformStatic,\n DisplayObject,\n Polygon,\n BaseTexture,\n};\n\n('use strict');\nvar __extends =\n (this && this.__extends) ||\n (function () {\n var extendStatics =\n Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array &&\n function (d, b) {\n d.__proto__ = b;\n }) ||\n function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : ((__.prototype = b.prototype), new __());\n };\n })();\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var Animation = (function () {\n function Animation(name, timelines, duration) {\n if (name == null) throw new Error('name cannot be null.');\n if (timelines == null) throw new Error('timelines cannot be null.');\n this.name = name;\n this.timelines = timelines;\n this.duration = duration;\n }\n Animation.prototype.apply = function (skeleton, lastTime, time, loop, events, alpha, blend, direction) {\n if (skeleton == null) throw new Error('skeleton cannot be null.');\n if (loop && this.duration != 0) {\n time %= this.duration;\n if (lastTime > 0) lastTime %= this.duration;\n }\n var timelines = this.timelines;\n for (var i = 0, n = timelines.length; i < n; i++)\n timelines[i].apply(skeleton, lastTime, time, events, alpha, blend, direction);\n };\n Animation.binarySearch = function (values, target, step) {\n if (step === void 0) {\n step = 1;\n }\n var low = 0;\n var high = values.length / step - 2;\n if (high == 0) return step;\n var current = high >>> 1;\n while (true) {\n if (values[(current + 1) * step] <= target) low = current + 1;\n else high = current;\n if (low == high) return (low + 1) * step;\n current = (low + high) >>> 1;\n }\n };\n Animation.linearSearch = function (values, target, step) {\n for (var i = 0, last = values.length - step; i <= last; i += step) if (values[i] > target) return i;\n return -1;\n };\n return Animation;\n })();\n core.Animation = Animation;\n var MixBlend;\n (function (MixBlend) {\n MixBlend[(MixBlend['setup'] = 0)] = 'setup';\n MixBlend[(MixBlend['first'] = 1)] = 'first';\n MixBlend[(MixBlend['replace'] = 2)] = 'replace';\n MixBlend[(MixBlend['add'] = 3)] = 'add';\n })((MixBlend = core.MixBlend || (core.MixBlend = {})));\n var MixDirection;\n (function (MixDirection) {\n MixDirection[(MixDirection['in'] = 0)] = 'in';\n MixDirection[(MixDirection['out'] = 1)] = 'out';\n })((MixDirection = core.MixDirection || (core.MixDirection = {})));\n var TimelineType;\n (function (TimelineType) {\n TimelineType[(TimelineType['rotate'] = 0)] = 'rotate';\n TimelineType[(TimelineType['translate'] = 1)] = 'translate';\n TimelineType[(TimelineType['scale'] = 2)] = 'scale';\n TimelineType[(TimelineType['shear'] = 3)] = 'shear';\n TimelineType[(TimelineType['attachment'] = 4)] = 'attachment';\n TimelineType[(TimelineType['color'] = 5)] = 'color';\n TimelineType[(TimelineType['deform'] = 6)] = 'deform';\n TimelineType[(TimelineType['event'] = 7)] = 'event';\n TimelineType[(TimelineType['drawOrder'] = 8)] = 'drawOrder';\n TimelineType[(TimelineType['ikConstraint'] = 9)] = 'ikConstraint';\n TimelineType[(TimelineType['transformConstraint'] = 10)] = 'transformConstraint';\n TimelineType[(TimelineType['pathConstraintPosition'] = 11)] = 'pathConstraintPosition';\n TimelineType[(TimelineType['pathConstraintSpacing'] = 12)] = 'pathConstraintSpacing';\n TimelineType[(TimelineType['pathConstraintMix'] = 13)] = 'pathConstraintMix';\n TimelineType[(TimelineType['twoColor'] = 14)] = 'twoColor';\n })((TimelineType = core.TimelineType || (core.TimelineType = {})));\n var CurveTimeline = (function () {\n function CurveTimeline(frameCount) {\n if (frameCount <= 0) throw new Error('frameCount must be > 0: ' + frameCount);\n this.curves = core.Utils.newFloatArray((frameCount - 1) * CurveTimeline.BEZIER_SIZE);\n }\n CurveTimeline.prototype.getFrameCount = function () {\n return this.curves.length / CurveTimeline.BEZIER_SIZE + 1;\n };\n CurveTimeline.prototype.setLinear = function (frameIndex) {\n this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.LINEAR;\n };\n CurveTimeline.prototype.setStepped = function (frameIndex) {\n this.curves[frameIndex * CurveTimeline.BEZIER_SIZE] = CurveTimeline.STEPPED;\n };\n CurveTimeline.prototype.getCurveType = function (frameIndex) {\n var index = frameIndex * CurveTimeline.BEZIER_SIZE;\n if (index == this.curves.length) return CurveTimeline.LINEAR;\n var type = this.curves[index];\n if (type == CurveTimeline.LINEAR) return CurveTimeline.LINEAR;\n if (type == CurveTimeline.STEPPED) return CurveTimeline.STEPPED;\n return CurveTimeline.BEZIER;\n };\n CurveTimeline.prototype.setCurve = function (frameIndex, cx1, cy1, cx2, cy2) {\n var tmpx = (-cx1 * 2 + cx2) * 0.03,\n tmpy = (-cy1 * 2 + cy2) * 0.03;\n var dddfx = ((cx1 - cx2) * 3 + 1) * 0.006,\n dddfy = ((cy1 - cy2) * 3 + 1) * 0.006;\n var ddfx = tmpx * 2 + dddfx,\n ddfy = tmpy * 2 + dddfy;\n var dfx = cx1 * 0.3 + tmpx + dddfx * 0.16666667,\n dfy = cy1 * 0.3 + tmpy + dddfy * 0.16666667;\n var i = frameIndex * CurveTimeline.BEZIER_SIZE;\n var curves = this.curves;\n curves[i++] = CurveTimeline.BEZIER;\n var x = dfx,\n y = dfy;\n for (var n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) {\n curves[i] = x;\n curves[i + 1] = y;\n dfx += ddfx;\n dfy += ddfy;\n ddfx += dddfx;\n ddfy += dddfy;\n x += dfx;\n y += dfy;\n }\n };\n CurveTimeline.prototype.getCurvePercent = function (frameIndex, percent) {\n percent = core.MathUtils.clamp(percent, 0, 1);\n var curves = this.curves;\n var i = frameIndex * CurveTimeline.BEZIER_SIZE;\n var type = curves[i];\n if (type == CurveTimeline.LINEAR) return percent;\n if (type == CurveTimeline.STEPPED) return 0;\n i++;\n var x = 0;\n for (var start = i, n = i + CurveTimeline.BEZIER_SIZE - 1; i < n; i += 2) {\n x = curves[i];\n if (x >= percent) {\n var prevX = void 0,\n prevY = void 0;\n if (i == start) {\n prevX = 0;\n prevY = 0;\n } else {\n prevX = curves[i - 2];\n prevY = curves[i - 1];\n }\n return prevY + ((curves[i + 1] - prevY) * (percent - prevX)) / (x - prevX);\n }\n }\n var y = curves[i - 1];\n return y + ((1 - y) * (percent - x)) / (1 - x);\n };\n CurveTimeline.LINEAR = 0;\n CurveTimeline.STEPPED = 1;\n CurveTimeline.BEZIER = 2;\n CurveTimeline.BEZIER_SIZE = 10 * 2 - 1;\n return CurveTimeline;\n })();\n core.CurveTimeline = CurveTimeline;\n var RotateTimeline = (function (_super) {\n __extends(RotateTimeline, _super);\n function RotateTimeline(frameCount) {\n var _this = _super.call(this, frameCount) || this;\n _this.frames = core.Utils.newFloatArray(frameCount << 1);\n return _this;\n }\n RotateTimeline.prototype.getPropertyId = function () {\n return (TimelineType.rotate << 24) + this.boneIndex;\n };\n RotateTimeline.prototype.setFrame = function (frameIndex, time, degrees) {\n frameIndex <<= 1;\n this.frames[frameIndex] = time;\n this.frames[frameIndex + RotateTimeline.ROTATION] = degrees;\n };\n RotateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) {\n var frames = this.frames;\n var bone = skeleton.bones[this.boneIndex];\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n bone.rotation = bone.data.rotation;\n return;\n case MixBlend.first:\n var r_1 = bone.data.rotation - bone.rotation;\n bone.rotation += (r_1 - (16384 - ((16384.499999999996 - r_1 / 360) | 0)) * 360) * alpha;\n }\n return;\n }\n if (time >= frames[frames.length - RotateTimeline.ENTRIES]) {\n var r_2 = frames[frames.length + RotateTimeline.PREV_ROTATION];\n switch (blend) {\n case MixBlend.setup:\n bone.rotation = bone.data.rotation + r_2 * alpha;\n break;\n case MixBlend.first:\n case MixBlend.replace:\n r_2 += bone.data.rotation - bone.rotation;\n r_2 -= (16384 - ((16384.499999999996 - r_2 / 360) | 0)) * 360;\n case MixBlend.add:\n bone.rotation += r_2 * alpha;\n }\n return;\n }\n var frame = Animation.binarySearch(frames, time, RotateTimeline.ENTRIES);\n var prevRotation = frames[frame + RotateTimeline.PREV_ROTATION];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n (frame >> 1) - 1,\n 1 - (time - frameTime) / (frames[frame + RotateTimeline.PREV_TIME] - frameTime),\n );\n var r = frames[frame + RotateTimeline.ROTATION] - prevRotation;\n r = prevRotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * percent;\n switch (blend) {\n case MixBlend.setup:\n bone.rotation = bone.data.rotation + (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha;\n break;\n case MixBlend.first:\n case MixBlend.replace:\n r += bone.data.rotation - bone.rotation;\n case MixBlend.add:\n bone.rotation += (r - (16384 - ((16384.499999999996 - r / 360) | 0)) * 360) * alpha;\n }\n };\n RotateTimeline.ENTRIES = 2;\n RotateTimeline.PREV_TIME = -2;\n RotateTimeline.PREV_ROTATION = -1;\n RotateTimeline.ROTATION = 1;\n return RotateTimeline;\n })(CurveTimeline);\n core.RotateTimeline = RotateTimeline;\n var TranslateTimeline = (function (_super) {\n __extends(TranslateTimeline, _super);\n function TranslateTimeline(frameCount) {\n var _this = _super.call(this, frameCount) || this;\n _this.frames = core.Utils.newFloatArray(frameCount * TranslateTimeline.ENTRIES);\n return _this;\n }\n TranslateTimeline.prototype.getPropertyId = function () {\n return (TimelineType.translate << 24) + this.boneIndex;\n };\n TranslateTimeline.prototype.setFrame = function (frameIndex, time, x, y) {\n frameIndex *= TranslateTimeline.ENTRIES;\n this.frames[frameIndex] = time;\n this.frames[frameIndex + TranslateTimeline.X] = x;\n this.frames[frameIndex + TranslateTimeline.Y] = y;\n };\n TranslateTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) {\n var frames = this.frames;\n var bone = skeleton.bones[this.boneIndex];\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n bone.x = bone.data.x;\n bone.y = bone.data.y;\n return;\n case MixBlend.first:\n bone.x += (bone.data.x - bone.x) * alpha;\n bone.y += (bone.data.y - bone.y) * alpha;\n }\n return;\n }\n var x = 0,\n y = 0;\n if (time >= frames[frames.length - TranslateTimeline.ENTRIES]) {\n x = frames[frames.length + TranslateTimeline.PREV_X];\n y = frames[frames.length + TranslateTimeline.PREV_Y];\n } else {\n var frame = Animation.binarySearch(frames, time, TranslateTimeline.ENTRIES);\n x = frames[frame + TranslateTimeline.PREV_X];\n y = frames[frame + TranslateTimeline.PREV_Y];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / TranslateTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + TranslateTimeline.PREV_TIME] - frameTime),\n );\n x += (frames[frame + TranslateTimeline.X] - x) * percent;\n y += (frames[frame + TranslateTimeline.Y] - y) * percent;\n }\n switch (blend) {\n case MixBlend.setup:\n bone.x = bone.data.x + x * alpha;\n bone.y = bone.data.y + y * alpha;\n break;\n case MixBlend.first:\n case MixBlend.replace:\n bone.x += (bone.data.x + x - bone.x) * alpha;\n bone.y += (bone.data.y + y - bone.y) * alpha;\n break;\n case MixBlend.add:\n bone.x += x * alpha;\n bone.y += y * alpha;\n }\n };\n TranslateTimeline.ENTRIES = 3;\n TranslateTimeline.PREV_TIME = -3;\n TranslateTimeline.PREV_X = -2;\n TranslateTimeline.PREV_Y = -1;\n TranslateTimeline.X = 1;\n TranslateTimeline.Y = 2;\n return TranslateTimeline;\n })(CurveTimeline);\n core.TranslateTimeline = TranslateTimeline;\n var ScaleTimeline = (function (_super) {\n __extends(ScaleTimeline, _super);\n function ScaleTimeline(frameCount) {\n return _super.call(this, frameCount) || this;\n }\n ScaleTimeline.prototype.getPropertyId = function () {\n return (TimelineType.scale << 24) + this.boneIndex;\n };\n ScaleTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) {\n var frames = this.frames;\n var bone = skeleton.bones[this.boneIndex];\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n bone.scaleX = bone.data.scaleX;\n bone.scaleY = bone.data.scaleY;\n return;\n case MixBlend.first:\n bone.scaleX += (bone.data.scaleX - bone.scaleX) * alpha;\n bone.scaleY += (bone.data.scaleY - bone.scaleY) * alpha;\n }\n return;\n }\n var x = 0,\n y = 0;\n if (time >= frames[frames.length - ScaleTimeline.ENTRIES]) {\n x = frames[frames.length + ScaleTimeline.PREV_X] * bone.data.scaleX;\n y = frames[frames.length + ScaleTimeline.PREV_Y] * bone.data.scaleY;\n } else {\n var frame = Animation.binarySearch(frames, time, ScaleTimeline.ENTRIES);\n x = frames[frame + ScaleTimeline.PREV_X];\n y = frames[frame + ScaleTimeline.PREV_Y];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / ScaleTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + ScaleTimeline.PREV_TIME] - frameTime),\n );\n x = (x + (frames[frame + ScaleTimeline.X] - x) * percent) * bone.data.scaleX;\n y = (y + (frames[frame + ScaleTimeline.Y] - y) * percent) * bone.data.scaleY;\n }\n if (alpha == 1) {\n if (blend == MixBlend.add) {\n bone.scaleX += x - bone.data.scaleX;\n bone.scaleY += y - bone.data.scaleY;\n } else {\n bone.scaleX = x;\n bone.scaleY = y;\n }\n } else {\n var bx = 0,\n by = 0;\n if (direction == MixDirection.out) {\n switch (blend) {\n case MixBlend.setup:\n bx = bone.data.scaleX;\n by = bone.data.scaleY;\n bone.scaleX = bx + (Math.abs(x) * core.MathUtils.signum(bx) - bx) * alpha;\n bone.scaleY = by + (Math.abs(y) * core.MathUtils.signum(by) - by) * alpha;\n break;\n case MixBlend.first:\n case MixBlend.replace:\n bx = bone.scaleX;\n by = bone.scaleY;\n bone.scaleX = bx + (Math.abs(x) * core.MathUtils.signum(bx) - bx) * alpha;\n bone.scaleY = by + (Math.abs(y) * core.MathUtils.signum(by) - by) * alpha;\n break;\n case MixBlend.add:\n bx = bone.scaleX;\n by = bone.scaleY;\n bone.scaleX = bx + (Math.abs(x) * core.MathUtils.signum(bx) - bone.data.scaleX) * alpha;\n bone.scaleY = by + (Math.abs(y) * core.MathUtils.signum(by) - bone.data.scaleY) * alpha;\n }\n } else {\n switch (blend) {\n case MixBlend.setup:\n bx = Math.abs(bone.data.scaleX) * core.MathUtils.signum(x);\n by = Math.abs(bone.data.scaleY) * core.MathUtils.signum(y);\n bone.scaleX = bx + (x - bx) * alpha;\n bone.scaleY = by + (y - by) * alpha;\n break;\n case MixBlend.first:\n case MixBlend.replace:\n bx = Math.abs(bone.scaleX) * core.MathUtils.signum(x);\n by = Math.abs(bone.scaleY) * core.MathUtils.signum(y);\n bone.scaleX = bx + (x - bx) * alpha;\n bone.scaleY = by + (y - by) * alpha;\n break;\n case MixBlend.add:\n bx = core.MathUtils.signum(x);\n by = core.MathUtils.signum(y);\n bone.scaleX = Math.abs(bone.scaleX) * bx + (x - Math.abs(bone.data.scaleX) * bx) * alpha;\n bone.scaleY = Math.abs(bone.scaleY) * by + (y - Math.abs(bone.data.scaleY) * by) * alpha;\n }\n }\n }\n };\n return ScaleTimeline;\n })(TranslateTimeline);\n core.ScaleTimeline = ScaleTimeline;\n var ShearTimeline = (function (_super) {\n __extends(ShearTimeline, _super);\n function ShearTimeline(frameCount) {\n return _super.call(this, frameCount) || this;\n }\n ShearTimeline.prototype.getPropertyId = function () {\n return (TimelineType.shear << 24) + this.boneIndex;\n };\n ShearTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) {\n var frames = this.frames;\n var bone = skeleton.bones[this.boneIndex];\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n bone.shearX = bone.data.shearX;\n bone.shearY = bone.data.shearY;\n return;\n case MixBlend.first:\n bone.shearX += (bone.data.shearX - bone.shearX) * alpha;\n bone.shearY += (bone.data.shearY - bone.shearY) * alpha;\n }\n return;\n }\n var x = 0,\n y = 0;\n if (time >= frames[frames.length - ShearTimeline.ENTRIES]) {\n x = frames[frames.length + ShearTimeline.PREV_X];\n y = frames[frames.length + ShearTimeline.PREV_Y];\n } else {\n var frame = Animation.binarySearch(frames, time, ShearTimeline.ENTRIES);\n x = frames[frame + ShearTimeline.PREV_X];\n y = frames[frame + ShearTimeline.PREV_Y];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / ShearTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + ShearTimeline.PREV_TIME] - frameTime),\n );\n x = x + (frames[frame + ShearTimeline.X] - x) * percent;\n y = y + (frames[frame + ShearTimeline.Y] - y) * percent;\n }\n switch (blend) {\n case MixBlend.setup:\n bone.shearX = bone.data.shearX + x * alpha;\n bone.shearY = bone.data.shearY + y * alpha;\n break;\n case MixBlend.first:\n case MixBlend.replace:\n bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha;\n bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha;\n break;\n case MixBlend.add:\n bone.shearX += x * alpha;\n bone.shearY += y * alpha;\n }\n };\n return ShearTimeline;\n })(TranslateTimeline);\n core.ShearTimeline = ShearTimeline;\n var ColorTimeline = (function (_super) {\n __extends(ColorTimeline, _super);\n function ColorTimeline(frameCount) {\n var _this = _super.call(this, frameCount) || this;\n _this.frames = core.Utils.newFloatArray(frameCount * ColorTimeline.ENTRIES);\n return _this;\n }\n ColorTimeline.prototype.getPropertyId = function () {\n return (TimelineType.color << 24) + this.slotIndex;\n };\n ColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a) {\n frameIndex *= ColorTimeline.ENTRIES;\n this.frames[frameIndex] = time;\n this.frames[frameIndex + ColorTimeline.R] = r;\n this.frames[frameIndex + ColorTimeline.G] = g;\n this.frames[frameIndex + ColorTimeline.B] = b;\n this.frames[frameIndex + ColorTimeline.A] = a;\n };\n ColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) {\n var slot = skeleton.slots[this.slotIndex];\n var frames = this.frames;\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n slot.color.setFromColor(slot.data.color);\n return;\n case MixBlend.first:\n var color = slot.color,\n setup = slot.data.color;\n color.add(\n (setup.r - color.r) * alpha,\n (setup.g - color.g) * alpha,\n (setup.b - color.b) * alpha,\n (setup.a - color.a) * alpha,\n );\n }\n return;\n }\n var r = 0,\n g = 0,\n b = 0,\n a = 0;\n if (time >= frames[frames.length - ColorTimeline.ENTRIES]) {\n var i = frames.length;\n r = frames[i + ColorTimeline.PREV_R];\n g = frames[i + ColorTimeline.PREV_G];\n b = frames[i + ColorTimeline.PREV_B];\n a = frames[i + ColorTimeline.PREV_A];\n } else {\n var frame = Animation.binarySearch(frames, time, ColorTimeline.ENTRIES);\n r = frames[frame + ColorTimeline.PREV_R];\n g = frames[frame + ColorTimeline.PREV_G];\n b = frames[frame + ColorTimeline.PREV_B];\n a = frames[frame + ColorTimeline.PREV_A];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / ColorTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + ColorTimeline.PREV_TIME] - frameTime),\n );\n r += (frames[frame + ColorTimeline.R] - r) * percent;\n g += (frames[frame + ColorTimeline.G] - g) * percent;\n b += (frames[frame + ColorTimeline.B] - b) * percent;\n a += (frames[frame + ColorTimeline.A] - a) * percent;\n }\n if (alpha == 1) slot.color.set(r, g, b, a);\n else {\n var color = slot.color;\n if (blend == MixBlend.setup) color.setFromColor(slot.data.color);\n color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha);\n }\n };\n ColorTimeline.ENTRIES = 5;\n ColorTimeline.PREV_TIME = -5;\n ColorTimeline.PREV_R = -4;\n ColorTimeline.PREV_G = -3;\n ColorTimeline.PREV_B = -2;\n ColorTimeline.PREV_A = -1;\n ColorTimeline.R = 1;\n ColorTimeline.G = 2;\n ColorTimeline.B = 3;\n ColorTimeline.A = 4;\n return ColorTimeline;\n })(CurveTimeline);\n core.ColorTimeline = ColorTimeline;\n var TwoColorTimeline = (function (_super) {\n __extends(TwoColorTimeline, _super);\n function TwoColorTimeline(frameCount) {\n var _this = _super.call(this, frameCount) || this;\n _this.frames = core.Utils.newFloatArray(frameCount * TwoColorTimeline.ENTRIES);\n return _this;\n }\n TwoColorTimeline.prototype.getPropertyId = function () {\n return (TimelineType.twoColor << 24) + this.slotIndex;\n };\n TwoColorTimeline.prototype.setFrame = function (frameIndex, time, r, g, b, a, r2, g2, b2) {\n frameIndex *= TwoColorTimeline.ENTRIES;\n this.frames[frameIndex] = time;\n this.frames[frameIndex + TwoColorTimeline.R] = r;\n this.frames[frameIndex + TwoColorTimeline.G] = g;\n this.frames[frameIndex + TwoColorTimeline.B] = b;\n this.frames[frameIndex + TwoColorTimeline.A] = a;\n this.frames[frameIndex + TwoColorTimeline.R2] = r2;\n this.frames[frameIndex + TwoColorTimeline.G2] = g2;\n this.frames[frameIndex + TwoColorTimeline.B2] = b2;\n };\n TwoColorTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) {\n var slot = skeleton.slots[this.slotIndex];\n var frames = this.frames;\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n slot.color.setFromColor(slot.data.color);\n slot.darkColor.setFromColor(slot.data.darkColor);\n return;\n case MixBlend.first:\n var light = slot.color,\n dark = slot.darkColor,\n setupLight = slot.data.color,\n setupDark = slot.data.darkColor;\n light.add(\n (setupLight.r - light.r) * alpha,\n (setupLight.g - light.g) * alpha,\n (setupLight.b - light.b) * alpha,\n (setupLight.a - light.a) * alpha,\n );\n dark.add(\n (setupDark.r - dark.r) * alpha,\n (setupDark.g - dark.g) * alpha,\n (setupDark.b - dark.b) * alpha,\n 0,\n );\n }\n return;\n }\n var r = 0,\n g = 0,\n b = 0,\n a = 0,\n r2 = 0,\n g2 = 0,\n b2 = 0;\n if (time >= frames[frames.length - TwoColorTimeline.ENTRIES]) {\n var i = frames.length;\n r = frames[i + TwoColorTimeline.PREV_R];\n g = frames[i + TwoColorTimeline.PREV_G];\n b = frames[i + TwoColorTimeline.PREV_B];\n a = frames[i + TwoColorTimeline.PREV_A];\n r2 = frames[i + TwoColorTimeline.PREV_R2];\n g2 = frames[i + TwoColorTimeline.PREV_G2];\n b2 = frames[i + TwoColorTimeline.PREV_B2];\n } else {\n var frame = Animation.binarySearch(frames, time, TwoColorTimeline.ENTRIES);\n r = frames[frame + TwoColorTimeline.PREV_R];\n g = frames[frame + TwoColorTimeline.PREV_G];\n b = frames[frame + TwoColorTimeline.PREV_B];\n a = frames[frame + TwoColorTimeline.PREV_A];\n r2 = frames[frame + TwoColorTimeline.PREV_R2];\n g2 = frames[frame + TwoColorTimeline.PREV_G2];\n b2 = frames[frame + TwoColorTimeline.PREV_B2];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / TwoColorTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + TwoColorTimeline.PREV_TIME] - frameTime),\n );\n r += (frames[frame + TwoColorTimeline.R] - r) * percent;\n g += (frames[frame + TwoColorTimeline.G] - g) * percent;\n b += (frames[frame + TwoColorTimeline.B] - b) * percent;\n a += (frames[frame + TwoColorTimeline.A] - a) * percent;\n r2 += (frames[frame + TwoColorTimeline.R2] - r2) * percent;\n g2 += (frames[frame + TwoColorTimeline.G2] - g2) * percent;\n b2 += (frames[frame + TwoColorTimeline.B2] - b2) * percent;\n }\n if (alpha == 1) {\n slot.color.set(r, g, b, a);\n slot.darkColor.set(r2, g2, b2, 1);\n } else {\n var light = slot.color,\n dark = slot.darkColor;\n if (blend == MixBlend.setup) {\n light.setFromColor(slot.data.color);\n dark.setFromColor(slot.data.darkColor);\n }\n light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha);\n dark.add((r2 - dark.r) * alpha, (g2 - dark.g) * alpha, (b2 - dark.b) * alpha, 0);\n }\n };\n TwoColorTimeline.ENTRIES = 8;\n TwoColorTimeline.PREV_TIME = -8;\n TwoColorTimeline.PREV_R = -7;\n TwoColorTimeline.PREV_G = -6;\n TwoColorTimeline.PREV_B = -5;\n TwoColorTimeline.PREV_A = -4;\n TwoColorTimeline.PREV_R2 = -3;\n TwoColorTimeline.PREV_G2 = -2;\n TwoColorTimeline.PREV_B2 = -1;\n TwoColorTimeline.R = 1;\n TwoColorTimeline.G = 2;\n TwoColorTimeline.B = 3;\n TwoColorTimeline.A = 4;\n TwoColorTimeline.R2 = 5;\n TwoColorTimeline.G2 = 6;\n TwoColorTimeline.B2 = 7;\n return TwoColorTimeline;\n })(CurveTimeline);\n core.TwoColorTimeline = TwoColorTimeline;\n var AttachmentTimeline = (function () {\n function AttachmentTimeline(frameCount) {\n this.frames = core.Utils.newFloatArray(frameCount);\n this.attachmentNames = new Array(frameCount);\n }\n AttachmentTimeline.prototype.getPropertyId = function () {\n return (TimelineType.attachment << 24) + this.slotIndex;\n };\n AttachmentTimeline.prototype.getFrameCount = function () {\n return this.frames.length;\n };\n AttachmentTimeline.prototype.setFrame = function (frameIndex, time, attachmentName) {\n this.frames[frameIndex] = time;\n this.attachmentNames[frameIndex] = attachmentName;\n };\n AttachmentTimeline.prototype.apply = function (skeleton, lastTime, time, events, alpha, blend, direction) {\n var slot = skeleton.slots[this.slotIndex];\n if (direction == MixDirection.out && blend == MixBlend.setup) {\n var attachmentName_1 = slot.data.attachmentName;\n slot.setAttachment(\n attachmentName_1 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_1),\n );\n return;\n }\n var frames = this.frames;\n if (time < frames[0]) {\n if (blend == MixBlend.setup || blend == MixBlend.first) {\n var attachmentName_2 = slot.data.attachmentName;\n slot.setAttachment(\n attachmentName_2 == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName_2),\n );\n }\n return;\n }\n var frameIndex = 0;\n if (time >= frames[frames.length - 1]) frameIndex = frames.length - 1;\n else frameIndex = Animation.binarySearch(frames, time, 1) - 1;\n var attachmentName = this.attachmentNames[frameIndex];\n skeleton.slots[this.slotIndex].setAttachment(\n attachmentName == null ? null : skeleton.getAttachment(this.slotIndex, attachmentName),\n );\n };\n return AttachmentTimeline;\n })();\n core.AttachmentTimeline = AttachmentTimeline;\n var zeros = null;\n var DeformTimeline = (function (_super) {\n __extends(DeformTimeline, _super);\n function DeformTimeline(frameCount) {\n var _this = _super.call(this, frameCount) || this;\n _this.frames = core.Utils.newFloatArray(frameCount);\n _this.frameVertices = new Array(frameCount);\n if (zeros == null) zeros = core.Utils.newFloatArray(64);\n return _this;\n }\n DeformTimeline.prototype.getPropertyId = function () {\n return (TimelineType.deform << 27) + +this.attachment.id + this.slotIndex;\n };\n DeformTimeline.prototype.setFrame = function (frameIndex, time, vertices) {\n this.frames[frameIndex] = time;\n this.frameVertices[frameIndex] = vertices;\n };\n DeformTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) {\n var slot = skeleton.slots[this.slotIndex];\n var slotAttachment = slot.getAttachment();\n if (!(slotAttachment instanceof core.VertexAttachment) || !slotAttachment.applyDeform(this.attachment)) return;\n var verticesArray = slot.attachmentVertices;\n if (verticesArray.length == 0) blend = MixBlend.setup;\n var frameVertices = this.frameVertices;\n var vertexCount = frameVertices[0].length;\n var frames = this.frames;\n if (time < frames[0]) {\n var vertexAttachment = slotAttachment;\n switch (blend) {\n case MixBlend.setup:\n verticesArray.length = 0;\n return;\n case MixBlend.first:\n if (alpha == 1) {\n verticesArray.length = 0;\n break;\n }\n var vertices_1 = core.Utils.setArraySize(verticesArray, vertexCount);\n if (vertexAttachment.bones == null) {\n var setupVertices = vertexAttachment.vertices;\n for (var i = 0; i < vertexCount; i++) vertices_1[i] += (setupVertices[i] - vertices_1[i]) * alpha;\n } else {\n alpha = 1 - alpha;\n for (var i = 0; i < vertexCount; i++) vertices_1[i] *= alpha;\n }\n }\n return;\n }\n var vertices = core.Utils.setArraySize(verticesArray, vertexCount);\n if (time >= frames[frames.length - 1]) {\n var lastVertices = frameVertices[frames.length - 1];\n if (alpha == 1) {\n if (blend == MixBlend.add) {\n var vertexAttachment = slotAttachment;\n if (vertexAttachment.bones == null) {\n var setupVertices = vertexAttachment.vertices;\n for (var i = 0; i < vertexCount; i++) {\n vertices[i] += lastVertices[i] - setupVertices[i];\n }\n } else {\n for (var i = 0; i < vertexCount; i++) vertices[i] += lastVertices[i];\n }\n } else {\n core.Utils.arrayCopy(lastVertices, 0, vertices, 0, vertexCount);\n }\n } else {\n switch (blend) {\n case MixBlend.setup: {\n var vertexAttachment_1 = slotAttachment;\n if (vertexAttachment_1.bones == null) {\n var setupVertices = vertexAttachment_1.vertices;\n for (var i = 0; i < vertexCount; i++) {\n var setup = setupVertices[i];\n vertices[i] = setup + (lastVertices[i] - setup) * alpha;\n }\n } else {\n for (var i = 0; i < vertexCount; i++) vertices[i] = lastVertices[i] * alpha;\n }\n break;\n }\n case MixBlend.first:\n case MixBlend.replace:\n for (var i = 0; i < vertexCount; i++) vertices[i] += (lastVertices[i] - vertices[i]) * alpha;\n case MixBlend.add:\n var vertexAttachment = slotAttachment;\n if (vertexAttachment.bones == null) {\n var setupVertices = vertexAttachment.vertices;\n for (var i = 0; i < vertexCount; i++) {\n vertices[i] += (lastVertices[i] - setupVertices[i]) * alpha;\n }\n } else {\n for (var i = 0; i < vertexCount; i++) vertices[i] += lastVertices[i] * alpha;\n }\n }\n }\n return;\n }\n var frame = Animation.binarySearch(frames, time);\n var prevVertices = frameVertices[frame - 1];\n var nextVertices = frameVertices[frame];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(frame - 1, 1 - (time - frameTime) / (frames[frame - 1] - frameTime));\n if (alpha == 1) {\n if (blend == MixBlend.add) {\n var vertexAttachment = slotAttachment;\n if (vertexAttachment.bones == null) {\n var setupVertices = vertexAttachment.vertices;\n for (var i = 0; i < vertexCount; i++) {\n var prev = prevVertices[i];\n vertices[i] += prev + (nextVertices[i] - prev) * percent - setupVertices[i];\n }\n } else {\n for (var i = 0; i < vertexCount; i++) {\n var prev = prevVertices[i];\n vertices[i] += prev + (nextVertices[i] - prev) * percent;\n }\n }\n } else {\n for (var i = 0; i < vertexCount; i++) {\n var prev = prevVertices[i];\n vertices[i] = prev + (nextVertices[i] - prev) * percent;\n }\n }\n } else {\n switch (blend) {\n case MixBlend.setup: {\n var vertexAttachment_2 = slotAttachment;\n if (vertexAttachment_2.bones == null) {\n var setupVertices = vertexAttachment_2.vertices;\n for (var i = 0; i < vertexCount; i++) {\n var prev = prevVertices[i],\n setup = setupVertices[i];\n vertices[i] = setup + (prev + (nextVertices[i] - prev) * percent - setup) * alpha;\n }\n } else {\n for (var i = 0; i < vertexCount; i++) {\n var prev = prevVertices[i];\n vertices[i] = (prev + (nextVertices[i] - prev) * percent) * alpha;\n }\n }\n break;\n }\n case MixBlend.first:\n case MixBlend.replace:\n for (var i = 0; i < vertexCount; i++) {\n var prev = prevVertices[i];\n vertices[i] += (prev + (nextVertices[i] - prev) * percent - vertices[i]) * alpha;\n }\n break;\n case MixBlend.add:\n var vertexAttachment = slotAttachment;\n if (vertexAttachment.bones == null) {\n var setupVertices = vertexAttachment.vertices;\n for (var i = 0; i < vertexCount; i++) {\n var prev = prevVertices[i];\n vertices[i] += (prev + (nextVertices[i] - prev) * percent - setupVertices[i]) * alpha;\n }\n } else {\n for (var i = 0; i < vertexCount; i++) {\n var prev = prevVertices[i];\n vertices[i] += (prev + (nextVertices[i] - prev) * percent) * alpha;\n }\n }\n }\n }\n };\n return DeformTimeline;\n })(CurveTimeline);\n core.DeformTimeline = DeformTimeline;\n var EventTimeline = (function () {\n function EventTimeline(frameCount) {\n this.frames = core.Utils.newFloatArray(frameCount);\n this.events = new Array(frameCount);\n }\n EventTimeline.prototype.getPropertyId = function () {\n return TimelineType.event << 24;\n };\n EventTimeline.prototype.getFrameCount = function () {\n return this.frames.length;\n };\n EventTimeline.prototype.setFrame = function (frameIndex, event) {\n this.frames[frameIndex] = event.time;\n this.events[frameIndex] = event;\n };\n EventTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) {\n if (firedEvents == null) return;\n var frames = this.frames;\n var frameCount = this.frames.length;\n if (lastTime > time) {\n this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, blend, direction);\n lastTime = -1;\n } else if (lastTime >= frames[frameCount - 1]) return;\n if (time < frames[0]) return;\n var frame = 0;\n if (lastTime < frames[0]) frame = 0;\n else {\n frame = Animation.binarySearch(frames, lastTime);\n var frameTime = frames[frame];\n while (frame > 0) {\n if (frames[frame - 1] != frameTime) break;\n frame--;\n }\n }\n for (; frame < frameCount && time >= frames[frame]; frame++) firedEvents.push(this.events[frame]);\n };\n return EventTimeline;\n })();\n core.EventTimeline = EventTimeline;\n var DrawOrderTimeline = (function () {\n function DrawOrderTimeline(frameCount) {\n this.frames = core.Utils.newFloatArray(frameCount);\n this.drawOrders = new Array(frameCount);\n }\n DrawOrderTimeline.prototype.getPropertyId = function () {\n return TimelineType.drawOrder << 24;\n };\n DrawOrderTimeline.prototype.getFrameCount = function () {\n return this.frames.length;\n };\n DrawOrderTimeline.prototype.setFrame = function (frameIndex, time, drawOrder) {\n this.frames[frameIndex] = time;\n this.drawOrders[frameIndex] = drawOrder;\n };\n DrawOrderTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) {\n var drawOrder = skeleton.drawOrder;\n var slots = skeleton.slots;\n if (direction == MixDirection.out && blend == MixBlend.setup) {\n core.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length);\n return;\n }\n var frames = this.frames;\n if (time < frames[0]) {\n if (blend == MixBlend.setup || blend == MixBlend.first)\n core.Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length);\n return;\n }\n var frame = 0;\n if (time >= frames[frames.length - 1]) frame = frames.length - 1;\n else frame = Animation.binarySearch(frames, time) - 1;\n var drawOrderToSetupIndex = this.drawOrders[frame];\n if (drawOrderToSetupIndex == null) core.Utils.arrayCopy(slots, 0, drawOrder, 0, slots.length);\n else {\n for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) drawOrder[i] = slots[drawOrderToSetupIndex[i]];\n }\n };\n return DrawOrderTimeline;\n })();\n core.DrawOrderTimeline = DrawOrderTimeline;\n var IkConstraintTimeline = (function (_super) {\n __extends(IkConstraintTimeline, _super);\n function IkConstraintTimeline(frameCount) {\n var _this = _super.call(this, frameCount) || this;\n _this.frames = core.Utils.newFloatArray(frameCount * IkConstraintTimeline.ENTRIES);\n return _this;\n }\n IkConstraintTimeline.prototype.getPropertyId = function () {\n return (TimelineType.ikConstraint << 24) + this.ikConstraintIndex;\n };\n IkConstraintTimeline.prototype.setFrame = function (frameIndex, time, mix, bendDirection, compress, stretch) {\n frameIndex *= IkConstraintTimeline.ENTRIES;\n this.frames[frameIndex] = time;\n this.frames[frameIndex + IkConstraintTimeline.MIX] = mix;\n this.frames[frameIndex + IkConstraintTimeline.BEND_DIRECTION] = bendDirection;\n this.frames[frameIndex + IkConstraintTimeline.COMPRESS] = compress ? 1 : 0;\n this.frames[frameIndex + IkConstraintTimeline.STRETCH] = stretch ? 1 : 0;\n };\n IkConstraintTimeline.prototype.apply = function (skeleton, lastTime, time, firedEvents, alpha, blend, direction) {\n var frames = this.frames;\n var constraint = skeleton.ikConstraints[this.ikConstraintIndex];\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n constraint.mix = constraint.data.mix;\n constraint.bendDirection = constraint.data.bendDirection;\n constraint.compress = constraint.data.compress;\n constraint.stretch = constraint.data.stretch;\n return;\n case MixBlend.first:\n constraint.mix += (constraint.data.mix - constraint.mix) * alpha;\n constraint.bendDirection = constraint.data.bendDirection;\n constraint.compress = constraint.data.compress;\n constraint.stretch = constraint.data.stretch;\n }\n return;\n }\n if (time >= frames[frames.length - IkConstraintTimeline.ENTRIES]) {\n if (blend == MixBlend.setup) {\n constraint.mix =\n constraint.data.mix +\n (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.data.mix) * alpha;\n if (direction == MixDirection.out) {\n constraint.bendDirection = constraint.data.bendDirection;\n constraint.compress = constraint.data.compress;\n constraint.stretch = constraint.data.stretch;\n } else {\n constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION];\n constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0;\n constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0;\n }\n } else {\n constraint.mix += (frames[frames.length + IkConstraintTimeline.PREV_MIX] - constraint.mix) * alpha;\n if (direction == MixDirection.in) {\n constraint.bendDirection = frames[frames.length + IkConstraintTimeline.PREV_BEND_DIRECTION];\n constraint.compress = frames[frames.length + IkConstraintTimeline.PREV_COMPRESS] != 0;\n constraint.stretch = frames[frames.length + IkConstraintTimeline.PREV_STRETCH] != 0;\n }\n }\n return;\n }\n var frame = Animation.binarySearch(frames, time, IkConstraintTimeline.ENTRIES);\n var mix = frames[frame + IkConstraintTimeline.PREV_MIX];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / IkConstraintTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + IkConstraintTimeline.PREV_TIME] - frameTime),\n );\n if (blend == MixBlend.setup) {\n constraint.mix =\n constraint.data.mix +\n (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.data.mix) * alpha;\n if (direction == MixDirection.out) {\n constraint.bendDirection = constraint.data.bendDirection;\n constraint.compress = constraint.data.compress;\n constraint.stretch = constraint.data.stretch;\n } else {\n constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION];\n constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0;\n constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0;\n }\n } else {\n constraint.mix += (mix + (frames[frame + IkConstraintTimeline.MIX] - mix) * percent - constraint.mix) * alpha;\n if (direction == MixDirection.in) {\n constraint.bendDirection = frames[frame + IkConstraintTimeline.PREV_BEND_DIRECTION];\n constraint.compress = frames[frame + IkConstraintTimeline.PREV_COMPRESS] != 0;\n constraint.stretch = frames[frame + IkConstraintTimeline.PREV_STRETCH] != 0;\n }\n }\n };\n IkConstraintTimeline.ENTRIES = 5;\n IkConstraintTimeline.PREV_TIME = -5;\n IkConstraintTimeline.PREV_MIX = -4;\n IkConstraintTimeline.PREV_BEND_DIRECTION = -3;\n IkConstraintTimeline.PREV_COMPRESS = -2;\n IkConstraintTimeline.PREV_STRETCH = -1;\n IkConstraintTimeline.MIX = 1;\n IkConstraintTimeline.BEND_DIRECTION = 2;\n IkConstraintTimeline.COMPRESS = 3;\n IkConstraintTimeline.STRETCH = 4;\n return IkConstraintTimeline;\n })(CurveTimeline);\n core.IkConstraintTimeline = IkConstraintTimeline;\n var TransformConstraintTimeline = (function (_super) {\n __extends(TransformConstraintTimeline, _super);\n function TransformConstraintTimeline(frameCount) {\n var _this = _super.call(this, frameCount) || this;\n _this.frames = core.Utils.newFloatArray(frameCount * TransformConstraintTimeline.ENTRIES);\n return _this;\n }\n TransformConstraintTimeline.prototype.getPropertyId = function () {\n return (TimelineType.transformConstraint << 24) + this.transformConstraintIndex;\n };\n TransformConstraintTimeline.prototype.setFrame = function (\n frameIndex,\n time,\n rotateMix,\n translateMix,\n scaleMix,\n shearMix,\n ) {\n frameIndex *= TransformConstraintTimeline.ENTRIES;\n this.frames[frameIndex] = time;\n this.frames[frameIndex + TransformConstraintTimeline.ROTATE] = rotateMix;\n this.frames[frameIndex + TransformConstraintTimeline.TRANSLATE] = translateMix;\n this.frames[frameIndex + TransformConstraintTimeline.SCALE] = scaleMix;\n this.frames[frameIndex + TransformConstraintTimeline.SHEAR] = shearMix;\n };\n TransformConstraintTimeline.prototype.apply = function (\n skeleton,\n lastTime,\n time,\n firedEvents,\n alpha,\n blend,\n direction,\n ) {\n var frames = this.frames;\n var constraint = skeleton.transformConstraints[this.transformConstraintIndex];\n if (time < frames[0]) {\n var data = constraint.data;\n switch (blend) {\n case MixBlend.setup:\n constraint.rotateMix = data.rotateMix;\n constraint.translateMix = data.translateMix;\n constraint.scaleMix = data.scaleMix;\n constraint.shearMix = data.shearMix;\n return;\n case MixBlend.first:\n constraint.rotateMix += (data.rotateMix - constraint.rotateMix) * alpha;\n constraint.translateMix += (data.translateMix - constraint.translateMix) * alpha;\n constraint.scaleMix += (data.scaleMix - constraint.scaleMix) * alpha;\n constraint.shearMix += (data.shearMix - constraint.shearMix) * alpha;\n }\n return;\n }\n var rotate = 0,\n translate = 0,\n scale = 0,\n shear = 0;\n if (time >= frames[frames.length - TransformConstraintTimeline.ENTRIES]) {\n var i = frames.length;\n rotate = frames[i + TransformConstraintTimeline.PREV_ROTATE];\n translate = frames[i + TransformConstraintTimeline.PREV_TRANSLATE];\n scale = frames[i + TransformConstraintTimeline.PREV_SCALE];\n shear = frames[i + TransformConstraintTimeline.PREV_SHEAR];\n } else {\n var frame = Animation.binarySearch(frames, time, TransformConstraintTimeline.ENTRIES);\n rotate = frames[frame + TransformConstraintTimeline.PREV_ROTATE];\n translate = frames[frame + TransformConstraintTimeline.PREV_TRANSLATE];\n scale = frames[frame + TransformConstraintTimeline.PREV_SCALE];\n shear = frames[frame + TransformConstraintTimeline.PREV_SHEAR];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / TransformConstraintTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + TransformConstraintTimeline.PREV_TIME] - frameTime),\n );\n rotate += (frames[frame + TransformConstraintTimeline.ROTATE] - rotate) * percent;\n translate += (frames[frame + TransformConstraintTimeline.TRANSLATE] - translate) * percent;\n scale += (frames[frame + TransformConstraintTimeline.SCALE] - scale) * percent;\n shear += (frames[frame + TransformConstraintTimeline.SHEAR] - shear) * percent;\n }\n if (blend == MixBlend.setup) {\n var data = constraint.data;\n constraint.rotateMix = data.rotateMix + (rotate - data.rotateMix) * alpha;\n constraint.translateMix = data.translateMix + (translate - data.translateMix) * alpha;\n constraint.scaleMix = data.scaleMix + (scale - data.scaleMix) * alpha;\n constraint.shearMix = data.shearMix + (shear - data.shearMix) * alpha;\n } else {\n constraint.rotateMix += (rotate - constraint.rotateMix) * alpha;\n constraint.translateMix += (translate - constraint.translateMix) * alpha;\n constraint.scaleMix += (scale - constraint.scaleMix) * alpha;\n constraint.shearMix += (shear - constraint.shearMix) * alpha;\n }\n };\n TransformConstraintTimeline.ENTRIES = 5;\n TransformConstraintTimeline.PREV_TIME = -5;\n TransformConstraintTimeline.PREV_ROTATE = -4;\n TransformConstraintTimeline.PREV_TRANSLATE = -3;\n TransformConstraintTimeline.PREV_SCALE = -2;\n TransformConstraintTimeline.PREV_SHEAR = -1;\n TransformConstraintTimeline.ROTATE = 1;\n TransformConstraintTimeline.TRANSLATE = 2;\n TransformConstraintTimeline.SCALE = 3;\n TransformConstraintTimeline.SHEAR = 4;\n return TransformConstraintTimeline;\n })(CurveTimeline);\n core.TransformConstraintTimeline = TransformConstraintTimeline;\n var PathConstraintPositionTimeline = (function (_super) {\n __extends(PathConstraintPositionTimeline, _super);\n function PathConstraintPositionTimeline(frameCount) {\n var _this = _super.call(this, frameCount) || this;\n _this.frames = core.Utils.newFloatArray(frameCount * PathConstraintPositionTimeline.ENTRIES);\n return _this;\n }\n PathConstraintPositionTimeline.prototype.getPropertyId = function () {\n return (TimelineType.pathConstraintPosition << 24) + this.pathConstraintIndex;\n };\n PathConstraintPositionTimeline.prototype.setFrame = function (frameIndex, time, value) {\n frameIndex *= PathConstraintPositionTimeline.ENTRIES;\n this.frames[frameIndex] = time;\n this.frames[frameIndex + PathConstraintPositionTimeline.VALUE] = value;\n };\n PathConstraintPositionTimeline.prototype.apply = function (\n skeleton,\n lastTime,\n time,\n firedEvents,\n alpha,\n blend,\n direction,\n ) {\n var frames = this.frames;\n var constraint = skeleton.pathConstraints[this.pathConstraintIndex];\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n constraint.position = constraint.data.position;\n return;\n case MixBlend.first:\n constraint.position += (constraint.data.position - constraint.position) * alpha;\n }\n return;\n }\n var position = 0;\n if (time >= frames[frames.length - PathConstraintPositionTimeline.ENTRIES])\n position = frames[frames.length + PathConstraintPositionTimeline.PREV_VALUE];\n else {\n var frame = Animation.binarySearch(frames, time, PathConstraintPositionTimeline.ENTRIES);\n position = frames[frame + PathConstraintPositionTimeline.PREV_VALUE];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / PathConstraintPositionTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + PathConstraintPositionTimeline.PREV_TIME] - frameTime),\n );\n position += (frames[frame + PathConstraintPositionTimeline.VALUE] - position) * percent;\n }\n if (blend == MixBlend.setup)\n constraint.position = constraint.data.position + (position - constraint.data.position) * alpha;\n else constraint.position += (position - constraint.position) * alpha;\n };\n PathConstraintPositionTimeline.ENTRIES = 2;\n PathConstraintPositionTimeline.PREV_TIME = -2;\n PathConstraintPositionTimeline.PREV_VALUE = -1;\n PathConstraintPositionTimeline.VALUE = 1;\n return PathConstraintPositionTimeline;\n })(CurveTimeline);\n core.PathConstraintPositionTimeline = PathConstraintPositionTimeline;\n var PathConstraintSpacingTimeline = (function (_super) {\n __extends(PathConstraintSpacingTimeline, _super);\n function PathConstraintSpacingTimeline(frameCount) {\n return _super.call(this, frameCount) || this;\n }\n PathConstraintSpacingTimeline.prototype.getPropertyId = function () {\n return (TimelineType.pathConstraintSpacing << 24) + this.pathConstraintIndex;\n };\n PathConstraintSpacingTimeline.prototype.apply = function (\n skeleton,\n lastTime,\n time,\n firedEvents,\n alpha,\n blend,\n direction,\n ) {\n var frames = this.frames;\n var constraint = skeleton.pathConstraints[this.pathConstraintIndex];\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n constraint.spacing = constraint.data.spacing;\n return;\n case MixBlend.first:\n constraint.spacing += (constraint.data.spacing - constraint.spacing) * alpha;\n }\n return;\n }\n var spacing = 0;\n if (time >= frames[frames.length - PathConstraintSpacingTimeline.ENTRIES])\n spacing = frames[frames.length + PathConstraintSpacingTimeline.PREV_VALUE];\n else {\n var frame = Animation.binarySearch(frames, time, PathConstraintSpacingTimeline.ENTRIES);\n spacing = frames[frame + PathConstraintSpacingTimeline.PREV_VALUE];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / PathConstraintSpacingTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + PathConstraintSpacingTimeline.PREV_TIME] - frameTime),\n );\n spacing += (frames[frame + PathConstraintSpacingTimeline.VALUE] - spacing) * percent;\n }\n if (blend == MixBlend.setup)\n constraint.spacing = constraint.data.spacing + (spacing - constraint.data.spacing) * alpha;\n else constraint.spacing += (spacing - constraint.spacing) * alpha;\n };\n return PathConstraintSpacingTimeline;\n })(PathConstraintPositionTimeline);\n core.PathConstraintSpacingTimeline = PathConstraintSpacingTimeline;\n var PathConstraintMixTimeline = (function (_super) {\n __extends(PathConstraintMixTimeline, _super);\n function PathConstraintMixTimeline(frameCount) {\n var _this = _super.call(this, frameCount) || this;\n _this.frames = core.Utils.newFloatArray(frameCount * PathConstraintMixTimeline.ENTRIES);\n return _this;\n }\n PathConstraintMixTimeline.prototype.getPropertyId = function () {\n return (TimelineType.pathConstraintMix << 24) + this.pathConstraintIndex;\n };\n PathConstraintMixTimeline.prototype.setFrame = function (frameIndex, time, rotateMix, translateMix) {\n frameIndex *= PathConstraintMixTimeline.ENTRIES;\n this.frames[frameIndex] = time;\n this.frames[frameIndex + PathConstraintMixTimeline.ROTATE] = rotateMix;\n this.frames[frameIndex + PathConstraintMixTimeline.TRANSLATE] = translateMix;\n };\n PathConstraintMixTimeline.prototype.apply = function (\n skeleton,\n lastTime,\n time,\n firedEvents,\n alpha,\n blend,\n direction,\n ) {\n var frames = this.frames;\n var constraint = skeleton.pathConstraints[this.pathConstraintIndex];\n if (time < frames[0]) {\n switch (blend) {\n case MixBlend.setup:\n constraint.rotateMix = constraint.data.rotateMix;\n constraint.translateMix = constraint.data.translateMix;\n return;\n case MixBlend.first:\n constraint.rotateMix += (constraint.data.rotateMix - constraint.rotateMix) * alpha;\n constraint.translateMix += (constraint.data.translateMix - constraint.translateMix) * alpha;\n }\n return;\n }\n var rotate = 0,\n translate = 0;\n if (time >= frames[frames.length - PathConstraintMixTimeline.ENTRIES]) {\n rotate = frames[frames.length + PathConstraintMixTimeline.PREV_ROTATE];\n translate = frames[frames.length + PathConstraintMixTimeline.PREV_TRANSLATE];\n } else {\n var frame = Animation.binarySearch(frames, time, PathConstraintMixTimeline.ENTRIES);\n rotate = frames[frame + PathConstraintMixTimeline.PREV_ROTATE];\n translate = frames[frame + PathConstraintMixTimeline.PREV_TRANSLATE];\n var frameTime = frames[frame];\n var percent = this.getCurvePercent(\n frame / PathConstraintMixTimeline.ENTRIES - 1,\n 1 - (time - frameTime) / (frames[frame + PathConstraintMixTimeline.PREV_TIME] - frameTime),\n );\n rotate += (frames[frame + PathConstraintMixTimeline.ROTATE] - rotate) * percent;\n translate += (frames[frame + PathConstraintMixTimeline.TRANSLATE] - translate) * percent;\n }\n if (blend == MixBlend.setup) {\n constraint.rotateMix = constraint.data.rotateMix + (rotate - constraint.data.rotateMix) * alpha;\n constraint.translateMix = constraint.data.translateMix + (translate - constraint.data.translateMix) * alpha;\n } else {\n constraint.rotateMix += (rotate - constraint.rotateMix) * alpha;\n constraint.translateMix += (translate - constraint.translateMix) * alpha;\n }\n };\n PathConstraintMixTimeline.ENTRIES = 3;\n PathConstraintMixTimeline.PREV_TIME = -3;\n PathConstraintMixTimeline.PREV_ROTATE = -2;\n PathConstraintMixTimeline.PREV_TRANSLATE = -1;\n PathConstraintMixTimeline.ROTATE = 1;\n PathConstraintMixTimeline.TRANSLATE = 2;\n return PathConstraintMixTimeline;\n })(CurveTimeline);\n core.PathConstraintMixTimeline = PathConstraintMixTimeline;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var AnimationState = (function () {\n function AnimationState(data) {\n this.tracks = new Array();\n this.events = new Array();\n this.listeners = new Array();\n this.queue = new EventQueue(this);\n this.propertyIDs = new core.IntSet();\n this.animationsChanged = false;\n this.timeScale = 1;\n this.trackEntryPool = new core.Pool(function () {\n return new TrackEntry();\n });\n this.data = data;\n }\n AnimationState.prototype.update = function (delta) {\n delta *= this.timeScale;\n var tracks = this.tracks;\n for (var i = 0, n = tracks.length; i < n; i++) {\n var current = tracks[i];\n if (current == null) continue;\n current.animationLast = current.nextAnimationLast;\n current.trackLast = current.nextTrackLast;\n var currentDelta = delta * current.timeScale;\n if (current.delay > 0) {\n current.delay -= currentDelta;\n if (current.delay > 0) continue;\n currentDelta = -current.delay;\n current.delay = 0;\n }\n var next = current.next;\n if (next != null) {\n var nextTime = current.trackLast - next.delay;\n if (nextTime >= 0) {\n next.delay = 0;\n next.trackTime = current.timeScale == 0 ? 0 : (nextTime / current.timeScale + delta) * next.timeScale;\n current.trackTime += currentDelta;\n this.setCurrent(i, next, true);\n while (next.mixingFrom != null) {\n next.mixTime += delta;\n next = next.mixingFrom;\n }\n continue;\n }\n } else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {\n tracks[i] = null;\n this.queue.end(current);\n this.disposeNext(current);\n continue;\n }\n if (current.mixingFrom != null && this.updateMixingFrom(current, delta)) {\n var from = current.mixingFrom;\n current.mixingFrom = null;\n if (from != null) from.mixingTo = null;\n while (from != null) {\n this.queue.end(from);\n from = from.mixingFrom;\n }\n }\n current.trackTime += currentDelta;\n }\n this.queue.drain();\n };\n AnimationState.prototype.updateMixingFrom = function (to, delta) {\n var from = to.mixingFrom;\n if (from == null) return true;\n var finished = this.updateMixingFrom(from, delta);\n from.animationLast = from.nextAnimationLast;\n from.trackLast = from.nextTrackLast;\n if (to.mixTime > 0 && to.mixTime >= to.mixDuration) {\n if (from.totalAlpha == 0 || to.mixDuration == 0) {\n to.mixingFrom = from.mixingFrom;\n if (from.mixingFrom != null) from.mixingFrom.mixingTo = to;\n to.interruptAlpha = from.interruptAlpha;\n this.queue.end(from);\n }\n return finished;\n }\n from.trackTime += delta * from.timeScale;\n to.mixTime += delta;\n return false;\n };\n AnimationState.prototype.apply = function (skeleton) {\n if (skeleton == null) throw new Error('skeleton cannot be null.');\n if (this.animationsChanged) this._animationsChanged();\n var events = this.events;\n var tracks = this.tracks;\n var applied = false;\n for (var i = 0, n = tracks.length; i < n; i++) {\n var current = tracks[i];\n if (current == null || current.delay > 0) continue;\n applied = true;\n var blend = i == 0 ? core.MixBlend.first : current.mixBlend;\n var mix = current.alpha;\n if (current.mixingFrom != null) mix *= this.applyMixingFrom(current, skeleton, blend);\n else if (current.trackTime >= current.trackEnd && current.next == null) mix = 0;\n var animationLast = current.animationLast,\n animationTime = current.getAnimationTime();\n var timelineCount = current.animation.timelines.length;\n var timelines = current.animation.timelines;\n if (i == 0 && (mix == 1 || blend == core.MixBlend.add)) {\n for (var ii = 0; ii < timelineCount; ii++) {\n core.Utils.webkit602BugfixHelper(mix, blend);\n timelines[ii].apply(skeleton, animationLast, animationTime, events, mix, blend, core.MixDirection.in);\n }\n } else {\n var timelineMode = current.timelineMode;\n var firstFrame = current.timelinesRotation.length == 0;\n if (firstFrame) core.Utils.setArraySize(current.timelinesRotation, timelineCount << 1, null);\n var timelinesRotation = current.timelinesRotation;\n for (var ii = 0; ii < timelineCount; ii++) {\n var timeline = timelines[ii];\n var timelineBlend = timelineMode[ii] == AnimationState.SUBSEQUENT ? blend : core.MixBlend.setup;\n if (timeline instanceof core.RotateTimeline) {\n this.applyRotateTimeline(\n timeline,\n skeleton,\n animationTime,\n mix,\n timelineBlend,\n timelinesRotation,\n ii << 1,\n firstFrame,\n );\n } else {\n core.Utils.webkit602BugfixHelper(mix, blend);\n timeline.apply(\n skeleton,\n animationLast,\n animationTime,\n events,\n mix,\n timelineBlend,\n core.MixDirection.in,\n );\n }\n }\n }\n this.queueEvents(current, animationTime);\n events.length = 0;\n current.nextAnimationLast = animationTime;\n current.nextTrackLast = current.trackTime;\n }\n this.queue.drain();\n return applied;\n };\n AnimationState.prototype.applyMixingFrom = function (to, skeleton, blend) {\n var from = to.mixingFrom;\n if (from.mixingFrom != null) this.applyMixingFrom(from, skeleton, blend);\n var mix = 0;\n if (to.mixDuration == 0) {\n mix = 1;\n if (blend == core.MixBlend.first) blend = core.MixBlend.setup;\n } else {\n mix = to.mixTime / to.mixDuration;\n if (mix > 1) mix = 1;\n if (blend != core.MixBlend.first) blend = from.mixBlend;\n }\n var events = mix < from.eventThreshold ? this.events : null;\n var attachments = mix < from.attachmentThreshold,\n drawOrder = mix < from.drawOrderThreshold;\n var animationLast = from.animationLast,\n animationTime = from.getAnimationTime();\n var timelineCount = from.animation.timelines.length;\n var timelines = from.animation.timelines;\n var alphaHold = from.alpha * to.interruptAlpha,\n alphaMix = alphaHold * (1 - mix);\n if (blend == core.MixBlend.add) {\n for (var i = 0; i < timelineCount; i++)\n timelines[i].apply(skeleton, animationLast, animationTime, events, alphaMix, blend, core.MixDirection.out);\n } else {\n var timelineMode = from.timelineMode;\n var timelineHoldMix = from.timelineHoldMix;\n var firstFrame = from.timelinesRotation.length == 0;\n if (firstFrame) core.Utils.setArraySize(from.timelinesRotation, timelineCount << 1, null);\n var timelinesRotation = from.timelinesRotation;\n from.totalAlpha = 0;\n for (var i = 0; i < timelineCount; i++) {\n var timeline = timelines[i];\n var direction = core.MixDirection.out;\n var timelineBlend = void 0;\n var alpha = 0;\n switch (timelineMode[i]) {\n case AnimationState.SUBSEQUENT:\n if (!attachments && timeline instanceof core.AttachmentTimeline) continue;\n if (!drawOrder && timeline instanceof core.DrawOrderTimeline) continue;\n timelineBlend = blend;\n alpha = alphaMix;\n break;\n case AnimationState.FIRST:\n timelineBlend = core.MixBlend.setup;\n alpha = alphaMix;\n break;\n case AnimationState.HOLD:\n timelineBlend = core.MixBlend.setup;\n alpha = alphaHold;\n break;\n default:\n timelineBlend = core.MixBlend.setup;\n var holdMix = timelineHoldMix[i];\n alpha = alphaHold * Math.max(0, 1 - holdMix.mixTime / holdMix.mixDuration);\n break;\n }\n from.totalAlpha += alpha;\n if (timeline instanceof core.RotateTimeline)\n this.applyRotateTimeline(\n timeline,\n skeleton,\n animationTime,\n alpha,\n timelineBlend,\n timelinesRotation,\n i << 1,\n firstFrame,\n );\n else {\n core.Utils.webkit602BugfixHelper(alpha, blend);\n if (timelineBlend == core.MixBlend.setup) {\n if (timeline instanceof core.AttachmentTimeline) {\n if (attachments) direction = core.MixDirection.out;\n } else if (timeline instanceof core.DrawOrderTimeline) {\n if (drawOrder) direction = core.MixDirection.out;\n }\n }\n timeline.apply(skeleton, animationLast, animationTime, events, alpha, timelineBlend, direction);\n }\n }\n }\n if (to.mixDuration > 0) this.queueEvents(from, animationTime);\n this.events.length = 0;\n from.nextAnimationLast = animationTime;\n from.nextTrackLast = from.trackTime;\n return mix;\n };\n AnimationState.prototype.applyRotateTimeline = function (\n timeline,\n skeleton,\n time,\n alpha,\n blend,\n timelinesRotation,\n i,\n firstFrame,\n ) {\n if (firstFrame) timelinesRotation[i] = 0;\n if (alpha == 1) {\n timeline.apply(skeleton, 0, time, null, 1, blend, core.MixDirection.in);\n return;\n }\n var rotateTimeline = timeline;\n var frames = rotateTimeline.frames;\n var bone = skeleton.bones[rotateTimeline.boneIndex];\n var r1 = 0,\n r2 = 0;\n if (time < frames[0]) {\n switch (blend) {\n case core.MixBlend.setup:\n bone.rotation = bone.data.rotation;\n default:\n return;\n case core.MixBlend.first:\n r1 = bone.rotation;\n r2 = bone.data.rotation;\n }\n } else {\n r1 = blend == core.MixBlend.setup ? bone.data.rotation : bone.rotation;\n if (time >= frames[frames.length - core.RotateTimeline.ENTRIES])\n r2 = bone.data.rotation + frames[frames.length + core.RotateTimeline.PREV_ROTATION];\n else {\n var frame = core.Animation.binarySearch(frames, time, core.RotateTimeline.ENTRIES);\n var prevRotation = frames[frame + core.RotateTimeline.PREV_ROTATION];\n var frameTime = frames[frame];\n var percent = rotateTimeline.getCurvePercent(\n (frame >> 1) - 1,\n 1 - (time - frameTime) / (frames[frame + core.RotateTimeline.PREV_TIME] - frameTime),\n );\n r2 = frames[frame + core.RotateTimeline.ROTATION] - prevRotation;\n r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360;\n r2 = prevRotation + r2 * percent + bone.data.rotation;\n r2 -= (16384 - ((16384.499999999996 - r2 / 360) | 0)) * 360;\n }\n }\n var total = 0,\n diff = r2 - r1;\n diff -= (16384 - ((16384.499999999996 - diff / 360) | 0)) * 360;\n if (diff == 0) {\n total = timelinesRotation[i];\n } else {\n var lastTotal = 0,\n lastDiff = 0;\n if (firstFrame) {\n lastTotal = 0;\n lastDiff = diff;\n } else {\n lastTotal = timelinesRotation[i];\n lastDiff = timelinesRotation[i + 1];\n }\n var current = diff > 0,\n dir = lastTotal >= 0;\n if (core.MathUtils.signum(lastDiff) != core.MathUtils.signum(diff) && Math.abs(lastDiff) <= 90) {\n if (Math.abs(lastTotal) > 180) lastTotal += 360 * core.MathUtils.signum(lastTotal);\n dir = current;\n }\n total = diff + lastTotal - (lastTotal % 360);\n if (dir != current) total += 360 * core.MathUtils.signum(lastTotal);\n timelinesRotation[i] = total;\n }\n timelinesRotation[i + 1] = diff;\n r1 += total * alpha;\n bone.rotation = r1 - (16384 - ((16384.499999999996 - r1 / 360) | 0)) * 360;\n };\n AnimationState.prototype.queueEvents = function (entry, animationTime) {\n var animationStart = entry.animationStart,\n animationEnd = entry.animationEnd;\n var duration = animationEnd - animationStart;\n var trackLastWrapped = entry.trackLast % duration;\n var events = this.events;\n var i = 0,\n n = events.length;\n for (; i < n; i++) {\n var event_1 = events[i];\n if (event_1.time < trackLastWrapped) break;\n if (event_1.time > animationEnd) continue;\n this.queue.event(entry, event_1);\n }\n var complete = false;\n if (entry.loop) complete = duration == 0 || trackLastWrapped > entry.trackTime % duration;\n else complete = animationTime >= animationEnd && entry.animationLast < animationEnd;\n if (complete) this.queue.complete(entry);\n for (; i < n; i++) {\n var event_2 = events[i];\n if (event_2.time < animationStart) continue;\n this.queue.event(entry, events[i]);\n }\n };\n AnimationState.prototype.clearTracks = function () {\n var oldDrainDisabled = this.queue.drainDisabled;\n this.queue.drainDisabled = true;\n for (var i = 0, n = this.tracks.length; i < n; i++) this.clearTrack(i);\n this.tracks.length = 0;\n this.queue.drainDisabled = oldDrainDisabled;\n this.queue.drain();\n };\n AnimationState.prototype.clearTrack = function (trackIndex) {\n if (trackIndex >= this.tracks.length) return;\n var current = this.tracks[trackIndex];\n if (current == null) return;\n this.queue.end(current);\n this.disposeNext(current);\n var entry = current;\n while (true) {\n var from = entry.mixingFrom;\n if (from == null) break;\n this.queue.end(from);\n entry.mixingFrom = null;\n entry.mixingTo = null;\n entry = from;\n }\n this.tracks[current.trackIndex] = null;\n this.queue.drain();\n };\n AnimationState.prototype.setCurrent = function (index, current, interrupt) {\n var from = this.expandToIndex(index);\n this.tracks[index] = current;\n if (from != null) {\n if (interrupt) this.queue.interrupt(from);\n current.mixingFrom = from;\n from.mixingTo = current;\n current.mixTime = 0;\n if (from.mixingFrom != null && from.mixDuration > 0)\n current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration);\n from.timelinesRotation.length = 0;\n }\n this.queue.start(current);\n };\n AnimationState.prototype.setAnimation = function (trackIndex, animationName, loop) {\n var animation = this.data.skeletonData.findAnimation(animationName);\n if (animation == null) throw new Error('Animation not found: ' + animationName);\n return this.setAnimationWith(trackIndex, animation, loop);\n };\n AnimationState.prototype.setAnimationWith = function (trackIndex, animation, loop) {\n if (animation == null) throw new Error('animation cannot be null.');\n var interrupt = true;\n var current = this.expandToIndex(trackIndex);\n if (current != null) {\n if (current.nextTrackLast == -1) {\n this.tracks[trackIndex] = current.mixingFrom;\n this.queue.interrupt(current);\n this.queue.end(current);\n this.disposeNext(current);\n current = current.mixingFrom;\n interrupt = false;\n } else this.disposeNext(current);\n }\n var entry = this.trackEntry(trackIndex, animation, loop, current);\n this.setCurrent(trackIndex, entry, interrupt);\n this.queue.drain();\n return entry;\n };\n AnimationState.prototype.addAnimation = function (trackIndex, animationName, loop, delay) {\n var animation = this.data.skeletonData.findAnimation(animationName);\n if (animation == null) throw new Error('Animation not found: ' + animationName);\n return this.addAnimationWith(trackIndex, animation, loop, delay);\n };\n AnimationState.prototype.addAnimationWith = function (trackIndex, animation, loop, delay) {\n if (animation == null) throw new Error('animation cannot be null.');\n var last = this.expandToIndex(trackIndex);\n if (last != null) {\n while (last.next != null) last = last.next;\n }\n var entry = this.trackEntry(trackIndex, animation, loop, last);\n if (last == null) {\n this.setCurrent(trackIndex, entry, true);\n this.queue.drain();\n } else {\n last.next = entry;\n if (delay <= 0) {\n var duration = last.animationEnd - last.animationStart;\n if (duration != 0) {\n if (last.loop) delay += duration * (1 + ((last.trackTime / duration) | 0));\n else delay += Math.max(duration, last.trackTime);\n delay -= this.data.getMix(last.animation, animation);\n } else delay = last.trackTime;\n }\n }\n entry.delay = delay;\n return entry;\n };\n AnimationState.prototype.setEmptyAnimation = function (trackIndex, mixDuration) {\n var entry = this.setAnimationWith(trackIndex, AnimationState.emptyAnimation, false);\n entry.mixDuration = mixDuration;\n entry.trackEnd = mixDuration;\n return entry;\n };\n AnimationState.prototype.addEmptyAnimation = function (trackIndex, mixDuration, delay) {\n if (delay <= 0) delay -= mixDuration;\n var entry = this.addAnimationWith(trackIndex, AnimationState.emptyAnimation, false, delay);\n entry.mixDuration = mixDuration;\n entry.trackEnd = mixDuration;\n return entry;\n };\n AnimationState.prototype.setEmptyAnimations = function (mixDuration) {\n var oldDrainDisabled = this.queue.drainDisabled;\n this.queue.drainDisabled = true;\n for (var i = 0, n = this.tracks.length; i < n; i++) {\n var current = this.tracks[i];\n if (current != null) this.setEmptyAnimation(current.trackIndex, mixDuration);\n }\n this.queue.drainDisabled = oldDrainDisabled;\n this.queue.drain();\n };\n AnimationState.prototype.expandToIndex = function (index) {\n if (index < this.tracks.length) return this.tracks[index];\n core.Utils.ensureArrayCapacity(this.tracks, index - this.tracks.length + 1, null);\n this.tracks.length = index + 1;\n return null;\n };\n AnimationState.prototype.trackEntry = function (trackIndex, animation, loop, last) {\n var entry = this.trackEntryPool.obtain();\n entry.trackIndex = trackIndex;\n entry.animation = animation;\n entry.loop = loop;\n entry.holdPrevious = false;\n entry.eventThreshold = 0;\n entry.attachmentThreshold = 0;\n entry.drawOrderThreshold = 0;\n entry.animationStart = 0;\n entry.animationEnd = animation.duration;\n entry.animationLast = -1;\n entry.nextAnimationLast = -1;\n entry.delay = 0;\n entry.trackTime = 0;\n entry.trackLast = -1;\n entry.nextTrackLast = -1;\n entry.trackEnd = Number.MAX_VALUE;\n entry.timeScale = 1;\n entry.alpha = 1;\n entry.interruptAlpha = 1;\n entry.mixTime = 0;\n entry.mixDuration = last == null ? 0 : this.data.getMix(last.animation, animation);\n return entry;\n };\n AnimationState.prototype.disposeNext = function (entry) {\n var next = entry.next;\n while (next != null) {\n this.queue.dispose(next);\n next = next.next;\n }\n entry.next = null;\n };\n AnimationState.prototype._animationsChanged = function () {\n this.animationsChanged = false;\n this.propertyIDs.clear();\n for (var i = 0, n = this.tracks.length; i < n; i++) {\n var entry = this.tracks[i];\n if (entry == null) continue;\n while (entry.mixingFrom != null) entry = entry.mixingFrom;\n do {\n if (entry.mixingFrom == null || entry.mixBlend != core.MixBlend.add) this.setTimelineModes(entry);\n entry = entry.mixingTo;\n } while (entry != null);\n }\n };\n AnimationState.prototype.setTimelineModes = function (entry) {\n var to = entry.mixingTo;\n var timelines = entry.animation.timelines;\n var timelinesCount = entry.animation.timelines.length;\n var timelineMode = core.Utils.setArraySize(entry.timelineMode, timelinesCount);\n entry.timelineHoldMix.length = 0;\n var timelineDipMix = core.Utils.setArraySize(entry.timelineHoldMix, timelinesCount);\n var propertyIDs = this.propertyIDs;\n if (to != null && to.holdPrevious) {\n for (var i = 0; i < timelinesCount; i++) {\n propertyIDs.add(timelines[i].getPropertyId());\n timelineMode[i] = AnimationState.HOLD;\n }\n return;\n }\n outer: for (var i = 0; i < timelinesCount; i++) {\n var id = timelines[i].getPropertyId();\n if (!propertyIDs.add(id)) timelineMode[i] = AnimationState.SUBSEQUENT;\n else if (to == null || !this.hasTimeline(to, id)) timelineMode[i] = AnimationState.FIRST;\n else {\n for (var next = to.mixingTo; next != null; next = next.mixingTo) {\n if (this.hasTimeline(next, id)) continue;\n if (entry.mixDuration > 0) {\n timelineMode[i] = AnimationState.HOLD_MIX;\n timelineDipMix[i] = next;\n continue outer;\n }\n break;\n }\n timelineMode[i] = AnimationState.HOLD;\n }\n }\n };\n AnimationState.prototype.hasTimeline = function (entry, id) {\n var timelines = entry.animation.timelines;\n for (var i = 0, n = timelines.length; i < n; i++) if (timelines[i].getPropertyId() == id) return true;\n return false;\n };\n AnimationState.prototype.getCurrent = function (trackIndex) {\n if (trackIndex >= this.tracks.length) return null;\n return this.tracks[trackIndex];\n };\n AnimationState.prototype.addListener = function (listener) {\n if (listener == null) throw new Error('listener cannot be null.');\n this.listeners.push(listener);\n };\n AnimationState.prototype.removeListener = function (listener) {\n var index = this.listeners.indexOf(listener);\n if (index >= 0) this.listeners.splice(index, 1);\n };\n AnimationState.prototype.clearListeners = function () {\n this.listeners.length = 0;\n };\n AnimationState.prototype.clearListenerNotifications = function () {\n this.queue.clear();\n };\n AnimationState.prototype.setAnimationByName = function (trackIndex, animationName, loop) {\n if (!AnimationState.deprecatedWarning1) {\n AnimationState.deprecatedWarning1 = true;\n console.warn(\n 'Spine Deprecation Warning: AnimationState.setAnimationByName is deprecated, please use setAnimation from now on.',\n );\n }\n this.setAnimation(trackIndex, animationName, loop);\n };\n AnimationState.prototype.addAnimationByName = function (trackIndex, animationName, loop, delay) {\n if (!AnimationState.deprecatedWarning2) {\n AnimationState.deprecatedWarning2 = true;\n console.warn(\n 'Spine Deprecation Warning: AnimationState.addAnimationByName is deprecated, please use addAnimation from now on.',\n );\n }\n this.addAnimation(trackIndex, animationName, loop, delay);\n };\n AnimationState.prototype.hasAnimation = function (animationName) {\n var animation = this.data.skeletonData.findAnimation(animationName);\n return animation !== null;\n };\n AnimationState.prototype.hasAnimationByName = function (animationName) {\n if (!AnimationState.deprecatedWarning3) {\n AnimationState.deprecatedWarning3 = true;\n console.warn(\n 'Spine Deprecation Warning: AnimationState.hasAnimationByName is deprecated, please use hasAnimation from now on.',\n );\n }\n return this.hasAnimation(animationName);\n };\n AnimationState.emptyAnimation = new core.Animation('<empty>', [], 0);\n AnimationState.SUBSEQUENT = 0;\n AnimationState.FIRST = 1;\n AnimationState.HOLD = 2;\n AnimationState.HOLD_MIX = 3;\n AnimationState.deprecatedWarning1 = false;\n AnimationState.deprecatedWarning2 = false;\n AnimationState.deprecatedWarning3 = false;\n return AnimationState;\n })();\n core.AnimationState = AnimationState;\n var TrackEntry = (function () {\n function TrackEntry() {\n this.mixBlend = core.MixBlend.replace;\n this.timelineMode = new Array();\n this.timelineHoldMix = new Array();\n this.timelinesRotation = new Array();\n }\n TrackEntry.prototype.reset = function () {\n this.next = null;\n this.mixingFrom = null;\n this.mixingTo = null;\n this.animation = null;\n this.listener = null;\n this.timelineMode.length = 0;\n this.timelineHoldMix.length = 0;\n this.timelinesRotation.length = 0;\n };\n TrackEntry.prototype.getAnimationTime = function () {\n if (this.loop) {\n var duration = this.animationEnd - this.animationStart;\n if (duration == 0) return this.animationStart;\n return (this.trackTime % duration) + this.animationStart;\n }\n return Math.min(this.trackTime + this.animationStart, this.animationEnd);\n };\n TrackEntry.prototype.setAnimationLast = function (animationLast) {\n this.animationLast = animationLast;\n this.nextAnimationLast = animationLast;\n };\n TrackEntry.prototype.isComplete = function () {\n return this.trackTime >= this.animationEnd - this.animationStart;\n };\n TrackEntry.prototype.resetRotationDirections = function () {\n this.timelinesRotation.length = 0;\n };\n Object.defineProperty(TrackEntry.prototype, 'time', {\n get: function () {\n if (!TrackEntry.deprecatedWarning1) {\n TrackEntry.deprecatedWarning1 = true;\n console.warn('Spine Deprecation Warning: TrackEntry.time is deprecated, please use trackTime from now on.');\n }\n return this.trackTime;\n },\n set: function (value) {\n if (!TrackEntry.deprecatedWarning1) {\n TrackEntry.deprecatedWarning1 = true;\n console.warn('Spine Deprecation Warning: TrackEntry.time is deprecated, please use trackTime from now on.');\n }\n this.trackTime = value;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TrackEntry.prototype, 'endTime', {\n get: function () {\n if (!TrackEntry.deprecatedWarning2) {\n TrackEntry.deprecatedWarning2 = true;\n console.warn(\n 'Spine Deprecation Warning: TrackEntry.endTime is deprecated, please use trackEnd from now on.',\n );\n }\n return this.trackTime;\n },\n set: function (value) {\n if (!TrackEntry.deprecatedWarning2) {\n TrackEntry.deprecatedWarning2 = true;\n console.warn(\n 'Spine Deprecation Warning: TrackEntry.endTime is deprecated, please use trackEnd from now on.',\n );\n }\n this.trackTime = value;\n },\n enumerable: true,\n configurable: true,\n });\n TrackEntry.prototype.loopsCount = function () {\n return Math.floor(this.trackTime / this.trackEnd);\n };\n TrackEntry.deprecatedWarning1 = false;\n TrackEntry.deprecatedWarning2 = false;\n return TrackEntry;\n })();\n core.TrackEntry = TrackEntry;\n var EventQueue = (function () {\n function EventQueue(animState) {\n this.objects = [];\n this.drainDisabled = false;\n this.animState = animState;\n }\n EventQueue.prototype.start = function (entry) {\n this.objects.push(EventType.start);\n this.objects.push(entry);\n this.animState.animationsChanged = true;\n };\n EventQueue.prototype.interrupt = function (entry) {\n this.objects.push(EventType.interrupt);\n this.objects.push(entry);\n };\n EventQueue.prototype.end = function (entry) {\n this.objects.push(EventType.end);\n this.objects.push(entry);\n this.animState.animationsChanged = true;\n };\n EventQueue.prototype.dispose = function (entry) {\n this.objects.push(EventType.dispose);\n this.objects.push(entry);\n };\n EventQueue.prototype.complete = function (entry) {\n this.objects.push(EventType.complete);\n this.objects.push(entry);\n };\n EventQueue.prototype.event = function (entry, event) {\n this.objects.push(EventType.event);\n this.objects.push(entry);\n this.objects.push(event);\n };\n EventQueue.prototype.deprecateStuff = function () {\n if (!EventQueue.deprecatedWarning1) {\n EventQueue.deprecatedWarning1 = true;\n console.warn(\n \"Spine Deprecation Warning: onComplete, onStart, onEnd, onEvent art deprecated, please use listeners from now on. 'state.addListener({ complete: function(track, event) { } })'\",\n );\n }\n return true;\n };\n EventQueue.prototype.drain = function () {\n if (this.drainDisabled) return;\n this.drainDisabled = true;\n var objects = this.objects;\n var listeners = this.animState.listeners;\n for (var i = 0; i < objects.length; i += 2) {\n var type = objects[i];\n var entry = objects[i + 1];\n switch (type) {\n case EventType.start:\n if (entry.listener != null && entry.listener.start) entry.listener.start(entry);\n for (var ii = 0; ii < listeners.length; ii++) if (listeners[ii].start) listeners[ii].start(entry);\n entry.onStart && this.deprecateStuff() && entry.onStart(entry.trackIndex);\n this.animState.onStart &&\n this.deprecateStuff() &&\n this.deprecateStuff &&\n this.animState.onStart(entry.trackIndex);\n break;\n case EventType.interrupt:\n if (entry.listener != null && entry.listener.interrupt) entry.listener.interrupt(entry);\n for (var ii = 0; ii < listeners.length; ii++) if (listeners[ii].interrupt) listeners[ii].interrupt(entry);\n break;\n case EventType.end:\n if (entry.listener != null && entry.listener.end) entry.listener.end(entry);\n for (var ii = 0; ii < listeners.length; ii++) if (listeners[ii].end) listeners[ii].end(entry);\n entry.onEnd && this.deprecateStuff() && entry.onEnd(entry.trackIndex);\n this.animState.onEnd && this.deprecateStuff() && this.animState.onEnd(entry.trackIndex);\n case EventType.dispose:\n if (entry.listener != null && entry.listener.dispose) entry.listener.dispose(entry);\n for (var ii = 0; ii < listeners.length; ii++) if (listeners[ii].dispose) listeners[ii].dispose(entry);\n this.animState.trackEntryPool.free(entry);\n break;\n case EventType.complete:\n if (entry.listener != null && entry.listener.complete) entry.listener.complete(entry);\n for (var ii = 0; ii < listeners.length; ii++) if (listeners[ii].complete) listeners[ii].complete(entry);\n var count = core.MathUtils.toInt(entry.loopsCount());\n entry.onComplete && this.deprecateStuff() && entry.onComplete(entry.trackIndex, count);\n this.animState.onComplete && this.deprecateStuff() && this.animState.onComplete(entry.trackIndex, count);\n break;\n case EventType.event:\n var event_3 = objects[i++ + 2];\n if (entry.listener != null && entry.listener.event) entry.listener.event(entry, event_3);\n for (var ii = 0; ii < listeners.length; ii++)\n if (listeners[ii].event) listeners[ii].event(entry, event_3);\n entry.onEvent && this.deprecateStuff() && entry.onEvent(entry.trackIndex, event_3);\n this.animState.onEvent && this.deprecateStuff() && this.animState.onEvent(entry.trackIndex, event_3);\n break;\n }\n }\n this.clear();\n this.drainDisabled = false;\n };\n EventQueue.prototype.clear = function () {\n this.objects.length = 0;\n };\n EventQueue.deprecatedWarning1 = false;\n return EventQueue;\n })();\n core.EventQueue = EventQueue;\n var EventType;\n (function (EventType) {\n EventType[(EventType['start'] = 0)] = 'start';\n EventType[(EventType['interrupt'] = 1)] = 'interrupt';\n EventType[(EventType['end'] = 2)] = 'end';\n EventType[(EventType['dispose'] = 3)] = 'dispose';\n EventType[(EventType['complete'] = 4)] = 'complete';\n EventType[(EventType['event'] = 5)] = 'event';\n })((EventType = core.EventType || (core.EventType = {})));\n var AnimationStateAdapter2 = (function () {\n function AnimationStateAdapter2() {}\n AnimationStateAdapter2.prototype.start = function (entry) {};\n AnimationStateAdapter2.prototype.interrupt = function (entry) {};\n AnimationStateAdapter2.prototype.end = function (entry) {};\n AnimationStateAdapter2.prototype.dispose = function (entry) {};\n AnimationStateAdapter2.prototype.complete = function (entry) {};\n AnimationStateAdapter2.prototype.event = function (entry, event) {};\n return AnimationStateAdapter2;\n })();\n core.AnimationStateAdapter2 = AnimationStateAdapter2;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var AnimationStateData = (function () {\n function AnimationStateData(skeletonData) {\n this.animationToMixTime = {};\n this.defaultMix = 0;\n if (skeletonData == null) throw new Error('skeletonData cannot be null.');\n this.skeletonData = skeletonData;\n }\n AnimationStateData.prototype.setMix = function (fromName, toName, duration) {\n var from = this.skeletonData.findAnimation(fromName);\n if (from == null) throw new Error('Animation not found: ' + fromName);\n var to = this.skeletonData.findAnimation(toName);\n if (to == null) throw new Error('Animation not found: ' + toName);\n this.setMixWith(from, to, duration);\n };\n AnimationStateData.prototype.setMixByName = function (fromName, toName, duration) {\n if (!AnimationStateData.deprecatedWarning1) {\n AnimationStateData.deprecatedWarning1 = true;\n console.warn(\n 'Deprecation Warning: AnimationStateData.setMixByName is deprecated, please use setMix from now on.',\n );\n }\n this.setMix(fromName, toName, duration);\n };\n AnimationStateData.prototype.setMixWith = function (from, to, duration) {\n if (from == null) throw new Error('from cannot be null.');\n if (to == null) throw new Error('to cannot be null.');\n var key = from.name + '.' + to.name;\n this.animationToMixTime[key] = duration;\n };\n AnimationStateData.prototype.getMix = function (from, to) {\n var key = from.name + '.' + to.name;\n var value = this.animationToMixTime[key];\n return value === undefined ? this.defaultMix : value;\n };\n AnimationStateData.deprecatedWarning1 = false;\n return AnimationStateData;\n })();\n core.AnimationStateData = AnimationStateData;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var AtlasAttachmentLoader = (function () {\n function AtlasAttachmentLoader(atlas) {\n this.atlas = atlas;\n }\n AtlasAttachmentLoader.prototype.newRegionAttachment = function (skin, name, path) {\n var region = this.atlas.findRegion(path);\n if (region == null)\n throw new Error('Region not found in atlas: ' + path + ' (region attachment: ' + name + ')');\n var attachment = new core.RegionAttachment(name);\n attachment.region = region;\n return attachment;\n };\n AtlasAttachmentLoader.prototype.newMeshAttachment = function (skin, name, path) {\n var region = this.atlas.findRegion(path);\n if (region == null) throw new Error('Region not found in atlas: ' + path + ' (mesh attachment: ' + name + ')');\n var attachment = new core.MeshAttachment(name);\n attachment.region = region;\n return attachment;\n };\n AtlasAttachmentLoader.prototype.newBoundingBoxAttachment = function (skin, name) {\n return new core.BoundingBoxAttachment(name);\n };\n AtlasAttachmentLoader.prototype.newPathAttachment = function (skin, name) {\n return new core.PathAttachment(name);\n };\n AtlasAttachmentLoader.prototype.newPointAttachment = function (skin, name) {\n return new core.PointAttachment(name);\n };\n AtlasAttachmentLoader.prototype.newClippingAttachment = function (skin, name) {\n return new core.ClippingAttachment(name);\n };\n return AtlasAttachmentLoader;\n })();\n core.AtlasAttachmentLoader = AtlasAttachmentLoader;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var BlendMode;\n (function (BlendMode) {\n BlendMode[(BlendMode['Normal'] = 0)] = 'Normal';\n BlendMode[(BlendMode['Additive'] = 1)] = 'Additive';\n BlendMode[(BlendMode['Multiply'] = 2)] = 'Multiply';\n BlendMode[(BlendMode['Screen'] = 3)] = 'Screen';\n })((BlendMode = core.BlendMode || (core.BlendMode = {})));\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var Bone = (function () {\n function Bone(data, skeleton, parent) {\n this.matrix = new PIXI.Matrix();\n this.children = new Array();\n this.x = 0;\n this.y = 0;\n this.rotation = 0;\n this.scaleX = 0;\n this.scaleY = 0;\n this.shearX = 0;\n this.shearY = 0;\n this.ax = 0;\n this.ay = 0;\n this.arotation = 0;\n this.ascaleX = 0;\n this.ascaleY = 0;\n this.ashearX = 0;\n this.ashearY = 0;\n this.appliedValid = false;\n this.sorted = false;\n if (data == null) throw new Error('data cannot be null.');\n if (skeleton == null) throw new Error('skeleton cannot be null.');\n this.data = data;\n this.skeleton = skeleton;\n this.parent = parent;\n this.setToSetupPose();\n }\n Object.defineProperty(Bone.prototype, 'worldX', {\n get: function () {\n return this.matrix.tx;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(Bone.prototype, 'worldY', {\n get: function () {\n return this.matrix.ty;\n },\n enumerable: true,\n configurable: true,\n });\n Bone.prototype.update = function () {\n this.updateWorldTransformWith(\n this.x,\n this.y,\n this.rotation,\n this.scaleX,\n this.scaleY,\n this.shearX,\n this.shearY,\n );\n };\n Bone.prototype.updateWorldTransform = function () {\n this.updateWorldTransformWith(\n this.x,\n this.y,\n this.rotation,\n this.scaleX,\n this.scaleY,\n this.shearX,\n this.shearY,\n );\n };\n Bone.prototype.updateWorldTransformWith = function (x, y, rotation, scaleX, scaleY, shearX, shearY) {\n this.ax = x;\n this.ay = y;\n this.arotation = rotation;\n this.ascaleX = scaleX;\n this.ascaleY = scaleY;\n this.ashearX = shearX;\n this.ashearY = shearY;\n this.appliedValid = true;\n var parent = this.parent;\n var m = this.matrix;\n var sx = this.skeleton.scaleX;\n var sy = Bone.yDown ? -this.skeleton.scaleY : this.skeleton.scaleY;\n if (parent == null) {\n if (Bone.yDown) {\n rotation = -rotation;\n this.arotation = rotation;\n }\n var skeleton = this.skeleton;\n var rotationY = rotation + 90 + shearY;\n m.a = core.MathUtils.cosDeg(rotation + shearX) * scaleX * sx;\n m.c = core.MathUtils.cosDeg(rotationY) * scaleY * sy;\n m.b = core.MathUtils.sinDeg(rotation + shearX) * scaleX * sx;\n m.d = core.MathUtils.sinDeg(rotationY) * scaleY * sy;\n m.tx = x * sx + skeleton.x;\n m.ty = y * sy + skeleton.y;\n return;\n }\n var pa = parent.matrix.a,\n pb = parent.matrix.c,\n pc = parent.matrix.b,\n pd = parent.matrix.d;\n m.tx = pa * x + pb * y + parent.matrix.tx;\n m.ty = pc * x + pd * y + parent.matrix.ty;\n switch (this.data.transformMode) {\n case core.TransformMode.Normal: {\n var rotationY = rotation + 90 + shearY;\n var la = core.MathUtils.cosDeg(rotation + shearX) * scaleX;\n var lb = core.MathUtils.cosDeg(rotationY) * scaleY;\n var lc = core.MathUtils.sinDeg(rotation + shearX) * scaleX;\n var ld = core.MathUtils.sinDeg(rotationY) * scaleY;\n m.a = pa * la + pb * lc;\n m.c = pa * lb + pb * ld;\n m.b = pc * la + pd * lc;\n m.d = pc * lb + pd * ld;\n return;\n }\n case core.TransformMode.OnlyTranslation: {\n var rotationY = rotation + 90 + shearY;\n m.a = core.MathUtils.cosDeg(rotation + shearX) * scaleX;\n m.c = core.MathUtils.cosDeg(rotationY) * scaleY;\n m.b = core.MathUtils.sinDeg(rotation + shearX) * scaleX;\n m.d = core.MathUtils.sinDeg(rotationY) * scaleY;\n break;\n }\n case core.TransformMode.NoRotationOrReflection: {\n var s = pa * pa + pc * pc;\n var prx = 0;\n if (s > 0.0001) {\n s = Math.abs(pa * pd - pb * pc) / s;\n pb = pc * s;\n pd = pa * s;\n prx = Math.atan2(pc, pa) * core.MathUtils.radDeg;\n } else {\n pa = 0;\n pc = 0;\n prx = 90 - Math.atan2(pd, pb) * core.MathUtils.radDeg;\n }\n var rx = rotation + shearX - prx;\n var ry = rotation + shearY - prx + 90;\n var la = core.MathUtils.cosDeg(rx) * scaleX;\n var lb = core.MathUtils.cosDeg(ry) * scaleY;\n var lc = core.MathUtils.sinDeg(rx) * scaleX;\n var ld = core.MathUtils.sinDeg(ry) * scaleY;\n m.a = pa * la - pb * lc;\n m.c = pa * lb - pb * ld;\n m.b = pc * la + pd * lc;\n m.d = pc * lb + pd * ld;\n break;\n }\n case core.TransformMode.NoScale:\n case core.TransformMode.NoScaleOrReflection: {\n var cos = core.MathUtils.cosDeg(rotation);\n var sin = core.MathUtils.sinDeg(rotation);\n var za = (pa * cos + pb * sin) / sx;\n var zc = (pc * cos + pd * sin) / sy;\n var s = Math.sqrt(za * za + zc * zc);\n if (s > 0.00001) s = 1 / s;\n za *= s;\n zc *= s;\n s = Math.sqrt(za * za + zc * zc);\n if (\n this.data.transformMode == core.TransformMode.NoScale &&\n pa * pd - pb * pc < 0 !=\n (Bone.yDown\n ? this.skeleton.scaleX < 0 != this.skeleton.scaleY > 0\n : this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0)\n )\n s = -s;\n var r = Math.PI / 2 + Math.atan2(zc, za);\n var zb = Math.cos(r) * s;\n var zd = Math.sin(r) * s;\n var la = core.MathUtils.cosDeg(shearX) * scaleX;\n var lb = core.MathUtils.cosDeg(90 + shearY) * scaleY;\n var lc = core.MathUtils.sinDeg(shearX) * scaleX;\n var ld = core.MathUtils.sinDeg(90 + shearY) * scaleY;\n m.a = za * la + zb * lc;\n m.c = za * lb + zb * ld;\n m.b = zc * la + zd * lc;\n m.d = zc * lb + zd * ld;\n break;\n }\n }\n m.a *= sx;\n m.c *= sx;\n m.b *= sy;\n m.d *= sy;\n };\n Bone.prototype.setToSetupPose = function () {\n var data = this.data;\n this.x = data.x;\n this.y = data.y;\n this.rotation = data.rotation;\n this.scaleX = data.scaleX;\n this.scaleY = data.scaleY;\n this.shearX = data.shearX;\n this.shearY = data.shearY;\n };\n Bone.prototype.getWorldRotationX = function () {\n return Math.atan2(this.matrix.b, this.matrix.a) * core.MathUtils.radDeg;\n };\n Bone.prototype.getWorldRotationY = function () {\n return Math.atan2(this.matrix.d, this.matrix.c) * core.MathUtils.radDeg;\n };\n Bone.prototype.getWorldScaleX = function () {\n var m = this.matrix;\n return Math.sqrt(m.a * m.a + m.c * m.c);\n };\n Bone.prototype.getWorldScaleY = function () {\n var m = this.matrix;\n return Math.sqrt(m.b * m.b + m.d * m.d);\n };\n Bone.prototype.updateAppliedTransform = function () {\n this.appliedValid = true;\n var parent = this.parent;\n var m = this.matrix;\n if (parent == null) {\n this.ax = m.tx;\n this.ay = m.ty;\n this.arotation = Math.atan2(m.b, m.a) * core.MathUtils.radDeg;\n this.ascaleX = Math.sqrt(m.a * m.a + m.b * m.b);\n this.ascaleY = Math.sqrt(m.c * m.c + m.d * m.d);\n this.ashearX = 0;\n this.ashearY = Math.atan2(m.a * m.c + m.b * m.d, m.a * m.d - m.b * m.c) * core.MathUtils.radDeg;\n return;\n }\n var pm = parent.matrix;\n var pid = 1 / (pm.a * pm.d - pm.b * pm.c);\n var dx = m.tx - pm.tx,\n dy = m.ty - pm.ty;\n this.ax = dx * pm.d * pid - dy * pm.c * pid;\n this.ay = dy * pm.a * pid - dx * pm.b * pid;\n var ia = pid * pm.d;\n var id = pid * pm.a;\n var ib = pid * pm.c;\n var ic = pid * pm.b;\n var ra = ia * m.a - ib * m.b;\n var rb = ia * m.c - ib * m.d;\n var rc = id * m.b - ic * m.a;\n var rd = id * m.d - ic * m.c;\n this.ashearX = 0;\n this.ascaleX = Math.sqrt(ra * ra + rc * rc);\n if (this.ascaleX > 0.0001) {\n var det = ra * rd - rb * rc;\n this.ascaleY = det / this.ascaleX;\n this.ashearY = Math.atan2(ra * rb + rc * rd, det) * core.MathUtils.radDeg;\n this.arotation = Math.atan2(rc, ra) * core.MathUtils.radDeg;\n } else {\n this.ascaleX = 0;\n this.ascaleY = Math.sqrt(rb * rb + rd * rd);\n this.ashearY = 0;\n this.arotation = 90 - Math.atan2(rd, rb) * core.MathUtils.radDeg;\n }\n };\n Bone.prototype.worldToLocal = function (world) {\n var m = this.matrix;\n var a = m.a,\n b = m.c,\n c = m.b,\n d = m.d;\n var invDet = 1 / (a * d - b * c);\n var x = world.x - m.tx,\n y = world.y - m.ty;\n world.x = x * d * invDet - y * b * invDet;\n world.y = y * a * invDet - x * c * invDet;\n return world;\n };\n Bone.prototype.localToWorld = function (local) {\n var m = this.matrix;\n var x = local.x,\n y = local.y;\n local.x = x * m.a + y * m.c + m.tx;\n local.y = x * m.b + y * m.d + m.ty;\n return local;\n };\n Bone.prototype.worldToLocalRotation = function (worldRotation) {\n var sin = core.MathUtils.sinDeg(worldRotation),\n cos = core.MathUtils.cosDeg(worldRotation);\n var mat = this.matrix;\n return Math.atan2(mat.a * sin - mat.b * cos, mat.d * cos - mat.c * sin) * core.MathUtils.radDeg;\n };\n Bone.prototype.localToWorldRotation = function (localRotation) {\n var sin = core.MathUtils.sinDeg(localRotation),\n cos = core.MathUtils.cosDeg(localRotation);\n var mat = this.matrix;\n return Math.atan2(cos * mat.b + sin * mat.d, cos * mat.a + sin * mat.c) * core.MathUtils.radDeg;\n };\n Bone.prototype.rotateWorld = function (degrees) {\n var mat = this.matrix;\n var a = mat.a,\n b = mat.c,\n c = mat.b,\n d = mat.d;\n var cos = core.MathUtils.cosDeg(degrees),\n sin = core.MathUtils.sinDeg(degrees);\n mat.a = cos * a - sin * c;\n mat.c = cos * b - sin * d;\n mat.b = sin * a + cos * c;\n mat.d = sin * b + cos * d;\n this.appliedValid = false;\n };\n Bone.yDown = false;\n return Bone;\n })();\n core.Bone = Bone;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var BoneData = (function () {\n function BoneData(index, name, parent) {\n this.x = 0;\n this.y = 0;\n this.rotation = 0;\n this.scaleX = 1;\n this.scaleY = 1;\n this.shearX = 0;\n this.shearY = 0;\n this.transformMode = TransformMode.Normal;\n if (index < 0) throw new Error('index must be >= 0.');\n if (name == null) throw new Error('name cannot be null.');\n this.index = index;\n this.name = name;\n this.parent = parent;\n }\n return BoneData;\n })();\n core.BoneData = BoneData;\n var TransformMode;\n (function (TransformMode) {\n TransformMode[(TransformMode['Normal'] = 0)] = 'Normal';\n TransformMode[(TransformMode['OnlyTranslation'] = 1)] = 'OnlyTranslation';\n TransformMode[(TransformMode['NoRotationOrReflection'] = 2)] = 'NoRotationOrReflection';\n TransformMode[(TransformMode['NoScale'] = 3)] = 'NoScale';\n TransformMode[(TransformMode['NoScaleOrReflection'] = 4)] = 'NoScaleOrReflection';\n })((TransformMode = core.TransformMode || (core.TransformMode = {})));\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var Event = (function () {\n function Event(time, data) {\n if (data == null) throw new Error('data cannot be null.');\n this.time = time;\n this.data = data;\n }\n return Event;\n })();\n core.Event = Event;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var EventData = (function () {\n function EventData(name) {\n this.name = name;\n }\n return EventData;\n })();\n core.EventData = EventData;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var IkConstraint = (function () {\n function IkConstraint(data, skeleton) {\n this.bendDirection = 0;\n this.compress = false;\n this.stretch = false;\n this.mix = 1;\n if (data == null) throw new Error('data cannot be null.');\n if (skeleton == null) throw new Error('skeleton cannot be null.');\n this.data = data;\n this.mix = data.mix;\n this.bendDirection = data.bendDirection;\n this.compress = data.compress;\n this.stretch = data.stretch;\n this.bones = new Array();\n for (var i = 0; i < data.bones.length; i++) this.bones.push(skeleton.findBone(data.bones[i].name));\n this.target = skeleton.findBone(data.target.name);\n }\n IkConstraint.prototype.getOrder = function () {\n return this.data.order;\n };\n IkConstraint.prototype.apply = function () {\n this.update();\n };\n IkConstraint.prototype.update = function () {\n var target = this.target;\n var bones = this.bones;\n switch (bones.length) {\n case 1:\n this.apply1(\n bones[0],\n target.worldX,\n target.worldY,\n this.compress,\n this.stretch,\n this.data.uniform,\n this.mix,\n );\n break;\n case 2:\n this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.stretch, this.mix);\n break;\n }\n };\n IkConstraint.prototype.apply1 = function (bone, targetX, targetY, compress, stretch, uniform, alpha) {\n if (!bone.appliedValid) bone.updateAppliedTransform();\n var p = bone.parent.matrix;\n var id = 1 / (p.a * p.d - p.b * p.c);\n var x = targetX - p.tx,\n y = targetY - p.ty;\n var tx = (x * p.d - y * p.c) * id - bone.ax,\n ty = (y * p.a - x * p.b) * id - bone.ay;\n var rotationIK = Math.atan2(ty, tx) * core.MathUtils.radDeg - bone.ashearX - bone.arotation;\n if (bone.ascaleX < 0) rotationIK += 180;\n if (rotationIK > 180) rotationIK -= 360;\n else if (rotationIK < -180) rotationIK += 360;\n var sx = bone.ascaleX,\n sy = bone.ascaleY;\n if (compress || stretch) {\n var b = bone.data.length * sx,\n dd = Math.sqrt(tx * tx + ty * ty);\n if ((compress && dd < b) || (stretch && dd > b && b > 0.0001)) {\n var s = (dd / b - 1) * alpha + 1;\n sx *= s;\n if (uniform) sy *= s;\n }\n }\n bone.updateWorldTransformWith(\n bone.ax,\n bone.ay,\n bone.arotation + rotationIK * alpha,\n sx,\n sy,\n bone.ashearX,\n bone.ashearY,\n );\n };\n IkConstraint.prototype.apply2 = function (parent, child, targetX, targetY, bendDir, stretch, alpha) {\n if (alpha == 0) {\n child.updateWorldTransform();\n return;\n }\n if (!parent.appliedValid) parent.updateAppliedTransform();\n if (!child.appliedValid) child.updateAppliedTransform();\n var px = parent.ax,\n py = parent.ay,\n psx = parent.ascaleX,\n sx = psx,\n psy = parent.ascaleY,\n csx = child.ascaleX;\n var pmat = parent.matrix;\n var os1 = 0,\n os2 = 0,\n s2 = 0;\n if (psx < 0) {\n psx = -psx;\n os1 = 180;\n s2 = -1;\n } else {\n os1 = 0;\n s2 = 1;\n }\n if (psy < 0) {\n psy = -psy;\n s2 = -s2;\n }\n if (csx < 0) {\n csx = -csx;\n os2 = 180;\n } else os2 = 0;\n var cx = child.ax,\n cy = 0,\n cwx = 0,\n cwy = 0,\n a = pmat.a,\n b = pmat.c,\n c = pmat.b,\n d = pmat.d;\n var u = Math.abs(psx - psy) <= 0.0001;\n if (!u) {\n cy = 0;\n cwx = a * cx + pmat.tx;\n cwy = c * cx + pmat.ty;\n } else {\n cy = child.ay;\n cwx = a * cx + b * cy + pmat.tx;\n cwy = c * cx + d * cy + pmat.ty;\n }\n var pp = parent.parent.matrix;\n a = pp.a;\n b = pp.c;\n c = pp.b;\n d = pp.d;\n var id = 1 / (a * d - b * c),\n x = targetX - pp.tx,\n y = targetY - pp.ty;\n var tx = (x * d - y * b) * id - px,\n ty = (y * a - x * c) * id - py,\n dd = tx * tx + ty * ty;\n x = cwx - pp.tx;\n y = cwy - pp.ty;\n var dx = (x * d - y * b) * id - px,\n dy = (y * a - x * c) * id - py;\n var l1 = Math.sqrt(dx * dx + dy * dy),\n l2 = child.data.length * csx,\n a1 = 0,\n a2 = 0;\n outer: if (u) {\n l2 *= psx;\n var cos = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2);\n if (cos < -1) cos = -1;\n else if (cos > 1) {\n cos = 1;\n if (stretch && l1 + l2 > 0.0001) sx *= (Math.sqrt(dd) / (l1 + l2) - 1) * alpha + 1;\n }\n a2 = Math.acos(cos) * bendDir;\n a = l1 + l2 * cos;\n b = l2 * Math.sin(a2);\n a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b);\n } else {\n a = psx * l2;\n b = psy * l2;\n var aa = a * a,\n bb = b * b,\n ta = Math.atan2(ty, tx);\n c = bb * l1 * l1 + aa * dd - aa * bb;\n var c1 = -2 * bb * l1,\n c2 = bb - aa;\n d = c1 * c1 - 4 * c2 * c;\n if (d >= 0) {\n var q = Math.sqrt(d);\n if (c1 < 0) q = -q;\n q = -(c1 + q) / 2;\n var r0 = q / c2,\n r1 = c / q;\n var r = Math.abs(r0) < Math.abs(r1) ? r0 : r1;\n if (r * r <= dd) {\n y = Math.sqrt(dd - r * r) * bendDir;\n a1 = ta - Math.atan2(y, r);\n a2 = Math.atan2(y / psy, (r - l1) / psx);\n break outer;\n }\n }\n var minAngle = core.MathUtils.PI,\n minX = l1 - a,\n minDist = minX * minX,\n minY = 0;\n var maxAngle = 0,\n maxX = l1 + a,\n maxDist = maxX * maxX,\n maxY = 0;\n c = (-a * l1) / (aa - bb);\n if (c >= -1 && c <= 1) {\n c = Math.acos(c);\n x = a * Math.cos(c) + l1;\n y = b * Math.sin(c);\n d = x * x + y * y;\n if (d < minDist) {\n minAngle = c;\n minDist = d;\n minX = x;\n minY = y;\n }\n if (d > maxDist) {\n maxAngle = c;\n maxDist = d;\n maxX = x;\n maxY = y;\n }\n }\n if (dd <= (minDist + maxDist) / 2) {\n a1 = ta - Math.atan2(minY * bendDir, minX);\n a2 = minAngle * bendDir;\n } else {\n a1 = ta - Math.atan2(maxY * bendDir, maxX);\n a2 = maxAngle * bendDir;\n }\n }\n var os = Math.atan2(cy, cx) * s2;\n var rotation = parent.arotation;\n a1 = (a1 - os) * core.MathUtils.radDeg + os1 - rotation;\n if (a1 > 180) a1 -= 360;\n else if (a1 < -180) a1 += 360;\n parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, sx, parent.ascaleY, 0, 0);\n rotation = child.arotation;\n a2 = ((a2 + os) * core.MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation;\n if (a2 > 180) a2 -= 360;\n else if (a2 < -180) a2 += 360;\n child.updateWorldTransformWith(\n cx,\n cy,\n rotation + a2 * alpha,\n child.ascaleX,\n child.ascaleY,\n child.ashearX,\n child.ashearY,\n );\n };\n return IkConstraint;\n })();\n core.IkConstraint = IkConstraint;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var IkConstraintData = (function () {\n function IkConstraintData(name) {\n this.order = 0;\n this.bones = new Array();\n this.bendDirection = 1;\n this.compress = false;\n this.stretch = false;\n this.uniform = false;\n this.mix = 1;\n this.name = name;\n }\n return IkConstraintData;\n })();\n core.IkConstraintData = IkConstraintData;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var PathConstraint = (function () {\n function PathConstraint(data, skeleton) {\n this.position = 0;\n this.spacing = 0;\n this.rotateMix = 0;\n this.translateMix = 0;\n this.spaces = new Array();\n this.positions = new Array();\n this.world = new Array();\n this.curves = new Array();\n this.lengths = new Array();\n this.segments = new Array();\n if (data == null) throw new Error('data cannot be null.');\n if (skeleton == null) throw new Error('skeleton cannot be null.');\n this.data = data;\n this.bones = new Array();\n for (var i = 0, n = data.bones.length; i < n; i++) this.bones.push(skeleton.findBone(data.bones[i].name));\n this.target = skeleton.findSlot(data.target.name);\n this.position = data.position;\n this.spacing = data.spacing;\n this.rotateMix = data.rotateMix;\n this.translateMix = data.translateMix;\n }\n PathConstraint.prototype.apply = function () {\n this.update();\n };\n PathConstraint.prototype.update = function () {\n var attachment = this.target.getAttachment();\n if (!(attachment instanceof core.PathAttachment)) return;\n var rotateMix = this.rotateMix,\n translateMix = this.translateMix;\n var translate = translateMix > 0,\n rotate = rotateMix > 0;\n if (!translate && !rotate) return;\n var data = this.data;\n var spacingMode = data.spacingMode;\n var lengthSpacing = spacingMode == core.SpacingMode.Length;\n var rotateMode = data.rotateMode;\n var tangents = rotateMode == core.RotateMode.Tangent,\n scale = rotateMode == core.RotateMode.ChainScale;\n var boneCount = this.bones.length,\n spacesCount = tangents ? boneCount : boneCount + 1;\n var bones = this.bones;\n var spaces = core.Utils.setArraySize(this.spaces, spacesCount),\n lengths = null;\n var spacing = this.spacing;\n if (scale || lengthSpacing) {\n if (scale) lengths = core.Utils.setArraySize(this.lengths, boneCount);\n for (var i = 0, n = spacesCount - 1; i < n; ) {\n var bone = bones[i];\n var setupLength = bone.data.length;\n if (setupLength < PathConstraint.epsilon) {\n if (scale) lengths[i] = 0;\n spaces[++i] = 0;\n } else {\n var x = setupLength * bone.matrix.a,\n y = setupLength * bone.matrix.b;\n var length_1 = Math.sqrt(x * x + y * y);\n if (scale) lengths[i] = length_1;\n spaces[++i] = ((lengthSpacing ? setupLength + spacing : spacing) * length_1) / setupLength;\n }\n }\n } else {\n for (var i = 1; i < spacesCount; i++) spaces[i] = spacing;\n }\n var positions = this.computeWorldPositions(\n attachment,\n spacesCount,\n tangents,\n data.positionMode == core.PositionMode.Percent,\n spacingMode == core.SpacingMode.Percent,\n );\n var boneX = positions[0],\n boneY = positions[1],\n offsetRotation = data.offsetRotation;\n var tip = false;\n if (offsetRotation == 0) tip = rotateMode == core.RotateMode.Chain;\n else {\n tip = false;\n var p = this.target.bone.matrix;\n offsetRotation *= p.a * p.d - p.b * p.c > 0 ? core.MathUtils.degRad : -core.MathUtils.degRad;\n }\n for (var i = 0, p = 3; i < boneCount; i++, p += 3) {\n var bone = bones[i];\n var mat = bone.matrix;\n mat.tx += (boneX - mat.tx) * translateMix;\n mat.ty += (boneY - mat.ty) * translateMix;\n var x = positions[p],\n y = positions[p + 1],\n dx = x - boneX,\n dy = y - boneY;\n if (scale) {\n var length_2 = lengths[i];\n if (length_2 != 0) {\n var s = (Math.sqrt(dx * dx + dy * dy) / length_2 - 1) * rotateMix + 1;\n mat.a *= s;\n mat.b *= s;\n }\n }\n boneX = x;\n boneY = y;\n if (rotate) {\n var a = mat.a,\n b = mat.c,\n c = mat.b,\n d = mat.d,\n r = 0,\n cos = 0,\n sin = 0;\n if (tangents) r = positions[p - 1];\n else if (spaces[i + 1] == 0) r = positions[p + 2];\n else r = Math.atan2(dy, dx);\n r -= Math.atan2(c, a);\n if (tip) {\n cos = Math.cos(r);\n sin = Math.sin(r);\n var length_3 = bone.data.length;\n boneX += (length_3 * (cos * a - sin * c) - dx) * rotateMix;\n boneY += (length_3 * (sin * a + cos * c) - dy) * rotateMix;\n } else {\n r += offsetRotation;\n }\n if (r > core.MathUtils.PI) r -= core.MathUtils.PI2;\n else if (r < -core.MathUtils.PI) r += core.MathUtils.PI2;\n r *= rotateMix;\n cos = Math.cos(r);\n sin = Math.sin(r);\n mat.a = cos * a - sin * c;\n mat.c = cos * b - sin * d;\n mat.b = sin * a + cos * c;\n mat.d = sin * b + cos * d;\n }\n bone.appliedValid = false;\n }\n };\n PathConstraint.prototype.computeWorldPositions = function (\n path,\n spacesCount,\n tangents,\n percentPosition,\n percentSpacing,\n ) {\n var target = this.target;\n var position = this.position;\n var spaces = this.spaces,\n out = core.Utils.setArraySize(this.positions, spacesCount * 3 + 2),\n world = null;\n var closed = path.closed;\n var verticesLength = path.worldVerticesLength,\n curveCount = verticesLength / 6,\n prevCurve = PathConstraint.NONE;\n if (!path.constantSpeed) {\n var lengths = path.lengths;\n curveCount -= closed ? 1 : 2;\n var pathLength_1 = lengths[curveCount];\n if (percentPosition) position *= pathLength_1;\n if (percentSpacing) {\n for (var i = 0; i < spacesCount; i++) spaces[i] *= pathLength_1;\n }\n world = core.Utils.setArraySize(this.world, 8);\n for (var i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) {\n var space = spaces[i];\n position += space;\n var p = position;\n if (closed) {\n p %= pathLength_1;\n if (p < 0) p += pathLength_1;\n curve = 0;\n } else if (p < 0) {\n if (prevCurve != PathConstraint.BEFORE) {\n prevCurve = PathConstraint.BEFORE;\n path.computeWorldVertices(target, 2, 4, world, 0, 2);\n }\n this.addBeforePosition(p, world, 0, out, o);\n continue;\n } else if (p > pathLength_1) {\n if (prevCurve != PathConstraint.AFTER) {\n prevCurve = PathConstraint.AFTER;\n path.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2);\n }\n this.addAfterPosition(p - pathLength_1, world, 0, out, o);\n continue;\n }\n for (; ; curve++) {\n var length_4 = lengths[curve];\n if (p > length_4) continue;\n if (curve == 0) p /= length_4;\n else {\n var prev = lengths[curve - 1];\n p = (p - prev) / (length_4 - prev);\n }\n break;\n }\n if (curve != prevCurve) {\n prevCurve = curve;\n if (closed && curve == curveCount) {\n path.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2);\n path.computeWorldVertices(target, 0, 4, world, 4, 2);\n } else path.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2);\n }\n this.addCurvePosition(\n p,\n world[0],\n world[1],\n world[2],\n world[3],\n world[4],\n world[5],\n world[6],\n world[7],\n out,\n o,\n tangents || (i > 0 && space == 0),\n );\n }\n return out;\n }\n if (closed) {\n verticesLength += 2;\n world = core.Utils.setArraySize(this.world, verticesLength);\n path.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2);\n path.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2);\n world[verticesLength - 2] = world[0];\n world[verticesLength - 1] = world[1];\n } else {\n curveCount--;\n verticesLength -= 4;\n world = core.Utils.setArraySize(this.world, verticesLength);\n path.computeWorldVertices(target, 2, verticesLength, world, 0, 2);\n }\n var curves = core.Utils.setArraySize(this.curves, curveCount);\n var pathLength = 0;\n var x1 = world[0],\n y1 = world[1],\n cx1 = 0,\n cy1 = 0,\n cx2 = 0,\n cy2 = 0,\n x2 = 0,\n y2 = 0;\n var tmpx = 0,\n tmpy = 0,\n dddfx = 0,\n dddfy = 0,\n ddfx = 0,\n ddfy = 0,\n dfx = 0,\n dfy = 0;\n for (var i = 0, w = 2; i < curveCount; i++, w += 6) {\n cx1 = world[w];\n cy1 = world[w + 1];\n cx2 = world[w + 2];\n cy2 = world[w + 3];\n x2 = world[w + 4];\n y2 = world[w + 5];\n tmpx = (x1 - cx1 * 2 + cx2) * 0.1875;\n tmpy = (y1 - cy1 * 2 + cy2) * 0.1875;\n dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375;\n dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375;\n ddfx = tmpx * 2 + dddfx;\n ddfy = tmpy * 2 + dddfy;\n dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667;\n dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667;\n pathLength += Math.sqrt(dfx * dfx + dfy * dfy);\n dfx += ddfx;\n dfy += ddfy;\n ddfx += dddfx;\n ddfy += dddfy;\n pathLength += Math.sqrt(dfx * dfx + dfy * dfy);\n dfx += ddfx;\n dfy += ddfy;\n pathLength += Math.sqrt(dfx * dfx + dfy * dfy);\n dfx += ddfx + dddfx;\n dfy += ddfy + dddfy;\n pathLength += Math.sqrt(dfx * dfx + dfy * dfy);\n curves[i] = pathLength;\n x1 = x2;\n y1 = y2;\n }\n if (percentPosition) position *= pathLength;\n if (percentSpacing) {\n for (var i = 0; i < spacesCount; i++) spaces[i] *= pathLength;\n }\n var segments = this.segments;\n var curveLength = 0;\n for (var i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) {\n var space = spaces[i];\n position += space;\n var p = position;\n if (closed) {\n p %= pathLength;\n if (p < 0) p += pathLength;\n curve = 0;\n } else if (p < 0) {\n this.addBeforePosition(p, world, 0, out, o);\n continue;\n } else if (p > pathLength) {\n this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o);\n continue;\n }\n for (; ; curve++) {\n var length_5 = curves[curve];\n if (p > length_5) continue;\n if (curve == 0) p /= length_5;\n else {\n var prev = curves[curve - 1];\n p = (p - prev) / (length_5 - prev);\n }\n break;\n }\n if (curve != prevCurve) {\n prevCurve = curve;\n var ii = curve * 6;\n x1 = world[ii];\n y1 = world[ii + 1];\n cx1 = world[ii + 2];\n cy1 = world[ii + 3];\n cx2 = world[ii + 4];\n cy2 = world[ii + 5];\n x2 = world[ii + 6];\n y2 = world[ii + 7];\n tmpx = (x1 - cx1 * 2 + cx2) * 0.03;\n tmpy = (y1 - cy1 * 2 + cy2) * 0.03;\n dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.006;\n dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.006;\n ddfx = tmpx * 2 + dddfx;\n ddfy = tmpy * 2 + dddfy;\n dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667;\n dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667;\n curveLength = Math.sqrt(dfx * dfx + dfy * dfy);\n segments[0] = curveLength;\n for (ii = 1; ii < 8; ii++) {\n dfx += ddfx;\n dfy += ddfy;\n ddfx += dddfx;\n ddfy += dddfy;\n curveLength += Math.sqrt(dfx * dfx + dfy * dfy);\n segments[ii] = curveLength;\n }\n dfx += ddfx;\n dfy += ddfy;\n curveLength += Math.sqrt(dfx * dfx + dfy * dfy);\n segments[8] = curveLength;\n dfx += ddfx + dddfx;\n dfy += ddfy + dddfy;\n curveLength += Math.sqrt(dfx * dfx + dfy * dfy);\n segments[9] = curveLength;\n segment = 0;\n }\n p *= curveLength;\n for (; ; segment++) {\n var length_6 = segments[segment];\n if (p > length_6) continue;\n if (segment == 0) p /= length_6;\n else {\n var prev = segments[segment - 1];\n p = segment + (p - prev) / (length_6 - prev);\n }\n break;\n }\n this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || (i > 0 && space == 0));\n }\n return out;\n };\n PathConstraint.prototype.addBeforePosition = function (p, temp, i, out, o) {\n var x1 = temp[i],\n y1 = temp[i + 1],\n dx = temp[i + 2] - x1,\n dy = temp[i + 3] - y1,\n r = Math.atan2(dy, dx);\n out[o] = x1 + p * Math.cos(r);\n out[o + 1] = y1 + p * Math.sin(r);\n out[o + 2] = r;\n };\n PathConstraint.prototype.addAfterPosition = function (p, temp, i, out, o) {\n var x1 = temp[i + 2],\n y1 = temp[i + 3],\n dx = x1 - temp[i],\n dy = y1 - temp[i + 1],\n r = Math.atan2(dy, dx);\n out[o] = x1 + p * Math.cos(r);\n out[o + 1] = y1 + p * Math.sin(r);\n out[o + 2] = r;\n };\n PathConstraint.prototype.addCurvePosition = function (p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) {\n if (p == 0 || isNaN(p)) p = 0.0001;\n var tt = p * p,\n ttt = tt * p,\n u = 1 - p,\n uu = u * u,\n uuu = uu * u;\n var ut = u * p,\n ut3 = ut * 3,\n uut3 = u * ut3,\n utt3 = ut3 * p;\n var x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt,\n y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt;\n out[o] = x;\n out[o + 1] = y;\n if (tangents)\n out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt));\n };\n PathConstraint.prototype.getOrder = function () {\n return this.data.order;\n };\n PathConstraint.NONE = -1;\n PathConstraint.BEFORE = -2;\n PathConstraint.AFTER = -3;\n PathConstraint.epsilon = 0.00001;\n return PathConstraint;\n })();\n core.PathConstraint = PathConstraint;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var PathConstraintData = (function () {\n function PathConstraintData(name) {\n this.order = 0;\n this.bones = new Array();\n this.name = name;\n }\n return PathConstraintData;\n })();\n core.PathConstraintData = PathConstraintData;\n var PositionMode;\n (function (PositionMode) {\n PositionMode[(PositionMode['Fixed'] = 0)] = 'Fixed';\n PositionMode[(PositionMode['Percent'] = 1)] = 'Percent';\n })((PositionMode = core.PositionMode || (core.PositionMode = {})));\n var SpacingMode;\n (function (SpacingMode) {\n SpacingMode[(SpacingMode['Length'] = 0)] = 'Length';\n SpacingMode[(SpacingMode['Fixed'] = 1)] = 'Fixed';\n SpacingMode[(SpacingMode['Percent'] = 2)] = 'Percent';\n })((SpacingMode = core.SpacingMode || (core.SpacingMode = {})));\n var RotateMode;\n (function (RotateMode) {\n RotateMode[(RotateMode['Tangent'] = 0)] = 'Tangent';\n RotateMode[(RotateMode['Chain'] = 1)] = 'Chain';\n RotateMode[(RotateMode['ChainScale'] = 2)] = 'ChainScale';\n })((RotateMode = core.RotateMode || (core.RotateMode = {})));\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var Skeleton = (function () {\n function Skeleton(data) {\n this._updateCache = new Array();\n this.updateCacheReset = new Array();\n this.time = 0;\n this.scaleX = 1;\n this.scaleY = 1;\n this.x = 0;\n this.y = 0;\n if (data == null) throw new Error('data cannot be null.');\n this.data = data;\n this.bones = new Array();\n for (var i = 0; i < data.bones.length; i++) {\n var boneData = data.bones[i];\n var bone = void 0;\n if (boneData.parent == null) bone = new core.Bone(boneData, this, null);\n else {\n var parent_1 = this.bones[boneData.parent.index];\n bone = new core.Bone(boneData, this, parent_1);\n parent_1.children.push(bone);\n }\n this.bones.push(bone);\n }\n this.slots = new Array();\n this.drawOrder = new Array();\n for (var i = 0; i < data.slots.length; i++) {\n var slotData = data.slots[i];\n var bone = this.bones[slotData.boneData.index];\n var slot = new core.Slot(slotData, bone);\n this.slots.push(slot);\n this.drawOrder.push(slot);\n }\n this.ikConstraints = new Array();\n for (var i = 0; i < data.ikConstraints.length; i++) {\n var ikConstraintData = data.ikConstraints[i];\n this.ikConstraints.push(new core.IkConstraint(ikConstraintData, this));\n }\n this.transformConstraints = new Array();\n for (var i = 0; i < data.transformConstraints.length; i++) {\n var transformConstraintData = data.transformConstraints[i];\n this.transformConstraints.push(new core.TransformConstraint(transformConstraintData, this));\n }\n this.pathConstraints = new Array();\n for (var i = 0; i < data.pathConstraints.length; i++) {\n var pathConstraintData = data.pathConstraints[i];\n this.pathConstraints.push(new core.PathConstraint(pathConstraintData, this));\n }\n this.color = new core.Color(1, 1, 1, 1);\n this.updateCache();\n }\n Skeleton.prototype.updateCache = function () {\n var updateCache = this._updateCache;\n updateCache.length = 0;\n this.updateCacheReset.length = 0;\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) bones[i].sorted = false;\n var ikConstraints = this.ikConstraints;\n var transformConstraints = this.transformConstraints;\n var pathConstraints = this.pathConstraints;\n var ikCount = ikConstraints.length,\n transformCount = transformConstraints.length,\n pathCount = pathConstraints.length;\n var constraintCount = ikCount + transformCount + pathCount;\n outer: for (var i = 0; i < constraintCount; i++) {\n for (var ii = 0; ii < ikCount; ii++) {\n var constraint = ikConstraints[ii];\n if (constraint.data.order == i) {\n this.sortIkConstraint(constraint);\n continue outer;\n }\n }\n for (var ii = 0; ii < transformCount; ii++) {\n var constraint = transformConstraints[ii];\n if (constraint.data.order == i) {\n this.sortTransformConstraint(constraint);\n continue outer;\n }\n }\n for (var ii = 0; ii < pathCount; ii++) {\n var constraint = pathConstraints[ii];\n if (constraint.data.order == i) {\n this.sortPathConstraint(constraint);\n continue outer;\n }\n }\n }\n for (var i = 0, n = bones.length; i < n; i++) this.sortBone(bones[i]);\n };\n Skeleton.prototype.sortIkConstraint = function (constraint) {\n var target = constraint.target;\n this.sortBone(target);\n var constrained = constraint.bones;\n var parent = constrained[0];\n this.sortBone(parent);\n if (constrained.length > 1) {\n var child = constrained[constrained.length - 1];\n if (!(this._updateCache.indexOf(child) > -1)) this.updateCacheReset.push(child);\n }\n this._updateCache.push(constraint);\n this.sortReset(parent.children);\n constrained[constrained.length - 1].sorted = true;\n };\n Skeleton.prototype.sortPathConstraint = function (constraint) {\n var slot = constraint.target;\n var slotIndex = slot.data.index;\n var slotBone = slot.bone;\n if (this.skin != null) this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone);\n if (this.data.defaultSkin != null && this.data.defaultSkin != this.skin)\n this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone);\n for (var i = 0, n = this.data.skins.length; i < n; i++)\n this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone);\n var attachment = slot.getAttachment();\n if (attachment instanceof core.PathAttachment) this.sortPathConstraintAttachmentWith(attachment, slotBone);\n var constrained = constraint.bones;\n var boneCount = constrained.length;\n for (var i = 0; i < boneCount; i++) this.sortBone(constrained[i]);\n this._updateCache.push(constraint);\n for (var i = 0; i < boneCount; i++) this.sortReset(constrained[i].children);\n for (var i = 0; i < boneCount; i++) constrained[i].sorted = true;\n };\n Skeleton.prototype.sortTransformConstraint = function (constraint) {\n this.sortBone(constraint.target);\n var constrained = constraint.bones;\n var boneCount = constrained.length;\n if (constraint.data.local) {\n for (var i = 0; i < boneCount; i++) {\n var child = constrained[i];\n this.sortBone(child.parent);\n if (!(this._updateCache.indexOf(child) > -1)) this.updateCacheReset.push(child);\n }\n } else {\n for (var i = 0; i < boneCount; i++) {\n this.sortBone(constrained[i]);\n }\n }\n this._updateCache.push(constraint);\n for (var ii = 0; ii < boneCount; ii++) this.sortReset(constrained[ii].children);\n for (var ii = 0; ii < boneCount; ii++) constrained[ii].sorted = true;\n };\n Skeleton.prototype.sortPathConstraintAttachment = function (skin, slotIndex, slotBone) {\n var attachments = skin.attachments[slotIndex];\n if (!attachments) return;\n for (var key in attachments) {\n this.sortPathConstraintAttachmentWith(attachments[key], slotBone);\n }\n };\n Skeleton.prototype.sortPathConstraintAttachmentWith = function (attachment, slotBone) {\n if (!(attachment instanceof core.PathAttachment)) return;\n var pathBones = attachment.bones;\n if (pathBones == null) this.sortBone(slotBone);\n else {\n var bones = this.bones;\n var i = 0;\n while (i < pathBones.length) {\n var boneCount = pathBones[i++];\n for (var n = i + boneCount; i < n; i++) {\n var boneIndex = pathBones[i];\n this.sortBone(bones[boneIndex]);\n }\n }\n }\n };\n Skeleton.prototype.sortBone = function (bone) {\n if (bone.sorted) return;\n var parent = bone.parent;\n if (parent != null) this.sortBone(parent);\n bone.sorted = true;\n this._updateCache.push(bone);\n };\n Skeleton.prototype.sortReset = function (bones) {\n for (var i = 0, n = bones.length; i < n; i++) {\n var bone = bones[i];\n if (bone.sorted) this.sortReset(bone.children);\n bone.sorted = false;\n }\n };\n Skeleton.prototype.updateWorldTransform = function () {\n var updateCacheReset = this.updateCacheReset;\n for (var i = 0, n = updateCacheReset.length; i < n; i++) {\n var bone = updateCacheReset[i];\n bone.ax = bone.x;\n bone.ay = bone.y;\n bone.arotation = bone.rotation;\n bone.ascaleX = bone.scaleX;\n bone.ascaleY = bone.scaleY;\n bone.ashearX = bone.shearX;\n bone.ashearY = bone.shearY;\n bone.appliedValid = true;\n }\n var updateCache = this._updateCache;\n for (var i = 0, n = updateCache.length; i < n; i++) updateCache[i].update();\n };\n Skeleton.prototype.setToSetupPose = function () {\n this.setBonesToSetupPose();\n this.setSlotsToSetupPose();\n };\n Skeleton.prototype.setBonesToSetupPose = function () {\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) bones[i].setToSetupPose();\n var ikConstraints = this.ikConstraints;\n for (var i = 0, n = ikConstraints.length; i < n; i++) {\n var constraint = ikConstraints[i];\n constraint.bendDirection = constraint.data.bendDirection;\n constraint.mix = constraint.data.mix;\n }\n var transformConstraints = this.transformConstraints;\n for (var i = 0, n = transformConstraints.length; i < n; i++) {\n var constraint = transformConstraints[i];\n var data = constraint.data;\n constraint.rotateMix = data.rotateMix;\n constraint.translateMix = data.translateMix;\n constraint.scaleMix = data.scaleMix;\n constraint.shearMix = data.shearMix;\n }\n var pathConstraints = this.pathConstraints;\n for (var i = 0, n = pathConstraints.length; i < n; i++) {\n var constraint = pathConstraints[i];\n var data = constraint.data;\n constraint.position = data.position;\n constraint.spacing = data.spacing;\n constraint.rotateMix = data.rotateMix;\n constraint.translateMix = data.translateMix;\n }\n };\n Skeleton.prototype.setSlotsToSetupPose = function () {\n var slots = this.slots;\n core.Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length);\n for (var i = 0, n = slots.length; i < n; i++) slots[i].setToSetupPose();\n };\n Skeleton.prototype.getRootBone = function () {\n if (this.bones.length == 0) return null;\n return this.bones[0];\n };\n Skeleton.prototype.findBone = function (boneName) {\n if (boneName == null) throw new Error('boneName cannot be null.');\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) {\n var bone = bones[i];\n if (bone.data.name == boneName) return bone;\n }\n return null;\n };\n Skeleton.prototype.findBoneIndex = function (boneName) {\n if (boneName == null) throw new Error('boneName cannot be null.');\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) if (bones[i].data.name == boneName) return i;\n return -1;\n };\n Skeleton.prototype.findSlot = function (slotName) {\n if (slotName == null) throw new Error('slotName cannot be null.');\n var slots = this.slots;\n for (var i = 0, n = slots.length; i < n; i++) {\n var slot = slots[i];\n if (slot.data.name == slotName) return slot;\n }\n return null;\n };\n Skeleton.prototype.findSlotIndex = function (slotName) {\n if (slotName == null) throw new Error('slotName cannot be null.');\n var slots = this.slots;\n for (var i = 0, n = slots.length; i < n; i++) if (slots[i].data.name == slotName) return i;\n return -1;\n };\n Skeleton.prototype.setSkinByName = function (skinName) {\n var skin = this.data.findSkin(skinName);\n if (skin == null) throw new Error('Skin not found: ' + skinName);\n this.setSkin(skin);\n };\n Skeleton.prototype.setSkin = function (newSkin) {\n if (newSkin != null) {\n if (this.skin != null) newSkin.attachAll(this, this.skin);\n else {\n var slots = this.slots;\n for (var i = 0, n = slots.length; i < n; i++) {\n var slot = slots[i];\n var name_1 = slot.data.attachmentName;\n if (name_1 != null) {\n var attachment = newSkin.getAttachment(i, name_1);\n if (attachment != null) slot.setAttachment(attachment);\n }\n }\n }\n }\n this.skin = newSkin;\n };\n Skeleton.prototype.getAttachmentByName = function (slotName, attachmentName) {\n return this.getAttachment(this.data.findSlotIndex(slotName), attachmentName);\n };\n Skeleton.prototype.getAttachment = function (slotIndex, attachmentName) {\n if (attachmentName == null) throw new Error('attachmentName cannot be null.');\n if (this.skin != null) {\n var attachment = this.skin.getAttachment(slotIndex, attachmentName);\n if (attachment != null) return attachment;\n }\n if (this.data.defaultSkin != null) return this.data.defaultSkin.getAttachment(slotIndex, attachmentName);\n return null;\n };\n Skeleton.prototype.setAttachment = function (slotName, attachmentName) {\n if (slotName == null) throw new Error('slotName cannot be null.');\n var slots = this.slots;\n for (var i = 0, n = slots.length; i < n; i++) {\n var slot = slots[i];\n if (slot.data.name == slotName) {\n var attachment = null;\n if (attachmentName != null) {\n attachment = this.getAttachment(i, attachmentName);\n if (attachment == null)\n throw new Error('Attachment not found: ' + attachmentName + ', for slot: ' + slotName);\n }\n slot.setAttachment(attachment);\n return;\n }\n }\n throw new Error('Slot not found: ' + slotName);\n };\n Skeleton.prototype.findIkConstraint = function (constraintName) {\n if (constraintName == null) throw new Error('constraintName cannot be null.');\n var ikConstraints = this.ikConstraints;\n for (var i = 0, n = ikConstraints.length; i < n; i++) {\n var ikConstraint = ikConstraints[i];\n if (ikConstraint.data.name == constraintName) return ikConstraint;\n }\n return null;\n };\n Skeleton.prototype.findTransformConstraint = function (constraintName) {\n if (constraintName == null) throw new Error('constraintName cannot be null.');\n var transformConstraints = this.transformConstraints;\n for (var i = 0, n = transformConstraints.length; i < n; i++) {\n var constraint = transformConstraints[i];\n if (constraint.data.name == constraintName) return constraint;\n }\n return null;\n };\n Skeleton.prototype.findPathConstraint = function (constraintName) {\n if (constraintName == null) throw new Error('constraintName cannot be null.');\n var pathConstraints = this.pathConstraints;\n for (var i = 0, n = pathConstraints.length; i < n; i++) {\n var constraint = pathConstraints[i];\n if (constraint.data.name == constraintName) return constraint;\n }\n return null;\n };\n Skeleton.prototype.getBounds = function (offset, size, temp) {\n if (offset == null) throw new Error('offset cannot be null.');\n if (size == null) throw new Error('size cannot be null.');\n var drawOrder = this.drawOrder;\n var minX = Number.POSITIVE_INFINITY,\n minY = Number.POSITIVE_INFINITY,\n maxX = Number.NEGATIVE_INFINITY,\n maxY = Number.NEGATIVE_INFINITY;\n for (var i = 0, n = drawOrder.length; i < n; i++) {\n var slot = drawOrder[i];\n var verticesLength = 0;\n var vertices = null;\n var attachment = slot.getAttachment();\n if (attachment instanceof core.RegionAttachment) {\n verticesLength = 8;\n vertices = core.Utils.setArraySize(temp, verticesLength, 0);\n attachment.computeWorldVertices(slot.bone, vertices, 0, 2);\n } else if (attachment instanceof core.MeshAttachment) {\n var mesh = attachment;\n verticesLength = mesh.worldVerticesLength;\n vertices = core.Utils.setArraySize(temp, verticesLength, 0);\n mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2);\n }\n if (vertices != null) {\n for (var ii = 0, nn = vertices.length; ii < nn; ii += 2) {\n var x = vertices[ii],\n y = vertices[ii + 1];\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n }\n }\n }\n offset.set(minX, minY);\n size.set(maxX - minX, maxY - minY);\n };\n Skeleton.prototype.update = function (delta) {\n this.time += delta;\n };\n Object.defineProperty(Skeleton.prototype, 'flipX', {\n get: function () {\n return this.scaleX == -1;\n },\n set: function (value) {\n if (!Skeleton.deprecatedWarning1) {\n Skeleton.deprecatedWarning1 = true;\n console.warn('Spine Deprecation Warning: `Skeleton.flipX/flipY` was deprecated, please use scaleX/scaleY');\n }\n this.scaleX = value ? 1.0 : -1.0;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(Skeleton.prototype, 'flipY', {\n get: function () {\n return this.scaleY == -1;\n },\n set: function (value) {\n if (!Skeleton.deprecatedWarning1) {\n Skeleton.deprecatedWarning1 = true;\n console.warn('Spine Deprecation Warning: `Skeleton.flipX/flipY` was deprecated, please use scaleX/scaleY');\n }\n this.scaleY = value ? 1.0 : -1.0;\n },\n enumerable: true,\n configurable: true,\n });\n Skeleton.deprecatedWarning1 = false;\n return Skeleton;\n })();\n core.Skeleton = Skeleton;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var SkeletonBounds = (function () {\n function SkeletonBounds() {\n this.minX = 0;\n this.minY = 0;\n this.maxX = 0;\n this.maxY = 0;\n this.boundingBoxes = new Array();\n this.polygons = new Array();\n this.polygonPool = new core.Pool(function () {\n return core.Utils.newFloatArray(16);\n });\n }\n SkeletonBounds.prototype.update = function (skeleton, updateAabb) {\n if (skeleton == null) throw new Error('skeleton cannot be null.');\n var boundingBoxes = this.boundingBoxes;\n var polygons = this.polygons;\n var polygonPool = this.polygonPool;\n var slots = skeleton.slots;\n var slotCount = slots.length;\n boundingBoxes.length = 0;\n polygonPool.freeAll(polygons);\n polygons.length = 0;\n for (var i = 0; i < slotCount; i++) {\n var slot = slots[i];\n var attachment = slot.getAttachment();\n if (attachment instanceof core.BoundingBoxAttachment) {\n var boundingBox = attachment;\n boundingBoxes.push(boundingBox);\n var polygon = polygonPool.obtain();\n if (polygon.length != boundingBox.worldVerticesLength) {\n polygon = core.Utils.newFloatArray(boundingBox.worldVerticesLength);\n }\n polygons.push(polygon);\n boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2);\n }\n }\n if (updateAabb) {\n this.aabbCompute();\n } else {\n this.minX = Number.POSITIVE_INFINITY;\n this.minY = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.maxY = Number.NEGATIVE_INFINITY;\n }\n };\n SkeletonBounds.prototype.aabbCompute = function () {\n var minX = Number.POSITIVE_INFINITY,\n minY = Number.POSITIVE_INFINITY,\n maxX = Number.NEGATIVE_INFINITY,\n maxY = Number.NEGATIVE_INFINITY;\n var polygons = this.polygons;\n for (var i = 0, n = polygons.length; i < n; i++) {\n var polygon = polygons[i];\n var vertices = polygon;\n for (var ii = 0, nn = polygon.length; ii < nn; ii += 2) {\n var x = vertices[ii];\n var y = vertices[ii + 1];\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n }\n }\n this.minX = minX;\n this.minY = minY;\n this.maxX = maxX;\n this.maxY = maxY;\n };\n SkeletonBounds.prototype.aabbContainsPoint = function (x, y) {\n return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY;\n };\n SkeletonBounds.prototype.aabbIntersectsSegment = function (x1, y1, x2, y2) {\n var minX = this.minX;\n var minY = this.minY;\n var maxX = this.maxX;\n var maxY = this.maxY;\n if (\n (x1 <= minX && x2 <= minX) ||\n (y1 <= minY && y2 <= minY) ||\n (x1 >= maxX && x2 >= maxX) ||\n (y1 >= maxY && y2 >= maxY)\n )\n return false;\n var m = (y2 - y1) / (x2 - x1);\n var y = m * (minX - x1) + y1;\n if (y > minY && y < maxY) return true;\n y = m * (maxX - x1) + y1;\n if (y > minY && y < maxY) return true;\n var x = (minY - y1) / m + x1;\n if (x > minX && x < maxX) return true;\n x = (maxY - y1) / m + x1;\n if (x > minX && x < maxX) return true;\n return false;\n };\n SkeletonBounds.prototype.aabbIntersectsSkeleton = function (bounds) {\n return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY;\n };\n SkeletonBounds.prototype.containsPoint = function (x, y) {\n var polygons = this.polygons;\n for (var i = 0, n = polygons.length; i < n; i++)\n if (this.containsPointPolygon(polygons[i], x, y)) return this.boundingBoxes[i];\n return null;\n };\n SkeletonBounds.prototype.containsPointPolygon = function (polygon, x, y) {\n var vertices = polygon;\n var nn = polygon.length;\n var prevIndex = nn - 2;\n var inside = false;\n for (var ii = 0; ii < nn; ii += 2) {\n var vertexY = vertices[ii + 1];\n var prevY = vertices[prevIndex + 1];\n if ((vertexY < y && prevY >= y) || (prevY < y && vertexY >= y)) {\n var vertexX = vertices[ii];\n if (vertexX + ((y - vertexY) / (prevY - vertexY)) * (vertices[prevIndex] - vertexX) < x) inside = !inside;\n }\n prevIndex = ii;\n }\n return inside;\n };\n SkeletonBounds.prototype.intersectsSegment = function (x1, y1, x2, y2) {\n var polygons = this.polygons;\n for (var i = 0, n = polygons.length; i < n; i++)\n if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) return this.boundingBoxes[i];\n return null;\n };\n SkeletonBounds.prototype.intersectsSegmentPolygon = function (polygon, x1, y1, x2, y2) {\n var vertices = polygon;\n var nn = polygon.length;\n var width12 = x1 - x2,\n height12 = y1 - y2;\n var det1 = x1 * y2 - y1 * x2;\n var x3 = vertices[nn - 2],\n y3 = vertices[nn - 1];\n for (var ii = 0; ii < nn; ii += 2) {\n var x4 = vertices[ii],\n y4 = vertices[ii + 1];\n var det2 = x3 * y4 - y3 * x4;\n var width34 = x3 - x4,\n height34 = y3 - y4;\n var det3 = width12 * height34 - height12 * width34;\n var x = (det1 * width34 - width12 * det2) / det3;\n if (((x >= x3 && x <= x4) || (x >= x4 && x <= x3)) && ((x >= x1 && x <= x2) || (x >= x2 && x <= x1))) {\n var y = (det1 * height34 - height12 * det2) / det3;\n if (((y >= y3 && y <= y4) || (y >= y4 && y <= y3)) && ((y >= y1 && y <= y2) || (y >= y2 && y <= y1)))\n return true;\n }\n x3 = x4;\n y3 = y4;\n }\n return false;\n };\n SkeletonBounds.prototype.getPolygon = function (boundingBox) {\n if (boundingBox == null) throw new Error('boundingBox cannot be null.');\n var index = this.boundingBoxes.indexOf(boundingBox);\n return index == -1 ? null : this.polygons[index];\n };\n SkeletonBounds.prototype.getWidth = function () {\n return this.maxX - this.minX;\n };\n SkeletonBounds.prototype.getHeight = function () {\n return this.maxY - this.minY;\n };\n return SkeletonBounds;\n })();\n core.SkeletonBounds = SkeletonBounds;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var SkeletonClipping = (function () {\n function SkeletonClipping() {\n this.triangulator = new core.Triangulator();\n this.clippingPolygon = new Array();\n this.clipOutput = new Array();\n this.clippedVertices = new Array();\n this.clippedTriangles = new Array();\n this.scratch = new Array();\n }\n SkeletonClipping.prototype.clipStart = function (slot, clip) {\n if (this.clipAttachment != null) return 0;\n this.clipAttachment = clip;\n var n = clip.worldVerticesLength;\n var vertices = core.Utils.setArraySize(this.clippingPolygon, n);\n clip.computeWorldVertices(slot, 0, n, vertices, 0, 2);\n var clippingPolygon = this.clippingPolygon;\n SkeletonClipping.makeClockwise(clippingPolygon);\n var clippingPolygons = (this.clippingPolygons = this.triangulator.decompose(\n clippingPolygon,\n this.triangulator.triangulate(clippingPolygon),\n ));\n for (var i = 0, n_1 = clippingPolygons.length; i < n_1; i++) {\n var polygon = clippingPolygons[i];\n SkeletonClipping.makeClockwise(polygon);\n polygon.push(polygon[0]);\n polygon.push(polygon[1]);\n }\n return clippingPolygons.length;\n };\n SkeletonClipping.prototype.clipEndWithSlot = function (slot) {\n if (this.clipAttachment != null && this.clipAttachment.endSlot == slot.data) this.clipEnd();\n };\n SkeletonClipping.prototype.clipEnd = function () {\n if (this.clipAttachment == null) return;\n this.clipAttachment = null;\n this.clippingPolygons = null;\n this.clippedVertices.length = 0;\n this.clippedTriangles.length = 0;\n this.clippingPolygon.length = 0;\n };\n SkeletonClipping.prototype.isClipping = function () {\n return this.clipAttachment != null;\n };\n SkeletonClipping.prototype.clipTriangles = function (\n vertices,\n verticesLength,\n triangles,\n trianglesLength,\n uvs,\n light,\n dark,\n twoColor,\n ) {\n var clipOutput = this.clipOutput,\n clippedVertices = this.clippedVertices;\n var clippedTriangles = this.clippedTriangles;\n var polygons = this.clippingPolygons;\n var polygonsCount = this.clippingPolygons.length;\n var vertexSize = twoColor ? 12 : 8;\n var index = 0;\n clippedVertices.length = 0;\n clippedTriangles.length = 0;\n outer: for (var i = 0; i < trianglesLength; i += 3) {\n var vertexOffset = triangles[i] << 1;\n var x1 = vertices[vertexOffset],\n y1 = vertices[vertexOffset + 1];\n var u1 = uvs[vertexOffset],\n v1 = uvs[vertexOffset + 1];\n vertexOffset = triangles[i + 1] << 1;\n var x2 = vertices[vertexOffset],\n y2 = vertices[vertexOffset + 1];\n var u2 = uvs[vertexOffset],\n v2 = uvs[vertexOffset + 1];\n vertexOffset = triangles[i + 2] << 1;\n var x3 = vertices[vertexOffset],\n y3 = vertices[vertexOffset + 1];\n var u3 = uvs[vertexOffset],\n v3 = uvs[vertexOffset + 1];\n for (var p = 0; p < polygonsCount; p++) {\n var s = clippedVertices.length;\n if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) {\n var clipOutputLength = clipOutput.length;\n if (clipOutputLength == 0) continue;\n var d0 = y2 - y3,\n d1 = x3 - x2,\n d2 = x1 - x3,\n d4 = y3 - y1;\n var d = 1 / (d0 * d2 + d1 * (y1 - y3));\n var clipOutputCount = clipOutputLength >> 1;\n var clipOutputItems = this.clipOutput;\n var clippedVerticesItems = core.Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize);\n for (var ii = 0; ii < clipOutputLength; ii += 2) {\n var x = clipOutputItems[ii],\n y = clipOutputItems[ii + 1];\n clippedVerticesItems[s] = x;\n clippedVerticesItems[s + 1] = y;\n clippedVerticesItems[s + 2] = light.r;\n clippedVerticesItems[s + 3] = light.g;\n clippedVerticesItems[s + 4] = light.b;\n clippedVerticesItems[s + 5] = light.a;\n var c0 = x - x3,\n c1 = y - y3;\n var a = (d0 * c0 + d1 * c1) * d;\n var b = (d4 * c0 + d2 * c1) * d;\n var c = 1 - a - b;\n clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c;\n clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c;\n if (twoColor) {\n clippedVerticesItems[s + 8] = dark.r;\n clippedVerticesItems[s + 9] = dark.g;\n clippedVerticesItems[s + 10] = dark.b;\n clippedVerticesItems[s + 11] = dark.a;\n }\n s += vertexSize;\n }\n s = clippedTriangles.length;\n var clippedTrianglesItems = core.Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2));\n clipOutputCount--;\n for (var ii = 1; ii < clipOutputCount; ii++) {\n clippedTrianglesItems[s] = index;\n clippedTrianglesItems[s + 1] = index + ii;\n clippedTrianglesItems[s + 2] = index + ii + 1;\n s += 3;\n }\n index += clipOutputCount + 1;\n } else {\n var clippedVerticesItems = core.Utils.setArraySize(clippedVertices, s + 3 * vertexSize);\n clippedVerticesItems[s] = x1;\n clippedVerticesItems[s + 1] = y1;\n clippedVerticesItems[s + 2] = light.r;\n clippedVerticesItems[s + 3] = light.g;\n clippedVerticesItems[s + 4] = light.b;\n clippedVerticesItems[s + 5] = light.a;\n if (!twoColor) {\n clippedVerticesItems[s + 6] = u1;\n clippedVerticesItems[s + 7] = v1;\n clippedVerticesItems[s + 8] = x2;\n clippedVerticesItems[s + 9] = y2;\n clippedVerticesItems[s + 10] = light.r;\n clippedVerticesItems[s + 11] = light.g;\n clippedVerticesItems[s + 12] = light.b;\n clippedVerticesItems[s + 13] = light.a;\n clippedVerticesItems[s + 14] = u2;\n clippedVerticesItems[s + 15] = v2;\n clippedVerticesItems[s + 16] = x3;\n clippedVerticesItems[s + 17] = y3;\n clippedVerticesItems[s + 18] = light.r;\n clippedVerticesItems[s + 19] = light.g;\n clippedVerticesItems[s + 20] = light.b;\n clippedVerticesItems[s + 21] = light.a;\n clippedVerticesItems[s + 22] = u3;\n clippedVerticesItems[s + 23] = v3;\n } else {\n clippedVerticesItems[s + 6] = u1;\n clippedVerticesItems[s + 7] = v1;\n clippedVerticesItems[s + 8] = dark.r;\n clippedVerticesItems[s + 9] = dark.g;\n clippedVerticesItems[s + 10] = dark.b;\n clippedVerticesItems[s + 11] = dark.a;\n clippedVerticesItems[s + 12] = x2;\n clippedVerticesItems[s + 13] = y2;\n clippedVerticesItems[s + 14] = light.r;\n clippedVerticesItems[s + 15] = light.g;\n clippedVerticesItems[s + 16] = light.b;\n clippedVerticesItems[s + 17] = light.a;\n clippedVerticesItems[s + 18] = u2;\n clippedVerticesItems[s + 19] = v2;\n clippedVerticesItems[s + 20] = dark.r;\n clippedVerticesItems[s + 21] = dark.g;\n clippedVerticesItems[s + 22] = dark.b;\n clippedVerticesItems[s + 23] = dark.a;\n clippedVerticesItems[s + 24] = x3;\n clippedVerticesItems[s + 25] = y3;\n clippedVerticesItems[s + 26] = light.r;\n clippedVerticesItems[s + 27] = light.g;\n clippedVerticesItems[s + 28] = light.b;\n clippedVerticesItems[s + 29] = light.a;\n clippedVerticesItems[s + 30] = u3;\n clippedVerticesItems[s + 31] = v3;\n clippedVerticesItems[s + 32] = dark.r;\n clippedVerticesItems[s + 33] = dark.g;\n clippedVerticesItems[s + 34] = dark.b;\n clippedVerticesItems[s + 35] = dark.a;\n }\n s = clippedTriangles.length;\n var clippedTrianglesItems = core.Utils.setArraySize(clippedTriangles, s + 3);\n clippedTrianglesItems[s] = index;\n clippedTrianglesItems[s + 1] = index + 1;\n clippedTrianglesItems[s + 2] = index + 2;\n index += 3;\n continue outer;\n }\n }\n }\n };\n SkeletonClipping.prototype.clip = function (x1, y1, x2, y2, x3, y3, clippingArea, output) {\n var originalOutput = output;\n var clipped = false;\n var input = null;\n if (clippingArea.length % 4 >= 2) {\n input = output;\n output = this.scratch;\n } else input = this.scratch;\n input.length = 0;\n input.push(x1);\n input.push(y1);\n input.push(x2);\n input.push(y2);\n input.push(x3);\n input.push(y3);\n input.push(x1);\n input.push(y1);\n output.length = 0;\n var clippingVertices = clippingArea;\n var clippingVerticesLast = clippingArea.length - 4;\n for (var i = 0; ; i += 2) {\n var edgeX = clippingVertices[i],\n edgeY = clippingVertices[i + 1];\n var edgeX2 = clippingVertices[i + 2],\n edgeY2 = clippingVertices[i + 3];\n var deltaX = edgeX - edgeX2,\n deltaY = edgeY - edgeY2;\n var inputVertices = input;\n var inputVerticesLength = input.length - 2,\n outputStart = output.length;\n for (var ii = 0; ii < inputVerticesLength; ii += 2) {\n var inputX = inputVertices[ii],\n inputY = inputVertices[ii + 1];\n var inputX2 = inputVertices[ii + 2],\n inputY2 = inputVertices[ii + 3];\n var side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0;\n if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) {\n if (side2) {\n output.push(inputX2);\n output.push(inputY2);\n continue;\n }\n var c0 = inputY2 - inputY,\n c2 = inputX2 - inputX;\n var ua =\n (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY));\n output.push(edgeX + (edgeX2 - edgeX) * ua);\n output.push(edgeY + (edgeY2 - edgeY) * ua);\n } else if (side2) {\n var c0 = inputY2 - inputY,\n c2 = inputX2 - inputX;\n var ua =\n (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / (c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY));\n output.push(edgeX + (edgeX2 - edgeX) * ua);\n output.push(edgeY + (edgeY2 - edgeY) * ua);\n output.push(inputX2);\n output.push(inputY2);\n }\n clipped = true;\n }\n if (outputStart == output.length) {\n originalOutput.length = 0;\n return true;\n }\n output.push(output[0]);\n output.push(output[1]);\n if (i == clippingVerticesLast) break;\n var temp = output;\n output = input;\n output.length = 0;\n input = temp;\n }\n if (originalOutput != output) {\n originalOutput.length = 0;\n for (var i = 0, n = output.length - 2; i < n; i++) originalOutput[i] = output[i];\n } else originalOutput.length = originalOutput.length - 2;\n return clipped;\n };\n SkeletonClipping.makeClockwise = function (polygon) {\n var vertices = polygon;\n var verticeslength = polygon.length;\n var area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1],\n p1x = 0,\n p1y = 0,\n p2x = 0,\n p2y = 0;\n for (var i = 0, n = verticeslength - 3; i < n; i += 2) {\n p1x = vertices[i];\n p1y = vertices[i + 1];\n p2x = vertices[i + 2];\n p2y = vertices[i + 3];\n area += p1x * p2y - p2x * p1y;\n }\n if (area < 0) return;\n for (var i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) {\n var x = vertices[i],\n y = vertices[i + 1];\n var other = lastX - i;\n vertices[i] = vertices[other];\n vertices[i + 1] = vertices[other + 1];\n vertices[other] = x;\n vertices[other + 1] = y;\n }\n };\n return SkeletonClipping;\n })();\n core.SkeletonClipping = SkeletonClipping;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var SkeletonData = (function () {\n function SkeletonData() {\n this.bones = new Array();\n this.slots = new Array();\n this.skins = new Array();\n this.events = new Array();\n this.animations = new Array();\n this.ikConstraints = new Array();\n this.transformConstraints = new Array();\n this.pathConstraints = new Array();\n this.fps = 0;\n }\n SkeletonData.prototype.findBone = function (boneName) {\n if (boneName == null) throw new Error('boneName cannot be null.');\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) {\n var bone = bones[i];\n if (bone.name == boneName) return bone;\n }\n return null;\n };\n SkeletonData.prototype.findBoneIndex = function (boneName) {\n if (boneName == null) throw new Error('boneName cannot be null.');\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) if (bones[i].name == boneName) return i;\n return -1;\n };\n SkeletonData.prototype.findSlot = function (slotName) {\n if (slotName == null) throw new Error('slotName cannot be null.');\n var slots = this.slots;\n for (var i = 0, n = slots.length; i < n; i++) {\n var slot = slots[i];\n if (slot.name == slotName) return slot;\n }\n return null;\n };\n SkeletonData.prototype.findSlotIndex = function (slotName) {\n if (slotName == null) throw new Error('slotName cannot be null.');\n var slots = this.slots;\n for (var i = 0, n = slots.length; i < n; i++) if (slots[i].name == slotName) return i;\n return -1;\n };\n SkeletonData.prototype.findSkin = function (skinName) {\n if (skinName == null) throw new Error('skinName cannot be null.');\n var skins = this.skins;\n for (var i = 0, n = skins.length; i < n; i++) {\n var skin = skins[i];\n if (skin.name == skinName) return skin;\n }\n return null;\n };\n SkeletonData.prototype.findEvent = function (eventDataName) {\n if (eventDataName == null) throw new Error('eventDataName cannot be null.');\n var events = this.events;\n for (var i = 0, n = events.length; i < n; i++) {\n var event_4 = events[i];\n if (event_4.name == eventDataName) return event_4;\n }\n return null;\n };\n SkeletonData.prototype.findAnimation = function (animationName) {\n if (animationName == null) throw new Error('animationName cannot be null.');\n var animations = this.animations;\n for (var i = 0, n = animations.length; i < n; i++) {\n var animation = animations[i];\n if (animation.name == animationName) return animation;\n }\n return null;\n };\n SkeletonData.prototype.findIkConstraint = function (constraintName) {\n if (constraintName == null) throw new Error('constraintName cannot be null.');\n var ikConstraints = this.ikConstraints;\n for (var i = 0, n = ikConstraints.length; i < n; i++) {\n var constraint = ikConstraints[i];\n if (constraint.name == constraintName) return constraint;\n }\n return null;\n };\n SkeletonData.prototype.findTransformConstraint = function (constraintName) {\n if (constraintName == null) throw new Error('constraintName cannot be null.');\n var transformConstraints = this.transformConstraints;\n for (var i = 0, n = transformConstraints.length; i < n; i++) {\n var constraint = transformConstraints[i];\n if (constraint.name == constraintName) return constraint;\n }\n return null;\n };\n SkeletonData.prototype.findPathConstraint = function (constraintName) {\n if (constraintName == null) throw new Error('constraintName cannot be null.');\n var pathConstraints = this.pathConstraints;\n for (var i = 0, n = pathConstraints.length; i < n; i++) {\n var constraint = pathConstraints[i];\n if (constraint.name == constraintName) return constraint;\n }\n return null;\n };\n SkeletonData.prototype.findPathConstraintIndex = function (pathConstraintName) {\n if (pathConstraintName == null) throw new Error('pathConstraintName cannot be null.');\n var pathConstraints = this.pathConstraints;\n for (var i = 0, n = pathConstraints.length; i < n; i++)\n if (pathConstraints[i].name == pathConstraintName) return i;\n return -1;\n };\n return SkeletonData;\n })();\n core.SkeletonData = SkeletonData;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var SkeletonJson = (function () {\n function SkeletonJson(attachmentLoader) {\n this.scale = 1;\n this.linkedMeshes = new Array();\n this.attachmentLoader = attachmentLoader;\n }\n SkeletonJson.prototype.readSkeletonData = function (json) {\n var scale = this.scale;\n var skeletonData = new core.SkeletonData();\n var root = typeof json === 'string' ? JSON.parse(json) : json;\n var skeletonMap = root.skeleton;\n if (skeletonMap != null) {\n skeletonData.hash = skeletonMap.hash;\n skeletonData.version = skeletonMap.spine;\n skeletonData.width = skeletonMap.width;\n skeletonData.height = skeletonMap.height;\n skeletonData.fps = skeletonMap.fps;\n skeletonData.imagesPath = skeletonMap.images;\n }\n if (root.bones) {\n for (var i = 0; i < root.bones.length; i++) {\n var boneMap = root.bones[i];\n var parent_2 = null;\n var parentName = this.getValue(boneMap, 'parent', null);\n if (parentName != null) {\n parent_2 = skeletonData.findBone(parentName);\n if (parent_2 == null) throw new Error('Parent bone not found: ' + parentName);\n }\n var data = new core.BoneData(skeletonData.bones.length, boneMap.name, parent_2);\n data.length = this.getValue(boneMap, 'length', 0) * scale;\n data.x = this.getValue(boneMap, 'x', 0) * scale;\n data.y = this.getValue(boneMap, 'y', 0) * scale;\n data.rotation = this.getValue(boneMap, 'rotation', 0);\n data.scaleX = this.getValue(boneMap, 'scaleX', 1);\n data.scaleY = this.getValue(boneMap, 'scaleY', 1);\n data.shearX = this.getValue(boneMap, 'shearX', 0);\n data.shearY = this.getValue(boneMap, 'shearY', 0);\n data.transformMode = SkeletonJson.transformModeFromString(this.getValue(boneMap, 'transform', 'normal'));\n skeletonData.bones.push(data);\n }\n }\n if (root.slots) {\n for (var i = 0; i < root.slots.length; i++) {\n var slotMap = root.slots[i];\n var slotName = slotMap.name;\n var boneName = slotMap.bone;\n var boneData = skeletonData.findBone(boneName);\n if (boneData == null) throw new Error('Slot bone not found: ' + boneName);\n var data = new core.SlotData(skeletonData.slots.length, slotName, boneData);\n var color = this.getValue(slotMap, 'color', null);\n if (color != null) data.color.setFromString(color);\n var dark = this.getValue(slotMap, 'dark', null);\n if (dark != null) {\n data.darkColor = new core.Color(1, 1, 1, 1);\n data.darkColor.setFromString(dark);\n }\n data.attachmentName = this.getValue(slotMap, 'attachment', null);\n data.blendMode = SkeletonJson.blendModeFromString(this.getValue(slotMap, 'blend', 'normal'));\n skeletonData.slots.push(data);\n }\n }\n if (root.ik) {\n for (var i = 0; i < root.ik.length; i++) {\n var constraintMap = root.ik[i];\n var data = new core.IkConstraintData(constraintMap.name);\n data.order = this.getValue(constraintMap, 'order', 0);\n for (var j = 0; j < constraintMap.bones.length; j++) {\n var boneName = constraintMap.bones[j];\n var bone = skeletonData.findBone(boneName);\n if (bone == null) throw new Error('IK bone not found: ' + boneName);\n data.bones.push(bone);\n }\n var targetName = constraintMap.target;\n data.target = skeletonData.findBone(targetName);\n if (data.target == null) throw new Error('IK target bone not found: ' + targetName);\n data.bendDirection = this.getValue(constraintMap, 'bendPositive', true) ? 1 : -1;\n data.mix = this.getValue(constraintMap, 'mix', 1);\n skeletonData.ikConstraints.push(data);\n }\n }\n if (root.transform) {\n for (var i = 0; i < root.transform.length; i++) {\n var constraintMap = root.transform[i];\n var data = new core.TransformConstraintData(constraintMap.name);\n data.order = this.getValue(constraintMap, 'order', 0);\n for (var j = 0; j < constraintMap.bones.length; j++) {\n var boneName = constraintMap.bones[j];\n var bone = skeletonData.findBone(boneName);\n if (bone == null) throw new Error('Transform constraint bone not found: ' + boneName);\n data.bones.push(bone);\n }\n var targetName = constraintMap.target;\n data.target = skeletonData.findBone(targetName);\n if (data.target == null) throw new Error('Transform constraint target bone not found: ' + targetName);\n data.local = this.getValue(constraintMap, 'local', false);\n data.relative = this.getValue(constraintMap, 'relative', false);\n data.offsetRotation = this.getValue(constraintMap, 'rotation', 0);\n data.offsetX = this.getValue(constraintMap, 'x', 0) * scale;\n data.offsetY = this.getValue(constraintMap, 'y', 0) * scale;\n data.offsetScaleX = this.getValue(constraintMap, 'scaleX', 0);\n data.offsetScaleY = this.getValue(constraintMap, 'scaleY', 0);\n data.offsetShearY = this.getValue(constraintMap, 'shearY', 0);\n data.rotateMix = this.getValue(constraintMap, 'rotateMix', 1);\n data.translateMix = this.getValue(constraintMap, 'translateMix', 1);\n data.scaleMix = this.getValue(constraintMap, 'scaleMix', 1);\n data.shearMix = this.getValue(constraintMap, 'shearMix', 1);\n skeletonData.transformConstraints.push(data);\n }\n }\n if (root.path) {\n for (var i = 0; i < root.path.length; i++) {\n var constraintMap = root.path[i];\n var data = new core.PathConstraintData(constraintMap.name);\n data.order = this.getValue(constraintMap, 'order', 0);\n for (var j = 0; j < constraintMap.bones.length; j++) {\n var boneName = constraintMap.bones[j];\n var bone = skeletonData.findBone(boneName);\n if (bone == null) throw new Error('Transform constraint bone not found: ' + boneName);\n data.bones.push(bone);\n }\n var targetName = constraintMap.target;\n data.target = skeletonData.findSlot(targetName);\n if (data.target == null) throw new Error('Path target slot not found: ' + targetName);\n data.positionMode = SkeletonJson.positionModeFromString(\n this.getValue(constraintMap, 'positionMode', 'percent'),\n );\n data.spacingMode = SkeletonJson.spacingModeFromString(\n this.getValue(constraintMap, 'spacingMode', 'length'),\n );\n data.rotateMode = SkeletonJson.rotateModeFromString(this.getValue(constraintMap, 'rotateMode', 'tangent'));\n data.offsetRotation = this.getValue(constraintMap, 'rotation', 0);\n data.position = this.getValue(constraintMap, 'position', 0);\n if (data.positionMode == core.PositionMode.Fixed) data.position *= scale;\n data.spacing = this.getValue(constraintMap, 'spacing', 0);\n if (data.spacingMode == core.SpacingMode.Length || data.spacingMode == core.SpacingMode.Fixed)\n data.spacing *= scale;\n data.rotateMix = this.getValue(constraintMap, 'rotateMix', 1);\n data.translateMix = this.getValue(constraintMap, 'translateMix', 1);\n skeletonData.pathConstraints.push(data);\n }\n }\n if (root.skins) {\n for (var skinName in root.skins) {\n var skinMap = root.skins[skinName];\n var skin = new core.Skin(skinName);\n for (var slotName in skinMap) {\n var slotIndex = skeletonData.findSlotIndex(slotName);\n if (slotIndex == -1) throw new Error('Slot not found: ' + slotName);\n var slotMap = skinMap[slotName];\n for (var entryName in slotMap) {\n var attachment = this.readAttachment(slotMap[entryName], skin, slotIndex, entryName, skeletonData);\n if (attachment != null) skin.addAttachment(slotIndex, entryName, attachment);\n }\n }\n skeletonData.skins.push(skin);\n if (skin.name == 'default') skeletonData.defaultSkin = skin;\n }\n }\n for (var i = 0, n = this.linkedMeshes.length; i < n; i++) {\n var linkedMesh = this.linkedMeshes[i];\n var skin = linkedMesh.skin == null ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin);\n if (skin == null) throw new Error('Skin not found: ' + linkedMesh.skin);\n var parent_3 = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent);\n if (parent_3 == null) throw new Error('Parent mesh not found: ' + linkedMesh.parent);\n linkedMesh.mesh.setParentMesh(parent_3);\n }\n this.linkedMeshes.length = 0;\n if (root.events) {\n for (var eventName in root.events) {\n var eventMap = root.events[eventName];\n var data = new core.EventData(eventName);\n data.intValue = this.getValue(eventMap, 'int', 0);\n data.floatValue = this.getValue(eventMap, 'float', 0);\n data.stringValue = this.getValue(eventMap, 'string', '');\n data.audioPath = this.getValue(eventMap, 'audio', null);\n if (data.audioPath != null) {\n data.volume = this.getValue(eventMap, 'volume', 1);\n data.balance = this.getValue(eventMap, 'balance', 0);\n }\n skeletonData.events.push(data);\n }\n }\n if (root.animations) {\n for (var animationName in root.animations) {\n var animationMap = root.animations[animationName];\n this.readAnimation(animationMap, animationName, skeletonData);\n }\n }\n return skeletonData;\n };\n SkeletonJson.prototype.readAttachment = function (map, skin, slotIndex, name, skeletonData) {\n var scale = this.scale;\n name = this.getValue(map, 'name', name);\n var type = this.getValue(map, 'type', 'region');\n switch (type) {\n case 'region': {\n var path = this.getValue(map, 'path', name);\n var region = this.attachmentLoader.newRegionAttachment(skin, name, path);\n if (region == null) return null;\n region.path = path;\n region.x = this.getValue(map, 'x', 0) * scale;\n region.y = this.getValue(map, 'y', 0) * scale;\n region.scaleX = this.getValue(map, 'scaleX', 1);\n region.scaleY = this.getValue(map, 'scaleY', 1);\n region.rotation = this.getValue(map, 'rotation', 0);\n region.width = map.width * scale;\n region.height = map.height * scale;\n var color = this.getValue(map, 'color', null);\n if (color != null) region.color.setFromString(color);\n return region;\n }\n case 'boundingbox': {\n var box = this.attachmentLoader.newBoundingBoxAttachment(skin, name);\n if (box == null) return null;\n this.readVertices(map, box, map.vertexCount << 1);\n var color = this.getValue(map, 'color', null);\n if (color != null) box.color.setFromString(color);\n return box;\n }\n case 'mesh':\n case 'linkedmesh': {\n var path = this.getValue(map, 'path', name);\n var mesh = this.attachmentLoader.newMeshAttachment(skin, name, path);\n if (mesh == null) return null;\n mesh.path = path;\n var color = this.getValue(map, 'color', null);\n if (color != null) mesh.color.setFromString(color);\n var parent_4 = this.getValue(map, 'parent', null);\n if (parent_4 != null) {\n mesh.inheritDeform = this.getValue(map, 'deform', true);\n this.linkedMeshes.push(new LinkedMesh(mesh, this.getValue(map, 'skin', null), slotIndex, parent_4));\n return mesh;\n }\n var uvs = map.uvs;\n this.readVertices(map, mesh, uvs.length);\n mesh.triangles = map.triangles;\n mesh.regionUVs = uvs;\n mesh.hullLength = this.getValue(map, 'hull', 0) * 2;\n return mesh;\n }\n case 'path': {\n var path = this.attachmentLoader.newPathAttachment(skin, name);\n if (path == null) return null;\n path.closed = this.getValue(map, 'closed', false);\n path.constantSpeed = this.getValue(map, 'constantSpeed', true);\n var vertexCount = map.vertexCount;\n this.readVertices(map, path, vertexCount << 1);\n var lengths = core.Utils.newArray(vertexCount / 3, 0);\n for (var i = 0; i < map.lengths.length; i++) lengths[i] = map.lengths[i] * scale;\n path.lengths = lengths;\n var color = this.getValue(map, 'color', null);\n if (color != null) path.color.setFromString(color);\n return path;\n }\n case 'point': {\n var point = this.attachmentLoader.newPointAttachment(skin, name);\n if (point == null) return null;\n point.x = this.getValue(map, 'x', 0) * scale;\n point.y = this.getValue(map, 'y', 0) * scale;\n point.rotation = this.getValue(map, 'rotation', 0);\n var color = this.getValue(map, 'color', null);\n if (color != null) point.color.setFromString(color);\n return point;\n }\n case 'clipping': {\n var clip = this.attachmentLoader.newClippingAttachment(skin, name);\n if (clip == null) return null;\n var end = this.getValue(map, 'end', null);\n if (end != null) {\n var slot = skeletonData.findSlot(end);\n if (slot == null) throw new Error('Clipping end slot not found: ' + end);\n clip.endSlot = slot;\n }\n var vertexCount = map.vertexCount;\n this.readVertices(map, clip, vertexCount << 1);\n var color = this.getValue(map, 'color', null);\n if (color != null) clip.color.setFromString(color);\n return clip;\n }\n }\n return null;\n };\n SkeletonJson.prototype.readVertices = function (map, attachment, verticesLength) {\n var scale = this.scale;\n attachment.worldVerticesLength = verticesLength;\n var vertices = map.vertices;\n if (verticesLength == vertices.length) {\n var scaledVertices = core.Utils.toFloatArray(vertices);\n if (scale != 1) {\n for (var i = 0, n = vertices.length; i < n; i++) scaledVertices[i] *= scale;\n }\n attachment.vertices = scaledVertices;\n return;\n }\n var weights = new Array();\n var bones = new Array();\n for (var i = 0, n = vertices.length; i < n; ) {\n var boneCount = vertices[i++];\n bones.push(boneCount);\n for (var nn = i + boneCount * 4; i < nn; i += 4) {\n bones.push(vertices[i]);\n weights.push(vertices[i + 1] * scale);\n weights.push(vertices[i + 2] * scale);\n weights.push(vertices[i + 3]);\n }\n }\n attachment.bones = bones;\n attachment.vertices = core.Utils.toFloatArray(weights);\n };\n SkeletonJson.prototype.readAnimation = function (map, name, skeletonData) {\n var scale = this.scale;\n var timelines = new Array();\n var duration = 0;\n if (map.slots) {\n for (var slotName in map.slots) {\n var slotMap = map.slots[slotName];\n var slotIndex = skeletonData.findSlotIndex(slotName);\n if (slotIndex == -1) throw new Error('Slot not found: ' + slotName);\n for (var timelineName in slotMap) {\n var timelineMap = slotMap[timelineName];\n if (timelineName == 'attachment') {\n var timeline = new core.AttachmentTimeline(timelineMap.length);\n timeline.slotIndex = slotIndex;\n var frameIndex = 0;\n for (var i = 0; i < timelineMap.length; i++) {\n var valueMap = timelineMap[i];\n timeline.setFrame(frameIndex++, valueMap.time, valueMap.name);\n }\n timelines.push(timeline);\n duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]);\n } else if (timelineName == 'color') {\n var timeline = new core.ColorTimeline(timelineMap.length);\n timeline.slotIndex = slotIndex;\n var frameIndex = 0;\n for (var i = 0; i < timelineMap.length; i++) {\n var valueMap = timelineMap[i];\n var color = new core.Color();\n color.setFromString(valueMap.color || 'ffffffff');\n timeline.setFrame(frameIndex, valueMap.time, color.r, color.g, color.b, color.a);\n this.readCurve(valueMap, timeline, frameIndex);\n frameIndex++;\n }\n timelines.push(timeline);\n duration = Math.max(\n duration,\n timeline.frames[(timeline.getFrameCount() - 1) * core.ColorTimeline.ENTRIES],\n );\n } else if (timelineName == 'twoColor') {\n var timeline = new core.TwoColorTimeline(timelineMap.length);\n timeline.slotIndex = slotIndex;\n var frameIndex = 0;\n for (var i = 0; i < timelineMap.length; i++) {\n var valueMap = timelineMap[i];\n var light = new core.Color();\n var dark = new core.Color();\n light.setFromString(valueMap.light);\n dark.setFromString(valueMap.dark);\n timeline.setFrame(\n frameIndex,\n valueMap.time,\n light.r,\n light.g,\n light.b,\n light.a,\n dark.r,\n dark.g,\n dark.b,\n );\n this.readCurve(valueMap, timeline, frameIndex);\n frameIndex++;\n }\n timelines.push(timeline);\n duration = Math.max(\n duration,\n timeline.frames[(timeline.getFrameCount() - 1) * core.TwoColorTimeline.ENTRIES],\n );\n } else throw new Error('Invalid timeline type for a slot: ' + timelineName + ' (' + slotName + ')');\n }\n }\n }\n if (map.bones) {\n for (var boneName in map.bones) {\n var boneMap = map.bones[boneName];\n var boneIndex = skeletonData.findBoneIndex(boneName);\n if (boneIndex == -1) throw new Error('Bone not found: ' + boneName);\n for (var timelineName in boneMap) {\n var timelineMap = boneMap[timelineName];\n if (timelineName === 'rotate') {\n var timeline = new core.RotateTimeline(timelineMap.length);\n timeline.boneIndex = boneIndex;\n var frameIndex = 0;\n for (var i = 0; i < timelineMap.length; i++) {\n var valueMap = timelineMap[i];\n timeline.setFrame(frameIndex, valueMap.time, valueMap.angle);\n this.readCurve(valueMap, timeline, frameIndex);\n frameIndex++;\n }\n timelines.push(timeline);\n duration = Math.max(\n duration,\n timeline.frames[(timeline.getFrameCount() - 1) * core.RotateTimeline.ENTRIES],\n );\n } else if (timelineName === 'translate' || timelineName === 'scale' || timelineName === 'shear') {\n var timeline = null;\n var timelineScale = 1;\n if (timelineName === 'scale') timeline = new core.ScaleTimeline(timelineMap.length);\n else if (timelineName === 'shear') timeline = new core.ShearTimeline(timelineMap.length);\n else {\n timeline = new core.TranslateTimeline(timelineMap.length);\n timelineScale = scale;\n }\n timeline.boneIndex = boneIndex;\n var frameIndex = 0;\n for (var i = 0; i < timelineMap.length; i++) {\n var valueMap = timelineMap[i];\n var x = this.getValue(valueMap, 'x', 0),\n y = this.getValue(valueMap, 'y', 0);\n timeline.setFrame(frameIndex, valueMap.time, x * timelineScale, y * timelineScale);\n this.readCurve(valueMap, timeline, frameIndex);\n frameIndex++;\n }\n timelines.push(timeline);\n duration = Math.max(\n duration,\n timeline.frames[(timeline.getFrameCount() - 1) * core.TranslateTimeline.ENTRIES],\n );\n } else throw new Error('Invalid timeline type for a bone: ' + timelineName + ' (' + boneName + ')');\n }\n }\n }\n if (map.ik) {\n for (var constraintName in map.ik) {\n var constraintMap = map.ik[constraintName];\n var constraint = skeletonData.findIkConstraint(constraintName);\n var timeline = new core.IkConstraintTimeline(constraintMap.length);\n timeline.ikConstraintIndex = skeletonData.ikConstraints.indexOf(constraint);\n var frameIndex = 0;\n for (var i = 0; i < constraintMap.length; i++) {\n var valueMap = constraintMap[i];\n timeline.setFrame(\n frameIndex,\n valueMap.time,\n this.getValue(valueMap, 'mix', 1),\n this.getValue(valueMap, 'bendPositive', true) ? 1 : -1,\n this.getValue(valueMap, 'compress', false),\n this.getValue(valueMap, 'stretch', false),\n );\n this.readCurve(valueMap, timeline, frameIndex);\n frameIndex++;\n }\n timelines.push(timeline);\n duration = Math.max(\n duration,\n timeline.frames[(timeline.getFrameCount() - 1) * core.IkConstraintTimeline.ENTRIES],\n );\n }\n }\n if (map.transform) {\n for (var constraintName in map.transform) {\n var constraintMap = map.transform[constraintName];\n var constraint = skeletonData.findTransformConstraint(constraintName);\n var timeline = new core.TransformConstraintTimeline(constraintMap.length);\n timeline.transformConstraintIndex = skeletonData.transformConstraints.indexOf(constraint);\n var frameIndex = 0;\n for (var i = 0; i < constraintMap.length; i++) {\n var valueMap = constraintMap[i];\n timeline.setFrame(\n frameIndex,\n valueMap.time,\n this.getValue(valueMap, 'rotateMix', 1),\n this.getValue(valueMap, 'translateMix', 1),\n this.getValue(valueMap, 'scaleMix', 1),\n this.getValue(valueMap, 'shearMix', 1),\n );\n this.readCurve(valueMap, timeline, frameIndex);\n frameIndex++;\n }\n timelines.push(timeline);\n duration = Math.max(\n duration,\n timeline.frames[(timeline.getFrameCount() - 1) * core.TransformConstraintTimeline.ENTRIES],\n );\n }\n }\n if (map.paths) {\n for (var constraintName in map.paths) {\n var constraintMap = map.paths[constraintName];\n var index = skeletonData.findPathConstraintIndex(constraintName);\n if (index == -1) throw new Error('Path constraint not found: ' + constraintName);\n var data = skeletonData.pathConstraints[index];\n for (var timelineName in constraintMap) {\n var timelineMap = constraintMap[timelineName];\n if (timelineName === 'position' || timelineName === 'spacing') {\n var timeline = null;\n var timelineScale = 1;\n if (timelineName === 'spacing') {\n timeline = new core.PathConstraintSpacingTimeline(timelineMap.length);\n if (data.spacingMode == core.SpacingMode.Length || data.spacingMode == core.SpacingMode.Fixed)\n timelineScale = scale;\n } else {\n timeline = new core.PathConstraintPositionTimeline(timelineMap.length);\n if (data.positionMode == core.PositionMode.Fixed) timelineScale = scale;\n }\n timeline.pathConstraintIndex = index;\n var frameIndex = 0;\n for (var i = 0; i < timelineMap.length; i++) {\n var valueMap = timelineMap[i];\n timeline.setFrame(\n frameIndex,\n valueMap.time,\n this.getValue(valueMap, timelineName, 0) * timelineScale,\n );\n this.readCurve(valueMap, timeline, frameIndex);\n frameIndex++;\n }\n timelines.push(timeline);\n duration = Math.max(\n duration,\n timeline.frames[(timeline.getFrameCount() - 1) * core.PathConstraintPositionTimeline.ENTRIES],\n );\n } else if (timelineName === 'mix') {\n var timeline = new core.PathConstraintMixTimeline(timelineMap.length);\n timeline.pathConstraintIndex = index;\n var frameIndex = 0;\n for (var i = 0; i < timelineMap.length; i++) {\n var valueMap = timelineMap[i];\n timeline.setFrame(\n frameIndex,\n valueMap.time,\n this.getValue(valueMap, 'rotateMix', 1),\n this.getValue(valueMap, 'translateMix', 1),\n );\n this.readCurve(valueMap, timeline, frameIndex);\n frameIndex++;\n }\n timelines.push(timeline);\n duration = Math.max(\n duration,\n timeline.frames[(timeline.getFrameCount() - 1) * core.PathConstraintMixTimeline.ENTRIES],\n );\n }\n }\n }\n }\n if (map.deform) {\n for (var deformName in map.deform) {\n var deformMap = map.deform[deformName];\n var skin = skeletonData.findSkin(deformName);\n if (skin == null) throw new Error('Skin not found: ' + deformName);\n for (var slotName in deformMap) {\n var slotMap = deformMap[slotName];\n var slotIndex = skeletonData.findSlotIndex(slotName);\n if (slotIndex == -1) throw new Error('Slot not found: ' + slotMap.name);\n for (var timelineName in slotMap) {\n var timelineMap = slotMap[timelineName];\n var attachment = skin.getAttachment(slotIndex, timelineName);\n if (attachment == null) throw new Error('Deform attachment not found: ' + timelineMap.name);\n var weighted = attachment.bones != null;\n var vertices = attachment.vertices;\n var deformLength = weighted ? (vertices.length / 3) * 2 : vertices.length;\n var timeline = new core.DeformTimeline(timelineMap.length);\n timeline.slotIndex = slotIndex;\n timeline.attachment = attachment;\n var frameIndex = 0;\n for (var j = 0; j < timelineMap.length; j++) {\n var valueMap = timelineMap[j];\n var deform = void 0;\n var verticesValue = this.getValue(valueMap, 'vertices', null);\n if (verticesValue == null) deform = weighted ? core.Utils.newFloatArray(deformLength) : vertices;\n else {\n deform = core.Utils.newFloatArray(deformLength);\n var start = this.getValue(valueMap, 'offset', 0);\n core.Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length);\n if (scale != 1) {\n for (var i = start, n = i + verticesValue.length; i < n; i++) deform[i] *= scale;\n }\n if (!weighted) {\n for (var i = 0; i < deformLength; i++) deform[i] += vertices[i];\n }\n }\n timeline.setFrame(frameIndex, valueMap.time, deform);\n this.readCurve(valueMap, timeline, frameIndex);\n frameIndex++;\n }\n timelines.push(timeline);\n duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]);\n }\n }\n }\n }\n var drawOrderNode = map.drawOrder;\n if (drawOrderNode == null) drawOrderNode = map.draworder;\n if (drawOrderNode != null) {\n var timeline = new core.DrawOrderTimeline(drawOrderNode.length);\n var slotCount = skeletonData.slots.length;\n var frameIndex = 0;\n for (var j = 0; j < drawOrderNode.length; j++) {\n var drawOrderMap = drawOrderNode[j];\n var drawOrder = null;\n var offsets = this.getValue(drawOrderMap, 'offsets', null);\n if (offsets != null) {\n drawOrder = core.Utils.newArray(slotCount, -1);\n var unchanged = core.Utils.newArray(slotCount - offsets.length, 0);\n var originalIndex = 0,\n unchangedIndex = 0;\n for (var i = 0; i < offsets.length; i++) {\n var offsetMap = offsets[i];\n var slotIndex = skeletonData.findSlotIndex(offsetMap.slot);\n if (slotIndex == -1) throw new Error('Slot not found: ' + offsetMap.slot);\n while (originalIndex != slotIndex) unchanged[unchangedIndex++] = originalIndex++;\n drawOrder[originalIndex + offsetMap.offset] = originalIndex++;\n }\n while (originalIndex < slotCount) unchanged[unchangedIndex++] = originalIndex++;\n for (var i = slotCount - 1; i >= 0; i--)\n if (drawOrder[i] == -1) drawOrder[i] = unchanged[--unchangedIndex];\n }\n timeline.setFrame(frameIndex++, drawOrderMap.time, drawOrder);\n }\n timelines.push(timeline);\n duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]);\n }\n if (map.events) {\n var timeline = new core.EventTimeline(map.events.length);\n var frameIndex = 0;\n for (var i = 0; i < map.events.length; i++) {\n var eventMap = map.events[i];\n var eventData = skeletonData.findEvent(eventMap.name);\n if (eventData == null) throw new Error('Event not found: ' + eventMap.name);\n var event_5 = new core.Event(core.Utils.toSinglePrecision(eventMap.time), eventData);\n event_5.intValue = this.getValue(eventMap, 'int', eventData.intValue);\n event_5.floatValue = this.getValue(eventMap, 'float', eventData.floatValue);\n event_5.stringValue = this.getValue(eventMap, 'string', eventData.stringValue);\n if (event_5.data.audioPath != null) {\n event_5.volume = this.getValue(eventMap, 'volume', 1);\n event_5.balance = this.getValue(eventMap, 'balance', 0);\n }\n timeline.setFrame(frameIndex++, event_5);\n }\n timelines.push(timeline);\n duration = Math.max(duration, timeline.frames[timeline.getFrameCount() - 1]);\n }\n if (isNaN(duration)) {\n throw new Error('Error while parsing animation, duration is NaN');\n }\n skeletonData.animations.push(new core.Animation(name, timelines, duration));\n };\n SkeletonJson.prototype.readCurve = function (map, timeline, frameIndex) {\n if (!map.curve) return;\n if (map.curve === 'stepped') timeline.setStepped(frameIndex);\n else if (Object.prototype.toString.call(map.curve) === '[object Array]') {\n var curve = map.curve;\n timeline.setCurve(frameIndex, curve[0], curve[1], curve[2], curve[3]);\n }\n };\n SkeletonJson.prototype.getValue = function (map, prop, defaultValue) {\n return map[prop] !== undefined ? map[prop] : defaultValue;\n };\n SkeletonJson.blendModeFromString = function (str) {\n str = str.toLowerCase();\n if (str == 'normal') return core.BlendMode.Normal;\n if (str == 'additive') return core.BlendMode.Additive;\n if (str == 'multiply') return core.BlendMode.Multiply;\n if (str == 'screen') return core.BlendMode.Screen;\n throw new Error('Unknown blend mode: ' + str);\n };\n SkeletonJson.positionModeFromString = function (str) {\n str = str.toLowerCase();\n if (str == 'fixed') return core.PositionMode.Fixed;\n if (str == 'percent') return core.PositionMode.Percent;\n throw new Error('Unknown position mode: ' + str);\n };\n SkeletonJson.spacingModeFromString = function (str) {\n str = str.toLowerCase();\n if (str == 'length') return core.SpacingMode.Length;\n if (str == 'fixed') return core.SpacingMode.Fixed;\n if (str == 'percent') return core.SpacingMode.Percent;\n throw new Error('Unknown position mode: ' + str);\n };\n SkeletonJson.rotateModeFromString = function (str) {\n str = str.toLowerCase();\n if (str == 'tangent') return core.RotateMode.Tangent;\n if (str == 'chain') return core.RotateMode.Chain;\n if (str == 'chainscale') return core.RotateMode.ChainScale;\n throw new Error('Unknown rotate mode: ' + str);\n };\n SkeletonJson.transformModeFromString = function (str) {\n str = str.toLowerCase();\n if (str == 'normal') return core.TransformMode.Normal;\n if (str == 'onlytranslation') return core.TransformMode.OnlyTranslation;\n if (str == 'norotationorreflection') return core.TransformMode.NoRotationOrReflection;\n if (str == 'noscale') return core.TransformMode.NoScale;\n if (str == 'noscaleorreflection') return core.TransformMode.NoScaleOrReflection;\n throw new Error('Unknown transform mode: ' + str);\n };\n return SkeletonJson;\n })();\n core.SkeletonJson = SkeletonJson;\n var LinkedMesh = (function () {\n function LinkedMesh(mesh, skin, slotIndex, parent) {\n this.mesh = mesh;\n this.skin = skin;\n this.slotIndex = slotIndex;\n this.parent = parent;\n }\n return LinkedMesh;\n })();\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var Skin = (function () {\n function Skin(name) {\n this.attachments = new Array();\n if (name == null) throw new Error('name cannot be null.');\n this.name = name;\n }\n Skin.prototype.addAttachment = function (slotIndex, name, attachment) {\n if (attachment == null) throw new Error('attachment cannot be null.');\n var attachments = this.attachments;\n if (slotIndex >= attachments.length) attachments.length = slotIndex + 1;\n if (!attachments[slotIndex]) attachments[slotIndex] = {};\n attachments[slotIndex][name] = attachment;\n };\n Skin.prototype.getAttachment = function (slotIndex, name) {\n var dictionary = this.attachments[slotIndex];\n return dictionary ? dictionary[name] : null;\n };\n Skin.prototype.attachAll = function (skeleton, oldSkin) {\n var slotIndex = 0;\n for (var i = 0; i < skeleton.slots.length; i++) {\n var slot = skeleton.slots[i];\n var slotAttachment = slot.getAttachment();\n if (slotAttachment && slotIndex < oldSkin.attachments.length) {\n var dictionary = oldSkin.attachments[slotIndex];\n for (var key in dictionary) {\n var skinAttachment = dictionary[key];\n if (slotAttachment == skinAttachment) {\n var attachment = this.getAttachment(slotIndex, key);\n if (attachment != null) slot.setAttachment(attachment);\n break;\n }\n }\n }\n slotIndex++;\n }\n };\n return Skin;\n })();\n core.Skin = Skin;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var Slot = (function () {\n function Slot(data, bone) {\n this.attachmentVertices = new Array();\n if (data == null) throw new Error('data cannot be null.');\n if (bone == null) throw new Error('bone cannot be null.');\n this.data = data;\n this.bone = bone;\n this.color = new core.Color();\n this.darkColor = data.darkColor == null ? null : new core.Color();\n this.setToSetupPose();\n this.blendMode = this.data.blendMode;\n }\n Slot.prototype.getAttachment = function () {\n return this.attachment;\n };\n Slot.prototype.setAttachment = function (attachment) {\n if (this.attachment == attachment) return;\n this.attachment = attachment;\n this.attachmentTime = this.bone.skeleton.time;\n this.attachmentVertices.length = 0;\n };\n Slot.prototype.setAttachmentTime = function (time) {\n this.attachmentTime = this.bone.skeleton.time - time;\n };\n Slot.prototype.getAttachmentTime = function () {\n return this.bone.skeleton.time - this.attachmentTime;\n };\n Slot.prototype.setToSetupPose = function () {\n this.color.setFromColor(this.data.color);\n if (this.darkColor != null) this.darkColor.setFromColor(this.data.darkColor);\n if (this.data.attachmentName == null) this.attachment = null;\n else {\n this.attachment = null;\n this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName));\n }\n };\n return Slot;\n })();\n core.Slot = Slot;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var SlotData = (function () {\n function SlotData(index, name, boneData) {\n this.color = new core.Color(1, 1, 1, 1);\n if (index < 0) throw new Error('index must be >= 0.');\n if (name == null) throw new Error('name cannot be null.');\n if (boneData == null) throw new Error('boneData cannot be null.');\n this.index = index;\n this.name = name;\n this.boneData = boneData;\n }\n return SlotData;\n })();\n core.SlotData = SlotData;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var Texture = (function () {\n function Texture(image) {\n this._image = image;\n }\n Texture.prototype.getImage = function () {\n return this._image;\n };\n Texture.filterFromString = function (text) {\n switch (text.toLowerCase()) {\n case 'nearest':\n return TextureFilter.Nearest;\n case 'linear':\n return TextureFilter.Linear;\n case 'mipmap':\n return TextureFilter.MipMap;\n case 'mipmapnearestnearest':\n return TextureFilter.MipMapNearestNearest;\n case 'mipmaplinearnearest':\n return TextureFilter.MipMapLinearNearest;\n case 'mipmapnearestlinear':\n return TextureFilter.MipMapNearestLinear;\n case 'mipmaplinearlinear':\n return TextureFilter.MipMapLinearLinear;\n default:\n throw new Error('Unknown texture filter ' + text);\n }\n };\n Texture.wrapFromString = function (text) {\n switch (text.toLowerCase()) {\n case 'mirroredtepeat':\n return TextureWrap.MirroredRepeat;\n case 'clamptoedge':\n return TextureWrap.ClampToEdge;\n case 'repeat':\n return TextureWrap.Repeat;\n default:\n throw new Error('Unknown texture wrap ' + text);\n }\n };\n return Texture;\n })();\n core.Texture = Texture;\n var TextureFilter;\n (function (TextureFilter) {\n TextureFilter[(TextureFilter['Nearest'] = 9728)] = 'Nearest';\n TextureFilter[(TextureFilter['Linear'] = 9729)] = 'Linear';\n TextureFilter[(TextureFilter['MipMap'] = 9987)] = 'MipMap';\n TextureFilter[(TextureFilter['MipMapNearestNearest'] = 9984)] = 'MipMapNearestNearest';\n TextureFilter[(TextureFilter['MipMapLinearNearest'] = 9985)] = 'MipMapLinearNearest';\n TextureFilter[(TextureFilter['MipMapNearestLinear'] = 9986)] = 'MipMapNearestLinear';\n TextureFilter[(TextureFilter['MipMapLinearLinear'] = 9987)] = 'MipMapLinearLinear';\n })((TextureFilter = core.TextureFilter || (core.TextureFilter = {})));\n var TextureWrap;\n (function (TextureWrap) {\n TextureWrap[(TextureWrap['MirroredRepeat'] = 33648)] = 'MirroredRepeat';\n TextureWrap[(TextureWrap['ClampToEdge'] = 33071)] = 'ClampToEdge';\n TextureWrap[(TextureWrap['Repeat'] = 10497)] = 'Repeat';\n })((TextureWrap = core.TextureWrap || (core.TextureWrap = {})));\n var TextureRegion = (function () {\n function TextureRegion() {\n this.size = null;\n }\n Object.defineProperty(TextureRegion.prototype, 'width', {\n get: function () {\n var tex = this.texture;\n if (PIXI.VERSION[0] == '3') {\n return tex.crop.width;\n }\n if (tex.trim) {\n return tex.trim.width;\n }\n return tex.orig.width;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'height', {\n get: function () {\n var tex = this.texture;\n if (PIXI.VERSION[0] == '3') {\n return tex.crop.height;\n }\n if (tex.trim) {\n return tex.trim.height;\n }\n return tex.orig.height;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'u', {\n get: function () {\n return this.texture._uvs.x0;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'v', {\n get: function () {\n return this.texture._uvs.y0;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'u2', {\n get: function () {\n return this.texture._uvs.x2;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'v2', {\n get: function () {\n return this.texture._uvs.y2;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'offsetX', {\n get: function () {\n var tex = this.texture;\n return tex.trim ? tex.trim.x : 0;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'offsetY', {\n get: function () {\n console.warn(\n 'Deprecation Warning: @Hackerham: I guess, if you are using PIXI-SPINE ATLAS region.offsetY, you want a texture, right? Use region.texture from now on.',\n );\n return this.spineOffsetY;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'pixiOffsetY', {\n get: function () {\n var tex = this.texture;\n return tex.trim ? tex.trim.y : 0;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'spineOffsetY', {\n get: function () {\n var tex = this.texture;\n return this.originalHeight - this.height - (tex.trim ? tex.trim.y : 0);\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'originalWidth', {\n get: function () {\n var tex = this.texture;\n if (PIXI.VERSION[0] == '3') {\n if (tex.trim) {\n return tex.trim.width;\n }\n return tex.crop.width;\n }\n return tex.orig.width;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'originalHeight', {\n get: function () {\n var tex = this.texture;\n if (PIXI.VERSION[0] == '3') {\n if (tex.trim) {\n return tex.trim.height;\n }\n return tex.crop.height;\n }\n return tex.orig.height;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'x', {\n get: function () {\n return this.texture.frame.x;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'y', {\n get: function () {\n return this.texture.frame.y;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(TextureRegion.prototype, 'rotate', {\n get: function () {\n return this.texture.rotate !== 0;\n },\n enumerable: true,\n configurable: true,\n });\n return TextureRegion;\n })();\n core.TextureRegion = TextureRegion;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var TextureAtlas = (function () {\n function TextureAtlas(atlasText, textureLoader, callback) {\n this.pages = new Array();\n this.regions = new Array();\n if (atlasText) {\n this.addSpineAtlas(atlasText, textureLoader, callback);\n }\n }\n TextureAtlas.prototype.addTexture = function (name, texture) {\n var pages = this.pages;\n var page = null;\n for (var i = 0; i < pages.length; i++) {\n if (pages[i].baseTexture === texture.baseTexture) {\n page = pages[i];\n break;\n }\n }\n if (page === null) {\n page = new TextureAtlasPage();\n page.name = 'texturePage';\n var baseTexture = texture.baseTexture;\n page.width = baseTexture.realWidth;\n page.height = baseTexture.realHeight;\n page.baseTexture = baseTexture;\n page.minFilter = page.magFilter = core.TextureFilter.Nearest;\n page.uWrap = core.TextureWrap.ClampToEdge;\n page.vWrap = core.TextureWrap.ClampToEdge;\n pages.push(page);\n }\n var region = new TextureAtlasRegion();\n region.name = name;\n region.page = page;\n region.texture = texture;\n region.index = -1;\n this.regions.push(region);\n return region;\n };\n TextureAtlas.prototype.addTextureHash = function (textures, stripExtension) {\n for (var key in textures) {\n if (textures.hasOwnProperty(key)) {\n this.addTexture(\n stripExtension && key.indexOf('.') !== -1 ? key.substr(0, key.lastIndexOf('.')) : key,\n textures[key],\n );\n }\n }\n };\n TextureAtlas.prototype.addSpineAtlas = function (atlasText, textureLoader, callback) {\n return this.load(atlasText, textureLoader, callback);\n };\n TextureAtlas.prototype.load = function (atlasText, textureLoader, callback) {\n var _this = this;\n if (textureLoader == null) throw new Error('textureLoader cannot be null.');\n var reader = new TextureAtlasReader(atlasText);\n var tuple = new Array(4);\n var page = null;\n var iterateParser = function () {\n while (true) {\n var line = reader.readLine();\n if (line == null) {\n return callback && callback(_this);\n }\n line = line.trim();\n if (line.length == 0) page = null;\n else if (!page) {\n page = new TextureAtlasPage();\n page.name = line;\n if (reader.readTuple(tuple) == 2) {\n page.width = parseInt(tuple[0]);\n page.height = parseInt(tuple[1]);\n reader.readTuple(tuple);\n }\n reader.readTuple(tuple);\n page.minFilter = core.Texture.filterFromString(tuple[0]);\n page.magFilter = core.Texture.filterFromString(tuple[1]);\n var direction = reader.readValue();\n page.uWrap = core.TextureWrap.ClampToEdge;\n page.vWrap = core.TextureWrap.ClampToEdge;\n if (direction == 'x') page.uWrap = core.TextureWrap.Repeat;\n else if (direction == 'y') page.vWrap = core.TextureWrap.Repeat;\n else if (direction == 'xy') page.uWrap = page.vWrap = core.TextureWrap.Repeat;\n textureLoader(line, function (texture) {\n if (texture === null) {\n _this.pages.splice(_this.pages.indexOf(page), 1);\n return callback && callback(null);\n }\n page.baseTexture = texture;\n if (!texture.hasLoaded) {\n texture.width = page.width;\n texture.height = page.height;\n }\n _this.pages.push(page);\n page.setFilters();\n if (!page.width || !page.height) {\n page.width = texture.realWidth;\n page.height = texture.realHeight;\n if (!page.width || !page.height) {\n console.log(\n 'ERROR spine atlas page ' +\n page.name +\n ': meshes wont work if you dont specify size in atlas (http://www.html5gamedevs.com/topic/18888-pixi-spines-and-meshes/?p=107121)',\n );\n }\n }\n iterateParser();\n });\n _this.pages.push(page);\n break;\n } else {\n var region = new TextureAtlasRegion();\n region.name = line;\n region.page = page;\n var rotate = reader.readValue() == 'true' ? 6 : 0;\n reader.readTuple(tuple);\n var x = parseInt(tuple[0]);\n var y = parseInt(tuple[1]);\n reader.readTuple(tuple);\n var width = parseInt(tuple[0]);\n var height = parseInt(tuple[1]);\n var resolution = page.baseTexture.resolution;\n x /= resolution;\n y /= resolution;\n width /= resolution;\n height /= resolution;\n var frame = new PIXI.Rectangle(x, y, rotate ? height : width, rotate ? width : height);\n if (reader.readTuple(tuple) == 4) {\n if (reader.readTuple(tuple) == 4) {\n reader.readTuple(tuple);\n }\n }\n var originalWidth = parseInt(tuple[0]) / resolution;\n var originalHeight = parseInt(tuple[1]) / resolution;\n reader.readTuple(tuple);\n var offsetX = parseInt(tuple[0]) / resolution;\n var offsetY = parseInt(tuple[1]) / resolution;\n var orig = new PIXI.Rectangle(0, 0, originalWidth, originalHeight);\n var trim = new PIXI.Rectangle(offsetX, originalHeight - height - offsetY, width, height);\n if (PIXI.VERSION[0] != '3') {\n region.texture = new PIXI.Texture(region.page.baseTexture, frame, orig, trim, rotate);\n } else {\n var frame2 = new PIXI.Rectangle(x, y, width, height);\n var crop = frame2.clone();\n trim.width = originalWidth;\n trim.height = originalHeight;\n region.texture = new PIXI.Texture(region.page.baseTexture, frame2, crop, trim, rotate);\n }\n region.index = parseInt(reader.readValue());\n region.texture._updateUvs();\n _this.regions.push(region);\n }\n }\n };\n iterateParser();\n };\n TextureAtlas.prototype.findRegion = function (name) {\n for (var i = 0; i < this.regions.length; i++) {\n if (this.regions[i].name == name) {\n return this.regions[i];\n }\n }\n return null;\n };\n TextureAtlas.prototype.dispose = function () {\n for (var i = 0; i < this.pages.length; i++) {\n this.pages[i].baseTexture.dispose();\n }\n };\n return TextureAtlas;\n })();\n core.TextureAtlas = TextureAtlas;\n var TextureAtlasReader = (function () {\n function TextureAtlasReader(text) {\n this.index = 0;\n this.lines = text.split(/\\r\\n|\\r|\\n/);\n }\n TextureAtlasReader.prototype.readLine = function () {\n if (this.index >= this.lines.length) return null;\n return this.lines[this.index++];\n };\n TextureAtlasReader.prototype.readValue = function () {\n var line = this.readLine();\n var colon = line.indexOf(':');\n if (colon == -1) throw new Error('Invalid line: ' + line);\n return line.substring(colon + 1).trim();\n };\n TextureAtlasReader.prototype.readTuple = function (tuple) {\n var line = this.readLine();\n var colon = line.indexOf(':');\n if (colon == -1) throw new Error('Invalid line: ' + line);\n var i = 0,\n lastMatch = colon + 1;\n for (; i < 3; i++) {\n var comma = line.indexOf(',', lastMatch);\n if (comma == -1) break;\n tuple[i] = line.substr(lastMatch, comma - lastMatch).trim();\n lastMatch = comma + 1;\n }\n tuple[i] = line.substring(lastMatch).trim();\n return i + 1;\n };\n return TextureAtlasReader;\n })();\n var TextureAtlasPage = (function () {\n function TextureAtlasPage() {}\n TextureAtlasPage.prototype.setFilters = function () {\n var tex = this.baseTexture;\n var filter = this.minFilter;\n if (filter == core.TextureFilter.Linear) {\n tex.scaleMode = PIXI.SCALE_MODES.LINEAR;\n } else if (this.minFilter == core.TextureFilter.Nearest) {\n tex.scaleMode = PIXI.SCALE_MODES.NEAREST;\n } else {\n tex.mipmap = true;\n if (filter == core.TextureFilter.MipMapNearestNearest) {\n tex.scaleMode = PIXI.SCALE_MODES.NEAREST;\n } else {\n tex.scaleMode = PIXI.SCALE_MODES.LINEAR;\n }\n }\n };\n return TextureAtlasPage;\n })();\n core.TextureAtlasPage = TextureAtlasPage;\n var TextureAtlasRegion = (function (_super) {\n __extends(TextureAtlasRegion, _super);\n function TextureAtlasRegion() {\n return (_super !== null && _super.apply(this, arguments)) || this;\n }\n return TextureAtlasRegion;\n })(core.TextureRegion);\n core.TextureAtlasRegion = TextureAtlasRegion;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var TransformConstraint = (function () {\n function TransformConstraint(data, skeleton) {\n this.rotateMix = 0;\n this.translateMix = 0;\n this.scaleMix = 0;\n this.shearMix = 0;\n this.temp = new core.Vector2();\n if (data == null) throw new Error('data cannot be null.');\n if (skeleton == null) throw new Error('skeleton cannot be null.');\n this.data = data;\n this.rotateMix = data.rotateMix;\n this.translateMix = data.translateMix;\n this.scaleMix = data.scaleMix;\n this.shearMix = data.shearMix;\n this.bones = new Array();\n for (var i = 0; i < data.bones.length; i++) this.bones.push(skeleton.findBone(data.bones[i].name));\n this.target = skeleton.findBone(data.target.name);\n }\n TransformConstraint.prototype.apply = function () {\n this.update();\n };\n TransformConstraint.prototype.update = function () {\n if (this.data.local) {\n if (this.data.relative) this.applyRelativeLocal();\n else this.applyAbsoluteLocal();\n } else {\n if (this.data.relative) this.applyRelativeWorld();\n else this.applyAbsoluteWorld();\n }\n };\n TransformConstraint.prototype.applyAbsoluteWorld = function () {\n var rotateMix = this.rotateMix,\n translateMix = this.translateMix,\n scaleMix = this.scaleMix,\n shearMix = this.shearMix;\n var target = this.target;\n var targetMat = target.matrix;\n var ta = targetMat.a,\n tb = targetMat.c,\n tc = targetMat.b,\n td = targetMat.d;\n var degRadReflect = ta * td - tb * tc > 0 ? core.MathUtils.degRad : -core.MathUtils.degRad;\n var offsetRotation = this.data.offsetRotation * degRadReflect;\n var offsetShearY = this.data.offsetShearY * degRadReflect;\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) {\n var bone = bones[i];\n var modified = false;\n var mat = bone.matrix;\n if (rotateMix != 0) {\n var a = mat.a,\n b = mat.c,\n c = mat.b,\n d = mat.d;\n var r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation;\n if (r > core.MathUtils.PI) r -= core.MathUtils.PI2;\n else if (r < -core.MathUtils.PI) r += core.MathUtils.PI2;\n r *= rotateMix;\n var cos = Math.cos(r),\n sin = Math.sin(r);\n mat.a = cos * a - sin * c;\n mat.c = cos * b - sin * d;\n mat.b = sin * a + cos * c;\n mat.d = sin * b + cos * d;\n modified = true;\n }\n if (translateMix != 0) {\n var temp = this.temp;\n target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY));\n mat.tx += (temp.x - mat.tx) * translateMix;\n mat.ty += (temp.y - mat.ty) * translateMix;\n modified = true;\n }\n if (scaleMix > 0) {\n var s = Math.sqrt(mat.a * mat.a + mat.b * mat.b);\n var ts = Math.sqrt(ta * ta + tc * tc);\n if (s > 0.00001) s = (s + (ts - s + this.data.offsetScaleX) * scaleMix) / s;\n mat.a *= s;\n mat.b *= s;\n s = Math.sqrt(mat.c * mat.c + mat.d * mat.d);\n ts = Math.sqrt(tb * tb + td * td);\n if (s > 0.00001) s = (s + (ts - s + this.data.offsetScaleY) * scaleMix) / s;\n mat.c *= s;\n mat.d *= s;\n modified = true;\n }\n if (shearMix > 0) {\n var b = mat.c,\n d = mat.d;\n var by = Math.atan2(d, b);\n var r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(mat.b, mat.a));\n if (r > core.MathUtils.PI) r -= core.MathUtils.PI2;\n else if (r < -core.MathUtils.PI) r += core.MathUtils.PI2;\n r = by + (r + offsetShearY) * shearMix;\n var s = Math.sqrt(b * b + d * d);\n mat.c = Math.cos(r) * s;\n mat.d = Math.sin(r) * s;\n modified = true;\n }\n if (modified) bone.appliedValid = false;\n }\n };\n TransformConstraint.prototype.applyRelativeWorld = function () {\n var rotateMix = this.rotateMix,\n translateMix = this.translateMix,\n scaleMix = this.scaleMix,\n shearMix = this.shearMix;\n var target = this.target;\n var targetMat = target.matrix;\n var ta = targetMat.a,\n tb = targetMat.c,\n tc = targetMat.b,\n td = targetMat.d;\n var degRadReflect = ta * td - tb * tc > 0 ? core.MathUtils.degRad : -core.MathUtils.degRad;\n var offsetRotation = this.data.offsetRotation * degRadReflect,\n offsetShearY = this.data.offsetShearY * degRadReflect;\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) {\n var bone = bones[i];\n var modified = false;\n var mat = bone.matrix;\n if (rotateMix != 0) {\n var a = mat.a,\n b = mat.c,\n c = mat.b,\n d = mat.d;\n var r = Math.atan2(tc, ta) + offsetRotation;\n if (r > core.MathUtils.PI) r -= core.MathUtils.PI2;\n else if (r < -core.MathUtils.PI) r += core.MathUtils.PI2;\n r *= rotateMix;\n var cos = Math.cos(r),\n sin = Math.sin(r);\n mat.a = cos * a - sin * c;\n mat.c = cos * b - sin * d;\n mat.b = sin * a + cos * c;\n mat.d = sin * b + cos * d;\n modified = true;\n }\n if (translateMix != 0) {\n var temp = this.temp;\n target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY));\n mat.tx += temp.x * translateMix;\n mat.ty += temp.y * translateMix;\n modified = true;\n }\n if (scaleMix > 0) {\n var s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * scaleMix + 1;\n mat.a *= s;\n mat.b *= s;\n s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * scaleMix + 1;\n mat.c *= s;\n mat.d *= s;\n modified = true;\n }\n if (shearMix > 0) {\n var r = Math.atan2(td, tb) - Math.atan2(tc, ta);\n if (r > core.MathUtils.PI) r -= core.MathUtils.PI2;\n else if (r < -core.MathUtils.PI) r += core.MathUtils.PI2;\n var b = mat.c,\n d = mat.d;\n r = Math.atan2(d, b) + (r - core.MathUtils.PI / 2 + offsetShearY) * shearMix;\n var s = Math.sqrt(b * b + d * d);\n mat.c = Math.cos(r) * s;\n mat.d = Math.sin(r) * s;\n modified = true;\n }\n if (modified) bone.appliedValid = false;\n }\n };\n TransformConstraint.prototype.applyAbsoluteLocal = function () {\n var rotateMix = this.rotateMix,\n translateMix = this.translateMix,\n scaleMix = this.scaleMix,\n shearMix = this.shearMix;\n var target = this.target;\n if (!target.appliedValid) target.updateAppliedTransform();\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) {\n var bone = bones[i];\n if (!bone.appliedValid) bone.updateAppliedTransform();\n var rotation = bone.arotation;\n if (rotateMix != 0) {\n var r = target.arotation - rotation + this.data.offsetRotation;\n r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360;\n rotation += r * rotateMix;\n }\n var x = bone.ax,\n y = bone.ay;\n if (translateMix != 0) {\n x += (target.ax - x + this.data.offsetX) * translateMix;\n y += (target.ay - y + this.data.offsetY) * translateMix;\n }\n var scaleX = bone.ascaleX,\n scaleY = bone.ascaleY;\n if (scaleMix > 0) {\n if (scaleX > 0.00001)\n scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * scaleMix) / scaleX;\n if (scaleY > 0.00001)\n scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * scaleMix) / scaleY;\n }\n var shearY = bone.ashearY;\n if (shearMix > 0) {\n var r = target.ashearY - shearY + this.data.offsetShearY;\n r -= (16384 - ((16384.499999999996 - r / 360) | 0)) * 360;\n bone.shearY += r * shearMix;\n }\n bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY);\n }\n };\n TransformConstraint.prototype.applyRelativeLocal = function () {\n var rotateMix = this.rotateMix,\n translateMix = this.translateMix,\n scaleMix = this.scaleMix,\n shearMix = this.shearMix;\n var target = this.target;\n if (!target.appliedValid) target.updateAppliedTransform();\n var bones = this.bones;\n for (var i = 0, n = bones.length; i < n; i++) {\n var bone = bones[i];\n if (!bone.appliedValid) bone.updateAppliedTransform();\n var rotation = bone.arotation;\n if (rotateMix != 0) rotation += (target.arotation + this.data.offsetRotation) * rotateMix;\n var x = bone.ax,\n y = bone.ay;\n if (translateMix != 0) {\n x += (target.ax + this.data.offsetX) * translateMix;\n y += (target.ay + this.data.offsetY) * translateMix;\n }\n var scaleX = bone.ascaleX,\n scaleY = bone.ascaleY;\n if (scaleMix > 0) {\n if (scaleX > 0.00001) scaleX *= (target.ascaleX - 1 + this.data.offsetScaleX) * scaleMix + 1;\n if (scaleY > 0.00001) scaleY *= (target.ascaleY - 1 + this.data.offsetScaleY) * scaleMix + 1;\n }\n var shearY = bone.ashearY;\n if (shearMix > 0) shearY += (target.ashearY + this.data.offsetShearY) * shearMix;\n bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY);\n }\n };\n TransformConstraint.prototype.getOrder = function () {\n return this.data.order;\n };\n return TransformConstraint;\n })();\n core.TransformConstraint = TransformConstraint;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var TransformConstraintData = (function () {\n function TransformConstraintData(name) {\n this.order = 0;\n this.bones = new Array();\n this.rotateMix = 0;\n this.translateMix = 0;\n this.scaleMix = 0;\n this.shearMix = 0;\n this.offsetRotation = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n this.offsetScaleX = 0;\n this.offsetScaleY = 0;\n this.offsetShearY = 0;\n this.relative = false;\n this.local = false;\n if (name == null) throw new Error('name cannot be null.');\n this.name = name;\n }\n return TransformConstraintData;\n })();\n core.TransformConstraintData = TransformConstraintData;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var Triangulator = (function () {\n function Triangulator() {\n this.convexPolygons = new Array();\n this.convexPolygonsIndices = new Array();\n this.indicesArray = new Array();\n this.isConcaveArray = new Array();\n this.triangles = new Array();\n this.polygonPool = new core.Pool(function () {\n return new Array();\n });\n this.polygonIndicesPool = new core.Pool(function () {\n return new Array();\n });\n }\n Triangulator.prototype.triangulate = function (verticesArray) {\n var vertices = verticesArray;\n var vertexCount = verticesArray.length >> 1;\n var indices = this.indicesArray;\n indices.length = 0;\n for (var i = 0; i < vertexCount; i++) indices[i] = i;\n var isConcave = this.isConcaveArray;\n isConcave.length = 0;\n for (var i = 0, n = vertexCount; i < n; ++i)\n isConcave[i] = Triangulator.isConcave(i, vertexCount, vertices, indices);\n var triangles = this.triangles;\n triangles.length = 0;\n while (vertexCount > 3) {\n var previous = vertexCount - 1,\n i = 0,\n next = 1;\n while (true) {\n outer: if (!isConcave[i]) {\n var p1 = indices[previous] << 1,\n p2 = indices[i] << 1,\n p3 = indices[next] << 1;\n var p1x = vertices[p1],\n p1y = vertices[p1 + 1];\n var p2x = vertices[p2],\n p2y = vertices[p2 + 1];\n var p3x = vertices[p3],\n p3y = vertices[p3 + 1];\n for (var ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) {\n if (!isConcave[ii]) continue;\n var v = indices[ii] << 1;\n var vx = vertices[v],\n vy = vertices[v + 1];\n if (Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) {\n if (Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) {\n if (Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) break outer;\n }\n }\n }\n break;\n }\n if (next == 0) {\n do {\n if (!isConcave[i]) break;\n i--;\n } while (i > 0);\n break;\n }\n previous = i;\n i = next;\n next = (next + 1) % vertexCount;\n }\n triangles.push(indices[(vertexCount + i - 1) % vertexCount]);\n triangles.push(indices[i]);\n triangles.push(indices[(i + 1) % vertexCount]);\n indices.splice(i, 1);\n isConcave.splice(i, 1);\n vertexCount--;\n var previousIndex = (vertexCount + i - 1) % vertexCount;\n var nextIndex = i == vertexCount ? 0 : i;\n isConcave[previousIndex] = Triangulator.isConcave(previousIndex, vertexCount, vertices, indices);\n isConcave[nextIndex] = Triangulator.isConcave(nextIndex, vertexCount, vertices, indices);\n }\n if (vertexCount == 3) {\n triangles.push(indices[2]);\n triangles.push(indices[0]);\n triangles.push(indices[1]);\n }\n return triangles;\n };\n Triangulator.prototype.decompose = function (verticesArray, triangles) {\n var vertices = verticesArray;\n var convexPolygons = this.convexPolygons;\n this.polygonPool.freeAll(convexPolygons);\n convexPolygons.length = 0;\n var convexPolygonsIndices = this.convexPolygonsIndices;\n this.polygonIndicesPool.freeAll(convexPolygonsIndices);\n convexPolygonsIndices.length = 0;\n var polygonIndices = this.polygonIndicesPool.obtain();\n polygonIndices.length = 0;\n var polygon = this.polygonPool.obtain();\n polygon.length = 0;\n var fanBaseIndex = -1,\n lastWinding = 0;\n for (var i = 0, n = triangles.length; i < n; i += 3) {\n var t1 = triangles[i] << 1,\n t2 = triangles[i + 1] << 1,\n t3 = triangles[i + 2] << 1;\n var x1 = vertices[t1],\n y1 = vertices[t1 + 1];\n var x2 = vertices[t2],\n y2 = vertices[t2 + 1];\n var x3 = vertices[t3],\n y3 = vertices[t3 + 1];\n var merged = false;\n if (fanBaseIndex == t1) {\n var o = polygon.length - 4;\n var winding1 = Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3);\n var winding2 = Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]);\n if (winding1 == lastWinding && winding2 == lastWinding) {\n polygon.push(x3);\n polygon.push(y3);\n polygonIndices.push(t3);\n merged = true;\n }\n }\n if (!merged) {\n if (polygon.length > 0) {\n convexPolygons.push(polygon);\n convexPolygonsIndices.push(polygonIndices);\n } else {\n this.polygonPool.free(polygon);\n this.polygonIndicesPool.free(polygonIndices);\n }\n polygon = this.polygonPool.obtain();\n polygon.length = 0;\n polygon.push(x1);\n polygon.push(y1);\n polygon.push(x2);\n polygon.push(y2);\n polygon.push(x3);\n polygon.push(y3);\n polygonIndices = this.polygonIndicesPool.obtain();\n polygonIndices.length = 0;\n polygonIndices.push(t1);\n polygonIndices.push(t2);\n polygonIndices.push(t3);\n lastWinding = Triangulator.winding(x1, y1, x2, y2, x3, y3);\n fanBaseIndex = t1;\n }\n }\n if (polygon.length > 0) {\n convexPolygons.push(polygon);\n convexPolygonsIndices.push(polygonIndices);\n }\n for (var i = 0, n = convexPolygons.length; i < n; i++) {\n polygonIndices = convexPolygonsIndices[i];\n if (polygonIndices.length == 0) continue;\n var firstIndex = polygonIndices[0];\n var lastIndex = polygonIndices[polygonIndices.length - 1];\n polygon = convexPolygons[i];\n var o = polygon.length - 4;\n var prevPrevX = polygon[o],\n prevPrevY = polygon[o + 1];\n var prevX = polygon[o + 2],\n prevY = polygon[o + 3];\n var firstX = polygon[0],\n firstY = polygon[1];\n var secondX = polygon[2],\n secondY = polygon[3];\n var winding = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY);\n for (var ii = 0; ii < n; ii++) {\n if (ii == i) continue;\n var otherIndices = convexPolygonsIndices[ii];\n if (otherIndices.length != 3) continue;\n var otherFirstIndex = otherIndices[0];\n var otherSecondIndex = otherIndices[1];\n var otherLastIndex = otherIndices[2];\n var otherPoly = convexPolygons[ii];\n var x3 = otherPoly[otherPoly.length - 2],\n y3 = otherPoly[otherPoly.length - 1];\n if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) continue;\n var winding1 = Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3);\n var winding2 = Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY);\n if (winding1 == winding && winding2 == winding) {\n otherPoly.length = 0;\n otherIndices.length = 0;\n polygon.push(x3);\n polygon.push(y3);\n polygonIndices.push(otherLastIndex);\n prevPrevX = prevX;\n prevPrevY = prevY;\n prevX = x3;\n prevY = y3;\n ii = 0;\n }\n }\n }\n for (var i = convexPolygons.length - 1; i >= 0; i--) {\n polygon = convexPolygons[i];\n if (polygon.length == 0) {\n convexPolygons.splice(i, 1);\n this.polygonPool.free(polygon);\n polygonIndices = convexPolygonsIndices[i];\n convexPolygonsIndices.splice(i, 1);\n this.polygonIndicesPool.free(polygonIndices);\n }\n }\n return convexPolygons;\n };\n Triangulator.isConcave = function (index, vertexCount, vertices, indices) {\n var previous = indices[(vertexCount + index - 1) % vertexCount] << 1;\n var current = indices[index] << 1;\n var next = indices[(index + 1) % vertexCount] << 1;\n return !this.positiveArea(\n vertices[previous],\n vertices[previous + 1],\n vertices[current],\n vertices[current + 1],\n vertices[next],\n vertices[next + 1],\n );\n };\n Triangulator.positiveArea = function (p1x, p1y, p2x, p2y, p3x, p3y) {\n return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0;\n };\n Triangulator.winding = function (p1x, p1y, p2x, p2y, p3x, p3y) {\n var px = p2x - p1x,\n py = p2y - p1y;\n return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1;\n };\n return Triangulator;\n })();\n core.Triangulator = Triangulator;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var IntSet = (function () {\n function IntSet() {\n this.array = new Array();\n }\n IntSet.prototype.add = function (value) {\n var contains = this.contains(value);\n this.array[value | 0] = value | 0;\n return !contains;\n };\n IntSet.prototype.contains = function (value) {\n return this.array[value | 0] != undefined;\n };\n IntSet.prototype.remove = function (value) {\n this.array[value | 0] = undefined;\n };\n IntSet.prototype.clear = function () {\n this.array.length = 0;\n };\n return IntSet;\n })();\n core.IntSet = IntSet;\n var Color = (function () {\n function Color(r, g, b, a) {\n if (r === void 0) {\n r = 0;\n }\n if (g === void 0) {\n g = 0;\n }\n if (b === void 0) {\n b = 0;\n }\n if (a === void 0) {\n a = 0;\n }\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n Color.prototype.set = function (r, g, b, a) {\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n this.clamp();\n return this;\n };\n Color.prototype.setFromColor = function (c) {\n this.r = c.r;\n this.g = c.g;\n this.b = c.b;\n this.a = c.a;\n return this;\n };\n Color.prototype.setFromString = function (hex) {\n hex = hex.charAt(0) == '#' ? hex.substr(1) : hex;\n this.r = parseInt(hex.substr(0, 2), 16) / 255.0;\n this.g = parseInt(hex.substr(2, 2), 16) / 255.0;\n this.b = parseInt(hex.substr(4, 2), 16) / 255.0;\n this.a = (hex.length != 8 ? 255 : parseInt(hex.substr(6, 2), 16)) / 255.0;\n return this;\n };\n Color.prototype.add = function (r, g, b, a) {\n this.r += r;\n this.g += g;\n this.b += b;\n this.a += a;\n this.clamp();\n return this;\n };\n Color.prototype.clamp = function () {\n if (this.r < 0) this.r = 0;\n else if (this.r > 1) this.r = 1;\n if (this.g < 0) this.g = 0;\n else if (this.g > 1) this.g = 1;\n if (this.b < 0) this.b = 0;\n else if (this.b > 1) this.b = 1;\n if (this.a < 0) this.a = 0;\n else if (this.a > 1) this.a = 1;\n return this;\n };\n Color.WHITE = new Color(1, 1, 1, 1);\n Color.RED = new Color(1, 0, 0, 1);\n Color.GREEN = new Color(0, 1, 0, 1);\n Color.BLUE = new Color(0, 0, 1, 1);\n Color.MAGENTA = new Color(1, 0, 1, 1);\n return Color;\n })();\n core.Color = Color;\n var MathUtils = (function () {\n function MathUtils() {}\n MathUtils.clamp = function (value, min, max) {\n if (value < min) return min;\n if (value > max) return max;\n return value;\n };\n MathUtils.cosDeg = function (degrees) {\n return Math.cos(degrees * MathUtils.degRad);\n };\n MathUtils.sinDeg = function (degrees) {\n return Math.sin(degrees * MathUtils.degRad);\n };\n MathUtils.signum = function (value) {\n return value > 0 ? 1 : value < 0 ? -1 : 0;\n };\n MathUtils.toInt = function (x) {\n return x > 0 ? Math.floor(x) : Math.ceil(x);\n };\n MathUtils.cbrt = function (x) {\n var y = Math.pow(Math.abs(x), 1 / 3);\n return x < 0 ? -y : y;\n };\n MathUtils.randomTriangular = function (min, max) {\n return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5);\n };\n MathUtils.randomTriangularWith = function (min, max, mode) {\n var u = Math.random();\n var d = max - min;\n if (u <= (mode - min) / d) return min + Math.sqrt(u * d * (mode - min));\n return max - Math.sqrt((1 - u) * d * (max - mode));\n };\n MathUtils.PI = 3.1415927;\n MathUtils.PI2 = MathUtils.PI * 2;\n MathUtils.radiansToDegrees = 180 / MathUtils.PI;\n MathUtils.radDeg = MathUtils.radiansToDegrees;\n MathUtils.degreesToRadians = MathUtils.PI / 180;\n MathUtils.degRad = MathUtils.degreesToRadians;\n return MathUtils;\n })();\n core.MathUtils = MathUtils;\n var Interpolation = (function () {\n function Interpolation() {}\n Interpolation.prototype.apply = function (start, end, a) {\n return start + (end - start) * this.applyInternal(a);\n };\n return Interpolation;\n })();\n core.Interpolation = Interpolation;\n var Pow = (function (_super) {\n __extends(Pow, _super);\n function Pow(power) {\n var _this = _super.call(this) || this;\n _this.power = 2;\n _this.power = power;\n return _this;\n }\n Pow.prototype.applyInternal = function (a) {\n if (a <= 0.5) return Math.pow(a * 2, this.power) / 2;\n return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1;\n };\n return Pow;\n })(Interpolation);\n core.Pow = Pow;\n var PowOut = (function (_super) {\n __extends(PowOut, _super);\n function PowOut(power) {\n return _super.call(this, power) || this;\n }\n PowOut.prototype.applyInternal = function (a) {\n return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;\n };\n return PowOut;\n })(Pow);\n core.PowOut = PowOut;\n var Utils = (function () {\n function Utils() {}\n Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) {\n for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) {\n dest[j] = source[i];\n }\n };\n Utils.setArraySize = function (array, size, value) {\n if (value === void 0) {\n value = 0;\n }\n var oldSize = array.length;\n if (oldSize == size) return array;\n array.length = size;\n if (oldSize < size) {\n for (var i = oldSize; i < size; i++) array[i] = value;\n }\n return array;\n };\n Utils.ensureArrayCapacity = function (array, size, value) {\n if (value === void 0) {\n value = 0;\n }\n if (array.length >= size) return array;\n return Utils.setArraySize(array, size, value);\n };\n Utils.newArray = function (size, defaultValue) {\n var array = new Array(size);\n for (var i = 0; i < size; i++) array[i] = defaultValue;\n return array;\n };\n Utils.newFloatArray = function (size) {\n if (Utils.SUPPORTS_TYPED_ARRAYS) {\n return new Float32Array(size);\n } else {\n var array = new Array(size);\n for (var i = 0; i < array.length; i++) array[i] = 0;\n return array;\n }\n };\n Utils.newShortArray = function (size) {\n if (Utils.SUPPORTS_TYPED_ARRAYS) {\n return new Int16Array(size);\n } else {\n var array = new Array(size);\n for (var i = 0; i < array.length; i++) array[i] = 0;\n return array;\n }\n };\n Utils.toFloatArray = function (array) {\n return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;\n };\n Utils.toSinglePrecision = function (value) {\n return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;\n };\n Utils.webkit602BugfixHelper = function (alpha, blend) {};\n Utils.SUPPORTS_TYPED_ARRAYS = typeof Float32Array !== 'undefined';\n return Utils;\n })();\n core.Utils = Utils;\n var DebugUtils = (function () {\n function DebugUtils() {}\n DebugUtils.logBones = function (skeleton) {\n for (var i = 0; i < skeleton.bones.length; i++) {\n var bone = skeleton.bones[i];\n var mat = bone.matrix;\n console.log(\n bone.data.name + ', ' + mat.a + ', ' + mat.b + ', ' + mat.c + ', ' + mat.d + ', ' + mat.tx + ', ' + mat.ty,\n );\n }\n };\n return DebugUtils;\n })();\n core.DebugUtils = DebugUtils;\n var Pool = (function () {\n function Pool(instantiator) {\n this.items = new Array();\n this.instantiator = instantiator;\n }\n Pool.prototype.obtain = function () {\n return this.items.length > 0 ? this.items.pop() : this.instantiator();\n };\n Pool.prototype.free = function (item) {\n if (item.reset) item.reset();\n this.items.push(item);\n };\n Pool.prototype.freeAll = function (items) {\n for (var i = 0; i < items.length; i++) {\n if (items[i].reset) items[i].reset();\n this.items[i] = items[i];\n }\n };\n Pool.prototype.clear = function () {\n this.items.length = 0;\n };\n return Pool;\n })();\n core.Pool = Pool;\n var Vector2 = (function () {\n function Vector2(x, y) {\n if (x === void 0) {\n x = 0;\n }\n if (y === void 0) {\n y = 0;\n }\n this.x = x;\n this.y = y;\n }\n Vector2.prototype.set = function (x, y) {\n this.x = x;\n this.y = y;\n return this;\n };\n Vector2.prototype.length = function () {\n var x = this.x;\n var y = this.y;\n return Math.sqrt(x * x + y * y);\n };\n Vector2.prototype.normalize = function () {\n var len = this.length();\n if (len != 0) {\n this.x /= len;\n this.y /= len;\n }\n return this;\n };\n return Vector2;\n })();\n core.Vector2 = Vector2;\n var TimeKeeper = (function () {\n function TimeKeeper() {\n this.maxDelta = 0.064;\n this.framesPerSecond = 0;\n this.delta = 0;\n this.totalTime = 0;\n this.lastTime = Date.now() / 1000;\n this.frameCount = 0;\n this.frameTime = 0;\n }\n TimeKeeper.prototype.update = function () {\n var now = Date.now() / 1000;\n this.delta = now - this.lastTime;\n this.frameTime += this.delta;\n this.totalTime += this.delta;\n if (this.delta > this.maxDelta) this.delta = this.maxDelta;\n this.lastTime = now;\n this.frameCount++;\n if (this.frameTime > 1) {\n this.framesPerSecond = this.frameCount / this.frameTime;\n this.frameTime = 0;\n this.frameCount = 0;\n }\n };\n return TimeKeeper;\n })();\n core.TimeKeeper = TimeKeeper;\n var WindowedMean = (function () {\n function WindowedMean(windowSize) {\n if (windowSize === void 0) {\n windowSize = 32;\n }\n this.addedValues = 0;\n this.lastValue = 0;\n this.mean = 0;\n this.dirty = true;\n this.values = new Array(windowSize);\n }\n WindowedMean.prototype.hasEnoughData = function () {\n return this.addedValues >= this.values.length;\n };\n WindowedMean.prototype.addValue = function (value) {\n if (this.addedValues < this.values.length) this.addedValues++;\n this.values[this.lastValue++] = value;\n if (this.lastValue > this.values.length - 1) this.lastValue = 0;\n this.dirty = true;\n };\n WindowedMean.prototype.getMean = function () {\n if (this.hasEnoughData()) {\n if (this.dirty) {\n var mean = 0;\n for (var i = 0; i < this.values.length; i++) {\n mean += this.values[i];\n }\n this.mean = mean / this.values.length;\n this.dirty = false;\n }\n return this.mean;\n } else {\n return 0;\n }\n };\n return WindowedMean;\n })();\n core.WindowedMean = WindowedMean;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var Attachment = (function () {\n function Attachment(name) {\n if (name == null) throw new Error('name cannot be null.');\n this.name = name;\n }\n return Attachment;\n })();\n core.Attachment = Attachment;\n var VertexAttachment = (function (_super) {\n __extends(VertexAttachment, _super);\n function VertexAttachment(name) {\n var _this = _super.call(this, name) || this;\n _this.id = (VertexAttachment.nextID++ & 65535) << 11;\n _this.worldVerticesLength = 0;\n return _this;\n }\n VertexAttachment.prototype.computeWorldVerticesOld = function (slot, worldVertices) {\n this.computeWorldVertices(slot, 0, this.worldVerticesLength, worldVertices, 0, 2);\n };\n VertexAttachment.prototype.computeWorldVertices = function (slot, start, count, worldVertices, offset, stride) {\n count = offset + (count >> 1) * stride;\n var skeleton = slot.bone.skeleton;\n var deformArray = slot.attachmentVertices;\n var vertices = this.vertices;\n var bones = this.bones;\n if (bones == null) {\n if (deformArray.length > 0) vertices = deformArray;\n var mat = slot.bone.matrix;\n var x = mat.tx;\n var y = mat.ty;\n var a = mat.a,\n b = mat.c,\n c = mat.b,\n d = mat.d;\n for (var v_1 = start, w = offset; w < count; v_1 += 2, w += stride) {\n var vx = vertices[v_1],\n vy = vertices[v_1 + 1];\n worldVertices[w] = vx * a + vy * b + x;\n worldVertices[w + 1] = vx * c + vy * d + y;\n }\n return;\n }\n var v = 0,\n skip = 0;\n for (var i = 0; i < start; i += 2) {\n var n = bones[v];\n v += n + 1;\n skip += n;\n }\n var skeletonBones = skeleton.bones;\n if (deformArray.length == 0) {\n for (var w = offset, b = skip * 3; w < count; w += stride) {\n var wx = 0,\n wy = 0;\n var n = bones[v++];\n n += v;\n for (; v < n; v++, b += 3) {\n var mat = skeletonBones[bones[v]].matrix;\n var vx = vertices[b],\n vy = vertices[b + 1],\n weight = vertices[b + 2];\n wx += (vx * mat.a + vy * mat.c + mat.tx) * weight;\n wy += (vx * mat.b + vy * mat.d + mat.ty) * weight;\n }\n worldVertices[w] = wx;\n worldVertices[w + 1] = wy;\n }\n } else {\n var deform = deformArray;\n for (var w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) {\n var wx = 0,\n wy = 0;\n var n = bones[v++];\n n += v;\n for (; v < n; v++, b += 3, f += 2) {\n var mat = skeletonBones[bones[v]].matrix;\n var vx = vertices[b] + deform[f],\n vy = vertices[b + 1] + deform[f + 1],\n weight = vertices[b + 2];\n wx += (vx * mat.a + vy * mat.c + mat.tx) * weight;\n wy += (vx * mat.b + vy * mat.d + mat.ty) * weight;\n }\n worldVertices[w] = wx;\n worldVertices[w + 1] = wy;\n }\n }\n };\n VertexAttachment.prototype.applyDeform = function (sourceAttachment) {\n return this == sourceAttachment;\n };\n VertexAttachment.nextID = 0;\n return VertexAttachment;\n })(Attachment);\n core.VertexAttachment = VertexAttachment;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var AttachmentType;\n (function (AttachmentType) {\n AttachmentType[(AttachmentType['Region'] = 0)] = 'Region';\n AttachmentType[(AttachmentType['BoundingBox'] = 1)] = 'BoundingBox';\n AttachmentType[(AttachmentType['Mesh'] = 2)] = 'Mesh';\n AttachmentType[(AttachmentType['LinkedMesh'] = 3)] = 'LinkedMesh';\n AttachmentType[(AttachmentType['Path'] = 4)] = 'Path';\n AttachmentType[(AttachmentType['Point'] = 5)] = 'Point';\n })((AttachmentType = core.AttachmentType || (core.AttachmentType = {})));\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var BoundingBoxAttachment = (function (_super) {\n __extends(BoundingBoxAttachment, _super);\n function BoundingBoxAttachment(name) {\n var _this = _super.call(this, name) || this;\n _this.color = new core.Color(1, 1, 1, 1);\n return _this;\n }\n return BoundingBoxAttachment;\n })(core.VertexAttachment);\n core.BoundingBoxAttachment = BoundingBoxAttachment;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var ClippingAttachment = (function (_super) {\n __extends(ClippingAttachment, _super);\n function ClippingAttachment(name) {\n var _this = _super.call(this, name) || this;\n _this.color = new core.Color(0.2275, 0.2275, 0.8078, 1);\n return _this;\n }\n return ClippingAttachment;\n })(core.VertexAttachment);\n core.ClippingAttachment = ClippingAttachment;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var MeshAttachment = (function (_super) {\n __extends(MeshAttachment, _super);\n function MeshAttachment(name) {\n var _this = _super.call(this, name) || this;\n _this.color = new core.Color(1, 1, 1, 1);\n _this.inheritDeform = false;\n _this.tempColor = new core.Color(0, 0, 0, 0);\n return _this;\n }\n MeshAttachment.prototype.updateUVs = function (region, uvs) {\n var regionUVs = this.regionUVs;\n var n = regionUVs.length;\n if (!uvs || uvs.length != n) {\n uvs = core.Utils.newFloatArray(n);\n }\n if (region == null) {\n return;\n }\n var texture = region.texture;\n var r = texture._uvs;\n var w1 = region.width,\n h1 = region.height,\n w2 = region.originalWidth,\n h2 = region.originalHeight;\n var x = region.offsetX,\n y = region.pixiOffsetY;\n for (var i = 0; i < n; i += 2) {\n var u = this.regionUVs[i],\n v = this.regionUVs[i + 1];\n u = (u * w2 - x) / w1;\n v = (v * h2 - y) / h1;\n uvs[i] = (r.x0 * (1 - u) + r.x1 * u) * (1 - v) + (r.x3 * (1 - u) + r.x2 * u) * v;\n uvs[i + 1] = (r.y0 * (1 - u) + r.y1 * u) * (1 - v) + (r.y3 * (1 - u) + r.y2 * u) * v;\n }\n return uvs;\n };\n MeshAttachment.prototype.applyDeform = function (sourceAttachment) {\n return this == sourceAttachment || (this.inheritDeform && this.parentMesh == sourceAttachment);\n };\n MeshAttachment.prototype.getParentMesh = function () {\n return this.parentMesh;\n };\n MeshAttachment.prototype.setParentMesh = function (parentMesh) {\n this.parentMesh = parentMesh;\n if (parentMesh != null) {\n this.bones = parentMesh.bones;\n this.vertices = parentMesh.vertices;\n this.worldVerticesLength = parentMesh.worldVerticesLength;\n this.regionUVs = parentMesh.regionUVs;\n this.triangles = parentMesh.triangles;\n this.hullLength = parentMesh.hullLength;\n this.worldVerticesLength = parentMesh.worldVerticesLength;\n }\n };\n return MeshAttachment;\n })(core.VertexAttachment);\n core.MeshAttachment = MeshAttachment;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var PathAttachment = (function (_super) {\n __extends(PathAttachment, _super);\n function PathAttachment(name) {\n var _this = _super.call(this, name) || this;\n _this.closed = false;\n _this.constantSpeed = false;\n _this.color = new core.Color(1, 1, 1, 1);\n return _this;\n }\n return PathAttachment;\n })(core.VertexAttachment);\n core.PathAttachment = PathAttachment;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var PointAttachment = (function (_super) {\n __extends(PointAttachment, _super);\n function PointAttachment(name) {\n var _this = _super.call(this, name) || this;\n _this.color = new core.Color(0.38, 0.94, 0, 1);\n return _this;\n }\n PointAttachment.prototype.computeWorldPosition = function (bone, point) {\n var mat = bone.matrix;\n point.x = this.x * mat.a + this.y * mat.c + bone.worldX;\n point.y = this.x * mat.b + this.y * mat.d + bone.worldY;\n return point;\n };\n PointAttachment.prototype.computeWorldRotation = function (bone) {\n var mat = bone.matrix;\n var cos = core.MathUtils.cosDeg(this.rotation),\n sin = core.MathUtils.sinDeg(this.rotation);\n var x = cos * mat.a + sin * mat.c;\n var y = cos * mat.b + sin * mat.d;\n return Math.atan2(y, x) * core.MathUtils.radDeg;\n };\n return PointAttachment;\n })(core.VertexAttachment);\n core.PointAttachment = PointAttachment;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var RegionAttachment = (function (_super) {\n __extends(RegionAttachment, _super);\n function RegionAttachment(name) {\n var _this = _super.call(this, name) || this;\n _this.x = 0;\n _this.y = 0;\n _this.scaleX = 1;\n _this.scaleY = 1;\n _this.rotation = 0;\n _this.width = 0;\n _this.height = 0;\n _this.color = new core.Color(1, 1, 1, 1);\n _this.offset = core.Utils.newFloatArray(8);\n _this.uvs = core.Utils.newFloatArray(8);\n _this.tempColor = new core.Color(1, 1, 1, 1);\n return _this;\n }\n RegionAttachment.prototype.updateOffset = function () {\n var regionScaleX = (this.width / this.region.originalWidth) * this.scaleX;\n var regionScaleY = (this.height / this.region.originalHeight) * this.scaleY;\n var localX = (-this.width / 2) * this.scaleX + this.region.offsetX * regionScaleX;\n var localY = (-this.height / 2) * this.scaleY + this.region.offsetY * regionScaleY;\n var localX2 = localX + this.region.width * regionScaleX;\n var localY2 = localY + this.region.height * regionScaleY;\n var radians = (this.rotation * Math.PI) / 180;\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n var localXCos = localX * cos + this.x;\n var localXSin = localX * sin;\n var localYCos = localY * cos + this.y;\n var localYSin = localY * sin;\n var localX2Cos = localX2 * cos + this.x;\n var localX2Sin = localX2 * sin;\n var localY2Cos = localY2 * cos + this.y;\n var localY2Sin = localY2 * sin;\n var offset = this.offset;\n offset[RegionAttachment.OX1] = localXCos - localYSin;\n offset[RegionAttachment.OY1] = localYCos + localXSin;\n offset[RegionAttachment.OX2] = localXCos - localY2Sin;\n offset[RegionAttachment.OY2] = localY2Cos + localXSin;\n offset[RegionAttachment.OX3] = localX2Cos - localY2Sin;\n offset[RegionAttachment.OY3] = localY2Cos + localX2Sin;\n offset[RegionAttachment.OX4] = localX2Cos - localYSin;\n offset[RegionAttachment.OY4] = localYCos + localX2Sin;\n };\n RegionAttachment.prototype.setRegion = function (region) {\n this.region = region;\n var uvs = this.uvs;\n if (region.rotate) {\n uvs[2] = region.u;\n uvs[3] = region.v2;\n uvs[4] = region.u;\n uvs[5] = region.v;\n uvs[6] = region.u2;\n uvs[7] = region.v;\n uvs[0] = region.u2;\n uvs[1] = region.v2;\n } else {\n uvs[0] = region.u;\n uvs[1] = region.v2;\n uvs[2] = region.u;\n uvs[3] = region.v;\n uvs[4] = region.u2;\n uvs[5] = region.v;\n uvs[6] = region.u2;\n uvs[7] = region.v2;\n }\n };\n RegionAttachment.prototype.computeWorldVertices = function (bone, worldVertices, offset, stride) {\n var vertexOffset = this.offset;\n var mat = bone.matrix;\n var x = mat.tx,\n y = mat.ty;\n var a = mat.a,\n b = mat.c,\n c = mat.b,\n d = mat.d;\n var offsetX = 0,\n offsetY = 0;\n offsetX = vertexOffset[RegionAttachment.OX1];\n offsetY = vertexOffset[RegionAttachment.OY1];\n worldVertices[offset] = offsetX * a + offsetY * b + x;\n worldVertices[offset + 1] = offsetX * c + offsetY * d + y;\n offset += stride;\n offsetX = vertexOffset[RegionAttachment.OX2];\n offsetY = vertexOffset[RegionAttachment.OY2];\n worldVertices[offset] = offsetX * a + offsetY * b + x;\n worldVertices[offset + 1] = offsetX * c + offsetY * d + y;\n offset += stride;\n offsetX = vertexOffset[RegionAttachment.OX3];\n offsetY = vertexOffset[RegionAttachment.OY3];\n worldVertices[offset] = offsetX * a + offsetY * b + x;\n worldVertices[offset + 1] = offsetX * c + offsetY * d + y;\n offset += stride;\n offsetX = vertexOffset[RegionAttachment.OX4];\n offsetY = vertexOffset[RegionAttachment.OY4];\n worldVertices[offset] = offsetX * a + offsetY * b + x;\n worldVertices[offset + 1] = offsetX * c + offsetY * d + y;\n };\n RegionAttachment.OX1 = 0;\n RegionAttachment.OY1 = 1;\n RegionAttachment.OX2 = 2;\n RegionAttachment.OY2 = 3;\n RegionAttachment.OX3 = 4;\n RegionAttachment.OY3 = 5;\n RegionAttachment.OX4 = 6;\n RegionAttachment.OY4 = 7;\n RegionAttachment.X1 = 0;\n RegionAttachment.Y1 = 1;\n RegionAttachment.C1R = 2;\n RegionAttachment.C1G = 3;\n RegionAttachment.C1B = 4;\n RegionAttachment.C1A = 5;\n RegionAttachment.U1 = 6;\n RegionAttachment.V1 = 7;\n RegionAttachment.X2 = 8;\n RegionAttachment.Y2 = 9;\n RegionAttachment.C2R = 10;\n RegionAttachment.C2G = 11;\n RegionAttachment.C2B = 12;\n RegionAttachment.C2A = 13;\n RegionAttachment.U2 = 14;\n RegionAttachment.V2 = 15;\n RegionAttachment.X3 = 16;\n RegionAttachment.Y3 = 17;\n RegionAttachment.C3R = 18;\n RegionAttachment.C3G = 19;\n RegionAttachment.C3B = 20;\n RegionAttachment.C3A = 21;\n RegionAttachment.U3 = 22;\n RegionAttachment.V3 = 23;\n RegionAttachment.X4 = 24;\n RegionAttachment.Y4 = 25;\n RegionAttachment.C4R = 26;\n RegionAttachment.C4G = 27;\n RegionAttachment.C4B = 28;\n RegionAttachment.C4A = 29;\n RegionAttachment.U4 = 30;\n RegionAttachment.V4 = 31;\n return RegionAttachment;\n })(core.Attachment);\n core.RegionAttachment = RegionAttachment;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var JitterEffect = (function () {\n function JitterEffect(jitterX, jitterY) {\n this.jitterX = 0;\n this.jitterY = 0;\n this.jitterX = jitterX;\n this.jitterY = jitterY;\n }\n JitterEffect.prototype.begin = function (skeleton) {};\n JitterEffect.prototype.transform = function (position, uv, light, dark) {\n position.x += core.MathUtils.randomTriangular(-this.jitterX, this.jitterY);\n position.y += core.MathUtils.randomTriangular(-this.jitterX, this.jitterY);\n };\n JitterEffect.prototype.end = function () {};\n return JitterEffect;\n })();\n core.JitterEffect = JitterEffect;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n var core;\n (function (core) {\n var SwirlEffect = (function () {\n function SwirlEffect(radius) {\n this.centerX = 0;\n this.centerY = 0;\n this.radius = 0;\n this.angle = 0;\n this.worldX = 0;\n this.worldY = 0;\n this.radius = radius;\n }\n SwirlEffect.prototype.begin = function (skeleton) {\n this.worldX = skeleton.x + this.centerX;\n this.worldY = skeleton.y + this.centerY;\n };\n SwirlEffect.prototype.transform = function (position, uv, light, dark) {\n var radAngle = this.angle * core.MathUtils.degreesToRadians;\n var x = position.x - this.worldX;\n var y = position.y - this.worldY;\n var dist = Math.sqrt(x * x + y * y);\n if (dist < this.radius) {\n var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius);\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n position.x = cos * x - sin * y + this.worldX;\n position.y = sin * x + cos * y + this.worldY;\n }\n };\n SwirlEffect.prototype.end = function () {};\n SwirlEffect.interpolation = new core.PowOut(2);\n return SwirlEffect;\n })();\n core.SwirlEffect = SwirlEffect;\n })((core = pixi_spine.core || (pixi_spine.core = {})));\n})(pixi_spine || (pixi_spine = {}));\n(function () {\n if (!Math.fround) {\n Math.fround = Math.fround = (function (array) {\n return function (x) {\n return (array[0] = x), array[0];\n };\n })(new Float32Array(1));\n }\n})();\nvar pixi_spine;\n(function (pixi_spine) {\n pixi_spine.core.Bone.yDown = true;\n var tempRgb = [0, 0, 0];\n var SpineSprite = (function (_super) {\n __extends(SpineSprite, _super);\n function SpineSprite() {\n var _this = (_super !== null && _super.apply(this, arguments)) || this;\n _this.region = null;\n return _this;\n }\n return SpineSprite;\n })(PIXI.Sprite);\n pixi_spine.SpineSprite = SpineSprite;\n var SpineMesh = (function (_super) {\n __extends(SpineMesh, _super);\n function SpineMesh(texture, vertices, uvs, indices, drawMode) {\n return _super.call(this, texture, vertices, uvs, indices, drawMode) || this;\n }\n return SpineMesh;\n })(PIXI.mesh.Mesh);\n pixi_spine.SpineMesh = SpineMesh;\n var Spine = (function (_super) {\n __extends(Spine, _super);\n function Spine(spineData) {\n var _this = _super.call(this) || this;\n if (!spineData) {\n throw new Error('The spineData param is required.');\n }\n if (typeof spineData === 'string') {\n throw new Error(\n 'spineData param cant be string. Please use spine.Spine.fromAtlas(\"YOUR_RESOURCE_NAME\") from now on.',\n );\n }\n _this.spineData = spineData;\n _this.skeleton = new pixi_spine.core.Skeleton(spineData);\n _this.skeleton.updateWorldTransform();\n _this.stateData = new pixi_spine.core.AnimationStateData(spineData);\n _this.state = new pixi_spine.core.AnimationState(_this.stateData);\n _this.slotContainers = [];\n _this.tempClipContainers = [];\n for (var i = 0, n = _this.skeleton.slots.length; i < n; i++) {\n var slot = _this.skeleton.slots[i];\n var attachment = slot.attachment;\n var slotContainer = _this.newContainer();\n _this.slotContainers.push(slotContainer);\n _this.addChild(slotContainer);\n _this.tempClipContainers.push(null);\n if (attachment instanceof pixi_spine.core.RegionAttachment) {\n var spriteName = attachment.region.name;\n var sprite = _this.createSprite(slot, attachment, spriteName);\n slot.currentSprite = sprite;\n slot.currentSpriteName = spriteName;\n slotContainer.addChild(sprite);\n } else if (attachment instanceof pixi_spine.core.MeshAttachment) {\n var mesh = _this.createMesh(slot, attachment);\n slot.currentMesh = mesh;\n slot.currentMeshName = attachment.name;\n slotContainer.addChild(mesh);\n } else if (attachment instanceof pixi_spine.core.ClippingAttachment) {\n _this.createGraphics(slot, attachment);\n slotContainer.addChild(slot.clippingContainer);\n slotContainer.addChild(slot.currentGraphics);\n } else {\n continue;\n }\n }\n _this.autoUpdate = true;\n _this.tintRgb = new Float32Array([1, 1, 1]);\n return _this;\n }\n Object.defineProperty(Spine.prototype, 'autoUpdate', {\n get: function () {\n return this.updateTransform === Spine.prototype.autoUpdateTransform;\n },\n set: function (value) {\n this.updateTransform = value ? Spine.prototype.autoUpdateTransform : PIXI.Container.prototype.updateTransform;\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(Spine.prototype, 'tint', {\n get: function () {\n return PIXI.utils.rgb2hex(this.tintRgb);\n },\n set: function (value) {\n this.tintRgb = PIXI.utils.hex2rgb(value, this.tintRgb);\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(Spine.prototype, 'delayLimit', {\n get: function () {\n var limit = typeof this.localDelayLimit !== 'undefined' ? this.localDelayLimit : Spine.globalDelayLimit;\n return limit || Number.MAX_VALUE;\n },\n enumerable: true,\n configurable: true,\n });\n Spine.prototype.update = function (dt) {\n var delayLimit = this.delayLimit;\n if (dt > delayLimit) dt = delayLimit;\n this.state.update(dt);\n this.state.apply(this.skeleton);\n if (!this.skeleton) return;\n this.skeleton.updateWorldTransform();\n var slots = this.skeleton.slots;\n var globalClr = this.color;\n var light = null,\n dark = null;\n if (globalClr) {\n light = globalClr.light;\n dark = globalClr.dark;\n } else {\n light = this.tintRgb;\n }\n var thack = PIXI.TransformBase && this.transformHack() == 1;\n for (var i = 0, n = slots.length; i < n; i++) {\n var slot = slots[i];\n var attachment = slot.attachment;\n var slotContainer = this.slotContainers[i];\n if (!attachment) {\n slotContainer.visible = false;\n continue;\n }\n var spriteColor = null;\n var attColor = attachment.color;\n if (attachment instanceof pixi_spine.core.RegionAttachment) {\n var region = attachment.region;\n if (region) {\n if (slot.currentMesh) {\n slot.currentMesh.visible = false;\n slot.currentMesh = null;\n slot.currentMeshName = undefined;\n }\n var ar = region;\n if (!slot.currentSpriteName || slot.currentSpriteName !== ar.name) {\n var spriteName = ar.name;\n if (slot.currentSprite) {\n slot.currentSprite.visible = false;\n }\n slot.sprites = slot.sprites || {};\n if (slot.sprites[spriteName] !== undefined) {\n slot.sprites[spriteName].visible = true;\n } else {\n var sprite = this.createSprite(slot, attachment, spriteName);\n slotContainer.addChild(sprite);\n }\n slot.currentSprite = slot.sprites[spriteName];\n slot.currentSpriteName = spriteName;\n }\n }\n if (slotContainer.transform) {\n var transform = slotContainer.transform;\n var transAny = transform;\n var lt = null;\n if (transAny.matrix2d) {\n lt = transAny.matrix2d;\n transAny._dirtyVersion++;\n transAny.version = transAny._dirtyVersion;\n transAny.isStatic = true;\n transAny.operMode = 0;\n } else {\n if (thack) {\n if (transAny.position) {\n transform = new PIXI.TransformBase();\n transform._parentID = -1;\n transform._worldID = slotContainer.transform._worldID;\n slotContainer.transform = transform;\n }\n lt = transform.localTransform;\n } else {\n transAny.setFromMatrix(slot.bone.matrix);\n }\n }\n if (lt) {\n slot.bone.matrix.copy(lt);\n }\n } else {\n var lt = slotContainer.localTransform || new PIXI.Matrix();\n slot.bone.matrix.copy(lt);\n slotContainer.localTransform = lt;\n slotContainer.displayObjectUpdateTransform = SlotContainerUpdateTransformV3;\n }\n if (slot.currentSprite.color) {\n spriteColor = slot.currentSprite.color;\n } else {\n tempRgb[0] = light[0] * slot.color.r * attColor.r;\n tempRgb[1] = light[1] * slot.color.g * attColor.g;\n tempRgb[2] = light[2] * slot.color.b * attColor.b;\n slot.currentSprite.tint = PIXI.utils.rgb2hex(tempRgb);\n }\n slot.currentSprite.blendMode = slot.blendMode;\n } else if (attachment instanceof pixi_spine.core.MeshAttachment) {\n if (slot.currentSprite) {\n slot.currentSprite.visible = false;\n slot.currentSprite = null;\n slot.currentSpriteName = undefined;\n if (slotContainer.transform) {\n var transform = new PIXI.TransformStatic();\n transform._parentID = -1;\n transform._worldID = slotContainer.transform._worldID;\n slotContainer.transform = transform;\n } else {\n slotContainer.localTransform = new PIXI.Matrix();\n slotContainer.displayObjectUpdateTransform = PIXI.DisplayObject.prototype.updateTransform;\n }\n }\n if (!slot.currentMeshName || slot.currentMeshName !== attachment.name) {\n var meshName = attachment.name;\n if (slot.currentMesh) {\n slot.currentMesh.visible = false;\n }\n slot.meshes = slot.meshes || {};\n if (slot.meshes[meshName] !== undefined) {\n slot.meshes[meshName].visible = true;\n } else {\n var mesh = this.createMesh(slot, attachment);\n slotContainer.addChild(mesh);\n }\n slot.currentMesh = slot.meshes[meshName];\n slot.currentMeshName = meshName;\n }\n attachment.computeWorldVerticesOld(slot, slot.currentMesh.vertices);\n if (slot.currentMesh.color) {\n spriteColor = slot.currentMesh.color;\n } else if (PIXI.VERSION[0] !== '3') {\n var tintRgb = slot.currentMesh.tintRgb;\n tintRgb[0] = light[0] * slot.color.r * attColor.r;\n tintRgb[1] = light[1] * slot.color.g * attColor.g;\n tintRgb[2] = light[2] * slot.color.b * attColor.b;\n }\n slot.currentMesh.blendMode = slot.blendMode;\n } else if (attachment instanceof pixi_spine.core.ClippingAttachment) {\n if (!slot.currentGraphics) {\n this.createGraphics(slot, attachment);\n slotContainer.addChild(slot.clippingContainer);\n slotContainer.addChild(slot.currentGraphics);\n }\n this.updateGraphics(slot, attachment);\n } else {\n slotContainer.visible = false;\n continue;\n }\n slotContainer.visible = true;\n if (spriteColor) {\n var r0 = slot.color.r * attColor.r;\n var g0 = slot.color.g * attColor.g;\n var b0 = slot.color.b * attColor.b;\n spriteColor.setLight(\n light[0] * r0 + dark[0] * (1.0 - r0),\n light[1] * g0 + dark[1] * (1.0 - g0),\n light[2] * b0 + dark[2] * (1.0 - b0),\n );\n if (slot.darkColor) {\n r0 = slot.darkColor.r;\n g0 = slot.darkColor.g;\n b0 = slot.darkColor.b;\n } else {\n r0 = 0.0;\n g0 = 0.0;\n b0 = 0.0;\n }\n spriteColor.setDark(\n light[0] * r0 + dark[0] * (1 - r0),\n light[1] * g0 + dark[1] * (1 - g0),\n light[2] * b0 + dark[2] * (1 - b0),\n );\n }\n slotContainer.alpha = slot.color.a;\n }\n var drawOrder = this.skeleton.drawOrder;\n var clippingAttachment = null;\n var clippingContainer = null;\n for (var i = 0, n = drawOrder.length; i < n; i++) {\n var slot = slots[drawOrder[i].data.index];\n var slotContainer = this.slotContainers[drawOrder[i].data.index];\n if (!clippingContainer) {\n if (slotContainer.parent !== null && slotContainer.parent !== this) {\n slotContainer.parent.removeChild(slotContainer);\n slotContainer.parent = this;\n }\n }\n if (slot.currentGraphics && slot.attachment) {\n clippingContainer = slot.clippingContainer;\n clippingAttachment = slot.attachment;\n clippingContainer.children.length = 0;\n this.children[i] = slotContainer;\n if (clippingAttachment.endSlot == slot.data) {\n clippingAttachment.endSlot = null;\n }\n } else {\n if (clippingContainer) {\n var c = this.tempClipContainers[i];\n if (!c) {\n c = this.tempClipContainers[i] = this.newContainer();\n c.visible = false;\n }\n this.children[i] = c;\n slotContainer.parent = null;\n clippingContainer.addChild(slotContainer);\n if (clippingAttachment.endSlot == slot.data) {\n clippingContainer.renderable = true;\n clippingContainer = null;\n clippingAttachment = null;\n }\n } else {\n this.children[i] = slotContainer;\n }\n }\n }\n };\n Spine.prototype.setSpriteRegion = function (attachment, sprite, region) {\n sprite.region = region;\n sprite.texture = region.texture;\n if (!region.size) {\n sprite.scale.x = (attachment.scaleX * attachment.width) / region.originalWidth;\n sprite.scale.y = (-attachment.scaleY * attachment.height) / region.originalHeight;\n } else {\n sprite.scale.x = region.size.width / region.originalWidth;\n sprite.scale.y = -region.size.height / region.originalHeight;\n }\n };\n Spine.prototype.setMeshRegion = function (attachment, mesh, region) {\n mesh.region = region;\n mesh.texture = region.texture;\n region.texture._updateUvs();\n attachment.updateUVs(region, mesh.uvs);\n mesh.dirty++;\n };\n Spine.prototype.autoUpdateTransform = function () {\n if (Spine.globalAutoUpdate) {\n this.lastTime = this.lastTime || Date.now();\n var timeDelta = (Date.now() - this.lastTime) * 0.001;\n this.lastTime = Date.now();\n this.update(timeDelta);\n } else {\n this.lastTime = 0;\n }\n PIXI.Container.prototype.updateTransform.call(this);\n };\n Spine.prototype.createSprite = function (slot, attachment, defName) {\n var region = attachment.region;\n if (slot.tempAttachment === attachment) {\n region = slot.tempRegion;\n slot.tempAttachment = null;\n slot.tempRegion = null;\n }\n var texture = region.texture;\n var sprite = this.newSprite(texture);\n sprite.rotation = attachment.rotation * pixi_spine.core.MathUtils.degRad;\n sprite.anchor.x = 0.5;\n sprite.anchor.y = 0.5;\n sprite.position.x = attachment.x;\n sprite.position.y = attachment.y;\n sprite.alpha = attachment.color.a;\n sprite.region = attachment.region;\n this.setSpriteRegion(attachment, sprite, attachment.region);\n slot.sprites = slot.sprites || {};\n slot.sprites[defName] = sprite;\n return sprite;\n };\n Spine.prototype.createMesh = function (slot, attachment) {\n var region = attachment.region;\n if (slot.tempAttachment === attachment) {\n region = slot.tempRegion;\n slot.tempAttachment = null;\n slot.tempRegion = null;\n }\n var strip = this.newMesh(\n region.texture,\n new Float32Array(attachment.regionUVs.length),\n new Float32Array(attachment.regionUVs.length),\n new Uint16Array(attachment.triangles),\n PIXI.mesh.Mesh.DRAW_MODES.TRIANGLES,\n );\n strip.canvasPadding = 1.5;\n strip.alpha = attachment.color.a;\n strip.region = attachment.region;\n this.setMeshRegion(attachment, strip, region);\n slot.meshes = slot.meshes || {};\n slot.meshes[attachment.name] = strip;\n return strip;\n };\n Spine.prototype.createGraphics = function (slot, clip) {\n var graphics = this.newGraphics();\n var poly = new PIXI.Polygon([]);\n graphics.clear();\n graphics.beginFill(0xffffff, 1);\n graphics.drawPolygon(poly);\n graphics.renderable = false;\n slot.currentGraphics = graphics;\n slot.clippingContainer = this.newContainer();\n slot.clippingContainer.mask = slot.currentGraphics;\n return graphics;\n };\n Spine.prototype.updateGraphics = function (slot, clip) {\n var vertices = slot.currentGraphics.graphicsData[0].shape.points;\n var n = clip.worldVerticesLength;\n vertices.length = n;\n clip.computeWorldVertices(slot, 0, n, vertices, 0, 2);\n slot.currentGraphics.dirty++;\n slot.currentGraphics.clearDirty++;\n };\n Spine.prototype.hackTextureBySlotIndex = function (slotIndex, texture, size) {\n if (texture === void 0) {\n texture = null;\n }\n if (size === void 0) {\n size = null;\n }\n var slot = this.skeleton.slots[slotIndex];\n if (!slot) {\n return false;\n }\n var attachment = slot.attachment;\n var region = attachment.region;\n if (texture) {\n region = new pixi_spine.core.TextureRegion();\n region.texture = texture;\n region.size = size;\n }\n if (slot.currentSprite && slot.currentSprite.region != region) {\n this.setSpriteRegion(attachment, slot.currentSprite, region);\n slot.currentSprite.region = region;\n } else if (slot.currentMesh && slot.currentMesh.region != region) {\n this.setMeshRegion(attachment, slot.currentMesh, region);\n } else {\n slot.tempRegion = region;\n slot.tempAttachment = attachment;\n }\n return true;\n };\n Spine.prototype.hackTextureBySlotName = function (slotName, texture, size) {\n if (texture === void 0) {\n texture = null;\n }\n if (size === void 0) {\n size = null;\n }\n var index = this.skeleton.findSlotIndex(slotName);\n if (index == -1) {\n return false;\n }\n return this.hackTextureBySlotIndex(index, texture, size);\n };\n Spine.prototype.newContainer = function () {\n return new PIXI.Container();\n };\n Spine.prototype.newSprite = function (tex) {\n return new SpineSprite(tex);\n };\n Spine.prototype.newGraphics = function () {\n return new PIXI.Graphics();\n };\n Spine.prototype.newMesh = function (texture, vertices, uvs, indices, drawMode) {\n return new SpineMesh(texture, vertices, uvs, indices, drawMode);\n };\n Spine.prototype.transformHack = function () {\n return 1;\n };\n Spine.prototype.hackAttachmentGroups = function (nameSuffix, group, outGroup) {\n if (!nameSuffix) {\n return;\n }\n var list_d = [],\n list_n = [];\n for (var i = 0, len = this.skeleton.slots.length; i < len; i++) {\n var slot = this.skeleton.slots[i];\n var name_2 = slot.currentSpriteName || slot.currentMeshName || '';\n var target = slot.currentSprite || slot.currentMesh;\n if (name_2.endsWith(nameSuffix)) {\n target.parentGroup = group;\n list_n.push(target);\n } else if (outGroup && target) {\n target.parentGroup = outGroup;\n list_d.push(target);\n }\n }\n return [list_d, list_n];\n };\n Spine.prototype.destroy = function (options) {\n for (var i = 0, n = this.skeleton.slots.length; i < n; i++) {\n var slot = this.skeleton.slots[i];\n for (var name_3 in slot.meshes) {\n slot.meshes[name_3].destroy(options);\n }\n slot.meshes = null;\n for (var name_4 in slot.sprites) {\n slot.sprites[name_4].destroy(options);\n }\n slot.sprites = null;\n }\n for (var i = 0, n = this.slotContainers.length; i < n; i++) {\n this.slotContainers[i].destroy(options);\n }\n this.spineData = null;\n this.skeleton = null;\n this.slotContainers = null;\n this.stateData = null;\n this.state = null;\n this.tempClipContainers = null;\n _super.prototype.destroy.call(this, options);\n };\n Spine.globalAutoUpdate = true;\n Spine.globalDelayLimit = 0;\n Spine.clippingPolygon = [];\n return Spine;\n })(PIXI.Container);\n pixi_spine.Spine = Spine;\n function SlotContainerUpdateTransformV3() {\n var pt = this.parent.worldTransform;\n var wt = this.worldTransform;\n var lt = this.localTransform;\n wt.a = lt.a * pt.a + lt.b * pt.c;\n wt.b = lt.a * pt.b + lt.b * pt.d;\n wt.c = lt.c * pt.a + lt.d * pt.c;\n wt.d = lt.c * pt.b + lt.d * pt.d;\n wt.tx = lt.tx * pt.a + lt.ty * pt.c + pt.tx;\n wt.ty = lt.tx * pt.b + lt.ty * pt.d + pt.ty;\n this.worldAlpha = this.alpha * this.parent.worldAlpha;\n this._currentBounds = null;\n }\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n PIXI.spine = pixi_spine;\n var TextureProto = PIXI.Texture.prototype;\n if (!TextureProto._updateUvs) {\n TextureProto._updateUvs = TextureProto.updateUvs;\n }\n})(pixi_spine || (pixi_spine = {}));\nvar pixi_spine;\n(function (pixi_spine) {\n function isJson(resource) {\n return resource.type === PIXI.loaders.Resource.TYPE.JSON;\n }\n function atlasParser() {\n return function atlasParser(resource, next) {\n if (!resource.data || !isJson(resource) || !resource.data.bones) {\n return next();\n }\n var metadata = resource.metadata || {};\n var metadataSkeletonScale = metadata ? resource.metadata.spineSkeletonScale : null;\n var metadataAtlas = metadata ? resource.metadata.spineAtlas : null;\n if (metadataAtlas === false) {\n return next();\n }\n if (metadataAtlas && metadataAtlas.pages) {\n var spineJsonParser = new pixi_spine.core.SkeletonJson(\n new pixi_spine.core.AtlasAttachmentLoader(metadataAtlas),\n );\n if (metadataSkeletonScale) {\n spineJsonParser.scale = metadataSkeletonScale;\n }\n var skeletonData = spineJsonParser.readSkeletonData(resource.data);\n resource.spineData = skeletonData;\n resource.spineAtlas = metadataAtlas;\n return next();\n }\n var metadataAtlasSuffix = metadata.spineAtlasSuffix || '.atlas';\n var atlasPath = resource.url;\n var queryStringPos = atlasPath.indexOf('?');\n if (queryStringPos > 0) {\n atlasPath = atlasPath.substr(0, queryStringPos);\n }\n atlasPath = atlasPath.substr(0, atlasPath.lastIndexOf('.')) + metadataAtlasSuffix;\n if (resource.metadata && resource.metadata.spineAtlasFile) {\n atlasPath = resource.metadata.spineAtlasFile;\n }\n atlasPath = atlasPath.replace(this.baseUrl, '');\n var atlasOptions = {\n crossOrigin: resource.crossOrigin,\n xhrType: PIXI.loaders.Resource.XHR_RESPONSE_TYPE.TEXT,\n metadata: metadata.spineMetadata || null,\n parentResource: resource,\n };\n var imageOptions = {\n crossOrigin: resource.crossOrigin,\n metadata: metadata.imageMetadata || null,\n parentResource: resource,\n };\n var baseUrl = resource.url.substr(0, resource.url.lastIndexOf('/') + 1);\n baseUrl = baseUrl.replace(this.baseUrl, '');\n var namePrefix = metadata.imageNamePrefix || resource.name + '_atlas_page_';\n var adapter = metadata.images\n ? staticImageLoader(metadata.images)\n : metadata.image\n ? staticImageLoader({ default: metadata.image })\n : metadata.imageLoader\n ? metadata.imageLoader(this, namePrefix, baseUrl, imageOptions)\n : imageLoaderAdapter(this, namePrefix, baseUrl, imageOptions);\n var createSkeletonWithRawAtlas = function (rawData) {\n new pixi_spine.core.TextureAtlas(rawData, adapter, function (spineAtlas) {\n if (spineAtlas) {\n var spineJsonParser = new pixi_spine.core.SkeletonJson(\n new pixi_spine.core.AtlasAttachmentLoader(spineAtlas),\n );\n if (metadataSkeletonScale) {\n spineJsonParser.scale = metadataSkeletonScale;\n }\n resource.spineData = spineJsonParser.readSkeletonData(resource.data);\n resource.spineAtlas = spineAtlas;\n }\n next();\n });\n };\n if (resource.metadata && resource.metadata.atlasRawData) {\n createSkeletonWithRawAtlas(resource.metadata.atlasRawData);\n } else {\n this.add(resource.name + '_atlas', atlasPath, atlasOptions, function (atlasResource) {\n if (!atlasResource.error) {\n createSkeletonWithRawAtlas(atlasResource.data);\n } else {\n next();\n }\n });\n }\n };\n }\n pixi_spine.atlasParser = atlasParser;\n function imageLoaderAdapter(loader, namePrefix, baseUrl, imageOptions) {\n if (baseUrl && baseUrl.lastIndexOf('/') !== baseUrl.length - 1) {\n baseUrl += '/';\n }\n return function (line, callback) {\n var name = namePrefix + line;\n var url = baseUrl + line;\n var cachedResource = loader.resources[name];\n if (cachedResource) {\n function done() {\n callback(cachedResource.texture.baseTexture);\n }\n if (cachedResource.texture) {\n done();\n } else {\n cachedResource.onAfterMiddleware.add(done);\n }\n } else {\n loader.add(name, url, imageOptions, function (resource) {\n if (!resource.error) {\n callback(resource.texture.baseTexture);\n } else {\n callback(null);\n }\n });\n }\n };\n }\n pixi_spine.imageLoaderAdapter = imageLoaderAdapter;\n function syncImageLoaderAdapter(baseUrl, crossOrigin) {\n if (baseUrl && baseUrl.lastIndexOf('/') !== baseUrl.length - 1) {\n baseUrl += '/';\n }\n return function (line, callback) {\n callback(PIXI.BaseTexture.fromImage(line, crossOrigin));\n };\n }\n pixi_spine.syncImageLoaderAdapter = syncImageLoaderAdapter;\n function staticImageLoader(pages) {\n return function (line, callback) {\n var page = pages[line] || pages['default'];\n if (page && page.baseTexture) callback(page.baseTexture);\n else callback(page);\n };\n }\n pixi_spine.staticImageLoader = staticImageLoader;\n if (PIXI.loaders.Loader) {\n PIXI.loaders.Loader.addPixiMiddleware(atlasParser);\n PIXI.loader.use(atlasParser());\n }\n})(pixi_spine || (pixi_spine = {}));\n\nexport default pixi_spine;\n//# sourceMappingURL=pixi-spine.js.map\n","import { Texture } from 'pixi.js';\n\nlet texCache: { [name: string]: { tex: Texture; count: number } } = {};\n\nfunction cacheImage(data: any) {\n const oldImg = data.image;\n const newImg = data.image.cloneNode();\n // newImg.src = oldImg.src;\n data.image = newImg;\n\n return {\n tex: Texture.from(oldImg),\n count: 0,\n };\n}\n\nexport function retainTexture(name: string, data: any) {\n let cache = texCache[name];\n if (!cache) {\n cache = cacheImage(data);\n texCache[name] = cache;\n }\n cache.count++;\n return cache.tex;\n}\n\nexport function getTexture(name: string, data: any) {\n let cache = texCache[name];\n if (!cache) {\n cache = cacheImage(data);\n texCache[name] = cache;\n }\n return cache.tex;\n}\n\nexport function cleanTextures() {\n for (let k in texCache) {\n let cache = texCache[k];\n if (cache && cache.tex) {\n cache.tex.destroy(true);\n }\n }\n texCache = {};\n}\n\nexport function releaseTexture(name: string) {\n // 如果要取消上一个timeout,注意count--不要写timeout里面\n setTimeout(() => {\n // 延迟销毁,避免快速重用\n const cache = texCache[name];\n if (cache) {\n cache.count--;\n if (cache.count <= 0) {\n if (cache.tex) {\n cache.tex.destroy(true);\n cache.tex = null;\n }\n delete texCache[name];\n }\n }\n }, 100);\n}\n","import { resource } from '@eva/eva.js';\nimport pixispine from './pixi-spine.js';\nimport { cleanTextures, getTexture, releaseTexture, retainTexture } from './TexCache';\nlet dataMap: any = {};\n\nfunction createSpineData(name, imgName, data, scale) {\n let spineData: any = null;\n const img = getTexture(imgName, data); // Texture.from(data.image);\n // const img = Texture.from(imgName,data.image);\n // @ts-ignore\n new pixispine.core.TextureAtlas(\n (data as any).atlas,\n // @ts-ignore\n (line, callback) => {\n callback(img.baseTexture);\n },\n spineAtlas => {\n if (spineAtlas) {\n // @ts-ignore\n const attachmentLoader = new pixispine.core.AtlasAttachmentLoader(spineAtlas);\n // @ts-ignore\n const spineJsonParser = new pixispine.core.SkeletonJson(attachmentLoader);\n if (scale) {\n spineJsonParser.scale = scale;\n }\n spineData = spineJsonParser.readSkeletonData(data.ske);\n }\n },\n );\n const obj = { spineData, ref: 0, imgName: imgName };\n dataMap[name] = obj;\n return obj;\n}\nresource.registerInstance('SPINE' as any, info => {\n return createSpineData(info.name, info.name, info.data, (info as any).scale);\n});\n\nresource.registerDestroy('SPINE' as any, info => {\n if (info.instance) {\n // if (info.instance.img) {\n // 用true,baseTexture的缓存和webgl的绑定一起删除\n // info.instance.img.destroy(true);\n\n // }\n releaseTexture(info.name as string);\n info.instance = null;\n }\n});\n\nexport default async function getSpineData(name: string) {\n // const res = await resource.getResource(name);\n // if (!res.instance) {\n // console.log(`加载资源${name}失败`);\n // return;\n // }\n // retainTexture(res.name as string, res.data.image);\n // return res.instance.spineData;\n const res = await resource.getResource(name);\n let data = dataMap[name];\n if (!data) {\n if (res.complete) {\n data = createSpineData(name, res.name, res.data, (res as any).scale);\n } else if (!data) {\n return;\n }\n }\n\n retainTexture(res.name as string, res.data);\n\n data.ref++;\n return data.spineData;\n}\n\nexport function clearCache() {\n cleanTextures();\n dataMap = {};\n}\n\nexport function releaseSpineData(name) {\n // const res = await resource.getResource(name);\n // if (!res) {\n // return;\n // }\n // if (!res.instance) {\n // console.log(`释放资源${name}失败`);\n // return;\n // }\n // releaseTexture(res.name as string);\n const data = dataMap[name];\n if (!data) {\n return;\n }\n data.ref--;\n if (data.ref <= 0) {\n releaseTexture(data.imgName as string);\n delete dataMap[name];\n resource.destroy(name);\n }\n}\n","import { DisplayObject } from 'pixi.js';\nimport { decorators, ComponentChanged, OBSERVER_TYPE } from '@eva/eva.js';\nimport { Renderer, RendererSystem, RendererManager, ContainerManager } from '@eva/plugin-renderer';\nimport Spine from './Spine';\nimport pixispine from './pixi-spine.js';\nimport getSpineData, { releaseSpineData } from './SpineData';\nconst MaxRetryCount = 20;\n\n@decorators.componentObserver({\n Spine: ['resource'],\n})\nexport default class SpineSystem extends Renderer {\n static systemName = 'SpineSystem';\n armatures: Record<number, DisplayObject> = {};\n renderSystem: RendererSystem;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n init() {\n this.renderSystem = this.game.getSystem(RendererSystem) as RendererSystem;\n this.renderSystem.rendererManager.register(this);\n this.game.canvas.addEventListener(\n 'webglcontextrestored',\n () => {\n // 重建所有spine\n const objs = this.game.gameObjects;\n // clearCache();\n let toAdd: any[] = [];\n for (let k in this.armatures) {\n const id = +k;\n for (let i = 0; i < objs.length; ++i) {\n let obj = objs[i];\n if (obj.id === id) {\n let sp = obj.getComponent(Spine);\n if (sp) {\n this.remove({\n type: OBSERVER_TYPE.REMOVE,\n gameObject: obj,\n component: sp,\n componentName: Spine.componentName,\n });\n toAdd.push({\n type: OBSERVER_TYPE.ADD,\n gameObject: obj,\n component: sp,\n componentName: Spine.componentName,\n });\n }\n break;\n }\n }\n }\n\n setTimeout(() => {\n toAdd.forEach(obj => {\n this.add(obj);\n });\n }, 1000);\n },\n false,\n );\n }\n\n async componentChanged(changed: ComponentChanged) {\n if (changed.componentName === 'Spine') {\n if (changed.type === OBSERVER_TYPE.ADD) {\n this.add(changed);\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n switch (changed.prop.prop[0]) {\n case 'resource':\n this.change(changed);\n break;\n }\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.remove(changed);\n }\n }\n }\n async add(changed: ComponentChanged, count?: number) {\n const component = changed.component as Spine;\n clearTimeout(component.addHandler);\n const spineData = await getSpineData(component.resource);\n if (!spineData) {\n component.addHandler = setTimeout(() => {\n if (!component.destroied) {\n if (count === undefined) {\n // 最大重试次数\n count = MaxRetryCount;\n }\n count--;\n if (count > 0) {\n this.add(changed, count);\n } else {\n console.log('retry exceed max times', component.resource);\n }\n }\n }, 1000);\n return;\n }\n this.remove(changed);\n const container = this.renderSystem.containerManager.getContainer(changed.gameObject.id);\n if (!container) {\n // console.warn('添加spine的container不存在');\n return;\n }\n // @ts-ignore\n const armature: any = new pixispine.Spine(spineData);\n this.armatures[changed.gameObject.id] = armature;\n if (changed.gameObject && changed.gameObject.transform) {\n const tran = changed.gameObject.transform;\n armature.x = tran.size.width * tran.origin.x;\n armature.y = tran.size.height * tran.origin.y;\n }\n\n container.addChildAt(armature, 0);\n component.usingResource = component.resource;\n component.armature = armature;\n if (component.autoPlay) {\n try {\n armature.state.setAnimation(0, component.animationName, true);\n } catch (e) {\n console.log(e);\n }\n }\n // @ts-ignore\n component.emit('loaded', { resource: component.resource });\n armature.state.addListener({\n // @ts-ignore\n start: (track, event) => {\n component.emit('start', { track, name: track.animation.name });\n },\n // @ts-ignore\n complete: (track, event) => {\n component.emit('complete', { track, name: track.animation.name });\n },\n // @ts-ignore\n interrupt: (track, event) => {\n component.emit('interrupt', { track, name: track.animation.name });\n },\n end: (\n track, // @ts-ignore\n event,\n ) => {\n component.emit('end', { track, name: track.animation.name });\n },\n event: (track, event) => {\n // @ts-ignore\n component.emit('event', track, event);\n },\n });\n }\n change(changed: ComponentChanged) {\n this.remove(changed);\n this.add(changed);\n }\n remove(changed: ComponentChanged) {\n const component = changed.component as Spine;\n clearTimeout(component.addHandler);\n const armature = this.armatures[changed.gameObject.id];\n\n const container = this.renderSystem.containerManager.getContainer(changed.gameObject.id);\n if (container && armature) {\n container.removeChild(armature);\n } else {\n // console.warn('remove时container不存在');\n }\n\n if (component.armature) {\n component.armature.destroy({ children: true });\n\n if (component.usingResource) {\n releaseSpineData(component.usingResource);\n }\n }\n\n component.armature = null;\n delete this.armatures[changed.gameObject.id];\n if (changed.type === OBSERVER_TYPE.CHANGE) {\n // // @ts-ignore\n // component.removeAllListeners();\n }\n }\n}\n"],"names":["__extends","decorators","Component","loaders","Texture","Rectangle","Sprite","Graphics","mesh","Matrix","Container","SCALE_MODES","utils","TransformBase","TransformStatic","DisplayObject","Polygon","BaseTexture","this","resource","RendererSystem","Spine","OBSERVER_TYPE","Renderer"],"mappings":"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AAM,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,MAAM,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,MAAM,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,MAAM,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,MAAM,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,MAAM,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,MAAM,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAChC,MAAM,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAChC,MAAM,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAChC,MAAM,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAChC,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAChC,MAAM,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAChC,MAAM,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAChC,MAAM,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC;AAChC,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;AAC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"}